]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge commit 'ce4b499'
authorJoe Neeman <joeneeman@gmail.com>
Mon, 11 Feb 2008 23:30:05 +0000 (00:30 +0100)
committerJoe Neeman <joeneeman@gmail.com>
Mon, 11 Feb 2008 23:30:05 +0000 (00:30 +0100)
289 files changed:
.gitignore
Documentation/de/index.html.in
Documentation/de/user/ancient.itely
Documentation/de/user/putting.itely
Documentation/de/user/templates.itely
Documentation/de/user/tutorial.itely
Documentation/de/user/working.itely
Documentation/es/user/ancient.itely
Documentation/es/user/educational.itely
Documentation/es/user/putting.itely
Documentation/es/user/templates.itely
Documentation/es/user/text.itely
Documentation/es/user/tutorial.itely
Documentation/es/user/working.itely
Documentation/fr/user/ancient.itely
Documentation/fr/user/educational.itely
Documentation/fr/user/fundamental.itely
Documentation/fr/user/text.itely
Documentation/fr/user/tutorial.itely
Documentation/fr/user/working.itely
Documentation/topdocs/NEWS.tely
Documentation/user/GNUmakefile
Documentation/user/README.txt
Documentation/user/ancient.itely
Documentation/user/bagpipes.itely
Documentation/user/changing-defaults.itely
Documentation/user/chords.itely
Documentation/user/editorial.itely [new file with mode: 0644]
Documentation/user/educational.itely [deleted file]
Documentation/user/expressive.itely
Documentation/user/fundamental.itely
Documentation/user/guitar.itely
Documentation/user/input.itely
Documentation/user/install.itely
Documentation/user/introduction.itely
Documentation/user/lilypond.tely
Documentation/user/macros.itexi
Documentation/user/music-glossary.tely
Documentation/user/non-music.itely
Documentation/user/notation-appendices.itely
Documentation/user/notation.itely
Documentation/user/percussion.itely
Documentation/user/piano.itely
Documentation/user/pitches.itely
Documentation/user/policy.txt
Documentation/user/repeats.itely
Documentation/user/rhythms.itely
Documentation/user/simultaneous.itely
Documentation/user/spacing.itely
Documentation/user/staff.itely
Documentation/user/strings.itely
Documentation/user/templates.itely
Documentation/user/text.itely
Documentation/user/tutorial.itely
Documentation/user/tweaks.itely
Documentation/user/vocal.itely
Documentation/user/working.itely
Documentation/user/writing-sections.txt [new file with mode: 0644]
Documentation/user/writing-texinfo.txt
VERSION
buildscripts/mf2pt1.pl
buildscripts/www_post.py
configure.in
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/adding-a-figured-bass-above-or-below-the-notes.ly
input/lsr/adding-ambiti-per-voice.ly
input/lsr/adding-an-extra-staff.ly
input/lsr/adding-and-extra-staff-at-a-line-break.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-tablatures.ly
input/lsr/adding-parentheses-around-an-expressive-mark.ly
input/lsr/adding-the-current-date-to-a-score.ly
input/lsr/adjusting-lyrics-vertical-spacing.ly
input/lsr/aligning-and-centering-instrument-names.ly
input/lsr/aligning-lyrics.ly
input/lsr/alignment-vertical-spacing.ly
input/lsr/altering-the-number-of-stems-in-a-beam.ly
input/lsr/ambiti-multiple-voices.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-time-signatures.ly
input/lsr/applying-noteheads-styles-depending-on-the-step-of-the-scale.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/beam-across-line-breaks.ly
input/lsr/blanking-staff-lines-using-the--whiteout-command.ly
input/lsr/breathing-sign.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-an-individual-notes-size-in-a-chord.ly
input/lsr/changing-properties-for-individual-grobs.ly
input/lsr/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.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-staff-size.ly
input/lsr/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
input/lsr/chant-or-psalms-notation.ly
input/lsr/chord-name-exceptions.ly
input/lsr/clefs-commonly-tweaked-properties.ly
input/lsr/clip-systems.ly
input/lsr/clusters.ly
input/lsr/coloring-objects.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-tuplet-bracket-visibility.ly
input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly
input/lsr/creating-blank-staves.ly
input/lsr/creating-text-spanners.ly
input/lsr/custodes.ly
input/lsr/demo-midiinstruments.ly
input/lsr/demonstrating-all-headers.ly
input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
input/lsr/drawing-boxes-around-grobs.ly
input/lsr/drawing-circles-around-various-objects.ly
input/lsr/editorial-and-educational-use.snippet-list
input/lsr/engravers-one-by-one.ly
input/lsr/expressive-marks.snippet-list
input/lsr/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
input/lsr/formatting-lyrics-syllables.ly
input/lsr/generating-random-notes.ly
input/lsr/heavily-customized-polymetric-time-signatures.ly
input/lsr/how-to-put-ties-between-syllables-in-lyrics.ly
input/lsr/inserting-score-fragments-above-the-staff,-as-markups.ly
input/lsr/jazz-combo-template.ly
input/lsr/letter-tablature-formatting.ly
input/lsr/line-arrows.ly
input/lsr/makam.ly
input/lsr/making-an-object-invisible-with-the-transparent-property.ly
input/lsr/manually-controlling-beam-positions.ly
input/lsr/markup-lines.ly
input/lsr/move-specific-text.ly
input/lsr/non-traditional-key-signatures.ly
input/lsr/ottava-text.ly
input/lsr/outputting-the-version-number.ly
input/lsr/page-label.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/positioning-segno-and-coda-with-line-break.ly
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/proportional-strict-notespacing.ly
input/lsr/quoting-another-voice-with-transposition.ly
input/lsr/quoting-another-voice.ly
input/lsr/rest-styles.ly
input/lsr/rhythmic-slashes.ly
input/lsr/rhythms.snippet-list
input/lsr/score-for-diatonic-accordion.ly
input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.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/spacing.snippet-list
input/lsr/staff-notation.snippet-list
input/lsr/string-quartet-template-simple.ly
input/lsr/string-quartet-template-with-separate-parts.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/time-signature-in-parentheses.ly
input/lsr/transcription-of-ancient-music-with-incipit.ly
input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly
input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly
input/lsr/utf-8.ly
input/lsr/vertically-aligning-ossias-and-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-multi-staff.ly
input/manual/chord-names-jazz.ly
input/manual/chord-names-languages.ly
input/manual/divisiones.ly
input/manual/editorial-headword.ly
input/manual/expressive-headword.ly
input/manual/font-table.ly
input/manual/note-head-style.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/mutopia-header.ly
input/mutopia/E.Satie/petite-ouverture-a-danser.ly
input/mutopia/F.Schubert/morgenlied.ly
input/mutopia/F.Schubert/standchen.ly
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/romanze-op28-2.ly
input/mutopia/W.A.Mozart/mozart-hrn-3.ly
input/proportional.ly
input/puer-fragment.ly
input/regression/allfontstyle.ily
input/regression/auto-change.ly
input/regression/backend-excercise.ly
input/regression/bar-number.ly
input/regression/beam-extreme.ly
input/regression/beam-french.ly
input/regression/beam-position.ly
input/regression/break.ly
input/regression/clefs.ly
input/regression/collision-dots-move.ly
input/regression/dots.ly
input/regression/easy-notation.ly
input/regression/key-clefs.ly
input/regression/landscape.ly
input/regression/ligature-bracket.ly [new file with mode: 0644]
input/regression/lyric-combine-new.ly
input/regression/lyric-combine-switch-voice.ly
input/regression/lyric-combine.ly
input/regression/lyric-hyphen.ly
input/regression/lyrics-no-notes.ly
input/regression/markup-scheme.ly
input/regression/midi-drums.ly
input/regression/musicxml/00i-Basics-NoKeyOrClef.xml
input/regression/musicxml/00j-Basics-NoTime-PJB.xml
input/regression/musicxml/00l-Basics-Tie-PJB.xml
input/regression/musicxml/02a-Articulations-Finale.xml [deleted file]
input/regression/musicxml/02a-Notations-MusicXML.xml [new file with mode: 0644]
input/regression/musicxml/02b-Articulations-Texts-PJB.xml [new file with mode: 0644]
input/regression/musicxml/02c-Articulations-Noteedit.xml [deleted file]
input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml [new file with mode: 0644]
input/regression/musicxml/02d-Arpeggio.xml [new file with mode: 0644]
input/regression/musicxml/02d-Articulations-TwoStaves-Noteedit.xml [deleted file]
input/regression/musicxml/02e-Articulations-JScore.xml [deleted file]
input/regression/musicxml/02f-Articulations-MusicXML.xml [deleted file]
input/regression/musicxml/02g-ArticulationsNoAttributes-MusicXML.xml [deleted file]
input/regression/musicxml/02h-MultipleNotationChildren-RFK.xml [deleted file]
input/regression/musicxml/02i-Articulations-Texts-PJB.xml [deleted file]
input/regression/musicxml/03a-Directions-MusicXML.xml [new file with mode: 0644]
input/regression/musicxml/03a-Dynamics-Finale.xml [deleted file]
input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml [new file with mode: 0644]
input/regression/musicxml/03b-Dynamics-Noteedit.xml [deleted file]
input/regression/musicxml/03c-Dynamics-JScore.xml [deleted file]
input/regression/musicxml/04a-Spanners-Finale.xml
input/regression/musicxml/04b-Glissando.xml [new file with mode: 0644]
input/regression/musicxml/05a-HeaderQuotes-Finale.xml
input/regression/non-empty-text.ly
input/regression/quote-during.ly
input/regression/quote.ly
input/regression/rest-collision-beam-quantized.ly
input/regression/slur-rest.ly
lily/ligature-bracket-engraver.cc
lily/optimal-page-breaking.cc
ly/engraver-init.ly
ly/property-init.ly
make/lilypond-vars.make
mf/GNUmakefile
po/lilypond.pot
python/convertrules.py
python/lilylib.py
python/musicexp.py
python/musicxml.py
scm/define-context-properties.scm
scm/define-grobs.scm
scm/part-combiner.scm
scripts/convert-ly.py
scripts/lilypond-book.py
scripts/lilypond-invoke-editor.scm
scripts/midi2ly.py
scripts/musicxml2ly.py
stepmake/stepmake/metafont-rules.make
stepmake/stepmake/texinfo-rules.make
stepmake/stepmake/texinfo-vars.make
stepmake/stepmake/toplevel-targets.make

index 346f815f15ae53653e341ae799c5374f731183d2..78ddd2aade5ee09961d04eb11cc570b259b134f3 100644 (file)
@@ -70,3 +70,4 @@ out-test
 pats
 tags
 test-output-distance
+Documentation/user/lilypond
index 5e1565f95d5f0a15ae45e8806771db9894612a8b..7416fb4050899757c51d9af7815871b5af1dd8a6 100644 (file)
        <br>
        <strong>@DATE@</strong>
       </p>
+      
+      <p>
+      <strong>Achtung:</strong> Diese &Uuml;bersetzung befindet sich noch in der Entwicklung, <br>
+      die englische Version (Link unten auf der Seite) bietet die
+      vollst&auml;ndige Fassung der Dokumentation.
+      </p>
     </div>
 
     <table align="center">
index 9b0162fa0c68a9109536767bad347f77e5bc8060..485440b494fa690e366b7a4f835b0f28eb15fa15 100644 (file)
@@ -179,7 +179,7 @@ und Versetzungszeichen für die Alte Musik ausgewählt werden.
 @lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
-  \fatText
+  \textLengthOn
   s^\markup {
     \column {
       "vaticana"
@@ -621,7 +621,7 @@ Im folgenden Beispiel sind die unterschiedlichen Stile dargestellt.
 
 @lilypond[ragged-right,fragment,relative=1,quote]
 {
-  \fatText
+  \textLengthOn
 
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
index 9097a10fe9d7d611e4c3ac409770c6ac8109dcfd..54dc2e3893e07c4271fcedd0513da6c06858ae51 100644 (file)
@@ -36,7 +36,7 @@ Cello notieren. In diesem Fall beginnen Sie mit
  @qq{Noten und Text} (für die Sopranstimme).
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -66,7 +66,7 @@ Jetzt wollen wir die Cellostimme hinzufügen. Schauen wir uns das
 @qq{Nur Noten}-Beispiel an:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -106,7 +106,7 @@ Wir setzen hier auch ein paar andere Noten für das Cello.
 
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 sopranNoten = \relative c' @{
   \clef treble
   \key c \major
@@ -181,7 +181,7 @@ Unordnung geraden. Aber das ist einfach wieder hergestellt. Hier die
 vollständige Vorlage für Sopran und Cello:
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
index a6a3e26191a9e8c707b6861500b514b35444a504..944816c222c52ec7c5d3b68ecdf7db2d3105f22a 100644 (file)
@@ -37,7 +37,7 @@ Sie es in Ihre Datei ein, schreiben Sie die Noten hinzu, und Sie haben
 eine vollständige Notationsdatei.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -64,7 +64,7 @@ Wenn Sie die Balken wieder einschalten wollen, müssen Sie die
 entsprechende Zeile entweder Ã¤ndern oder auskommentieren.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -96,7 +96,7 @@ Wollen Sie ein Liedblatt mit Melodie und Akkorden schreiben? Hier ist
 das richtige Beispiel für Sie!
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -130,7 +130,7 @@ Mit diesem Beispiel können Sie einen Song mit Melodie,
 Text und Akkorden schreiben.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -171,7 +171,7 @@ harmonies = \chordmode {
 Hier kommt ein einfaches Klaviersystem.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -205,7 +205,7 @@ Das nächste Beispiel ist typisch für ein Lied: Im oberen System die
 Melodie mit Text, darunter Klavierbegleitung.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c'' {
    \clef treble
    \key c \major
@@ -262,7 +262,7 @@ Sie den Text auch zwischen die beiden Klaviersysteme schreiben
 (und damit das zusätzliche System für die Gesangstimme auslassen).
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -309,7 +309,7 @@ etwas anpassen, aber Sie können ja das angepasste Beispiel von hier
 kopieren.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
   \clef treble
   \key c \major
@@ -405,7 +405,7 @@ wird auch eine @qq{@code{\global}}-Variable für Taktart und
 Vorzeichen benutzt.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 
 global= {
   \time 4/4
@@ -469,7 +469,7 @@ zugewiesen, auf den zurückgegriffen werden kann.
 
 @verbatim
 %%%%% piece.ly
-\version "2.11.23"
+\version "2.11.38"
 
 global= {
   \time 4/4
@@ -515,7 +515,7 @@ music = {
 
 
 %%%%% score.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 #(set-global-staff-size 14)
 \score {
@@ -526,7 +526,7 @@ music = {
 
 
 %%%%% vn1.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vn1 \music
@@ -535,7 +535,7 @@ music = {
 
 
 %%%%% vn2.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vn2 \music
@@ -544,7 +544,7 @@ music = {
 
 
 %%%%% vla.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vla \music
@@ -553,7 +553,7 @@ music = {
 
 
 %%%%% vlc.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vlc \music
@@ -573,7 +573,7 @@ die in allen Stimmen eingefügt wird. Taktart und Vorzeichen etwa
 sind fast immer gleich in allen Stimmen.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
    \key c \major
    \time 4/4
@@ -654,7 +654,7 @@ irgendeine Ã„nderung an einer Chorstimme vornehmen, (etwa
 tenorMusic), verändert sich auch der Klavierauszug entsprechend.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
    \key c \major
    \time 4/4
@@ -748,7 +748,7 @@ In diesem Beispiel werden die Texte mit den Befehlen
 Ã¼ber und unter dem System angeordnet.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
   \key c \major
   \time 4/4
@@ -873,7 +873,7 @@ ein Kompromiss werden die Notenlinien nicht auf dem System, sondern
 zwischen den Systemen geschrieben.
 
 @lilypond[quote,verbatim,line-width=11.0\cm]
-\version "2.11.23"
+\version "2.11.38"
 
 global = {
   \set Score.skipBars = ##t
@@ -1114,7 +1114,7 @@ Länge von Pausen an.
 
 @lilypond[quote,verbatim,ragged-right]
 \include "gregorian-init.ly"
-\version "2.11.23"
+\version "2.11.38"
 
 chant = \relative c' {
   \set Score.timing = ##f
@@ -1174,7 +1174,7 @@ sich die Noten innerhalb eines @code{\transpose}-Abschnitts befinden.
 @c The `line-width' argument is for the \header.
 
 @lilypond[quote,verbatim,ragged-right,line-width]
-\version "2.11.23"
+\version "2.11.38"
 \header {
   title = "Song"
   subtitle = "(tune)"
@@ -1450,7 +1450,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.23"
+\version "2.11.38"
 \header {
   dedication = "dedication"
   title = "Title"
index 529a1f57c932d594273ea618e7cc8e405f80e36b..6c63e4d38d2a9001ffc6f53df41c4fe2f1c2e97e 100644 (file)
@@ -1667,7 +1667,7 @@ Der @code{\version}-Befehl zeigt an, welche LilyPond-Version
 für eine bestimmte Quelldatei benutzt worden ist:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 @end example
 
 @noindent
@@ -1689,7 +1689,7 @@ außerhalb der musikalischen Ausdrücke, meistens wird die
 @code{\header}-Umgebung direkt nach der Versionsnummer eingefügt.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 \header @{
   title = "Symphony"
   composer = "Ich"
index acd4be3d153ad1484757362d2666eeca6bfe433b..35cc3575ccde6d4c1a209673bd6b639cd54819c4 100644 (file)
@@ -73,7 +73,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.23"} eingetragen ist. Es empfielt sich, in alle 
+@code{\version "2.11.38"} eingetragen ist. Es empfielt 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 
@@ -556,7 +556,7 @@ für meine Projekte. Jede Notationsdatei fängt an mit
 
 @example
 %%%   global.ly
-\version "2.11.23"
+\version "2.11.38"
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-layout.ly"
index b28bfc096dab8af248b2357c57c42a5ca94dff01..b4494b3470200a3f8e0b551d928d65bece46af91 100644 (file)
@@ -172,7 +172,7 @@ los símbolos de alteración de la notación antigua.
 @lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
-  \fatText
+  \textLengthOn
   s^\markup {
     \column {
       "vaticana"
@@ -609,7 +609,7 @@ Los ejemplos siguientes muestran las diferencias que existen entre los estilos:
 
 @lilypond[ragged-right,fragment,relative=1,quote]
 {
-  \fatText
+  \textLengthOn
 
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
index 42d5ebcb9dbbf5908632afea47ff900065f4ddb5..9e79e0c440c527a71294e495c9cf56a31458ee57 100644 (file)
@@ -38,19 +38,19 @@ Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en in
 en la música para principiantes
 
 @lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
-  \setEasyHeads
+  \easyHeadsOn
   c'2 e'4 f' | g'1
 @end lilypond
 
-La orden @code{\setEasyHeads} sobreescribe los ajustes del objeto
+La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto
 @internalsref{NoteHead}.  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}.
 
 @refcommands
 
-@funindex \setEasyHeads
-@code{\setEasyHeads}
+@funindex \easyHeadsOn
+@code{\easyHeadsOn}
 
 
 @node Shape note heads
index c8841ca5df8e18f07ff077c5fef9b53989a8f2b4..ef18b28f868c7190edb7e1b18e17cb8a818ceae0 100644 (file)
@@ -35,7 +35,7 @@ En este caso comenzaríamos con la plantilla @q{Notas y letra} (para la parte
 de soprano).
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodia = \relative c' @{
   \clef treble
   \key c \major
@@ -64,7 +64,7 @@ texto = \lyricmode @{
 Ahora queremos añadir una parte de violoncello.  Veamos el ejemplo @q{Sólo notas}:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodia = \relative c' @{
   \clef treble
   \key c \major
@@ -100,7 +100,7 @@ se escriben normalmente en clave de Fa).  Asimismo, cambiaremos algunas
 notas del cello.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 musicaSoprano = \relative c' @{
   \clef treble
   \key c \major
@@ -170,7 +170,7 @@ Esto parece un poco enrevesado; los márgenes están descuadrados.  Esto tiene
 fácil solución.  Presentamos aquí la plantilla completa para soprano y cello.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
index 7d1371a9add9066cd84be39a7ab8b0b4762cb9ce..05d37196092295beb9b72df2c23e5071748051bf 100644 (file)
@@ -35,7 +35,7 @@ solista o un fragmento melódico.  Córtelo y péguelo en un archivo,
 escriba las notas y Â¡ha terminado!
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -60,7 +60,7 @@ barrado automático, tendrá que cambiar o convertir en un comentario la línea
 correspondiente.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -91,7 +91,7 @@ text = \lyricmode {
 Â¿Quiere preparar una Â«lead sheet» u hoja guía de una canción con acordes?  Â¡No busque más!
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -124,7 +124,7 @@ harmonies = \chordmode {
 Esta plantilla le permite preparar una canción con melodía, letra y acordes.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -165,7 +165,7 @@ harmonies = \chordmode {
 He aquí un sencillo sistema de piano.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -199,7 +199,7 @@ Aquí tenemos el típico formato de canción: un pentagrama con la melodía y la
 acompañamiento de piano.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c'' {
    \clef treble
    \key c \major
@@ -255,7 +255,7 @@ En lugar de tener un pentagrama dedicado a la melodía y la letra puede colocar
 la letra en medio de los pentagramas del piano (y omitir el pentagrama separado para la melodía).
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -302,7 +302,7 @@ ya que la plantilla está aquí mismo, no tiene que hacer el trucaje
 usted mismo.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 upper = \relative c'' {
   \clef treble
   \key c \major
@@ -397,7 +397,7 @@ Esta plantilla es una demostración de un cuarteto de cuerda.  También usa una
 para las indicaciones del compás y de la armadura de la tonalidad.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 
 global= {
   \time 4/4
@@ -457,7 +457,7 @@ contiene todas las definiciones musicales.  Los otros archivos (@code{score.ly},
 
 @verbatim
 %%%%% piece.ly
-\version "2.11.23"
+\version "2.11.38"
 
 global= {
   \time 4/4
@@ -503,7 +503,7 @@ music = {
 
 
 %%%%% score.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 #(set-global-staff-size 14)
 \score {
@@ -514,7 +514,7 @@ music = {
 
 
 %%%%% vn1.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vn1 \music
@@ -523,7 +523,7 @@ music = {
 
 
 %%%%% vn2.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vn2 \music
@@ -532,7 +532,7 @@ music = {
 
 
 %%%%% vla.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vla \music
@@ -541,7 +541,7 @@ music = {
 
 
 %%%%% vlc.ly
-\version "2.11.23"
+\version "2.11.38"
 \include "piece.ly"
 \score {
   \keepWithTag #'vlc \music
@@ -561,7 +561,7 @@ Por ejemplo, la indicación de compás y la armadura de la tonalidad son casi si
 para todas las partes.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
    \key c \major
    \time 4/4
@@ -642,7 +642,7 @@ usar una definición musical más de una vez.  Si hace algún cambio en las nota
 reducción de piano.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
    \key c \major
    \time 4/4
@@ -735,7 +735,7 @@ Aquí todas las líneas de texto se colocan usando @code{alignAboveContext}
 y @code{alignBelowContext}.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = {
   \key c \major
   \time 4/4
@@ -859,7 +859,7 @@ A modo de compromiso, las líneas de compás se suelen imprimir entre los pentag
 en vez de hacerlo sobre ellos.
 
 @lilypond[quote,verbatim,line-width=11.0\cm]
-\version "2.11.23"
+\version "2.11.38"
 
 global = {
   \set Score.skipBars = ##t
@@ -1099,7 +1099,7 @@ nota de blanca y negra, y marcas especiales que indican silencios de distinta lo
 
 @lilypond[quote,verbatim,ragged-right]
 \include "gregorian-init.ly"
-\version "2.11.23"
+\version "2.11.38"
 
 chant = \relative c' {
   \set Score.timing = ##f
@@ -1159,7 +1159,7 @@ sección @code{\transpose}.
 @c The `line-width' argument is for the \header.
 
 @lilypond[quote,verbatim,ragged-right,line-width]
-\version "2.11.23"
+\version "2.11.38"
 \header {
   title = "Song"
   subtitle = "(tune)"
@@ -1435,7 +1435,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.23"
+\version "2.11.38"
 \header {
   dedication = "dedication"
   title = "Title"
index 7d2160bbd6fa7cc7f52f9134df3d2ef30dc61446..268cd5181fb3025d34c0cf1cb6de947ff0b4aa0f 100644 (file)
@@ -61,14 +61,14 @@ c'4^\markup { bla \bold bla }
 Es posible colocar cadenas de texto arbitrarias o @ref{Text markup},
 encima o debajo de las notas utilizando una cadena @code{c^"texto"}.  Por omisión,
 estas indicaciones no influyen sobre el espaciado de las notas, pero si se utiliza la
-instrucción @code{\fatText}, las anchuras se tendrán en cuenta
+instrucción @code{\textLengthOn}, las anchuras se tendrán en cuenta
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4^"longtext" \fatText c4_"longlongtext" c4
+c4^"longtext" \textLengthOn c4_"longlongtext" c4
 @end lilypond
 
 @noindent
-Para evitar que el texto influya sobre el espaciado, utilice @code{\emptyText}.
+Para evitar que el texto influya sobre el espaciado, utilice @code{\textLengthOff}.
 
 También se pueden añadir a una nota textos con un formato más complejo utilizando la
 orden markup (marcado),
@@ -83,10 +83,10 @@ La instrucción @code{\markup} se describe con más detalle en
 
 @refcommands
 
-@funindex \fatText
-@code{\fatText},
-@funindex \emptyText
-@code{\emptyText}.
+@funindex \textLengthOn
+@code{\textLengthOn},
+@funindex \textLengthOff
+@code{\textLengthOff}.
 
 
 @commonprop
@@ -126,7 +126,7 @@ aplicarles ajustes finos.
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 d2 \glissando d'2
-\once \override Glissando #'dash-fraction = #0.5
+\once \override Glissando #'style = #'dashed-line
 d,2 \glissando d'2
 \override Glissando #'style = #'dotted-line
 d,2 \glissando d'2
@@ -280,7 +280,7 @@ c2\startTextSpan b c\stopTextSpan a
 Para imprimir una línea continua, use
 
 @example
-\override TextSpanner #'dash-fraction = #'()
+\override TextSpanner #'style = #'line
 @end example
 
 
@@ -582,7 +582,7 @@ Para dejar separadas las listas de palabras, podemos utilizar comillas @code{"}
 orden @code{\line}
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c4^\markup{ \center-align { on three lines } }
 c4^\markup{ \center-align { "all one line" } }
 c4^\markup{ \center-align { { on three lines } } }
@@ -608,7 +608,7 @@ tenemos que usar la propiedad de relleno #'padding o crear un punto de @q{anclaj
 dentro del elemento de marcado (generalmente con @code{\hspace #0}).
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c'4^\markup{ \raise #5 "not raised" }
 \once \override TextScript #'padding = #3
 c'4^\markup{ raised }
index 3f0b57adc58e45d4b47020f3faf07a0f216dbf0c..920d0d4eb87aea2cd533b72104184abbfc43619c 100644 (file)
@@ -1284,7 +1284,7 @@ La indicación @code{\version} deja registrado para qué versión de LilyPond se
 el archivo:  
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 @end example
 
 @noindent
@@ -1305,7 +1305,7 @@ principal; el bloque @code{\header} normalmente se sitúa por debajo del
 @ruser{Version number}.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 \header @{
   title = "Symphony"
   composer = "Me"
index 3d14b2e9c700fd73e305e273e0f4f64f4df8db10..76ddd8f33343be4343e80cb670a9bf3e1fe2a41a 100644 (file)
@@ -70,7 +70,7 @@ o corregir problemas:
 
 @itemize @bullet
 @item @strong{Incluya los números de @code{\version} en todos los archivos}.  Dese cuenta de que todas las
-plantillas contienen una cadena como @code{\version "2.11.23"}.  Le recomendamos
+plantillas contienen una cadena como @code{\version "2.11.38"}.  Le recomendamos
 mucho que siempre incluya la @code{\version}, sin importar cuán
 pequeño pueda ser su archivo.  Desde la experiencia personal podemos decirle que es bastante frustrante
 intentar recordar el número de versión de LilyPond que estaba usando hace unos años.
@@ -537,7 +537,7 @@ Yo utilizo media docena de archivos de
 
 @example
 %%%   global.ly
-\version "2.11.23"
+\version "2.11.38"
 #(ly:set-option 'point-and-click #f)
 \include "../iniciar/iniciar-definiciones.ly"
 \include "../iniciar/iniciar-disposicion.ly"
index 32ec87c76d113b5f76f5f2607cacda4b92d092ee..768671c422e4b22fc00c68e022e7c9697c17611d 100644 (file)
@@ -174,7 +174,7 @@ et @internalsref{KeySignature}.
 @lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
-  \fatText
+  \textLengthOn
   s^\markup {
     \column {
       "vaticana"
@@ -612,7 +612,7 @@ Voici les différences entre les styles :
 
 @lilypond[ragged-right,fragment,relative=1,quote]
 {
-  \fatText
+  \textLengthOn
 
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
index 053819e1490cc6bc17bb66d27885bdd58d89e80b..9b39c5648192704849c4857dee82ab6e06c7df66 100644 (file)
@@ -37,19 +37,19 @@ Les notes @q{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]
-  \setEasyHeads
+  \easyHeadsOn
   c'2 e'4 f' | g'1
 @end lilypond
 
-La commande @code{\setEasyHeads} remplace tous les réglages de l'objet
+La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
 @internalsref{NoteHead}.  L'impression doit Ãªtre de plus grande
 taille, afin que les lettres soient lisibles.  Voir Ã  ce propos
 @ref{Setting the staff size}.
 
 @refcommands
 
-@funindex \setEasyHeads
-@code{\setEasyHeads}
+@funindex \easyHeadsOn
+@code{\easyHeadsOn}
 
 
 @node Shape note heads
index 6ad387deb1d0b9ba582f2a73456162ff163464bb..9f65c9054e6f0f52ac61c47b9c813af88b3bce57 100644 (file)
@@ -702,7 +702,7 @@ pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
 @qq{notes et paroles}, pour la partie de soprano.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -732,7 +732,7 @@ Maintenant, on veut ajouter une partie de violoncelle.
 Jetons un coup d'oeil sur l'exemple avec les notes seules :
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -770,7 +770,7 @@ Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de Fa, comme
 le veut l'usage, et donnons-lui d'autres notes.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 musiqueSoprano = \relative c' @{
   \clef treble
   \key c \major
@@ -842,7 +842,7 @@ mettre un peu d'ordre dans l'indentation.  Voici le modèle pour
 soprano et violoncelle au complet :
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
index 10ead3bb201b7e8f2e66cc7418da94f3f0d02a2d..86e8e3475805f7aa3fb971263a89b1c793ee2ceb 100644 (file)
@@ -67,14 +67,14 @@ Vous pouvez placer arbitrairement des chaînes de caractères, ou
 @ref{Text markup} en langage LilyPond, au dessus ou au dessous des
 notes en employant la syntaxe @code{c^"text"}.  Par défaut, ces
 indications n'affecteront en rien l'espacement des notes, sauf Ã 
-utiliser la commande @code{\fatText}.
+utiliser la commande @code{\textLengthOn}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4^"longtext" \fatText c4_"longlongtext" c4
+c4^"longtext" \textLengthOn c4_"longlongtext" c4
 @end lilypond
 
 @noindent
-Pour revenir Ã  l'espacement par défaut, utilisez @code{\emptyText}.
+Pour revenir Ã  l'espacement par défaut, utilisez @code{\textLengthOff}.
 
 Des constructions plus Ã©laborées d'étiquette peuvent Ãªtre obtenues en
 ayant recours Ã  la commande @emph{markup} :
@@ -89,10 +89,10 @@ La commande @code{\markup} est décrite plus en détails dans la section
 
 @refcommands
 
-@funindex \fatText
-@code{\fatText},
-@funindex \emptyText
-@code{\emptyText}.
+@funindex \textLengthOn
+@code{\textLengthOn},
+@funindex \textLengthOff
+@code{\textLengthOff}.
 
 
 @commonprop
@@ -134,7 +134,7 @@ disponibles, ainsi que la manière de les personnaliser.
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 d2 \glissando d'2
-\once \override Glissando #'dash-fraction = #0.5
+\once \override Glissando #'style = #'dashed-line
 d,2 \glissando d'2
 \override Glissando #'style = #'dotted-line
 d,2 \glissando d'2
@@ -292,7 +292,7 @@ c2\startTextSpan b c\stopTextSpan a
 Pour obtenir une ligne pleine, utilisez
 
 @example
-\override TextSpanner #'dash-fraction = #'()
+\override TextSpanner #'style = #'line
 @end example
 
 
@@ -608,7 +608,7 @@ L'utilisation des @code{"} ou de la commande @code{\line} permet de
 différencier les listes de mots.
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c4^\markup{ \center-align { on three lines } }
 c4^\markup{ \center-align { "all one line" } }
 c4^\markup{ \center-align { { on three lines } } }
@@ -636,7 +636,7 @@ déplacer une Ã©tiquette, il vous faudra utiliser la propriété
 de l'étiquette (généralement avec @code{\hspace #0}).
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c'4^\markup{ \raise #5 "not raised" }
 \once \override TextScript #'padding = #3
 c'4^\markup{ raised }
index a10ba2edc30908a642cb567040b2063a1bf09325..46233483a3694bda957248eac12b6cc1092018d4 100644 (file)
@@ -1373,7 +1373,7 @@ La déclaration @code{\version} stipule le numéro de la version de
 LilyPond pour laquelle le fichier a Ã©té Ã©crit,
 
 @example
-\version "2.11.32"
+\version "2.11.38"
 @end example
 
 @noindent
@@ -1395,7 +1395,7 @@ qui existe indépendamment des expressions musicales principales.  Le
 bloc @code{\header} est habituellement placé en début de fichier.
 
 @example
-\version "2.11.32"
+\version "2.11.38"
 \header @{
   title = "Symphonie"
   composer = "Moi"
index 615bc3d63e785aa401f04561e6cec5fe0fa3907c..1625af305e412cadffbae072bce334a100304b04 100644 (file)
@@ -539,7 +539,7 @@ chaque fichier de musique par @code{\include "../global.ly"} qui contient :
 
 @example
 %%%   global.ly
-\version "2.11.32"
+\version "2.11.38"
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-mise-en-page.ly"
index b5f0216e7d5fa16257c86ee5b08a791ab9b93eb7..474349b439e12ff7bace3209d9147a323e95ed78 100644 (file)
@@ -40,7 +40,7 @@ See user manual, \NAME\
 
 @ifhtml
 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
-the @uref{../,LilyPond Documentation} 
+the @uref{../,LilyPond Documentation} .
 @end ifhtml
 
 
@@ -65,6 +65,14 @@ which scares away people.
 
 @end ignore
 
+@item
+@code{\setEasyHeads} has been renamed to @code{\easyHeadsOn}, and a new
+command @code{\easyHeadsOff} reverts note heads to normal heads.
+
+@item
+@code{\fatText} and @code{\emptyText} have been renamed to
+@code{\textLengthOn} and @code{\textLengthOff}, respectively.
+
 @item
 Underlining is now possible with the @code{\underline} markup command.
 
index dfa4342c9ecffeb17db89991f15369ac5f278e80..a5b0b864b536cc70c6b3519c2839a68db7c7cee8 100644 (file)
@@ -21,12 +21,17 @@ HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%-big-page.html)\
 
 # todo: add latex.
 PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
+# this prevents aux files from being reused for translated docs
+TEXI2PDF_FLAGS = --tidy
 
 INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
 INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
 
+ifeq ($(out),www)
+INFO_IMAGES_DIR = lilypond
+endif
+
 STEPMAKE_TEMPLATES=tex texinfo omf documentation
-#TEXI2DVI_FLAGS = -E
 OMF_FILES += $(outdir)/lilypond-internals.html.omf
 
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
@@ -48,13 +53,27 @@ xml: $(outdir)/lilypond/lilypond.xml $(outdir)/lilypond-internals/lilypond-inter
 ifeq ($(out),www)
 
 # This builds all .info targets with images, in out-www.
-# Viewawble with a recent Emacs, doing: M-x info out-www/lilypond.info
+# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
 
 # Cancel the special, non-image info generation rule that skips images:
 $(outdir)/%.info: $(outdir)/%.nexi
 
+# "makeinfo --info" MUST be able to read PNGs from CWD for info images
+# to work, hence lilypond/ -> $(outdir)/ symlink.
+# $(outdir)/lilypond/*.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.
+$(outdir)/%.info: lilypond
+lilypond: $(OUT_PNG_IMAGES)
+       rm -f lilypond
+       ln -s $(outdir) lilypond
+       mkdir -p $(outdir)/lilypond
+       find $(outdir)/lilypond/ -name '*'.png | xargs rm -f
+       (cd $(outdir)/lilypond/ ; ln -sf ../*.png . )
+
 local-install-info: info
-       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
 ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
 ## Can not have absolute symlinks because some binary packages build schemes
 ## install files in nonstandard root.  Best we can do is to notify the
@@ -67,25 +86,27 @@ ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
        @echo
        @echo "For images in the INFO docs to work, do: "
        @echo
-       @echo "    (cd $(package_infodir) && ln -sf ../../doc/lilypond/Documentation/user/*png .)"
+       @echo "    (cd $(infodir) && ln -sfT ../doc/lilypond/html/Documentation/user lilypond)"
        @echo "or add something like that to the postinstall script."
        @echo
 else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
+       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
+       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
        install-info --info-dir=$(infodir) $(outdir)/lilypond.info
-       (cd $(package_infodir) && ln -sf $(webdir)/Documentation/user/*png .)
+       cd $(infodir) && ln -sfT $(webdir)/Documentation/user lilypond
 endif # installing directly into standard /usr/...
 
 local-uninstall-WWW:
-       rm -f $(package_infodir)/*.png
+       rm -f $(infodir)/lilypond
 
 else # out!=www
 
 # Cancel the default info generation rule that generates images:
-$(outdir)/%.info: $(outdir)/%.texi
+$(outdir)/%.info: $(outdir)/%.texi
 
 local-install-info: info
        -$(INSTALL) -d $(DESTDIR)$(package_infodir)
@@ -106,10 +127,12 @@ ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
        @echo "and read the extra instructions."
        @echo
 else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
+       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
+       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
        install-info --info-dir=$(infodir) $(outdir)/lilypond.info
        @echo
        @echo "***************************************************************"
@@ -128,12 +151,13 @@ local-uninstall-WWW: local-uninstall-info
 
 default:
 
+local-clean:
+       rm -f lilypond
 
 local-help: extra-local-help
 
 extra-local-help:
        @echo -e "\
-  dvi         update dvi documents\n\
   info        update info pages\n\
   ps          update PostScript documents\n\
   xml        update Docbook xml documentation\n\
@@ -145,82 +169,20 @@ $(outdir)/lilypond.texi: $(outdir)/lilypond-internals.texi
 $(outdir)/lilypond.nexi: $(outdir)/lilypond-internals.texi
 
 #
-# The split user manual
+# Split manuals in HTML
 #
-$(outdir)/lilypond/index.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-# we /might/ switch to texi2html if it can be fixed:
-#      echo "*************************************"
-#      echo $<
-#      cd $(outdir)
-#      texi2html --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css $<
-       find $(outdir)/lilypond/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
-       (cd $(outdir)/lilypond/ ; ln -sf ../*.png ../*.ly . )
+$(outdir)/lilypond/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/lilypond-program/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/lilypond-learning/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/music-glossary/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
 
-#
-# One big page user manual
-#
-$(outdir)/lilypond-big-page.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
 
 #
-# The split program usage
+# Manuals in one big HTML page
 #
-$(outdir)/lilypond-program/index.html: $(outdir)/lilypond-program.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond-program --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-       find $(outdir)/lilypond-program/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
-       (cd $(outdir)/lilypond-program/ ; ln -sf ../*.png ../*.ly . )
-
-#
-# The Learning Manual
-#
-$(outdir)/lilypond-learning/index.html: $(outdir)/lilypond-learning.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond-learning --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-       find $(outdir)/lilypond-learning/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
-       (cd $(outdir)/lilypond-learning/ ; ln -sf ../*.png ../*.ly . )
-
-
-#
-# One big page program usage
-#
-$(outdir)/lilypond-program-big-page.html: $(outdir)/lilypond-program.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-#
-# One big page learning manual
-#
-$(outdir)/lilypond-learning-big-page.html: $(outdir)/lilypond-learning.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-
-#
-# The split internals reference
-#
-$(outdir)/lilypond-internals/index.html: $(outdir)/lilypond-internals.texi
-       mkdir -p $(dir $@)
-       $(MAKEINFO) --output=$(outdir)/lilypond-internals --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-
-#
-# One big page internals reference
-#
-$(outdir)/lilypond-internals-big-page.html: $(outdir)/lilypond-internals.texi
-       $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-#
-# The split glossary
-#
-$(outdir)/music-glossary/index.html: $(outdir)/music-glossary.texi
-       mkdir -p $(dir $@)
-       $(MAKEINFO) --output=$(outdir)/music-glossary --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-       find $(outdir)/music-glossary/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
-       (cd $(outdir)/music-glossary/ ; ln -sf ../*.png ../*.ly . )
+$(outdir)/lilypond-big-page.html: $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-program-big-page.html: $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-learning-big-page.html: $(OUT_PNG_IMAGES)
 
 $(outdir)/lilypond.xml: $(outdir)/lilypond.texi
        mkdir -p $(dir $@)
@@ -230,11 +192,8 @@ $(outdir)/lilypond-internals/lilypond-internals.xml: $(outdir)/lilypond-internal
        mkdir -p $(dir $@)
        $(MAKEINFO) --output=$(outdir)/lilypond-internals --docbook $<
 
-$(outdir)/lilypond.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
-
-$(outdir)/lilypond-program.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
-
-$(outdir)/lilypond-learning.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
+$(outdir)/lilypond.pdf $(outdir)/lilypond-program.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-learning.pdf $(outdir)/music-glossary.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
 
 $(outdir)/%.png: %.png
        convert -depth 8 -geometry 50x50% $< $@
@@ -263,32 +222,13 @@ $(outdir)/source:
        @rm -f $(@)
        ln -sf ../../ $(@)
 
-$(outdir)/lilypond/source:
-       @rm -f $(@)
-       mkdir -p $(outdir)/lilypond
-       ln -sf ../../../ $(@)
-
-$(outdir)/music-glossary/source:
-       @rm -f $(@)
-       mkdir -p $(outdir)/music-glossary
-       ln -sf ../../../ $(@)
-
-$(outdir)/lilypond-program/source:
+$(outdir)/%/source:
        @rm -f $(@)
-       mkdir -p $(outdir)/lilypond-program
-       ln -sf ../../../ $(@)
-
-$(outdir)/lilypond-learning/source:
-       @rm -f $(@)
-       mkdir -p $(outdir)/lilypond-learning
+       mkdir -p $(dir $@)
        ln -sf ../../../ $(@)
 
 local-WWW: $(HTML_FILES) $(DEEP_HTML_FILES)\
- $(datafiles) $(PDF_FILES) $(source-links) info info-dir
-
-info-dir:
-       $(SHELL) $(buildscript-dir)/install-info-html.sh --dir=$(outdir) lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
-
+ $(datafiles) $(PDF_FILES) $(source-links) info
 
 $(outdir)/%.bib: %.bib
        ln -f $< $@
@@ -298,11 +238,9 @@ $(outdir)/%.bib: %.bib
 $(top-build-dir)/mf/$(outconfbase)/feta16list.ly:
        $(MAKE) -C $(top-src-dir)/mf
 
-$(outdir)/lilypond.texi: $(ITELY_FILES) $(ITEXI_FILES)
-$(outdir)/lilypond.nexi: $(ITELY_FILES) $(ITEXI_FILES)
+$(outdir)/lilypond.texi $(outdir)/lilypond-program.texi $(outdir)/lilypond-learning.texi: $(ITELY_FILES) $(ITEXI_FILES)
+$(outdir)/lilypond.nexi $(outdir)/lilypond-program.nexi $(outdir)/lilypond-learning.nexi: $(ITELY_FILES) $(ITEXI_FILES)
 
-# Prevent building music-glossary.texi from default target
-$(outdir)/music-glossary.nexi:
 
 # Rules for the automatically generated documentation
 
index e38d7e86c5bd136e051c87c19473ea79bff194c8..6b39a974a348dcfb67b4ca6d2bc0b1cb5019015d 100644 (file)
@@ -13,6 +13,8 @@ convert-ly -e --from=... --to=... --no-version *.itely
 % to find the current version number,
 grep "version \"" tutorial.itely
 
+Please don't forget updating translated docs (in LANGS/user) too!
+
 %  (nobody ever remembers to update this file, so I've stopped
 %  trying to record it here)
 
index 21178ff6e9ea038652bb8070bbd02cd1fc4fa5e8..ab34102bc4cec843d8bb7a4a4906a2481920f359 100644 (file)
@@ -107,7 +107,7 @@ up during the baroque period.
 @end menu
 
 @node Ancient note heads
-@unnumberedsubsubsec Ancient note heads
+@subsubsection Ancient note heads
 
 @cindex note heads, ancient
 
@@ -149,7 +149,7 @@ engravers work.
 
 
 @node Ancient accidentals
-@unnumberedsubsubsec Ancient accidentals
+@subsubsection Ancient accidentals
 
 @cindex accidentals
 
@@ -161,7 +161,7 @@ ancient accidentals.
 @lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
-  \fatText
+  \textLengthOn
   s^\markup {
     \column {
       "vaticana"
@@ -200,7 +200,7 @@ ancient accidentals.
 As shown, not all accidentals are supported by each style.  When
 trying to access an unsupported accidental, LilyPond will switch to a
 different style, as demonstrated in
-@lsr{ancient,ancient-accidentals.ly}.
+@c @lsr{ancient,ancient-accidentals.ly}.
 
 Similarly to local accidentals, the style of the key signature can be
 controlled by the @code{glyph-name-alist} property of the
@@ -215,10 +215,10 @@ the use of key signatures.
 
 Internals Reference: @internalsref{KeySignature}.
 
-Examples: @lsrdir{ancient}
+Examples: @c @lsrdir{ancient}
 
 @node Ancient rests
-@unnumberedsubsubsec Ancient rests
+@subsubsection Ancient rests
 
 @cindex rests, ancient
 
@@ -242,7 +242,7 @@ r\longa r\breve r1 r2 r4 r8 r16
 
 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 @lsr{pitches,rests} for a chart of all rests.
+taken.  See @c @lsr{pitches,rests} for a chart of all rests.
 
 There are no rests in Gregorian Chant notation; instead, it uses
 @ref{Divisiones}.
@@ -254,7 +254,7 @@ rests.
 
 
 @node Ancient clefs
-@unnumberedsubsubsec Ancient clefs
+@subsubsection Ancient clefs
 
 @cindex clefs
 
@@ -493,7 +493,7 @@ The mensural g clef is mapped to the Petrucci g clef.
 
 
 @node Ancient flags
-@unnumberedsubsubsec Ancient flags
+@subsubsection Ancient flags
 
 @cindex flags
 
@@ -531,7 +531,7 @@ features of classical notation (which however are typically out of
 scope for mensural notation).
 
 @node Ancient time signatures
-@unnumberedsubsubsec Ancient time signatures
+@subsubsection Ancient time signatures
 
 @cindex time signatures
 
@@ -598,7 +598,7 @@ The following examples show the differences in style,
 
 @lilypond[ragged-right,fragment,relative=1,quote]
 {
-  \fatText
+  \textLengthOn
 
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
@@ -658,7 +658,7 @@ addressable with @code{\time}.  Use a @code{\markup} instead
 
 
 @node Ancient articulations
-@unnumberedsubsubsec Ancient articulations
+@subsubsection Ancient articulations
 
 @cindex articulations
 
@@ -692,7 +692,7 @@ The episem line is not displayed in many cases.  If it is displayed,
 the right end of the episem line is often too far to the right.
 
 @node Custodes
-@unnumberedsubsubsec Custodes
+@subsubsection Custodes
 
 @cindex custos
 @cindex custodes
@@ -768,11 +768,11 @@ supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
 Internals Reference: @internalsref{Custos}.
 
 Examples:
-@lsr{ancient,custodes@/.ly}.
+@c @lsr{ancient,custodes@/.ly}.
 
 
 @node Divisiones
-@unnumberedsubsubsec Divisiones
+@subsubsection Divisiones
 
 @cindex divisio
 @cindex divisiones
@@ -819,11 +819,11 @@ Notation Reference: @ref{Breath marks}.
 
 Internals Reference: @internalsref{BreathingSign}.
 
-Examples: @lsr{expressive,breathing-sign.ly}.
+Examples: @c @lsr{expressive,breathing-sign.ly}.
 
 
 @node Ligatures
-@unnumberedsubsubsec Ligatures
+@subsubsection Ligatures
 
 @cindex Ligatures
 
@@ -881,7 +881,7 @@ with the same effect and is believed to be stable.
 @end menu
 
 @node White mensural ligatures
-@unnumberedsubsubsec White mensural ligatures
+@subsubsection White mensural ligatures
 
 @cindex Mensural ligatures
 @cindex White mensural ligatures
@@ -970,7 +970,7 @@ to the following
 Horizontal spacing is poor.
 
 @node Gregorian square neumes ligatures
-@unnumberedsubsubsec Gregorian square neumes ligatures
+@subsubsection Gregorian square neumes ligatures
 
 @cindex Square neumes ligatures
 @cindex Gregorian square neumes ligatures
@@ -1932,7 +1932,7 @@ with head prefixes in arbitrary order.
 
 
 @node Gregorian Chant contexts
-@unnumberedsubsubsec Gregorian Chant contexts
+@subsubsection Gregorian Chant contexts
 
 @cindex VaticanaVoiceContext
 @cindex VaticanaStaffContext
@@ -1966,7 +1966,7 @@ the following excerpt demonstrates
 
 
 @node Mensural contexts
-@unnumberedsubsubsec Mensural contexts
+@subsubsection Mensural contexts
 
 @cindex MensuralVoiceContext
 @cindex MensuralStaffContext
index 7a65454201fc220b77a46d40f8f58d17277291bc..6239ab9fc174f19da197265b582ac074c7e35459 100644 (file)
@@ -25,7 +25,7 @@ This section includes extra information for writing for bagpipes.
 @end menu
 
 @node Bagpipe definitions
-@unnumberedsubsubsec Bagpipe definitions
+@subsubsection Bagpipe definitions
 
 LilyPond contains special definitions for music for the Scottish
 highland bagpipe; to use them, add
@@ -66,7 +66,7 @@ music.
 
 
 @node Bagpipe example
-@unnumberedsubsubsec Bagpipe example
+@subsubsection Bagpipe example
 
 This is what the well known tune Amazing Grace looks like in bagpipe
 notation.
index 9e379f688a1f99ffa63426ef77033c8579ef62e2..d69c86d1c7a1675c21da22fc1996664906820f4a 100644 (file)
@@ -118,7 +118,7 @@ example: a @code{Staff} can contain many @code{Voice}s, and a
 @code{Score} can contain many @code{Staff} contexts.
 
 @quotation
-@image{context-example,5cm,,}
+@sourceimage{context-example,5cm,,}
 @end quotation
 
 Each context has the responsibility for enforcing some notation rules,
index 4a868c09427944640b0ed384ff4d9850e3a9d149..84e8262e1a32717923c4664ac05242de27816ff9 100644 (file)
@@ -29,7 +29,7 @@ Intro text.
 
 @c really awkward; I just shoved this in here from the tutorial.
 @node A lead sheet
-@unnumberedsubsubsec A lead sheet
+@subsubsection A lead sheet
 
 @cindex Lead sheets
 @cindex chords
@@ -85,7 +85,7 @@ found in @ruser{Chords}.
 
 
 @node Introducing chord names
-@unnumberedsubsubsec Introducing chord names
+@subsubsection Introducing chord names
 @cindex chord names
 
 LilyPond has support for printing chord names.  Chords may be entered
@@ -121,7 +121,7 @@ Note that the duration of chords must be specified outside the
 
 
 @node Chords mode
-@unnumberedsubsubsec Chords mode
+@subsubsection Chords mode
 @cindex Chords mode
 
 In chord mode sets of pitches (chords) are entered with normal note
@@ -257,7 +257,7 @@ last
 
 
 @node Printing chord names
-@unnumberedsubsubsec Printing chord names
+@subsubsection Printing chord names
 
 @cindex printing chord names
 @cindex chord names
@@ -345,7 +345,7 @@ adds the new exceptions to the default ones, which are defined in
 @file{ly/@/chord@/-modifier@/-init@/.ly}.
 
 For an example of tuning this property, see also
-@lsr{chords,chord@/-name@/-exceptions@/.ly}
+@c @lsr{chords,chord@/-name@/-exceptions@/.ly}
 @cindex exceptions, chord names.
 
 
@@ -354,7 +354,7 @@ For an example of tuning this property, see also
 This property contains the markup object used for the 7th step, when
 it is major.  Predefined options are @code{whiteTriangleMarkup} and
 @code{blackTriangleMarkup}.  See
-@lsr{chords,chord@/-name@/-major7@/.ly} for an example.
+@c @lsr{chords,chord@/-name@/-major7@/.ly} for an example.
 
 @funindex chordNameSeparator
 @item chordNameSeparator
@@ -404,7 +404,7 @@ There are also two other chord name schemes implemented: an alternate
 Jazz chord notation, and a systematic scheme called Banter chords.  The
 alternate Jazz notation is also shown on the chart in @ref{Chord name
 chart}.  Turning on these styles is demonstrated in
-@lsr{chords,chord-names-jazz.ly}.
+@c @lsr{chords,chord-names-jazz.ly}.
 
 @cindex Banter
 @cindex jazz chords
@@ -428,7 +428,7 @@ chart}.  Turning on these styles is demonstrated in
 @seealso
 
 Examples:
-@lsrdir{chords}
+@c @lsrdir{chords}
 
 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
 @file{scm/@/chord@/-entry@/.scm}.
diff --git a/Documentation/user/editorial.itely b/Documentation/user/editorial.itely
new file mode 100644 (file)
index 0000000..2f94c9f
--- /dev/null
@@ -0,0 +1,536 @@
+@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
+
+@node Editorial annotations
+@section Editorial annotations
+
+@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+{editorial-headword.ly}
+
+@menu
+* Inside the staff::            
+* Outside the staff::           
+@end menu
+
+
+@node Inside the staff
+@subsection Inside the staff
+
+
+@menu
+* Selecting notation font size::  
+* Fingering instructions::      
+* Hidden notes::                
+* Coloring objects::            
+* Parentheses::                 
+* Stems::                       
+@end menu
+
+@node Selecting notation font size
+@subsubsection Selecting notation font size
+
+@cindex font size
+@cindex font size, selecting
+@cindex selecting font size
+
+The easiest method of setting the font size of any context is by
+setting the @code{fontSize} property.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+It does not change the size of variable symbols, such as beams or
+slurs.
+
+@cindex font size scaling
+
+Internally, the @code{fontSize} context property will cause the
+@code{font-size} property to be set in all layout objects.  The
+value of @code{font-size} is a number indicating the size relative
+to the standard size for the current staff height.  Each step up
+is an increase of approximately 12% of the font size.  Six steps
+is exactly a factor two.  The Scheme function @code{magstep}
+converts a @code{font-size} number to a scaling factor.  The
+@code{font-size} property can also be set directly, so that only
+certain layout objects are affected.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+@cindex standard font size
+@cindex font size, standard
+
+Font size changes are achieved by scaling the design size that is
+closest to the desired size.  The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height.
+For a 20pt staff, a 10pt font is selected.
+
+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.
+
+@refcommands
+
+The following commands set @code{fontSize} for the current voice:
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+Internals Reference: @internalsref{font-interface}.
+
+
+@node Fingering instructions
+@subsubsection Fingering instructions
+
+@cindex fingering
+@cindex finger change
+
+Fingering instructions can be entered using
+
+@example
+@var{note}-@var{digit}
+@end example
+
+For finger changes, use markup texts
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+c4-1 c-2 c-3 c-4
+c^\markup { \finger "2 - 3" }
+@end lilypond
+
+@cindex thumb-script
+
+
+You can use the thumb-script to indicate that a note should be
+played with the thumb (e.g., in cello music)
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+<a_\thumb a'-3>8 <b_\thumb b'-3>
+@end lilypond
+
+@cindex fingering chords
+@cindex chords, fingering
+
+Fingerings for chords can also be added to individual notes of the
+chord by adding them after the pitches
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+< c-1 e-2 g-3 b-5 >4
+@end lilypond
+
+
+@commonprop
+
+You may exercise greater control over fingering chords by setting
+@code{fingeringOrientations}
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+\set fingeringOrientations = #'(left down)
+<c-1 es-2 g-4 bes-5 > 4
+\set fingeringOrientations = #'(up right down)
+<c-1 es-2 g-4 bes-5 > 4
+@end lilypond
+
+Using this feature, it is also possible to put fingering
+instructions very close to note heads in monophonic music,
+
+@lilypond[verbatim,ragged-right,quote,fragment]
+\set fingeringOrientations = #'(right)
+<es'-2>4
+@end lilypond
+
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+Internals Reference: @internalsref{Fingering}.
+
+
+@node Hidden notes
+@subsubsection Hidden notes
+
+@cindex Hidden notes
+@cindex Invisible notes
+@cindex Transparent notes
+
+@funindex \hideNotes
+@funindex \unHideNotes
+
+Hidden (or invisible or transparent) notes can be useful in
+preparing theory or composition exercises.
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+c4 d4
+\hideNotes
+e4 f4
+\unHideNotes
+g4 a
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+
+@node Coloring objects
+@subsubsection Coloring objects
+
+@cindex colored objects
+@cindex colors
+@cindex coloring objects
+@cindex colored notes
+@cindex coloring notes
+@cindex notes, colored
+
+Individual objects may be assigned colors.  You may use the color
+names listed in the @ref{List of colors}.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\override NoteHead #'color = #red
+c4 c
+\override NoteHead #'color = #(x11-color 'LimeGreen)
+d
+\override Stem #'color = #blue
+e
+@end lilypond
+
+@cindex x11-color
+
+The full range of colors defined for X11 can be accessed by using
+the Scheme function x11-color.  The function takes one argument
+that can be a symbol
+
+@example
+\override Beam #'color = #(x11-color 'MediumTurquoise)
+@end example
+
+or a string
+
+@example
+\override Beam #'color = #(x11-color "MediumTurquoise")
+@end example
+
+The first form is quicker to 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
+
+@example
+\override Beam #'color = #(x11-color "medium turquoise")
+@end example
+
+If x11-color cannot make sense of the parameter then the color
+returned defaults to black.  It should be obvious from the final
+score that something is wrong.
+
+This example illustrates the use of x11-color.  Notice that the
+stem color remains black after being set to (x11-color 'Boggle),
+which is deliberate nonsense.
+
+@lilypond[quote,ragged-right,verbatim]
+{
+  \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+  \set Staff.instrumentName = \markup {
+    \with-color #(x11-color 'navy) "Clarinet"
+  }
+  \time 2/4
+  gis''8 a''
+  \override Beam #'color = #(x11-color "medium turquoise")
+  gis'' a''
+  \override NoteHead #'color = #(x11-color "LimeGreen")
+  gis'' a''
+  \override Stem #'color = #(x11-color 'Boggle)
+  gis'' a''
+}
+@end lilypond
+
+
+TODO
+you can get exact RGB colors by specifying
+
+% black
+\override Stem #'color = #(rgb-color 0 0 0)
+% white
+\override Stem #'color = #(rgb-color 1 1 1)
+% dark blue
+\override Stem #'color = #(rgb-color 0 0 0.5) 
+
+
+@seealso
+
+Notation Reference: @ref{List of colors}, @ref{Objects connected to
+the input}.
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+@refbugs
+Not all x11 colors are distinguishable in a web browser.  For web
+use normal colors are recommended.
+
+An x11 color is not necessarily exactly the same shade as a
+similarly named normal color.
+
+Notes in a chord cannot be colored with @code{\override}; use
+@code{\tweak} instead.  See @ref{Objects connected to the input},
+for details.
+
+
+@node Parentheses
+@subsubsection Parentheses
+
+@cindex ghost notes
+@cindex notes, ghost
+@cindex notes, parenthesized
+@cindex parentheses
+
+Objects may be parenthesized by prefixing @code{\parenthesize} to
+the music event,
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+  c
+  \parenthesize d
+  g
+>4-\parenthesize -.
+@end lilypond
+
+This only functions inside chords, to parenthesize a single note it 
+must be enclosed with @code{<>} as if it is a chord.
+
+@example
+< \parenthesize NOTE>
+@end example
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+
+@node Stems
+@subsubsection Stems
+
+@cindex stem
+
+Whenever a note is found, a @code{Stem} object is created
+automatically.  For whole notes and rests, they are also created but
+made invisible.
+
+@refcommands
+
+@funindex \stemUp
+@code{\stemUp},
+@funindex \stemDown
+@code{\stemDown},
+@funindex \stemNeutral
+@code{\stemNeutral}.
+
+
+@commonprop
+
+@cindex stem, direction
+@cindex stem, up
+@cindex stem, down
+@cindex stem, neutral
+
+To change the direction of stems on the center line of the staff, use
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+a4 b c b
+\override Stem #'neutral-direction = #up
+a4 b c b
+\override Stem #'neutral-direction = #down
+a4 b c b
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+
+@node Outside the staff
+@subsection Outside the staff
+
+
+@menu
+* Balloon help::                
+* Grid lines::                  
+* Blank music sheet::           
+* Analysis brackets::           
+@end menu
+
+@node Balloon help
+@subsubsection Balloon help
+
+Elements of notation can be marked and named with the help of a
+square balloon.  The primary purpose of this feature is to explain
+notation.
+
+The following example demonstrates its use.
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\new Voice \with { \consists "Balloon_engraver" }
+{
+  \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
+  <f-\balloonText #'(-2 . -2) \markup { "I'm a note head" }  >8
+}
+@end lilypond
+
+@noindent
+There are two music functions, @code{balloonGrobText} and
+@code{balloonText}; the former takes the name of the grob to adorn,
+while the latter may be used as an articulation on a note.  The other
+arguments are the offset and the text of the label.
+
+@cindex balloon
+@cindex notation, explaining
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+Internals Reference: @internalsref{text-balloon-interface}.
+
+
+@node Grid lines
+@subsubsection Grid lines
+
+Vertical lines can be drawn between staves synchronized with the
+notes.
+
+@lilypond[ragged-right,quote,verbatim]
+\layout {
+  \context {
+    \Staff
+    \consists "Grid_point_engraver" %% sets of grid
+    gridInterval = #(ly:make-moment 1 4)
+  }
+}
+
+\new Score \with {
+  \consists "Grid_line_span_engraver"
+  %% centers grid lines  horizontally below note heads
+  \override NoteColumn #'X-offset = #-0.5
+}
+
+\new ChoirStaff <<
+  \new Staff {
+    \stemUp
+    \relative {
+      c'4. d8 e8 f g4
+    }
+  }
+  \new Staff {
+    %% centers grid lines  vertically
+    \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+    \stemDown
+    \clef bass
+    \relative c {
+      c4  g'  f  e
+    }
+  }
+>>
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+
+@node Blank music sheet
+@subsubsection Blank music sheet
+
+@cindex sheet music, empty
+@cindex staves, blank sheet
+@cindex blank staff paper
+@cindex staff paper, blank
+
+A blank music sheet can be produced also by using invisible notes,
+and removing @code{Bar_number_engraver}.
+
+
+@lilypond[quote,verbatim]
+\layout{ indent = #0 }
+emptymusic = {
+  \repeat unfold 2 % Change this for more lines.
+  { s1\break }
+  \bar "|."
+}
+\new Score \with {
+  \override TimeSignature #'transparent = ##t
+% un-comment this line if desired
+%  \override Clef #'transparent = ##t
+  defaultBarType = #""
+  \remove Bar_number_engraver
+} <<
+
+% modify these to get the staves you want
+  \new Staff \emptymusic
+  \new TabStaff \emptymusic
+>>
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+
+@node Analysis brackets
+@subsubsection Analysis brackets
+
+@cindex brackets
+@cindex phrasing brackets
+@cindex musicological analysis
+@cindex note grouping bracket
+
+Brackets are used in musical analysis to indicate structure in musical
+pieces.  LilyPond supports a simple form of nested horizontal
+brackets.  To use this, add the @code{Horizontal_bracket_engraver} to
+the @code{Staff} context.  A bracket is started with
+@code{\startGroup} and closed with @code{\stopGroup}.
+
+@lilypond[quote,ragged-right,verbatim]
+\score {
+  \relative c'' {
+    c4\startGroup\startGroup
+    c4\stopGroup
+    c4\startGroup
+    c4\stopGroup\stopGroup
+  }
+  \layout {
+    \context {
+      \Staff \consists "Horizontal_bracket_engraver"
+}}}
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Editorial,Editorial-annotations}.
+
+Internals Reference: @internalsref{HorizontalBracket},
+@internalsref{Horizontal_bracket_engraver}, @internalsref{Staff}.
+
+
diff --git a/Documentation/user/educational.itely b/Documentation/user/educational.itely
deleted file mode 100644 (file)
index ad18dd0..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-@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
-
-@node Editorial annotations
-@section Editorial annotations
-
-@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
-{editorial-headword.ly}
-
-@menu
-* Inside the staff::            
-* Outside the staff::           
-@end menu
-
-
-@node Inside the staff
-@subsection Inside the staff
-
-
-@menu
-* Selecting notation font size::  
-* Fingering instructions::      
-* Hidden notes::                
-* Coloring objects::            
-* Parentheses::                 
-* Stems::                       
-@end menu
-
-@node Selecting notation font size
-@unnumberedsubsubsec Selecting notation font size
-
-The easiest method of setting the font size of any context is by
-setting the @code{fontSize} property.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\set fontSize = #-4
-c f
-\set fontSize = #3
-g
-@end lilypond
-
-@noindent
-It does not change the size of variable symbols, such as beams or
-slurs.
-
-Internally, the @code{fontSize} context property will cause the
-@code{font-size} property to be set in all layout objects.  The
-value of @code{font-size} is a number indicating the size relative
-to the standard size for the current staff height.  Each step up
-is an increase of approximately 12% of the font size.  Six steps
-is exactly a factor two.  The Scheme function @code{magstep}
-converts a @code{font-size} number to a scaling factor.  The
-@code{font-size} property can also be set directly, so that only
-certain layout objects are affected.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\override NoteHead #'font-size = #-4
-c f
-\override NoteHead #'font-size = #3
-g
-@end lilypond
-
-Font size changes are achieved by scaling the design size that is
-closest to the desired size.  The standard font size (for
-@code{font-size} equals 0), depends on the standard staff height.
-For a 20pt staff, a 10pt font is selected.
-
-The @code{font-size} property can only be set on layout objects
-that use fonts.  These are the ones supporting the
-@internalsref{font-interface} layout interface.
-
-@refcommands
-
-The following commands set @code{fontSize} for the current voice:
-
-@funindex \tiny
-@code{\tiny},
-@funindex \small
-@code{\small},
-@funindex \normalsize
-@code{\normalsize}.
-
-
-@node Fingering instructions
-@unnumberedsubsubsec Fingering instructions
-
-@cindex fingering
-@cindex finger change
-
-Fingering instructions can be entered using
-
-@example
-@var{note}-@var{digit}
-@end example
-
-For finger changes, use markup texts
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-c4-1 c-2 c-3 c-4
-c^\markup { \finger "2 - 3" }
-@end lilypond
-
-You can use the thumb-script to indicate that a note should be
-played with the thumb (e.g., in cello music)
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-<a_\thumb a'-3>8 <b_\thumb b'-3>
-@end lilypond
-
-Fingerings for chords can also be added to individual notes of the
-chord by adding them after the pitches
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-< c-1 e-2 g-3 b-5 >4
-@end lilypond
-
-
-@commonprop
-
-You may exercise greater control over fingering chords by setting
-@code{fingeringOrientations}
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-\set fingeringOrientations = #'(left down)
-<c-1 es-2 g-4 bes-5 > 4
-\set fingeringOrientations = #'(up right down)
-<c-1 es-2 g-4 bes-5 > 4
-@end lilypond
-
-Using this feature, it is also possible to put fingering
-instructions very close to note heads in monophonic music,
-
-@lilypond[verbatim,ragged-right,quote,fragment]
-\set fingeringOrientations = #'(right)
-<es'-2>4
-@end lilypond
-
-
-@seealso
-
-Internals Reference: @internalsref{Fingering}.
-
-Examples: @lsr{expressive,fingering-chords.ly}
-
-
-
-@node Hidden notes
-@unnumberedsubsubsec Hidden notes
-
-@cindex Hidden notes
-@cindex Invisible notes
-@cindex Transparent notes
-
-@funindex \hideNotes
-@funindex \unHideNotes
-
-Hidden (or invisible or transparent) notes can be useful in
-preparing theory or composition exercises.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-c4 d4
-\hideNotes
-e4 f4
-\unHideNotes
-g4 a
-@end lilypond
-
-
-@node Coloring objects
-@unnumberedsubsubsec Coloring objects
-
-Individual objects may be assigned colors.  You may use the color
-names listed in the @ref{List of colors}.
-
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\override NoteHead #'color = #red
-c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
-d
-\override Stem #'color = #blue
-e
-@end lilypond
-
-The full range of colors defined for X11 can be accessed by using
-the Scheme function x11-color.  The function takes one argument
-that can be a symbol
-
-@example
-\override Beam #'color = #(x11-color 'MediumTurquoise)
-@end example
-
-or a string
-
-@example
-\override Beam #'color = #(x11-color "MediumTurquoise")
-@end example
-
-The first form is quicker to 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
-
-@example
-\override Beam #'color = #(x11-color "medium turquoise")
-@end example
-
-If x11-color cannot make sense of the parameter then the color
-returned defaults to black.  It should be obvious from the final
-score that something is wrong.
-
-This example illustrates the use of x11-color.  Notice that the
-stem color remains black after being set to (x11-color 'Boggle),
-which is deliberate nonsense.
-
-@lilypond[quote,ragged-right,verbatim]
-{
-  \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
-  \set Staff.instrumentName = \markup {
-    \with-color #(x11-color 'navy) "Clarinet"
-  }
-  \time 2/4
-  gis''8 a''
-  \override Beam #'color = #(x11-color "medium turquoise")
-  gis'' a''
-  \override NoteHead #'color = #(x11-color "LimeGreen")
-  gis'' a''
-  \override Stem #'color = #(x11-color 'Boggle)
-  gis'' a''
-}
-@end lilypond
-
-
-TODO
-you can get exact RGB colors by specifying
-
-% black
-\override Stem #'color = #(rgb-color 0 0 0)
-% white
-\override Stem #'color = #(rgb-color 1 1 1)
-% dark blue
-\override Stem #'color = #(rgb-color 0 0 0.5) 
-
-
-@seealso
-
-Appendix: @ref{List of colors}.
-
-
-@refbugs
-Not all x11 colors are distinguishable in a web browser.  For web
-use normal colors are recommended.
-
-An x11 color is not necessarily exactly the same shade as a
-similarly named normal color.
-
-Notes in a chord cannot be colored with @code{\override}; use
-@code{\tweak} instead.  See @ref{Objects connected to the input},
-for details.
-
-
-@node Parentheses
-@unnumberedsubsubsec Parentheses
-
-@cindex ghost notes
-@cindex notes, ghost
-@cindex notes, parenthesized
-
-Objects may be parenthesized by prefixing @code{\parenthesize} to
-the music event,
-
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
-  c
-  \parenthesize d
-  g
->4-\parenthesize -.
-@end lilypond
-
-This only functions inside chords, to parenthesize a single note it 
-must be enclosed with @code{<>} as if it is a chord.
-
-@example
-< \parenthesize NOTE>
-@end example
-
-
-@node Stems
-@unnumberedsubsubsec Stems
-
-Whenever a note is found, a @internalsref{Stem} object is created
-automatically.  For whole notes and rests, they are also created
-but made invisible.
-
-@refcommands
-
-@funindex \stemUp
-@code{\stemUp},
-@funindex \stemDown
-@code{\stemDown},
-@funindex \stemNeutral
-@code{\stemNeutral}.
-
-
-@commonprop
-
-To change the direction of stems on the center line of the staff, use
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-a4 b c b
-\override Stem #'neutral-direction = #up
-a4 b c b
-\override Stem #'neutral-direction = #down
-a4 b c b
-@end lilypond
-
-
-@node Outside the staff
-@subsection Outside the staff
-
-
-@menu
-* Balloon help::                
-* Grid lines::                  
-* Blank music sheet::           
-* Analysis brackets::           
-@end menu
-
-@node Balloon help
-@unnumberedsubsubsec Balloon help
-
-Elements of notation can be marked and named with the help of a
-square balloon.  The primary purpose of this feature is to explain
-notation.
-
-The following example demonstrates its use.
-
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice \with { \consists "Balloon_engraver" }
-{
-  \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
-  <f-\balloonText #'(-2 . -2) \markup { "I'm a note head" }  >8
-}
-@end lilypond
-
-@noindent
-There are two music functions, @code{balloonText} and
-@code{balloonGrobText}.  The latter takes the name of the grob to
-adorn, while the former may be used as an articulation on a note.
-The other arguments  are the offset and the text of the label.
-
-@cindex balloon
-@cindex notation, explaining
-
-@seealso
-
-Internals Reference: @internalsref{text-balloon-interface}.
-
-
-@node Grid lines
-@unnumberedsubsubsec Grid lines
-
-Vertical lines can be drawn between staves synchronized with the
-notes.
-
-@lilypond[ragged-right,quote,verbatim]
-\layout {
-  \context {
-    \Staff
-    \consists "Grid_point_engraver" %% sets of grid
-    gridInterval = #(ly:make-moment 1 4)
-  }
-}
-
-\new Score \with {
-  \consists "Grid_line_span_engraver"
-  %% centers grid lines  horizontally below note heads
-  \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
-  \new Staff {
-    \stemUp
-    \relative {
-      c'4. d8 e8 f g4
-    }
-  }
-  \new Staff {
-    %% centers grid lines  vertically
-    \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
-    \stemDown
-    \clef bass
-    \relative c {
-      c4  g'  f  e
-    }
-  }
->>
-@end lilypond
-
-Examples: @lsrdir{education}
-
-
-@node Blank music sheet
-@unnumberedsubsubsec Blank music sheet
-
-@cindex Sheet music, empty
-@cindex Staves, blank sheet
-
-A blank music sheet can be produced also by using invisible notes,
-and removing @code{Bar_number_engraver}.
-
-
-@lilypond[quote,verbatim]
-\layout{ indent = #0 }
-emptymusic = {
-  \repeat unfold 2 % Change this for more lines.
-  { s1\break }
-  \bar "|."
-}
-\new Score \with {
-  \override TimeSignature #'transparent = ##t
-% un-comment this line if desired
-%  \override Clef #'transparent = ##t
-  defaultBarType = #""
-  \remove Bar_number_engraver
-} <<
-
-% modify these to get the staves you want
-  \new Staff \emptymusic
-  \new TabStaff \emptymusic
->>
-@end lilypond
-
-
-@node Analysis brackets
-@unnumberedsubsubsec Analysis brackets
-
-@cindex brackets
-@cindex phrasing brackets
-@cindex musicological analysis
-@cindex note grouping bracket
-
-Brackets are used in musical analysis to indicate structure in
-musical pieces.  LilyPond supports a simple form of nested
-horizontal brackets.  To use this, add the
-@internalsref{Horizontal_bracket_engraver} to the
-@internalsref{Staff} context.  A bracket is started with
-@code{\startGroup} and closed with @code{\stopGroup}.
-
-@lilypond[quote,ragged-right,verbatim]
-\score {
-  \relative c'' {
-    c4\startGroup\startGroup
-    c4\stopGroup
-    c4\startGroup
-    c4\stopGroup\stopGroup
-  }
-  \layout {
-    \context {
-      \Staff \consists "Horizontal_bracket_engraver"
-}}}
-@end lilypond
-
-@seealso
-
-Internals Reference: @internalsref{HorizontalBracket}.
-
-
index 333c573fc7942ab4f3fa7fcd15f8027ffa81bd25..4f07dbbbed42efd6351beaba08e73e1ec882c049 100644 (file)
@@ -29,7 +29,7 @@
 @end menu
 
 @node Articulations and ornamentations
-@unnumberedsubsubsec Articulations and ornamentations
+@subsubsection Articulations and ornamentations
 
 @cindex articulations
 @cindex scripts
@@ -134,7 +134,7 @@ a4^\prall^\markup { \sharp }
 
 @seealso
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{Script},
 @internalsref{TextScript}.
@@ -147,7 +147,7 @@ MIDI rendering of the music.
 
 
 @node Dynamics
-@unnumberedsubsubsec Dynamics
+@subsubsection Dynamics
 
 @cindex dynamics
 @funindex \pppp
@@ -337,7 +337,7 @@ Music Glossary: @rglos{hairpin}, @rglos{crescendo},
 
 Learning Manual: @rlearning{Articulation and dynamics}.
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{DynamicText},
 @internalsref{Hairpin}.  Vertical positioning of these symbols is
@@ -355,7 +355,7 @@ handled by @internalsref{DynamicLineSpanner}.
 @end menu
 
 @node Slurs
-@unnumberedsubsubsec Slurs
+@subsubsection Slurs
 
 @cindex slurs
 
@@ -411,13 +411,13 @@ can be achieved in LilyPond by setting @code{doubleSlurs},
 
 @seealso
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{Slur}.
 
 
 @node Phrasing slurs
-@unnumberedsubsubsec Phrasing slurs
+@subsubsection Phrasing slurs
 
 @cindex phrasing slurs
 @cindex phrasing marks
@@ -452,13 +452,13 @@ You cannot have simultaneous phrasing slurs.
 
 @seealso
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{PhrasingSlur}.
 
 
 @node Breath marks
-@unnumberedsubsubsec Breath marks
+@subsubsection Breath marks
 
 Breath marks are entered using @code{\breathe}:
 
@@ -483,13 +483,13 @@ d4
 
 @seealso
 
-Snippets: @lsrdir{expressive}, @lsr{expressive,breathing-sign.ly}.
+Snippets: @lsrdir{Expressive,Expressive-marks}, @c @lsr{expressive,breathing-sign.ly}.
 
 Internals Reference: @internalsref{BreathingSign}.
 
 
 @node Falls and doits
-@unnumberedsubsubsec Falls and doits
+@subsubsection Falls and doits
 
 Falls and doits can be added to notes using the @code{\bendAfter}
 command,
@@ -510,7 +510,7 @@ c4-\bendAfter #-3
 @end menu
 
 @node Glissando
-@unnumberedsubsubsec Glissando
+@subsubsection Glissando
 
 @cindex glissando
 @funindex \glissando
@@ -543,7 +543,7 @@ I = \once \override NoteColumn #'ignore-collision = ##t
 
 Music Glossary: @rglos{falls}, @rglos{doits}.
 
-Snippets: @lsrdir{expressive}.
+Snippets: @lsrdir{Expressive,Expressive-marks}.
 
 @c FIXME: I need to figure out what's up with these.  -gp
 @c @lsr{expressive,glissando.ly},
@@ -559,7 +559,7 @@ supported.
 
 
 @node Arpeggio
-@unnumberedsubsubsec Arpeggio
+@subsubsection Arpeggio
 
 @cindex arpeggio
 @cindex broken chord
@@ -674,7 +674,7 @@ moved to the Staff context:
 
 Notation Reference: @ref{Ties}, for writing out arpeggios.
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{Arpeggio},
 @internalsref{PianoStaff}.
@@ -688,7 +688,7 @@ time.
 
 
 @node Trills
-@unnumberedsubsubsec Trills
+@subsubsection Trills
 
 Short trills are printed with @code{\trill} like normal
 articulation; see @ref{Articulations and ornamentations}.
@@ -732,6 +732,6 @@ printed as a stemless note head in parentheses.
 
 @seealso
 
-Snippets: @lsrdir{expressive}
+Snippets: @lsrdir{Expressive,Expressive-marks}
 
 Internals Reference: @internalsref{TrillSpanner}.
index 308cb478a2086e59b4593161403cc74f97b6ca51..1e56b0e4f250f3d2d11292d75891b65d8fdbf93f 100644 (file)
@@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}.
 A basic example of a lilypond input file is
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 \score @{
   @var{...compound music expression...}  % all the music goes here!
   \header @{ @}
@@ -131,9 +131,13 @@ MIDI output respectively.  They are described fully in the
 Notation Reference -- @ruser{Score layout} and
 @ruser{Creating MIDI files}.
 
-The @code{\book} command allows
-several @code{\score} blocks to be combined into one output.
-If there are several @code{\book} blocks each one produces a
+You may code multiple @code{\score} blocks.  Each will be
+treated as a separate score, but they will be all combined into
+a single output file.  A @code{\book} command is not necessary
+-- one will be implicitly created.  However, if you would like
+separate output files from one @code{.ly} file then the
+@code{\book} command should be used to separate the different
+sections: each @code{\book} block will produce a
 separate output file.  For details see @ruser{Multiple scores
 in a book}.
 
@@ -1084,6 +1088,7 @@ SopTwoLyrics = \lyricmode {
     >>
     \new Staff <<
       \new Voice = "SopTwo" {
+        \global
         \SopTwoMusic
       }
       \new Lyrics \lyricsto "SopTwo" {
@@ -1132,7 +1137,7 @@ VerseFour  = \lyricmode {
     >>
     \new Staff <<
       \clef "bass"
-      \new Voice = "Tenor" { \voiceOne \TenorMusic }
+      \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
       \new Voice = "Bass"  { \voiceTwo \BassMusic  }
     >>
   >>
@@ -1190,7 +1195,7 @@ For example: a @code{Staff} context can contain many
 contain many @code{Staff} contexts.
 
 @quotation
-@image{context-example,5cm,,}
+@sourceimage{context-example,5cm,,}
 @end quotation
 
 Each context has the responsibility for enforcing some notation rules,
@@ -1432,11 +1437,11 @@ because we omitted the context name.
 @lilypond[quote,verbatim,ragged-right]
 <<
   \new Staff \relative c'' {
-    \set Staff.instrumentName = "Soprano"
+    \set Staff.instrumentName = #"Soprano"
     c4 c
  }
   \new Staff \relative c' {
-  \set instrumentName = "Alto"  % Wrong!
+  \set instrumentName = #"Alto"  % Wrong!
   d4 d 
  }
 >>
@@ -1584,7 +1589,7 @@ engraver is removed from a context it can no longer produce its
 output.  This is a crude way of modifying the output, but it
 can sometimes be useful.
 
-@unnumberedsubsubsec Changing a single context
+@subsubsection Changing a single context
 
 To remove an engraver from a single context we use the
 @code{\with} command placed immediately after the context creation 
@@ -1665,7 +1670,7 @@ the notes in all the voices on that staff:
 >>
 @end lilypond
 
-@unnumberedsubsubsec Changing all contexts of the same type
+@subsubsection Changing all contexts of the same type
 
 The examples above show how to remove or add engravers to
 individual contexts.  It is also possible to remove or add 
@@ -1734,7 +1739,7 @@ cello.  In this case, we would start with @q{Notes and lyrics} (for the
 soprano part).
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1762,7 +1767,7 @@ text = \lyricmode @{
 Now we want to add a cello part.  Let's look at the @q{Notes only} example:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1777,27 +1782,29 @@ melody = \relative c' @{
 @}
 @end example
 
-We don't need two @code{\version} commands.  We'll need the @code{melody}
-section.  We don't want two @code{\score} sections -- if we had two
-@code{\score}s, we'd get the two parts separately.  We want them together,
-as a duet.  Within the @code{\score} section, we don't need two
-@code{\layout} or @code{\midi}.
-
-If we simply cut and paste the @code{melody} section, we would end up with
-two @code{melody} sections.  So let's rename them.  We'll call the section
-for the soprano @code{sopranoMusic} and the section for the cello
-@code{celloMusic}.  While we're doing this, let's rename @code{text}
-to be @code{sopranoLyrics}.  Remember to rename both instances of all
-these names -- both the initial definition (the
+We don't need two @code{\version} commands.  We'll need the 
+@code{melody} section.  We don't want two @code{\score} sections
+-- if we had two @code{\score}s, we'd get the two parts separately.
+We want them together, as a duet.  Within the @code{\score} 
+section, we don't need two @code{\layout} or @code{\midi}.
+
+If we simply cut and paste the @code{melody} section, we would 
+end up with two @code{melody} definitions.  This would not generate
+an error, but the second one would be used for both melodies.
+So let's rename them to make them distinct.  We'll call the 
+section for the soprano @code{sopranoMusic} and the section for
+the cello @code{celloMusic}.  While we're doing this, let's rename
+@code{text} to be @code{sopranoLyrics}.  Remember to rename both
+instances of all these names -- both the initial definition (the
 @code{melody = \relative c' @{ } part) and the name's use (in the
 @code{\score} section).
 
-While we're doing this, let's change the cello part's staff -- celli
-normally use bass clef.  We'll also give the cello some different
-notes.
+While we're doing this, let's change the cello part's staff -- 
+celli normally use bass clef.  We'll also give the cello some 
+different notes.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 sopranoMusic = \relative c' @{
   \clef treble
   \key c \major
@@ -1866,7 +1873,7 @@ This looks a bit messy; the indentation is messed up now.  That is
 easily fixed.  Here's the complete soprano and cello template.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.37"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
@@ -1914,7 +1921,7 @@ from Handel's Messiah:
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = { \key d \major \time 4/4 }
 sopMusic = \relative c'' {
   \clef "treble"
@@ -1925,7 +1932,7 @@ sopWords = \lyricmode {
 }
 altoMusic = \relative a' {
   \clef "treble"
-  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
 }
 altoWords = \sopWords
 tenorMusic = \relative c' {
@@ -2088,7 +2095,7 @@ Combining all these together and adding the music
 for the three bars of the example above gives:
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 global = { \key d \major \time 4/4 }
 sopMusic = \relative c'' {
   \clef "treble"
@@ -2186,7 +2193,7 @@ music definitions and one to define the time signature
 and key:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 \header @{
   title = "Jesu, meine Freude"
   composer = "J S Bach"
@@ -2295,7 +2302,7 @@ may vary.  All that remains now
 is to add the music, and combine all the parts together.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
+\version "2.11.38"
 \header {
   title = "Jesu, meine Freude"
   composer = "J S Bach"
@@ -2345,3 +2352,5 @@ PedalOrganMusic = \relative c {
 
 
 
+
+
index 0083509ebec0de5894da8ae5b01636cc425a2f8b..8bcb002abeb4ec5fdb24e435e5e8cd938059997e 100644 (file)
@@ -30,7 +30,7 @@
 @end menu
 
 @node String number indications
-@unnumberedsubsubsec String number indications
+@subsubsection String number indications
 
 @cindex String numbers
 
@@ -45,11 +45,11 @@ with @code{\}@var{number},
 @seealso
 
 Internals Reference: @internalsref{StringNumber},
-@lsr{guitar/,string-number.ly}.
+@c @lsr{guitar/,string-number.ly}.
 
 
 @node Tablatures basic
-@unnumberedsubsubsec Tablatures basic
+@subsubsection Tablatures basic
 @cindex Tablatures basic
 
 Tablature notation is used for notating music for plucked string
@@ -136,7 +136,7 @@ melodia = \partcombine { e4 g g g }{ e4 e e e }
 
 
 @node Non-guitar tablatures
-@unnumberedsubsubsec Non-guitar tablatures
+@subsubsection Non-guitar tablatures
 @cindex Non-guitar tablatures
 
 You can change the tuning of the strings.  A string tuning is given as
@@ -184,7 +184,7 @@ No guitar special effects have been implemented.
 
 
 @node Banjo tablatures
-@unnumberedsubsubsec Banjo tablatures
+@subsubsection Banjo tablatures
 @cindex Banjo tablatures
 
 LilyPond has basic support for five stringed banjo.  When making tablatures
@@ -223,7 +223,7 @@ The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
 
 
 @node Fret diagrams
-@unnumberedsubsubsec Fret diagrams
+@subsubsection Fret diagrams
 @cindex fret diagrams
 @cindex chord diagrams
 
@@ -268,11 +268,11 @@ Details about the property interface to fret diagrams are found at
 
 @seealso
 
-Examples: @lsrdir{guitar}
+Examples: @c @lsrdir{guitar}
 
 
 @node Right hand fingerings
-@unnumberedsubsubsec Right hand fingerings
+@subsubsection Right hand fingerings
 
 Right hand fingerings in chords can be entered using
 @code{@var{note}-\rightHandFinger @var{finger}}
@@ -328,7 +328,7 @@ Internals Reference: @internalsref{StrokeFinger}
 
 
 @node Other guitar issues
-@unnumberedsubsubsec Other guitar issues
+@subsubsection Other guitar issues
 
 This example demonstrates how to include guitar position and
 barring indications.
index 5527175a52bbccea311caecdca5099b881a159d3..dcfd9176c0d79d5ea8860842c07c378e3b931772 100644 (file)
@@ -329,7 +329,7 @@ For more information on output formats, see @rprogram{Invoking lilypond}.
 
 @seealso
 
-Examples: @lsr{non-notation,clip-systems.ly}
+Examples: @c @lsr{non-notation,clip-systems.ly}
 
 
 @node Including LilyPond files
@@ -429,7 +429,7 @@ To use a Unicode escape sequence, use
 
 @seealso
 
-@lsr{text,utf-8.ly}
+@c @lsr{text,utf-8.ly}
 
 
 @node Different editions from one source
@@ -498,7 +498,7 @@ a piece of music with multiple @code{\tag} entries,
 
 @seealso
 
-Examples: @lsr{parts,tag@/-filter@/.ly}
+Examples: @c @lsr{parts,tag@/-filter@/.ly}
 
 
 @refbugs
index 4821926c83157c83cf1a53acaa75b55db2b2cab5..ca8c94902dda7cde423c4aed32d0a98f51dc5977 100644 (file)
@@ -177,14 +177,8 @@ or lyrics.
 
 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.  The
-documentation is built by issuing
-
-@example
-make web
-@end example
-
-Building the website requires some additional tools and packages
+This process requires a successful compile of lilypond, and some
+additional tools and packages
 
 @itemize
 @item The @uref{http://netpbm.sourceforge.net/,netpbm utilities}
@@ -197,13 +191,38 @@ and the patch from
 @uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}.
 @end itemize
 
-The HTML files can be installed into the standard documentation path
-by issuing
+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 out=www web-install
 @end example
 
+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 negociation 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
+
 
 @node Building LilyPond
 @subsection Building LilyPond
index bf0dcb70b70d2351d8854bbd06ee3740e77185b0..c6761089033ce9623a1d49e7c83cd751a981aa55 100644 (file)
@@ -87,9 +87,8 @@ computer edition.
 @end ifnottex
 @end ifnotinfo
 @ifinfo
-@c workaround for makeinfo-4.6: line breaks and multi-column cookies
-@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
-@image{lily-flat-bw,,,png}
+@image{lilypond/henle-flat-bw,,,png} @image{lilypond/baer-flat-bw,,,png}
+@image{lilypond/lily-flat-bw,,,png}
 @end ifinfo
 
 @item @tab
index dc8a5298337e7680cbb3085a36d011719214fe2c..0631951f5ae237ab2a5e22c3f9c1008e4eea1073 100644 (file)
@@ -23,7 +23,7 @@
 @ignore
 Distributions will want to install lilypond.info in postinstall, doing:
 
-    install-info --info-dir=/usr/share/info out/lilypond.info
+    install-info --info-dir=/usr/share/info out[-www]/lilypond.info
 
   * Prepend GNU for dir, must be unique.
 
@@ -38,16 +38,21 @@ 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 
-@dircategory LilyPond
+@c Info files are no longer installed in a subdirectory, images are
+@c expected to be found in lilypond/ subdirectory.
+@dircategory GNU LilyPond --- the music typesetter
 @direntry
-* LilyPond: (lilypond/lilypond).           The GNU music typesetter.
-* abc2ly: (lilypond/lilypond-program)Invoking abc2ly.          Importing ABC.      
-* convert-ly: (lilypond/lilypond-program)Invoking convert-ly.  Older LilyPond versions.
-* etf2ly: (lilypond/lilypond-program)Invoking etf2ly.          Importing Finale.
-* lilypond-book: (lilypond/lilypond-program)LilyPond-book.     Integrating text and music.
-* midi2ly: (lilypond/lilypond-program)Invoking midi2ly.        Importing MIDI.
+* LilyPond Learning Manual: (lilypond-learning).  Start here.
+* Music Glossary: (music-glossary).               For non-English users.
+* LilyPond: (lilypond).                           LilyPond Notation Reference.
+* LilyPond Internals Reference: (lilypond-internals).  Definitions for tweaking.
+* LilyPond Application Usage: (lilypond-program). Installing and running applications.
+* abc2ly: (lilypond-program)Invoking abc2ly.      Importing ABC.      
+* convert-ly: (lilypond-program)Updating files with convert-ly. Older LilyPond versions.
+* etf2ly: (lilypond-program)Invoking etf2ly.      Importing Finale.
+* lilypond-book: (lilypond-program)LilyPond-book. Integrating text and music.
+* midi2ly: (lilypond-program)Invoking midi2ly.    Importing MIDI.
+* musicxml2ly: (lilypond-program)Invoking musicxml2ly.  Importing MusicXML.
 @end direntry
 
 @c don't remove this comment.
@@ -203,11 +208,15 @@ Appendices
 @node LilyPond command index
 @appendix LilyPond command index
 
+This index does blah blah blah.
+
 @printindex ky
 
 @node LilyPond index
 @appendix LilyPond index
 
+In contrast, this index does blaz blaz blaz.
+
 @printindex cp
 
 @bye
index bbeddc24332d878d04dd7a0b3157e55c527bfcd8..aff1155e74373a6045b365b6e7e2fa293e06a77d 100644 (file)
 @end quotation
 @end macro
 
-@c TODO: define different output for info
+@ifnotinfo
 @macro notation{TEXT}
 @var{\TEXT\}
 @end macro
+@end ifnotinfo
 
+@ifinfo
+@macro notation{TEXT}
+\TEXT\
+@end macro
+@end ifinfo
 
-
-@c   **** Headings in a doc subsection ****
-
-@c not really a heading, but...
 @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.
+
+@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 obsolete; being removed.
 @macro refcommands
 @noindent
 
 @c   **** Links and references ****
 
-@c usage: @lsr{ancient,custodes.ly}
-@macro lsr{DIR,TEXT}
+@c usage: @lsr{ancient,Ancient-notation,custodes.ly}
+@macro lsr{SECTION,DIR,TEXT}
 @ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html#\TEXT\,@file{\DIR\/\TEXT\}}
+@uref{source/input/lsr/snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
 @end ifhtml
 @ifnothtml
-@file{\DIR\/\TEXT\}
+@file{\SECTION\/\TEXT\}
 @end ifnothtml
 @end macro
 
-@macro lsrdir{DIR}
+@c usage: @lsrdir{ancient,Ancient-notation}
+@macro lsrdir{SECTION,DIR}
 @ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html,\DIR\}
+@uref{source/input/lsr/snippets/\DIR\.html,\SECTION\}
 @end ifhtml
 @ifnothtml
 \DIR\
 @ifhtml
 @c ***** HTML *****
 
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
 @ifset bigpage
 
 @macro internalsref{TEXT}
index b8471041e1966aab842857d7459dc77348ad8694..0c100d79abb9429d70ed06bdf5e728f0c6596590 100644 (file)
@@ -130,12 +130,12 @@ Copyright 1999--2007 by the authors
 
 Languages in this order.
 @itemize
+@item UK - British English (where it differs from American English)
 @item ES - Spanish
 @item I - Italian
 @item F - French
 @item D - German
 @item NL - Dutch
-@item UK - British English
 @item DK - Danish
 @item S - Swedish
 @item FI - Finnish
@@ -176,7 +176,7 @@ Languages in this order.
 * beat::                        
 * bind::                        
 * brace::                       
-* bracket::                       
+* bracket::                     
 * brass::                       
 * breath mark::                 
 * breve::                       
@@ -263,9 +263,9 @@ Languages in this order.
 * forefall::                    
 * forte::                       
 * fourth::                      
-* Frenched score::                      
-* Frenched staff::                      
-* Frenched staves::                      
+* Frenched score::              
+* Frenched staff::              
+* Frenched staves::             
 * fugue::                       
 * functional harmony::          
 * G::                           
@@ -297,6 +297,7 @@ Languages in this order.
 * lilypond::                    
 * ligature::                    
 * line::                        
+* loco::                        
 * long appoggiatura::           
 * longa::                       
 * lyrics::                      
@@ -313,6 +314,7 @@ Languages in this order.
 * meter::                       
 * metronome::                   
 * metronomic indication::       
+* metronome mark::              
 * mezzo-soprano::               
 * middle C::                    
 * minor::                       
@@ -333,11 +335,11 @@ Languages in this order.
 * note head::                   
 * note names::                  
 * note value::                  
+* octavation::                      
 * octave sign::                 
 * octave::                      
 * ornament::                    
 * ossia::                       
-* ottava::                      
 * part::                        
 * pause::                       
 * pennant::                     
@@ -360,6 +362,7 @@ Languages in this order.
 * quadruplet::                  
 * quarter note::                
 * quarter rest::                
+* quarter tone::                
 * quintuplet::                  
 * rallentando::                 
 * relative key::                
@@ -1193,6 +1196,7 @@ FI: hengitysmerkki.
 
 Indication of where to breathe in vocal and wind instrument parts.
 
+
 @node breve
 @section breve
 
@@ -1884,7 +1888,58 @@ DK: ?,
 S: ?,
 FI: ?.
 
-FIXME: this is a placeholder
+The pitch at which the piano and other nontransposing instruments play: such
+instruments are said to be @q{in C}.  The following list includes some (but not
+all) instruments that play in concert pitch:
+
+@itemize
+
+@item Woodwinds
+@itemize
+@item flute
+@item oboe
+@item bassoon
+@end itemize
+
+@item Brass
+@itemize
+@item alto trombone
+@item tenor trombone
+@item bass trombone
+@end itemize
+
+@item Strings
+@itemize
+@item violin
+@item viola
+@item violincello
+@end itemize
+
+@item piano
+
+@end itemize
+
+The trombones are a special case: although they are said to be @q{in F} (alto or
+bass) or @q{in B-flat} (tenor), this refers to their fundamental note, not to
+their parts' transposition.  (In fact, the trombones' parts are written at
+concert pitch with an appropriate clef -- alto, tenor or bass.)  This differs
+from other instruments @q{in F}, @q{in B-flat}, and so on, which are transposing
+instruments.
+
+Instruments that play @q{in C} but in a different octave than what is written
+are, technically speaking, @emph{transposing instruments}:
+
+@itemize
+
+@item piccolo (plays an octave higher)
+@item celesta (plays an octave higher)
+@item double-bass (plays an octave lower)
+
+@end itemize
+
+@seealso
+
+@ref{transposing instrument}.
 
 
 @node conjunct movement
@@ -2803,10 +2858,10 @@ FI: E, e.
 @node eighth note
 @section eighth note
 
+UK: quaver,
 ES: corchea,
 I: croma,
 F: croche,
-UK: quaver,
 D: Achtel, Achtelnote,
 NL: achtste noot,
 DK: ottendedelsnode,
@@ -2821,10 +2876,10 @@ FI: kahdeksasosanuotti.
 @node eighth rest
 @section eighth rest
 
+UK: quaver rest,
 ES: silencio de corchea,
 I: pausa di croma,
 F: demi-soupir,
-UK: quaver rest,
 D: Achtelpause,
 NL: achtste rust,
 DK: ottendedelspause,
@@ -3001,11 +3056,15 @@ example, a series of notes to be played on the G string would be
 indicated @samp{sul G}, another series to be played on the D string
 would be indicated @samp{sul D}, and so on.
 
+@item
+With an octave indication (also called @emph{octavation}, q.v.) to indicate that
+a passage is to be played higher or lower by the given number of octaves.
+
 @end itemize
 
 @seealso
 
-@ref{melisma}, @ref{sul G}, @ref{thorough bass}
+@ref{melisma}, @ref{sul G}, @ref{thorough bass}, @ref{octavation}.
 
 
 @node F
@@ -3520,10 +3579,10 @@ usage.  In the standard usage of these countries, @samp{B} means
 @node half note
 @section half note
 
+UK: minim,
 ES: blanca,
 I: minima,
 F: blanche,
-UK: minim,
 D: Halbe, halbe Note,
 NL: halve noot,
 DK: halvnode,
@@ -3538,10 +3597,10 @@ FI: puolinuotti.
 @node half rest
 @section half rest
 
+UK: minim rest,
 ES: silencio de blanca,
 I: pausa di minima,
 F: demi-pause,
-UK: minim rest,
 D: halbe Pause,
 NL: halve, rust,
 DK: halvnodespause,
@@ -3967,10 +4026,10 @@ notes, unlike (b) @emph{leggiero} or @emph{non-legato}, (c)
 @node lilypond
 @section lilypond
 
+UK: lily pond,
 ES: estanque de nenúfares,
 I: stagno del giglio,
-F: Ã©tang de lis,
-UK: lily pond,
+F: Ã©tang de nénuphars, Ã©tang de nymphéas,
 D: Seerosenteich,
 NL: le@-lie@-vij@-ver,
 DK: liliedam,
@@ -4019,6 +4078,26 @@ FI: viiva, nuottiviiva.
 @ref{staff}.
 
 
+@node loco
+@section loco
+
+ES: ?,
+I: loco,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+[From Italian, @q{place}].  Instruction to play the following passage at the
+written pitch.  Cancels octavation (q.v.).
+
+@seealso
+
+@ref{octavation}.
+
+
 @node long appoggiatura
 @section long appoggiatura
 
@@ -4198,9 +4277,12 @@ mediant (variant tonic).
 @section melisma
 
 ES: melisma,
+I: ?,
 F: mélisme,
 D: Melisma,
 NL: melisma,
+DK: ?,
+S: ?,
 FI: melisma, laulettavan tavun sävelkuvio.
 
 A melisma (plural, from Greek: melismata) is a group of notes or tones
@@ -4212,6 +4294,15 @@ sung on one syllable, especially as applied to liturgical chant.
 
 @c TODO: add languages
 
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
 @seealso
 
 @ref{extender line}.
@@ -4228,7 +4319,7 @@ sung on one syllable, especially as applied to liturgical chant.
 @node mensural notation
 @section mensural notation
 
-@c FIXME: add languages
+@c TODO: add languages
 
 ES: ?,
 I: ?,
@@ -4241,7 +4332,7 @@ FI: ?.
 
 @c TODO: add definition (inc. info on proportional notation)
 
-@c FIXME: add cross-references.
+@c TODO: add cross-references.
 
 
 @node meter
@@ -4293,9 +4384,9 @@ Other recurrence patterns are possible:
 Other than quadruple and sextuple meters, these other recurrence
 patterns were not frequently used prior to the 20th Century.
 
-In addition to classification by @emph{tactus}, meters can be further
-classified by how the tactus is subdivided: in two, the meter is
-@emph{simple}; in three, the meter is @emph{compound}.
+In addition to classification by primary beat grouping, meters can be further
+classified by how the primary beat is subdivided: if in two, the meter is
+@emph{simple}; if in three, the meter is @emph{compound}.
 
 @itemize
 
@@ -4359,7 +4450,7 @@ Simple quintuple meter (B. Marcello, 1686-1739):
   aes4 bes8 aes ges4 aes f8 es \bar "||"}
 @end lilypond
 
-Compound duple meter:
+Compound duple meter (unknown):
 
 @lilypond[fragment,line-width=13.0\cm]
 \relative c' {
@@ -4387,7 +4478,7 @@ Compound quadruple meter (P. Yon, 1886-1943):
 \relative c' {
   \time 12/8
   \key e \major
-  b8.( a16) gis8 a8.( gis16) fis8 gis8.( fis16) e8 fis4 b,8 |
+  b'8.( a16) gis8 a8.( gis16) fis8 gis8.( fis16) e8 fis4 b,8 |
   e4 e8 fis( gis) a b4.~ b4 b8
   \bar "||"}
 @end lilypond
@@ -4411,14 +4502,28 @@ FI: metronomi.
 
 Device indicating the exact tempo of a piece.
 
+Invented ca. 1812 by Dietrich Nikolaus Winkler of Amsterdam, but takes its name
+from Johann Nepomuk Mälzel, who copied the device, added a scale of tempo
+divisions, and patented it as a "metronome".  The inevitable lawsuit that
+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{metronomic indication}.
+@ref{metronome mark}.
 
 
 @node metronomic indication
 @section metronomic indication
 
+@seealso
+
+@ref{metronome mark}
+
+
+@node metronome mark
+@section metronome mark
+
 ES: indicación metronómica,
 I: indicazione metronomica,
 F: indication métronomique,
@@ -4428,8 +4533,13 @@ DK: metronomtal,
 S: metronomangivelse,
 FI: metronomiosoitus.
 
-Exact tempo indication (in beats per minute).  Also denoted by
-M.M.@: (Mälzels Metronom).
+Exact tempo indication (in beats per minute).  Abbreviated @samp{M.M.} or
+@samp{MM}, which is short for Mälzels Metronom (or Mälzel's Mark,
+@emph{anglice}).
+
+@seealso
+
+@ref{metronome}
 
 
 @node mezzo-soprano
@@ -4832,9 +4942,71 @@ dotted notes are also frequently used.
 @end lilypond
 
 
+@node octavation
+@section octavation
+
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+The use of a phrase or abbreviation with an extender line or bracket to indicate
+that a passage is to be played in a different octave:
+
+@itemize
+
+@item @samp{15ma}: play two octaves higher
+@item @samp{8va}: play one octave higher
+@item @samp{8vb}: play one octave lower
+@item @samp{8va} written below the passage: same as @samp{8vb}
+@item @samp{15vb}: play two octaves lower
+@item @samp{15va} written below the passage: same as @samp{15vb}
+
+@end itemize
+
+Another practice, which may be useful for longer passages, is to indicate the
+different octave with a phrase at the beginning (see below).  When the music
+returns to the written pitch, the octavation is cancelled with the word
+@emph{loco} (q.v.).
+
+To parallel the list above:
+
+@itemize
+
+@item @samp{15ma}: @emph{alla quindicesima (alta)}
+@item @samp{8va}: @emph{all'ottava} or @emph{ottava sopra}
+@item @samp{8vb}: @emph{ottava bassa}, @emph{ottava sotto}
+@item @samp{15vb}: @emph{alla quindicesima (bassa)}
+
+@end itemize
+
+@emph{Quindicesima} can be replaced with @emph{quindecima}, which is Latin.
+
+@seealso
+
+@ref{interval}, @ref{loco}, @ref{octave}.
+
+
 @node octave sign
 @section octave sign
 
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+Putting 8 or 15 above or below the clef to indicate that the entire part is
+played in the indicated octave: a clef-wide octavation.  An octave sign can be
+applied to any clef, though it is most frequently used with the G and F clefs.
+
 @seealso
 
 @ref{G clef}, @ref{F clef}.
@@ -4852,9 +5024,14 @@ DK: oktav,
 S: oktav,
 FI: oktaavi.
 
+The interval of an octave, sometimes abbreviated @samp{8ve}.
+
+For uses like @emph{all'ottava} or @emph{8va} with an extender line or
+bracket, or @samp{loco} see octavation.
+
 @seealso
 
-@ref{ottava}, @ref{interval}.
+@ref{interval}, @ref{octavation}.
 
 
 @node ornament
@@ -4935,33 +5112,6 @@ score, usually only a few measures long, which presents another version
 of the music, for example for small hands.
 
 
-@node ottava
-@section ottava
-
-@c TODO: translations
-
-ES: ?,
-I: ottava,
-F: octave,
-DE: Oktavierung,
-NL: ?,
-DK: ?,
-S: ?,
-FI: ?.
-
-[From Italian] The interval of an octave, abbreviated 8va.
-
-@emph{All'ottava}, @emph{ottava alta}, @emph{ottava sopra}, or
-@emph{8va} written above a passage indicates that it should be played
-an octave higher than written. @emph{Ottava bassa}, @emph{ottava
-sotto}, or @emph{8va} written below a passage indicates that it should
-be played an octave lower than written.
-
-@seealso
-
-@ref{interval}.
-
-
 @node part
 @section part
 
@@ -5299,10 +5449,10 @@ FI: kvartoli.
 @node quarter note
 @section quarter note
 
+UK: crotchet,
 ES: negra,
 I: semiminima, nera,
 F: noire,
-UK: crotchet,
 D: Viertel, Viertelnote,
 NL: kwartnoot,
 DK: fjerdedelsnode,
@@ -5317,10 +5467,10 @@ FI: neljännesosanuotti.
 @node quarter rest
 @section quarter rest
 
+UK: crotchet rest,
 ES: silencio de negra,
 I: pausa di semiminima,
 F: soupir,
-UK: crotchet rest,
 D: Viertelpause,
 NL: kwart rust,
 DK:@w{ }fjerdedelspause,
@@ -5332,6 +5482,25 @@ FI: neljännesosatauko.
 @ref{note value}.
 
 
+@node quarter tone
+@section quarter tone
+
+ES: ?,
+I: ?,
+F: quart de ton,
+D: Viertelton,
+NL: kwart toon,
+DK: ?,
+S: kvartston,
+FI: ?.
+
+An interval equal to half a semitone.
+
+@seealso
+
+@ref{interval}
+
+
 @node quintuplet
 @section quintuplet
 
@@ -5720,7 +5889,6 @@ FI: korotusmerkki.
 ES: ?,
 I: ?,
 F: ?,
-UK: ?,
 D: ?,
 NL: ?,
 DK: ?,
@@ -5738,10 +5906,10 @@ that does not include triplet subdivision of the beat.
 @node sixteenth note
 @section sixteenth note
 
+UK: semiquaver,
 ES: semicorchea,
 I: semicroma,
 F: double croche,
-UK: semiquaver,
 D: Sechzehntel, Sechzehntelnote,
 NL: zes@-ti@-ende noot,
 DK: sekstendedelsnode,
@@ -5756,10 +5924,10 @@ FI: kuudestoistaosanuotti.
 @node sixteenth rest
 @section sixteenth rest
 
+UK: semiquaver rest,
 ES: silencio de semicorchea,
 I: pausa di semicroma,
 F: quart de soupir,
-UK: semiquaver rest,
 D: Sechzehntelpause,
 NL: zestiende rust,
 DK: sekstendedelspause,
@@ -5791,10 +5959,10 @@ FI: seksti.
 @node sixty-fourth note
 @section sixty-fourth note
 
+UK: hemidemisemiquaver,
 ES: semifusa,
 I: semibiscroma,
 F: quadruple croche,
-UK: hemidemisemiquaver,
 D: Vierundsechzigstel, Vierundsechzigstelnote,
 NL: vierenzestigste noot,
 DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-no@-de,
@@ -5809,10 +5977,10 @@ FI: kuudeskymmenesneljäsosanuotti.
 @node sixty-fourth rest
 @section sixty-fourth rest
 
+UK: hemidemisemiquaver rest,
 ES: silencio de semifusa,
 I: pausa di semibiscroma,
 F: seizième de soupir,
-UK: hemidemisemiquaver rest,
 D: Vierundsechzigstelpause,
 NL: vierenzestigste rust,
 DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-pau@-se,
@@ -6320,10 +6488,10 @@ FI: terssi.
 @node thirty-second note
 @section thirty-second note
 
+UK: demisemiquaver,
 ES: fusa,
 I: biscroma,
 F: triple croche,
-UK: demisemiquaver,
 D: Zweiunddreissigstel, Zweiunddreissigstelnote,
 NL: twee-endertig@-ste noot,
 DK: toogtredivtedelsnode,
@@ -6338,10 +6506,10 @@ FI: kolmanneskymmeneskahdesosanuotti.
 @node thirty-second rest
 @section thirty-second rest
 
+UK: demisemiquaver rest,
 ES: silencio de fusa,
 I: pausa di biscroma,
 F: huitième de soupir,
-UK: demisemiquaver rest,
 D: Zweiunddreissigstel@-pause,
 NL: 32e rust,
 DK: toogtredivtedelspause,
@@ -6496,7 +6664,27 @@ DK: ?,
 S: ?,
 FI: ?.
 
-FIXME: this is a placeholder
+Instruments whose notated pitch is different from their sounded pitch.  Except
+for those whose notated and sounding pitches differ by one or more octaves (to
+reduce the number of ledger lines needed), most such instruments are identified
+by the letter name of the pitch class of their fundamental.  The pitch class is
+the note that @emph{sounds} (disregarding the octave in which it sounds) when
+the instrument plays a notated C.
+
+For example: when played on the B-flat clarinet, the note middle C @emph{sounds}
+the B-flat one tone lower.  If played on the A clarinet, the same written
+note sounds the A (one and half tones -- a minor third -- lower).
+
+Not all transposing instruments include the pitch class in their name:
+
+@itemize
+@item English horn (in F)
+@item Alto flute (in G)
+@end itemize
+
+@seealso
+
+@ref{concert pitch}.
 
 
 @node transposition
@@ -6787,10 +6975,10 @@ FI: tahdin heikko isku.
 @node whole note
 @section whole note
 
+UK: semibreve,
 ES: redonda,
 I: semibreve,
 F: ronde,
-UK: semibreve,
 D: Ganze, ganze Note,
 NL: hele noot,
 DK: helnode,
@@ -6805,10 +6993,10 @@ FI: kokonuotti.
 @node whole rest
 @section whole rest
 
+UK: semibreve rest,
 ES: silencio de redonda,
 I: pausa di semibreve,
 F: pause,
-UK: semibreve rest,
 D: ganze Pause, ganztaktige Pause,
 NL: hele rust,
 DK: helnodespause,
@@ -6856,148 +7044,186 @@ saxophone, and bassoon.
 
 
 @node Duration names notes and rests
-@chapter Duration names, notes and rests
-
-@table @code
-@item DURATION NAMES, NOTES AND RESTS
-@end table
+@chapter Duration names notes and rests
 
-@multitable @columnfractions .15 .26 .33 .26
+@multitable @columnfractions .07 .23 .23 .23 .24
 
-@item
-  @tab @strong{UK}
-  @tab @strong{I}
-  @tab @strong{F (note name / rest name)}
-@item
-  @tab @strong{D}
-  @tab @strong{NL}
-  @tab @strong{DK}
-@item
-  @tab @strong{S}
-  @tab @strong{FI}
-  @tab @strong{ES}
-
-@c extra @items make this table harder to read, so I removed them.
-
-@item @strong{longa}
-  @tab longa
-  @tab longa
-  @tab longa
-@item
-  @tab Longa
-  @tab longa
-  @tab longa
-@item
+@headitem @strong{US}
+  @tab long
+  @tab breve
+  @tab whole
+  @tab half
+@item @strong{UK}
   @tab longa
+  @tab breve
+  @tab semibreve
+  @tab minim
+@item @strong{ES}
   @tab longa
+  @tab cuadrada
+  @tab redonda
+  @tab blanca
+@item @strong{IT}
   @tab longa
-
-@item @strong{breve}
-  @tab breve
   @tab breve
+  @tab semibreve
+  @tab minima
+@item @strong{FR}
+  @tab longa
   @tab brève / double-pause
-@item
-  @tab Brevis
-  @tab brevis
-  @tab brevis
-@item
-  @tab brevis
-  @tab brevis
-  @tab cuadrada
-
-@item @strong{whole}
-  @tab semi@-breve
-  @tab semi@-breve
   @tab ronde / pause
-@item
-  @tab Ganze
-  @tab hele
-  @tab hel
-@item
-  @tab hel
-  @tab koko@-nuotti/@w{-tauko}
-  @tab redonda
-
-@item @strong{half}
-  @tab minim
-  @tab minima
   @tab blanche / demi-pause
-@item
+@item @strong{DE}
+  @tab Longa
+  @tab Brevis
+  @tab Ganze
   @tab Halbe
+@item @strong{NL}
+  @tab longa
+  @tab brevis
+  @tab hele
   @tab halve
+@item @strong{DK}
+  @tab longa
+  @tab brevis
+  @tab hel
   @tab halv
-@item
+@item @strong{SE}
+  @tab longa
+  @tab brevis
+  @tab hel
   @tab halv
+@item @strong{FI}
+  @tab longa
+  @tab brevis
+  @tab koko@-nuotti/@w{-tauko}
   @tab puoli@-nuotti/@w{-tauko}
-  @tab blanca
 
-@item @strong{quarter}
-  @tab crotchet
-  @tab semiminima
-  @tab noire / soupir
-@item
-  @tab Viertel
-  @tab kwart
-  @tab fjerdedel
-@item
-  @tab fjärdedel
-  @tab neljännesosa@-nuotti/@w{-tauko}
-  @tab negra
+@end multitable
+
+@multitable @columnfractions .07 .31 .31 .31
 
-@item @strong{eighth}
+@headitem @strong{US}
+  @tab quarter
+  @tab eighth
+  @tab sixteenth
+@item @strong{UK}
+  @tab crotchet
   @tab quaver
+  @tab semiquaver
+@item @strong{ES}
+  @tab negra
+  @tab corchea
+  @tab semicorchea
+@item @strong{IT}
+  @tab semiminima
   @tab croma
+  @tab semicroma
+@item @strong{FR}
+  @tab noire / soupir
   @tab croche / demi-soupir
-@item
+  @tab double* croche / quart de soupir
+@item @strong{DE}
+  @tab Viertel
   @tab Achtel
-  @tab achtste
-  @tab ottendedel
-@item
-  @tab Ã¥ttondel
-  @tab kahdeksasosa@-nuotti/@w{-tauko}
-  @tab corchea
-
-@item @strong{sixteenth}
-  @tab semiquaver
-  @tab semicroma
-  @tab double croche / quart de soupir
-@item
   @tab Sechzehntel
+@item @strong{NL}
+  @tab kwart
+  @tab achtste
   @tab zestiende
+@item @strong{DK}
+  @tab fjerdedel
+  @tab ottendedel
   @tab sekstendedel
-@item
+@item @strong{SE}
+  @tab fjärdedel
+  @tab Ã¥ttondel
   @tab sextondel
+@item @strong{FI}
+  @tab neljännesosa@-nuotti/@w{-tauko}
+  @tab kahdeksasosa@-nuotti/@w{-tauko}
   @tab kuudestoistaosa@-nuotti/@w{-tauko}
-  @tab semicorchea
 
-@item @strong{thirty-second}
-  @tab demisemiquaver
-  @tab biscroma
-  @tab triple croche / huitième de soupir
-@item
-  @tab Zweiunddreissigstel
-  @tab tweeendertigste
-  @tab toogtredivtedel
-@item
-  @tab trettiotvÃ¥ondel
-  @tab kolmaskymme@-neskahdesosa@-nuotti/@w{-tauko}
-  @tab fusa
+@end multitable
 
-@item @strong{sixty-fourth}
+* About the French naming system: the word @emph{croche} refers to the
+note's "hook".  Therefore, from the eighth note on, the note names mean
+@q{hook}, @q{doubled hook}, @q{trebled hook}, and so on.
+
+The rest names are based on the @emph{soupir}, or quarter rest.  Subsequent
+rests are expressed as fractions thereof: half a @emph{soupir}, a quarter of
+a @emph{soupir}, and so on.
+
+@multitable @columnfractions .07 .46 .47
+
+@headitem @strong{US}
+  @tab thirty-second
+  @tab sixty-fourth
+@item @strong{UK}
+  @tab demisemiquaver
   @tab hemidemisemiquaver
+@item @strong{ES}
+  @tab fusa*
+  @tab semifusa
+@item @strong{IT}
+  @tab biscroma
   @tab semibiscroma
+@item @strong{FR} 
+  @tab triple croche / huitième de soupir
   @tab quadruple croche / seizième de soupir
-@item
+@item @strong{DE} 
+  @tab Zweiunddreissigstel
   @tab Vierundsechzigstel
+@item @strong{NL} 
+  @tab tweeendertigste
   @tab vierenzestigste
+@item @strong{DK} 
+  @tab toogtredivtedel
   @tab fireogtred@-sindstyvendedel
-@item
+@item @strong{SE} 
+  @tab trettiotvÃ¥ondel
   @tab sextiofjärdedel
+@item @strong{FI}
+  @tab kolmaskymme@-neskahdesosa@-nuotti/@w{-tauko}
   @tab kuudeskymme@-nesneljäsosa@-nuotti/@w{-tauko}
+
+@end multitable
+
+@multitable @columnfractions .07 .46 .47
+
+@headitem @strong{US}  @tab one-hundred-twenty-eighth
+  @tab two-hundred-fifty-sixth@item @strong{UK}
+  @tab semihemidemisemiquaver or
+       quasihemidemisemiquaver  @tab demisemihemidemisemiquaver (?)
+@item @strong{IT}
+  @tab fusa*
   @tab semifusa
+@item @strong{ES} 
+  @tab garrapatea  @tab semigarrapatea@item @strong{FR} 
+  @tab quintuple croche / trente-deuxième de soupir  @tab sextuple croche / soixante-quatrième de soupir@item @strong{DE} 
+  @tab Hundertundachtundzwanzigstel  @tab Zweihundertundsechsundfünfzigstel@item @strong{NL} 
+  @tab ?
+  @tab ?
+@item @strong{DK} 
+  @tab ?
+  @tab ?
+@item @strong{SE} 
+  @tab ?
+  @tab ?
+@item @strong{FI}
+  @tab ?
+  @tab ?
 
 @end multitable
 
+* The terms @emph{fusa} and @emph{semifusa}, which derive from mensural notation
+(q.v), are used as note durations by the Italians and the Spanish, but for notes
+of different durations.
+
+@seealso
+
+@ref{mensural notation}
+
 
 @node Pitch names
 @chapter Pitch names
index db77f49497e851f318e07d525286d910b8e6c1be..0e6380173a880f908136c70cd724ff24ada1c41e 100644 (file)
@@ -643,7 +643,7 @@ instrument is used.
 @end menu
 
 @node Repeats and MIDI
-@unnumberedsubsubsec Repeats and MIDI
+@subsubsection Repeats and MIDI
 
 @cindex expanding repeats
 @funindex \unfoldRepeats
index ccf8a4eb3b75f4eee35db8753d841e95ada558fb..3989a3525e764f357bda4a52a7e29635ccfdf8bd 100644 (file)
 * Overview of text markup commands::  
 * Overview of text markup list commands::  
 * List of articulations::       
+* All context properties::      
+* Layout properties::           
+* Identifiers::                 
+* Scheme functions::            
 @end menu
 
 
@@ -260,16 +264,26 @@ Here is a chart showing all scripts available,
 
 
 
-@ignore
-@n ode All context properties
-@a ppendixsec All context properties
+@node All context properties
+@appendixsec All context properties
 
-@i nclude context-properties.tely
+@include context-properties.tely
 
 
-@n ode Layout properties
-@ap pendixsec Layout properties
+@node Layout properties
+@appendixsec Layout properties
 
-@in clude layout-properties.tely
+@include layout-properties.tely
+
+
+@node Identifiers
+@appendixsec Identifiers
+
+@include identifiers.tely
+
+
+@node Scheme functions
+@appendixsec Scheme functions
+
+@include scheme-functions.tely
 
-@end ignore
index 5e15d30923126256dea1297531c785b9a0c8e6d2..722235e219ecfa878aecf282f83c1dddd95d4d97 100644 (file)
@@ -28,6 +28,6 @@ This chapter explains how to create musical notation.
 @include repeats.itely
 @include simultaneous.itely
 @include staff.itely
-@include educational.itely
+@include editorial.itely
 @include text.itely
 
index e0c1110776f5e01af1b3d9f2db212033905fb0d8..f52970f8f04a538e08e9cf5c3f3556bb0c876a85 100644 (file)
@@ -28,7 +28,7 @@ also be used to show the rhythms of melodies.
 
 
 @node Showing melody rhythms
-@unnumberedsubsubsec Showing melody rhythms
+@subsubsection Showing melody rhythms
 
 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
@@ -47,7 +47,7 @@ Internals Reference: @internalsref{RhythmicStaff}.
 
 
 @node Entering percussion
-@unnumberedsubsubsec Entering percussion
+@subsubsection Entering percussion
 
 @cindex percussion
 @cindex drums
@@ -73,7 +73,7 @@ The complete list of drum names is in the init file
 Internals Reference: @internalsref{note-event}.
 
 @node Percussion staves
-@unnumberedsubsubsec Percussion staves
+@subsubsection Percussion staves
 @cindex percussion
 @cindex drums
 
@@ -291,7 +291,7 @@ for this purpose instead.
 
 @c TODO: check name -gp
 @node Ghost notes
-@unnumberedsubsubsec Ghost notes
+@subsubsection Ghost notes
 
 Ghost notes for drums and percussion may be created using the
 @code{\parenthesize} command detailed in @ref{Parentheses}.  However,
index 104bcf81d001f8afee69ef627b082eaa466eb20d..138a21da158e01384ff433c11c93fcf90d2a287d 100644 (file)
@@ -42,7 +42,7 @@ Dynamics are not centered, but workarounds do exist.  See the
 
 
 @node Automatic staff changes
-@unnumberedsubsubsec Automatic staff changes
+@subsubsection Automatic staff changes
 @cindex Automatic staff changes
 
 Voices can be made to switch automatically between the top and the bottom
@@ -101,7 +101,7 @@ quality output, staff switches should be specified manually.
 
 
 @node Manual staff switches
-@unnumberedsubsubsec Manual staff switches
+@subsubsection Manual staff switches
 
 @cindex manual staff switches
 @cindex staff switch, manual
@@ -139,7 +139,7 @@ and the @code{Voice} is inserted afterwards
 
 
 @node Pedals
-@unnumberedsubsubsec Pedals
+@subsubsection Pedals
 @cindex Pedals
 
 Pianos have pedals that alter the way sound is produced.  Generally, a
@@ -207,7 +207,7 @@ c\sostenutoDown d e c, f g a\sostenutoUp
 Notation Reference: @ref{Ties} (laissez vibrer).
 
 @node Staff switch lines
-@unnumberedsubsubsec Staff switch lines
+@subsubsection Staff switch lines
 
 
 @cindex follow voice
@@ -245,7 +245,7 @@ Internals Reference: @internalsref{VoiceFollower}.
 
 
 @node Cross staff stems
-@unnumberedsubsubsec Cross staff stems
+@subsubsection Cross staff stems
 
 Chords that cross staves may be produced by increasing the length
 of the stem in the lower staff, so it reaches the stem in the upper
index 9de3721d17d53abc72560bcbd060f8b04c92c046..e38bc880863b2c99646a3ce8cce4cc19eae67490 100644 (file)
@@ -14,7 +14,7 @@
 {pitches-headword.ly}
 
 This section discusses how to specify the pitch of notes.  There
-are three steps to this process: input, modifying, and output.
+are three steps to this process: input, modification, and output.
 
 @menu
 * Writing pitches::             
@@ -29,7 +29,7 @@ are three steps to this process: input, modifying, and output.
 
 This section discusses how to input pitches.  There are two
 different ways to place notes in octaves: absolute and relative
-mode.  In most cases, relative mode will be more convient.
+mode.  In most cases, relative mode will be more convenient.
 
 @menu
 * Absolute octave entry::       
@@ -40,7 +40,7 @@ mode.  In most cases, relative mode will be more convient.
 
 
 @node Absolute octave entry
-@unnumberedsubsubsec Absolute octave entry
+@subsubsection Absolute octave entry
 
 @cindex pitch names
 @cindex pitches
@@ -80,11 +80,11 @@ d,, d, d c
 
 Music Glossary: @rglos{Pitch names}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @node Relative octave entry
-@unnumberedsubsubsec Relative octave entry
+@subsubsection Relative octave entry
 
 @cindex relative
 @cindex relative octave specification
@@ -114,8 +114,8 @@ interval is determined without considering accidentals.
 
 @item
 An octave changing mark@tie{}@code{'} or@tie{}@code{,} can be added to
-respectively raise or lower a pitch by an extra octave, relatively to
-the pitch calculated without octave mark.
+respectively raise or lower a pitch by an extra octave, relative to
+the pitch calculated without an octave mark.
 
 @item
 Multiple octave changing marks can be used.  For example, @code{''}@tie{}and
@@ -162,7 +162,7 @@ large intervals:
 
 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 of chords the next note is always
+following note or chord.  Inside chords, the next note is always
 relative to the preceding one.
 
 @lilypond[verbatim,quote,ragged-right]
@@ -178,8 +178,8 @@ relative to the preceding one.
 
 As explained above, the octave of pitches is calculated only with
 the note names, regardless of any alterations.  Therefore, an
-E-double-sharp sharp following a B will be placed higher, while an
-F-double-flat would be placed lower.  In other words, a
+E-double-sharp following a B will be placed higher, while an
+F-double-flat will be placed lower.  In other words, a
 double-augmented fourth is considered a smaller interval than a
 double-diminished fifth, regardless of the number of semitones
 that each interval contains.
@@ -200,9 +200,13 @@ Music Glossary: @rglos{fifth}, @rglos{interval}, @rglos{Pitch names}.
 
 Notation Reference: @ref{Octave checks}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
+
 @refbugs
 
 The relative conversion will not affect @code{\transpose},
@@ -210,7 +214,7 @@ The relative conversion will not affect @code{\transpose},
 To use relative mode within transposed music, an additional
 @code{\relative} must be placed inside @code{\transpose}.
 
-@c TODO: DEPRECATED
+@c NOTE: DEPRECATED
 If no @var{startpitch} is specified for @code{\relative},
 then@tie{}@code{c'} is assumed.  However, this is a deprecated
 option and may disappear in future versions, so its use is
@@ -219,7 +223,11 @@ discouraged.
 
 
 @node Accidentals
-@unnumberedsubsubsec Accidentals
+@subsubsection Accidentals
+
+@cindex accidental
+@cindex key signature
+@cindex clef
 
 @warning{New users are sometimes confused about accidentals and
 key signatures.  In LilyPond, note names are the raw input; key
@@ -230,13 +238,19 @@ see @rlearning{Accidentals and key signatures}.}
 
 @cindex note names, Dutch
 @cindex note names, default
-
-A @notation{sharp} pitch is made by adding @code{is} to the name,
-and a @notation{flat} pitch by adding @code{es}.  As you might
-expect, a @notation{double sharp} or @notation{double flat} is
-made by adding @code{isis} or @code{eses}.  This syntax is derived
-from Dutch note naming conventions.  To use other names for
-accidentals, see @ref{Note names in other languages}.
+@cindex sharp
+@cindex flat
+@cindex double sharp
+@cindex sharp, double
+@cindex double flat
+@cindex flat, double
+
+A @notation{sharp} pitch is made by adding @code{is} to the note name,
+and a @notation{flat} pitch by adding @code{es}.  As you might expect,
+a @notation{double sharp} or @notation{double flat} is made by adding
+@code{isis} or @code{eses}.  This syntax is derived from Dutch note
+naming conventions.  To use other names for accidentals, see
+@ref{Note names in other languages}.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 ais1 aes aisis aeses
@@ -284,11 +298,11 @@ natural signs.
 cis cis cis! cis? c c c! c?
 @end lilypond
 
-Accidentals are only printed on tied notes which begin a new
-system:
+Accidentals on tied notes are only printed at the beginning of a
+new system:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-cis1~ cis~
+cis1 ~ cis ~
 \break
 cis
 @end lilypond
@@ -302,7 +316,7 @@ cis
 @seealso
 
 Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
-@rglos{double flat}, @rglos{Pitch names}.
+@rglos{double flat}, @rglos{Pitch names}, @rglos{quarter-tone}.
 
 Learning Manual: @rlearning{Accidentals and key signatures}.
 
@@ -310,30 +324,28 @@ Notation Reference: @ref{Automatic accidentals},
 @ref{Musica ficta accidentals},
 @ref{Note names in other languages}.
 
-Snippets: @lsrdir{Pitches},
-@lsr{Pitches,
-dodecaphonic-style-accidentals-for-each-note-including-naturals.ly},
-@lsr{Pitches, makam.ly}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @refbugs
 
 There are no generally accepted standards for denoting
-three-quarter flats, so LilyPond's symbol does not conform to any
-standard.
+quarter-tone accidentals, so LilyPond's symbol does not conform to
+any standard.
 
 
 
 @node Note names in other languages
-@unnumberedsubsubsec Note names in other languages
+@subsubsection Note names in other languages
 
 There are predefined sets of note names for various other
-languages.  To use them, include the language specific init file.
-For example, add @code{\include "english.ly"} to the top of the
-input file.  The available language files and the note names they
-define are:
+languages.  To use them, include the language-specific init file.
+For example, to use English notes names, add @code{\include
+"english.ly"} to the top of the input file.  The available
+language files and the note names they define are:
 
 @cindex note names, other languages
+@cindex pitch names, other languages
 
 @smallexample
 @multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
@@ -378,18 +390,30 @@ define are:
 @end multitable
 @end smallexample
 
+In Dutch, @code{aes} is contracted to @code{as}, but both forms
+are accepted in LilyPond.  Similarly, both @code{es} and
+@code{ees} are accepted.  This also applies to
+@code{aeses}@tie{}/@tie{}@code{ases} and
+@code{eeses}@tie{}/@tie{}@code{eses}.  Sometimes only these
+contracted names are defined in the corresponding language files.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+a2 as e es a ases e eses
+@end lilypond
+
+
 Some music uses microtones whose alterations are fractions of a
-@q{normal} sharp or flat.  The note names for quartertones defined
-in the various language files are listed in the following table.
-Here the prefixes @notation{semi-} and @notation{sesqui-} mean
-@q{half} and @q{one and a half}, respectively.  For the other
+@q{normal} sharp or flat.  The note names for quarter-tones
+defined in the various language files are listed in the following
+table.  Here the prefixes @notation{semi-} and @notation{sesqui-}
+mean @q{half} and @q{one and a half}, respectively.  For the other
 languages, no special names have been defined yet.
 
 @smallexample
 @multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ississ/-isis} {-ississ/-isis}
 @headitem Language
   @tab Note names
-  @tab semi- @tab semi- @tab sesqui- @tab sesqui-
+  @tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
 
 @item nederlands.ly
   @tab c d e f g a bes b
@@ -409,27 +433,12 @@ languages, no special names have been defined yet.
 @end multitable
 @end smallexample
 
-In Dutch, @code{aes} is contracted to @code{as}, but both forms
-are accepted in LilyPond.  Similarly, both @code{es} and
-@code{ees} are accepted.  This also applies to
-@code{aeses}@tie{}/@tie{}@code{ases} and
-@code{eeses}@tie{}/@tie{}@code{eses}.  Sometimes only these
-contracted names are defined in the corresponding language files.
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-a2 as e es a ases e eses
-@end lilypond
-
-In some languages such as Norwegian and Swedish, the usual
-spelling for accidentals is a double @q{s} such as in @code{ciss}
-or @code{cess}.  For both historical reasons and a greater
-simplicity, LilyPond uses a single @q{s} for all these languages.
 
 @seealso
 
-Music Glossary: @lsrdir{Pitch names}.
+Music Glossary: @rglos{Pitch names}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @node Changing multiple pitches
@@ -443,41 +452,38 @@ This section discusses how to modify pitches.
 @end menu
 
 @node Octave checks
-@unnumberedsubsubsec Octave checks
+@subsubsection Octave checks
 
 @cindex octave correction
 @cindex octave check
 @funindex =
 @funindex \octave
 
-@c FIXME: bad descriptions.
 In relative mode, it is easy to forget an octave changing mark.
 Octave checks make such errors easier to find by displaying a
 warning and correcting the octave if a note is found in an
 unexpected octave.
 
-To check the octave of a specific note, add
-@code{=}@tie{}@var{quotes} after the pitch.  The @var{quotes}
-indicate what its absolute octave should be.  This example will
-generate a warning (and change the pitch) because the second note
-is the absolute octave @code{d''} instead of @code{d'} as
-indicated by the octave correction.
+To check the octave of a specific note, specify the absolute
+octave after the @code{=}@tie{}symbol.  This example will generate
+a warning (and change the pitch) because the second note is the
+absolute octave @code{d''} instead of @code{d'} as indicated by
+the octave correction.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \relative c'' {
-  c2 d='
+  c2 d='4 d
   e2 f
 }
 @end lilypond
 
-The octave of pitches may also be checked with the
-@code{\octave}@tie{}@var{controlpitch} command.
-@var{controlpitch} is specified in absolute mode.  This checks
-that the interval between the previous note and the
-@var{contorlpitch} is within a fourth (the normal calculation of
-relative mode).  If this check fails, a warning is printed, but
-the previous note is not changed.  Future notes are relative to
-the @var{controlpitch}.
+The octave of notes may also be checked with the
+@code{\octave}@tie{}@var{controlpitch} command.  @var{controlpitch} is
+specified in absolute mode.  This checks that the interval between the
+previous note and the @var{controlpitch} is within a fourth (i.e. the
+normal calculation of relative mode).  If this check fails, a warning
+is printed, but the previous note is not changed.  Future notes are
+relative to the @var{controlpitch}.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \relative c'' {
@@ -487,8 +493,8 @@ the @var{controlpitch}.
 }
 @end lilypond
 
-Compare these two bars.  The first and third @code{\octave} check
-fail, but the second ones passes without fail.
+Compare the two bars below.  The first and third @code{\octave}
+check fail, but the second one does not fail.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \relative c'' {
@@ -505,16 +511,16 @@ fail, but the second ones passes without fail.
 @end lilypond
 
 
-
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @node Transpose
-@unnumberedsubsubsec Transpose
+@subsubsection Transpose
 
 @cindex transpose
+@cindex transposition
 @cindex transposition of pitches
 @funindex \transpose
 
@@ -529,7 +535,8 @@ syntax is
 This means that @var{musicexpr} is transposed by the interval
 between the pitches @var{frompitch} and @var{topitch}: any note
 with pitch @var{frompitch} is changed to @var{topitch} and any
-other note is transposed by the same interval.
+other note is transposed by the same interval.  Both pitches are
+entered in absolute mode.
 
 Consider a piece written in the key of D-major.  It can be
 transposed up to E-major; note that the key signature is
@@ -565,7 +572,7 @@ key signature will be printed.
 
 @code{\transpose} distinguishes between enharmonic pitches: both
 @code{\transpose c cis} or @code{\transpose c des} will transpose
-up half a tone.  The first version will print sharps and the notes
+up a semitone.  The first version will print sharps and the notes
 will remain on the same scale step, the second version will print
 flats on the scale step above.
 
@@ -585,8 +592,8 @@ show how to enter pitches in C (or @notation{concert pitch}) and
 typeset them for a transposing instrument, but the opposite is
 also possible if you for example have a set of instrumental parts
 and want to print a conductor's score.  For example, when entering
-music for a B-flat trumpet which begins on a notated E (concert
-D), one would write:
+music for a B-flat trumpet that begins on a notated E (concert D),
+one would write:
 
 @example
 musicInBflat = @{ e4 @dots{} @}
@@ -617,16 +624,21 @@ see @ref{Instrument transpositions}.
 
 Notation Reference: @ref{Instrument transpositions}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{TransposedMusic}.
 
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
+
 @refbugs
 
-If you want to use both @code{\transpose} and @code{\relative},
-you must put @code{\transpose} outside of @code{\relative}, since
-@code{\relative} will have no effect on music that appears inside
-a @code{\transpose}.
+
+The relative conversion will not affect @code{\transpose},
+@code{\chordmode} or @code{\relative} sections in its argument.
+To use relative mode within transposed music, an additional
+@code{\relative} must be placed inside @code{\transpose}.
 
 
 @node Displaying pitches
@@ -645,10 +657,9 @@ This section discusses how to alter the output of pitches.
 
 
 @node Clef
-@unnumberedsubsubsec Clef
+@subsubsection Clef
 
 @funindex \clef
-
 @cindex G clef
 @cindex C clef
 @cindex F clef
@@ -663,8 +674,26 @@ This section discusses how to alter the output of pitches.
 @cindex baritone clef
 @cindex varbaritone clef
 @cindex subbass clef
-
-The clef is set with the @code{\clef} @var{clefname} command:
+@cindex clef
+@cindex ancient clef
+@cindex clef, ancient
+@cindex clef, G
+@cindex clef, C
+@cindex clef, F
+@cindex clef, treble
+@cindex clef, violin 
+@cindex clef, alto 
+@cindex clef, tenor
+@cindex clef, bass 
+@cindex clef, french 
+@cindex clef, soprano 
+@cindex clef, mezzosoprano 
+@cindex clef, baritone 
+@cindex clef, varbaritone 
+@cindex subbass clef, subbass 
+
+The clef is set with the @code{\clef} @var{clefname} command.
+Middle C is shown in every example.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \clef treble
@@ -677,49 +706,48 @@ c2 c
 c2 c
 @end lilypond
 
-Supported clefs include:
-
-@multitable @columnfractions .4 .6
-@headitem Clef @tab Position
-@item @code{treble, violin, G, G2} @tab
-G clef (g') on 2nd line
-@item @code{alto, C} @tab
-C clef (c') on 3rd line
-@item @code{tenor} @tab
-C clef (c') on 4th line
-@item @code{bass, F} @tab
-F clef (f) on 4th line
-@item @code{french} @tab
-G clef (g') on 1st line, so-called French violin clef
-@item @code{soprano} @tab
-C clef (c') on 1st line
-@item @code{mezzosoprano} @tab
-C clef (c') on 2nd line
-@item @code{baritone} @tab
-C clef (c') on 5th line
-@item @code{varbaritone} @tab
-F clef (f) on 3rd line
-@item @code{subbass} @tab
-F clef (f) on 5th line
-@item @code{percussion} @tab
-percussion clef
-@item @code{tab} @tab
-tablature clef
-@end multitable
+Other clefs include:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef french
+c2 c
+\clef soprano
+c2 c
+\clef mezzosoprano
+c2 c
+\clef baritone
+c2 c
+
+\break
+
+\clef varbaritone
+c2 c
+\clef subbass
+c2 c
+\clef percussion
+c2 c
+\clef tab
+c2 c
+@end lilypond
 
 Further supported clefs are described under @ref{Ancient clefs}.
 
+@cindex transposing clefs
+@cindex clef, transposing
+@cindex octave transposition
+
 By adding @code{_8} or @code{^8} to the clef name, the clef is
 transposed one octave down or up, respectively, and @code{_15} and
 @code{^15} transposes by two octaves.  The argument @var{clefname}
 must be enclosed in quotes when it contains underscores or digits.
-For example,
 
 @cindex choral tenor clef
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=1]
-\clef "treble_8" c1
-\clef "bass^15" c1
+\clef "treble_8"
+c2 c
+\clef "bass^15"
+c2 c
 @end lilypond
 
 
@@ -733,13 +761,13 @@ For example,
 
 Notation Reference: @ref{Ancient clefs}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{Clef}.
 
 
 @node Key signature
-@unnumberedsubsubsec Key signature
+@subsubsection Key signature
 
 @cindex key signature
 @funindex \key
@@ -760,7 +788,6 @@ is done with the @code{\key} command:
 \key @var{pitch} @var{mode}
 @end example
 
-@funindex \minor
 @funindex \major
 @funindex \minor
 @funindex \ionian
@@ -771,13 +798,14 @@ is done with the @code{\key} command:
 @funindex \phrygian
 @funindex \dorian
 @cindex church modes
+@cindex modes
 
 Here, @var{mode} should be @code{\major} or @code{\minor} to get a
 key signature of @var{pitch}-major or @var{pitch}-minor,
 respectively.  You may also use the standard mode names, also
-called @q{church modes}: @code{\ionian}, @code{\locrian},
-@code{\aeolian}, @code{\mixolydian}, @code{\lydian},
-@code{\phrygian}, and @code{\dorian}.
+called @q{church modes}: @code{\ionian}, @code{\dorian},
+@code{\phrygian}, @code{\lydian}, @code{\mixolydian},
+@code{\aeolian}, and @code{\locrian}.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \key g \major
@@ -802,14 +830,14 @@ Music Glossary: @rglos{church mode}, @rglos{scordatura}.
 
 Learning Manual: @rlearning{Accidentals and key signatures}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{KeyCancellation},
 @internalsref{KeySignature}, @internalsref{Key_engraver}.
 
 
 @node Ottava brackets
-@unnumberedsubsubsec Ottava brackets
+@subsubsection Ottava brackets
 
 @cindex ottava
 @cindex 15ma
@@ -834,47 +862,28 @@ The @code{set-octavation} function also takes -1 (for 8va bassa),
 
 @commonprop
 
-@ignore
-Internally the function sets the properties @code{ottavation}
-(e.g., to @code{"8va"} or @code{"8vb"}) and
-@code{middleCPosition}.  To override the text of the bracket, set
-@code{ottavation} after invoking @code{set-octavation}, i.e.,
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-#(set-octavation 1)
-\set Staff.ottavation = #"8"
-c'
-@end lilypond
-@end ignore
-
-@c FIXME: add this
-@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {}
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ottava-text.ly}
 
 
 @seealso
 
-Music Glossary: @rglos{ottava}.
+Music Glossary: @rglos{octavation}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{OttavaBracket}.
 
 
-@refbugs
-
-@c FIXME: This should have been fixed by Joe.
-@c If it hasn't, we should mention the appropriate
-@c workaround (there is a snippet in the LSR) -vv
-@code{set-octavation} will get confused when clef changes happen
-during an octavation bracket.
-
 
 @node Instrument transpositions
-@unnumberedsubsubsec Instrument transpositions
+@subsubsection Instrument transpositions
 
 @cindex transposition, MIDI
 @cindex transposition, instrument
+@cindex transposing instrument
+@cindex MIDI
+@funindex \transposition
 
 When typesetting scores that involve transposing instruments, some
 parts can be typeset in a different pitch than the
@@ -890,9 +899,12 @@ other voices}.
 
 The pitch to use for @code{\transposition} should correspond to
 the real sound heard when a@tie{}@code{c'} written on the staff is
-played by the transposing instrument.  @code{\transposition}
-should @emph{only} be used if the pitches are @emph{not} being
-entered in concert pitch.
+played by the transposing instrument.  This pitch is entered in
+absolute mode, so an instrument that produces a real sound which
+is one tone higher than the printed music should use
+@code{\transposition d'}.  @code{\transposition} should
+@emph{only} be used if the pitches are @emph{not} being entered in
+concert pitch.
 
 Here are a few notes for violin and B-flat clarinet where the
 parts have been entered using the notes and key as they appear in
@@ -935,7 +947,7 @@ clarinet.
 \key a \major
 \transposition a
 c d e f
-\fatText
+\textLengthOn
 r1^\markup{Switch to B\flat clarinet}
 
 \key bes \major
@@ -946,22 +958,26 @@ c2 g
 
 @seealso
 
-Music Glossary: @rglos{concert pitch},
-@rglos{transposing instrument}.
+Music Glossary: @rglos{concert pitch}, @rglos{transposing instrument}.
 
 Notation Reference: @ref{Quoting other voices}, @ref{Transpose}.
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @node Automatic accidentals
-@unnumberedsubsubsec Automatic accidentals
-@cindex automatic accidentals
+@subsubsection Automatic accidentals
 
+@cindex automatic accidentals
+@cindex accidentals, automatic
+@cindex accidentals
+@cindex accidental style
+@cindex default accidental style
+@cindex accidental style, default
 @funindex set-accidental-style
 
 There are many different conventions on how to typeset
-accidentals.  LilyPond provides a function to specify which such
+accidentals.  LilyPond provides a function to specify which
 accidental style to use.  This function is called as follows
 
 @example
@@ -974,7 +990,7 @@ accidental style to use.  This function is called as follows
 The accidental style applies to the current @code{Staff} by
 default (with the exception of the styles @code{piano} and
 @code{piano-cautionary}, which are explained below).  Optionally,
-the function can take a second argument which determines in which
+the function can take a second argument that determines in which
 scope the style should be changed.  For example, to use the same
 style in all staves of the current @code{StaffGroup}, use
 
@@ -1171,11 +1187,13 @@ musicB = {
 @end lilypond
 
 @item modern
+@cindex accidentals, modern style
+@cindex modern style accidentals
 @funindex modern style accidentals
 
 This rule corresponds to the common practice in the twentieth
 century.  It prints the same accidentals as @code{default}, with
-two exceptions which serve to avoid ambiguity: after temporary
+two exceptions that serve to avoid ambiguity: after temporary
 accidentals, cancellation marks are printed also in the following
 measure (for notes in the same octave) and, in the same measure,
 for notes in other octaves.  Hence the naturals before
@@ -1229,6 +1247,11 @@ musicB = {
 @end lilypond
 
 @item modern-cautionary
+@cindex accidentals, modern cautionary style
+@cindex modern style accidentals
+@cindex modern style cautionary accidentals
+@cindex modern accidental style
+@cindex modern cautionary accidental style
 @funindex modern-cautionary
 
 This rule is similar to @code{modern}, but the @q{extra}
@@ -1286,6 +1309,10 @@ musicB = {
 @end lilypond
 
 @item modern-voice
+@cindex accidentals, multivoice
+@cindex accidentals, modern
+@cindex modern accidentals
+@cindex multivoice accidentals
 @funindex modern-voice
 
 This rule is used for multivoice accidentals to be read both by
@@ -1622,7 +1649,7 @@ musicB = {
 
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{Accidental_engraver},
 @internalsref{Accidental}, @internalsref{AccidentalSuggestion},
@@ -1643,7 +1670,7 @@ problematic notes.
 
 
 @node Ambitus
-@unnumberedsubsubsec Ambitus
+@subsubsection Ambitus
 @cindex ambitus
 
 The term @notation{ambitus} or @notation{ambit} denotes a range of
@@ -1654,7 +1681,7 @@ determine if it matches their capabilities.
 
 Ambits are denoted at the beginning of a piece near the initial
 clef.  The range is graphically specified by two note heads that
-represent the minimum and maximum pitch.  Accidentals are only
+represent the lowest and highest pitches.  Accidentals are only
 printed if they are not part of the key signature.
 
 @lilypond[verbatim,quote,ragged-right]
@@ -1682,7 +1709,7 @@ printed if they are not part of the key signature.
 
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{Ambitus},
 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
@@ -1707,7 +1734,7 @@ ambitus.
 @end menu
 
 @node Special note heads
-@unnumberedsubsubsec Special note heads
+@subsubsection Special note heads
 
 @cindex note heads, special
 
@@ -1727,12 +1754,12 @@ e d <c f\harmonic> <d a'\harmonic>
 @end lilypond
 
 @noindent
-To see all note head styles, please see @ref{Note head styles}.
+To see all note head styles, see @ref{Note head styles}.
 
 
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Notation Reference: @ref{Note head styles}.
 
@@ -1741,7 +1768,7 @@ Internals Reference: @internalsref{NoteHead},
 
 
 @node Easy notation note heads
-@unnumberedsubsubsec Easy notation note heads
+@subsubsection Easy notation note heads
 
 @cindex note heads, practice
 @cindex note heads, easy notation
@@ -1749,38 +1776,42 @@ Internals Reference: @internalsref{NoteHead},
 @cindex Hal Leonard
 
 The @q{easy play} note head includes a note name inside the head.
-It is used in music for beginners
+It is used in music for beginners.
 
 @lilypond[verbatim,quote,ragged-right]
 #(set-global-staff-size 26)
 \relative c' {
-  \setEasyHeads
+  \easyHeadsOn
   c2 e4 f
   g1
+  \easyHeadsOff
+  c,1
 }
 @end lilypond
 
-The command @code{\setEasyHeads} overrides settings for the
-@code{NoteHead} object.  To make the letters readable, it
-has to be printed in a large font size.  To print with a larger
-font, see @ref{Setting the staff size}.
+The command @code{\easyHeadsOn} overrides settings for the
+@code{NoteHead} object.  These settings can be reverted with the command
+@code{\easyHeadsOff}. To make the letters readable, it has to be printed
+in a large font size.  To print with a larger font, see @ref{Setting the
+staff size}.
 
 @refcommands
 
-@funindex \setEasyHeads
-@code{\setEasyHeads}
+@funindex \easyHeadsOn
+@funindex \easyHeadsOff
+@code{\easyHeadsOn}, @code{\easyHeadsOff}
 
 @seealso
 
 Notation Reference: @ref{Setting the staff size}.
 
-Snippets: @lsrdir{Pitches},
+Snippets: @lsrdir{Pitches,Pitches},
 
 Internals Reference: @internalsref{NoteHead}.
 
 
 @node Shape note heads
-@unnumberedsubsubsec Shape note heads
+@subsubsection Shape note heads
 
 @cindex note heads, shape
 @funindex \key
@@ -1813,11 +1844,11 @@ the base of the scale is determined by the @code{\key} command.
 
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 
 @node Improvisation
-@unnumberedsubsubsec Improvisation
+@subsubsection Improvisation
 
 @cindex improvisation
 @cindex slashed note heads
@@ -1842,9 +1873,17 @@ rhythm.  Such note heads can be created:
 }
 @end lilypond
 
+
+@refcommands
+
+@funindex \improvisationOn
+@funindex \improvisationOff
+
+@code{\improvisationOn}, @code{\improvisationOff}
+
 @seealso
 
-Snippets: @lsrdir{Pitches}.
+Snippets: @lsrdir{Pitches,Pitches}.
 
 Internals Reference: @internalsref{Pitch_squash_engraver},
 @internalsref{Voice}.
index 80bb6cc8b1096a9783961ddeff49b177233884f1..481394249972e99f936dffd7f963e70e4017a89f 100644 (file)
@@ -31,21 +31,29 @@ start-to-finish.
 
 * Notation Reference: a (hopefully complete) description of
   LilyPond input notation.  Some material from here may be
-  duplicated in the Learning Manual (for teaching).  The material is
-  presented in an approximate order of increasing difficulty, but
-  the goal is _not_ to provide a step-by-step learning environment.
-  For example, all material under "Pitches" should remain in that
-  section, even though microtonal accidentals may seem more advanced
-  than info about clefs or time signatures -- "Pitches" should be a
-  one-stop reference about the pitch portion of notes.  This section
-  is written in formal technical writing style.
-
-Users are not expected to read this manual from start to finish.
-However, 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, you should
-assume that users know what the notation means; explaining musical
-concepts happens in the Music Glossary.
+  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
+mention that "dynamics (or whatever) may be placed above or below
+the staff, for details see @ref{Up and down}".
+
+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.
 
 
 * Application Usage: information about using the program lilypond
index 1a7abed3796b169f9a391d71ae03d5098bcfb95d..bc2971e539c5d872b9a302ab6cc5a932c0679eca 100644 (file)
@@ -33,7 +33,7 @@ Blah blah
 
 
 @node Repeat syntax
-@unnumberedsubsubsec Repeat syntax
+@subsubsection Repeat syntax
 
 @cindex repeats
 
@@ -89,7 +89,7 @@ is assumed to be played more than once.
 
 
 @node Normal repeats
-@unnumberedsubsubsec Normal repeats
+@subsubsection Normal repeats
 
 @cindex volta
 @cindex prima volta
@@ -161,7 +161,7 @@ and brackets for the repeat are thus normally only printed over
 the topmost staff.  This can be adjusted by adding
 @code{Volta_engraver} to the Staff context where you want the
 brackets to appear; see @ref{Modifying context plug-ins} and
-@lsr{repeats,volta@/-multi@/-staff@/.ly}.
+@c @lsr{repeats,volta@/-multi@/-staff@/.ly}.
 
 @lilypond[verbatim,ragged-right,quote]
 \score { <<
@@ -186,7 +186,7 @@ see @ref{Bar lines} for more information.
 
 @seealso
 
-Snippets: @lsrdir{repeats}
+Snippets: @lsrdir{Repeats,Repeats}
 
 Internals Reference: @internalsref{VoltaBracket},
 @internalsref{RepeatedMusic},
@@ -223,7 +223,7 @@ repeated.
 
 
 @node Manual repeat commands
-@unnumberedsubsubsec Manual repeat commands
+@subsubsection Manual repeat commands
 
 @funindex repeatCommands
 
@@ -267,7 +267,7 @@ c4 c4
 
 Notation Reference: @ref{Bar lines}.
 
-Snippets: @lsrdir{repeats}
+Snippets: @lsrdir{Repeats,Repeats}
 
 Internals Reference: @internalsref{VoltaBracket},
 @internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
@@ -283,7 +283,7 @@ and @internalsref{UnfoldedRepeatedMusic}.
 @end menu
 
 @node Tremolo repeats
-@unnumberedsubsubsec Tremolo repeats
+@subsubsection Tremolo repeats
 
 @cindex tremolo beams
 
@@ -346,13 +346,13 @@ Notation Reference: @ref{Tremolo repeats}.
 Internals Reference: @internalsref{Beam},
 @internalsref{StemTremolo}.
 
-Snippets: @lsrdir{repeats}
+Snippets: @lsrdir{Repeats,Repeats}
 
 Elsewhere: @internalsref{StemTremolo}.
 
 
 @node Measure repeats
-@unnumberedsubsubsec Measure repeats
+@subsubsection Measure repeats
 
 @cindex percent repeats
 @cindex measure repeats
@@ -396,7 +396,7 @@ R1
 
 @seealso
 
-Snippets: @lsrdir{repeats}
+Snippets: @lsrdir{Repeats,Repeats}
 
 Internals Reference: @internalsref{RepeatSlash},
 @internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
index 238f41e5e2120813bcea69a9bcbb6471b40a0562..0b00aa569077248d1e06b8705ac909de84f7f6ae 100644 (file)
@@ -12,7 +12,7 @@
 @lilypondfile[ragged-right,line-width=16\cm,staffsize=14,quote]
 {rhythms-headword.ly}
 
-This section discusses rhythms, durations, and bars.
+This section discusses rhythms, rests, durations, beaming and bars.
 
 @menu
 * Writing rhythms::             
@@ -35,21 +35,22 @@ This section discusses rhythms, durations, and bars.
 @end menu
 
 @node Durations
-@unnumberedsubsubsec Durations
+@subsubsection Durations
+
+@cindex durations, of notes
+@cindex note durations
 
-@cindex duration
-@cindex beams, automatic
 @funindex \longa
 @funindex \breve
 @funindex \maxima
 
-When entering notes, durations are designated by numbers and dots:
-durations are entered as their reciprocal values.  For example, a
+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),
-while a half note is entered using a @code{2} (since it is a 1/2
+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.  Note
-durations as short as 64th notes may be specified.  Shorter values
+@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.
 
 @c Two 64th notes are needed to obtain beams
@@ -60,8 +61,7 @@ c4 c8 c16 c32 c64 c64
 @end lilypond
 
 @noindent
-and the same durations with automatic beaming turned off 
-see @ref{Automatic beams}:
+Here are the same durations with automatic beaming turned off.
 
 @c not strictly "writing rhythms"; more of a "displaying" thing,
 @c but it's ok here.  -gp
@@ -72,7 +72,11 @@ c\longa c\breve c1 c2
 c4 c8 c16 c32 c64 c64
 @end lilypond
 
-If the duration is omitted then it is set to the previously
+A note with the duration of a quadruple breve may be entered with
+@code{\maxima}, but this is supported only within ancient music
+notation.  For details, see @ref{Ancient notation}.
+
+If the duration is omitted, it is set to the previously
 entered duration.  The default for the first note is a quarter
 note.
 
@@ -80,25 +84,36 @@ note.
 a a a2 a a4 a a1 a
 @end lilypond
 
+@cindex notes, dotted
+@cindex dotted notes
 
 @funindex .
 
-To obtain dotted note lengths, simply add a dot (@code{.}) to the
-number.  Double-dotted notes are produced in a similar way.
+To obtain dotted note lengths, place a dot (@code{.}) after the
+duration.  Double-dotted notes are specified by appending two
+dots, and so on.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 a4 b c4. b8 a4. b4.. c8.
 @end lilypond
 
-Some durations cannot be entered using only binary durations
-and dots, and can only be represented by tying two or more 
-notes together.  Tied notes are covered in @ref{Ties}.
+Some durations cannot be represented with just binary durations
+and dots; they can be represented only by tying two or more
+notes together.  For details, see @ref{Ties}.
+
+For ways of specifying durations for the syllables of lyrics and
+ways of aligning lyrics to notes, see @ref{Vocal music}.
+
+Optionally, notes can be spaced strictly proportionately to their
+duration.  For details of this and other settings which control
+proportional notation, see @ref{Proportional notation}.
 
 @refcommands
 
 Dots are normally moved up to avoid staff lines, except in
 polyphonic situations.  The following commands may be used to
-force a particular direction manually:
+force a particular direction manually, and to return to the
+default behaviour:
 
 @funindex \dotsUp
 @code{\dotsUp},
@@ -107,26 +122,17 @@ force a particular direction manually:
 @funindex \dotsNeutral
 @code{\dotsNeutral}.
 
-For ways of specifying durations for the syllables of lyrics and
-ways of aligning lyrics to notes see @ref{Vocal music}.
-
-A note with the duration of a quadruple breve may be entered with
-@code{\maxima}, but this is supported only within ancient music
-notation; see @ref{Ancient notation}.
-
-Optionally, notes can be spaced proportionately to their duration.
-For details of this and other settings which control proportional
-notation see @ref{Proportional notation}.
-
 
 @seealso
 
-Music Glossary: @rglos{breve}, @rglos{longa}.
+Music Glossary: @rglos{breve}, @rglos{longa}, @rglos{note value}
+@rglos{Duration names notes and rests}.
 
-Notation Reference:@ref{Automatic beams}, @ref{Ties}, @ref{Writing rests}, @ref{Vocal music},
+Notation Reference: @ref{Automatic beams}, @ref{Ties},
+@ref{Writing rhythms}, @ref{Writing rests}, @ref{Vocal music},
 @ref{Ancient notation}, @ref{Proportional notation}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{Dots},
 @internalsref{DotColumn}.
@@ -134,14 +140,14 @@ Internals Reference: @internalsref{Dots},
 
 @refbugs
 
-@c duplicated in Durations and Rests.  -gp
+@c Deliberately duplicated in Durations and Rests.  -gp
 There is no fundamental limit to rest durations (both in terms of
-longest and shortest), but the number of glyphs is limited: there
-are rests from 128th to maxima (8 x whole).
+longest and shortest), but the number of glyphs is limited:
+rests from 128th to maxima (8 x whole) may be printed.
 
 
 @node Tuplets
-@unnumberedsubsubsec Tuplets
+@subsubsection Tuplets
 
 @cindex tuplets
 @cindex triplets
@@ -186,10 +192,13 @@ Tuplets may be nested; for example,
 
 @commonprop
 
+@cindex tuplet formatting
+@cindex triplet formatting
+
 @funindex tupletNumberFormatFunction
 @funindex tupletSpannerDuration
-@cindex tuplet formatting
 
+@c Sent to Snippet 5 Feb 08
 The property @code{tupletSpannerDuration} specifies how long each
 bracket should last.  With this, you can make lots of tuplets
 while typing @code{\times} only once, thus saving lots of typing.
@@ -207,14 +216,12 @@ For more information about @code{make-moment}, see
 
 @funindex TupletNumber
 
-The format of the number is determined by the property @code{text}
-in @code{TupletNumber}.  The default prints only the denominator,
-but if the property is set with @code{\override
-TupletNumber #'text = #tuplet-number::calc-fraction-text},
-@var{num}:@var{den} will be printed instead.
+By default, only the numerator of the tuplet number
+is printed over the tuplet bracket, i.e. the denominator
+of the argument to the @code{\times} command.  Alternatively,
+@var{num}:@var{den} of the tuplet number may be printed, or
+the tuplet number may be suppressed altogether.
 
-To print tuplets without tuplet numbers, use
-@code{\override TupletNumber #'transparent = ##t}:
 
 @lilypond[quote,fragment,relative=2,ragged-right,verbatim]
 \times 2/3 { c8 c c } \times 2/3 { c8 c c }
@@ -224,14 +231,57 @@ To print tuplets without tuplet numbers, use
 \times 2/3 { c8 c c }
 @end lilypond
 
-To change the appearance of nested tuplets beginning at the same
-music moment individually, the @code{\tweak} function must be used
-(see @ref{Objects connected to the input}).  In the following
-example, @code{\tweak} specifies fraction text for the outer
-@code{TupletNumber} and denominator text for the
-@code{TupletNumber} of the first of the three inner tuplets.
+@c TODO Add snippet to show this
+Tuplets may extend over bar lines, but they will inhibit a
+line break unless the @code{Forbid_line_break_engraver} is
+removed from the @code{Voice context}.
 
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+@subheading Modifying nested tuplets
+
+@cindex tuplets, nested
+@cindex triplets, nested
+@cindex bracket, tuplet
+@cindex tuplet bracket
+@cindex triplet bracket
+@funindex TupletBracket
+
+If nested tuplets do not begin at the same moment their
+appearance may be modified in the usual way with 
+@code{\override} commands:
+
+@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
+
+However, if the nested tuplets begin at the same musical moment,
+@code{\override} commands cannot be applied to just one of them
+-- they apply to both.  So to change the appearance of nested 
+tuplets beginning at the same musical moment individually, the 
+@code{\tweak} function must be used (see @ref{Objects connected 
+to the input}).  The @code{\tweak} function is applied to the
+following @code{\times} command as it appears in the input stream,
+and so can distinguish between separate @code{\times} commands
+even if their tuplets begin at the same musical moment.
+
+In this example, the @code{\tweak} command is used to specify 
+fraction text for the outer @code{TupletNumber} and denominator 
+text for the @code{TupletNumber} of the first of the three 
+inner tuplets.
+
+@c NOTE Tuplet brackets collide if notes are high on staff
+@c so use relative=1 until this is fixed
+@c See issue 509
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \tweak #'text #tuplet-number::calc-fraction-text
 \times 4/3 {
    \tweak #'text #tuplet-number::calc-denominator-text
@@ -241,23 +291,16 @@ example, @code{\tweak} specifies fraction text for the outer
 }
 @end lilypond
 
-@cindex bracket, tuplet
-@funindex TupletBracket
-
-@c FIXME: after LM 6 Tweaks includes \tweak info, look at this.-gp
-@c It *should* be explained why \tweak must be used here, and why
-@c \override doesn't work. I've made an attempt, but I'm not sure
-@c if it is factually correct to say that \tweak must be used.
 In the next example, @code{\tweak} and @code{\override} work
 together to specify @code{TupletBracket} direction.  The first
 @code{\tweak} positions the @code{TupletBracket} of the outer
 tuplet above the staff.  The second @code{\tweak} positions the
 @code{TupletBracket} of the first of the three inner tuplets below
-the staff.  Note that the @code{\tweak} function affects only
-events that begin at the same music moment: the outer tuplet and
-the first of the three inner tuplets.  To position the
-@code{TupletBrackets} of the second and third of the inner tuplets
-below the staff, we use @code{\override} in the usual way.
+the staff.  Note that the @code{\tweak} command needs to be used
+only for events that begin at the same music moment: the outer 
+tuplet and the first of the three inner tuplets.  To position the
+@code{TupletBracket}s of the second and third of the inner tuplets
+below the staff, we can use @code{\override} in the usual way.
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \tweak #'text #tuplet-number::calc-fraction-text
@@ -271,15 +314,34 @@ below the staff, we use @code{\override} in the usual way.
 }
 @end lilypond
 
-Tuplet brackets can be made to run to prefatory matter or the next
-note:
+@subheading Modifying tuplet bracket length
+
+@cindex tuplet bracket length
+@cindex triplet bracket length
+@cindex bracket length, tuplets
+@funindex tupletFullLength
+@funindex tupletFullLengthNote
+
+Tuplet brackets can be made to run to prefatory matter or the 
+next note.
+Default tuplet brackets end at the right edge of the final note
+of the tuplet; full-length tuplet brackets extend farther to the
+right, either to cover all the non-rhythmic notation up to the
+following note, or to cover only the whitespace before the next 
+item of notation, be that a clef, time signature, key signature,
+or another note.  The example shows how to switch tuplets to
+full length mode and how to modify what material they cover.
+
 
 @lilypond[ragged-right,verbatim,quote]
 \new RhythmicStaff {
+  % Set tuplets to be extendable ..
   \set tupletFullLength = ##t
+  % .. to cover all items up to the next note
   \set tupletFullLengthNote = ##t
   \time 2/4
   \times 2/3 { c4 c c }
+  % .. or to cover just whitespace
   \set tupletFullLengthNote = ##f
   \time 4/4
   \times 4/5 { c4 c1 }
@@ -288,26 +350,30 @@ note:
 }
 @end lilypond
 
+@subheading Compressing music
+
+@cindex compressing music
 @funindex \compressMusic
-@funindex \times
 
 @code{\compressMusic} works similarly to \times, but does not
-create a tuplet bracket; see @ref{Polymetric notation}.
-
+create a tuplet bracket.  One application is in polymetric
+notation, as shown in the following example.  See 
+@ref{Polymetric notation}.
 
-@refbugs
+@c not added yet. -gp
+@c @lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote]
+@c {printing-music-with-different-time-signatures.ly}
 
-Tuplets which cross bar lines will prevent a line break at that
-point.
 
 @seealso
 
-Music Glossary: @rglos{tuplet}.
+Music Glossary: @rglos{triplet}, @rglos{tuplet}, 
+@rglos{polymetric}.
 
 Notation Reference: @ref{Time administration},
 @ref{Objects connected to the input}, @ref{Polymetric notation}.
 
-Snippets: @lsrdir{rhythms}.
+Snippets: @lsrdir{Rhythms,Rhythms}.
 
 Internals Reference: @internalsref{TupletBracket},
 @internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
@@ -315,7 +381,7 @@ Internals Reference: @internalsref{TupletBracket},
 
 
 @node Scaling durations
-@unnumberedsubsubsec Scaling durations
+@subsubsection Scaling durations
 
 You can alter the length of a duration by a fraction @var{N/M}
 by appending @code{*@var{N/M}} (or @code{*@var{N}} if @var{M=1}).
@@ -343,10 +409,10 @@ a multiplier.  This is useful for skipping many measures, e.g.,
 
 Notation Reference: @ref{Tuplets}, @ref{Skips}, @ref{Polymetric notation}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 @node Ties
-@unnumberedsubsubsec Ties
+@subsubsection Ties
 
 @cindex tie
 @funindex ~
@@ -439,14 +505,14 @@ c4_~ c c^~ c)
 Music Glossary: @rglos{tie},
 @c [TODO]add @rglos{laissez vibrer}. when there is a glossary entry.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference:
 @internalsref{LaissezVibrerTie}
 @internalsref{LaissezVibrerTieColumn}
 
 Example files:
-@lsr{connecting,laissez-vibrer-ties.ly}
+@c @lsr{connecting,laissez-vibrer-ties.ly}
 
 
 @commonprop
@@ -503,7 +569,7 @@ direction (1=up, -1=down).
 
 Notation Reference: @ref{Automatic note splitting}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{Tie}.
 
@@ -530,7 +596,7 @@ well-defined.  In these cases, a slur may be preferable.
 @end menu
 
 @node Rests
-@unnumberedsubsubsec Rests
+@subsubsection Rests
 @cindex rest
 @cindex maxima
 @cindex longa
@@ -575,20 +641,20 @@ a4\rest d4\rest
 
 Notation Reference: @ref{Full measure rests}.
 
-Snippets: @lsrdir{rhythms}.
+Snippets: @lsrdir{Rhythms,Rhythms}.
 
 Internals Reference: @internalsref{Rest}.
 
 
 @refbugs
 
-@c duplicated in Durations and Rests.  -gp
+@c Deliberately duplicated in Durations and Rests.  -gp
 There is no fundamental limit to rest durations (both in terms of
 longest and shortest), but the number of glyphs is limited: there
 are rests from 128th to maxima (8 x whole).
 
 @node Skips
-@unnumberedsubsubsec Skips
+@subsubsection Skips
 
 @cindex skip
 @cindex invisible rest
@@ -636,13 +702,13 @@ commands.  For example, the following results in an empty staff.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{SkipMusic}.
 
 
 @node Full measure rests
-@unnumberedsubsubsec Full measure rests
+@subsubsection Full measure rests
 
 @cindex multi measure rests
 @cindex full measure rests
@@ -756,19 +822,19 @@ Text attached to a multi-measure rest will be centered above or
 below it.  Long text attached in this way does not cause the
 measure to expand, and may collide with text in adjacent measures.
 Long text is better attached to a zero-length skip note preceding
-the rest, preceded by @code{\fatText} (turn off again with
-@code{\emptyText}), since this will cause the measure to expand to
+the rest, preceded by @code{\textLengthOn} (turn off again with
+@code{\textLengthOff}), since this will cause the measure to expand to
 accommodate the length of the text:
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \set Score.skipBars = ##t
-\fatText
+\textLengthOn
 s1*0^\markup {[MAJOR GENERAL]}
 R1*19
 s1*0^\markup {[MABEL] }
 s1*0_\markup {\italic {Cue: ... it is yours}}
 R1*30
-\emptyText
+\textLengthOff
 c4^\markup {CHORUS} d f c
 @end lilypond
 
@@ -789,7 +855,7 @@ alongside and to the left of the bar count numeral.
 Notation Reference: @ref{Durations}, @ref{Text},
 @ref{Text markup}, @ref{Text scripts}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{MultiMeasureRest}.
 
@@ -832,7 +898,7 @@ R1*4 cis cis
 @end menu
 
 @node Time signature
-@unnumberedsubsubsec Time signature
+@subsubsection Time signature
 
 @cindex time signature
 @cindex meter
@@ -926,12 +992,12 @@ rhythmically complex modern music.  In the following example, the
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{TimeSignature}, and
 @internalsref{Timing_translator}.
 
-Examples: @lsr{contemporary,compound-time-signature.ly}.
+Examples: @c @lsr{contemporary,compound-time-signature.ly}.
 
 
 @refbugs
@@ -941,7 +1007,7 @@ Automatic beaming does not use the measure grouping specified with
 
 
 @node Upbeats
-@unnumberedsubsubsec Upbeats
+@subsubsection Upbeats
 
 @cindex anacrusis
 @cindex upbeat
@@ -996,10 +1062,10 @@ occur.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 @node Unmetered music
-@unnumberedsubsubsec Unmetered music
+@subsubsection Unmetered music
 
 @cindex cadenza
 @funindex \cadenzaOn
@@ -1047,11 +1113,11 @@ to indicate where breaks can occur.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 
 @node Polymetric notation
-@unnumberedsubsubsec Polymetric notation
+@subsubsection Polymetric notation
 
 @cindex double time signatures
 @cindex signatures, polymetric
@@ -1067,7 +1133,7 @@ Double time signatures are not supported explicitly, but they can
 be faked.  In the next example, the markup for the time signature
 is created with a markup text.  This markup text is inserted in
 the @internalsref{TimeSignature} grob.  See also
-@lsr{contemporary,compound-time-signature}.
+@c @lsr{contemporary,compound-time-signature}.
 
 @lilypond[verbatim,ragged-right]
 % create 2/4 + 5/8
@@ -1183,13 +1249,13 @@ aligned vertically, but bar lines distort the regular spacing.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}, @lsr{contemporary,compound-time-signature}.
+Snippets: @lsrdir{Rhythms,Rhythms}, @c @lsr{contemporary,compound-time-signature}.
 
 Internals Reference: @internalsref{TimeSignature}, @internalsref{Timing-translator}, @internalsref{Staff}.
 
 
 @node Automatic note splitting
-@unnumberedsubsubsec Automatic note splitting
+@subsubsection Automatic note splitting
 
 Long notes which overrun bar lines can be converted automatically
 to tied notes.  This is done by replacing the
@@ -1228,7 +1294,7 @@ split rests.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{Note_heads_engraver},
 @internalsref{Completion_heads_engraver},
@@ -1249,7 +1315,7 @@ Internals Reference: @internalsref{Note_heads_engraver},
 @end menu
 
 @node Automatic beams
-@unnumberedsubsubsec Automatic beams
+@subsubsection Automatic beams
 
 By default, beams are inserted automatically:
 
@@ -1361,7 +1427,7 @@ f8 f''8 f8 f''8
 
 Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{Beam}.
 
@@ -1375,7 +1441,7 @@ Beams can collide with note heads and accidentals in other voices
 
 
 @node Setting automatic beam behavior
-@unnumberedsubsubsec Setting automatic beam behavior
+@subsubsection Setting automatic beam behavior
 
 @funindex autoBeamSettings
 @funindex (end * * * *)
@@ -1558,11 +1624,11 @@ automatic beam is still accepting notes, it is not typeset.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 
 @node Manual beams
-@unnumberedsubsubsec Manual beams
+@subsubsection Manual beams
 
 @cindex beams, manual
 
@@ -1615,7 +1681,7 @@ the group as a whole.
 @commonprop
 
 @node Feathered beams
-@unnumberedsubsubsec Feathered beams
+@subsubsection Feathered beams
 
 @cindex beams, feathered
 @funindex \featherDurations 
@@ -1669,7 +1735,7 @@ music snippets, and when numbers in the fraction are small.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 
 
@@ -1685,7 +1751,7 @@ Snippets: @lsrdir{rhythms}
 @end menu
 
 @node Bar lines
-@unnumberedsubsubsec Bar lines
+@subsubsection Bar lines
 
 @cindex bar lines
 @funindex \bar
@@ -1824,7 +1890,7 @@ with @code{\set Timing.defaultBarType = }@var{bartype}.
 Notation Reference: @ref{Line breaking}, @ref{Repeats},
 @ref{System start delimiters}.
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{BarLine} (created at
 @internalsref{Staff} level), @internalsref{SpanBar} (across
@@ -1833,7 +1899,7 @@ properties).
 
 
 @node Bar numbers
-@unnumberedsubsubsec Bar numbers
+@subsubsection Bar numbers
 
 @cindex bar numbers
 @cindex measure numbers
@@ -1966,12 +2032,10 @@ engraver from the score context.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{BarNumber}.
 
-Examples: @lsrdir{bar number}
-
 
 @refbugs
 
@@ -1996,7 +2060,7 @@ c1 c c c
 
 
 @node Bar and bar number checks
-@unnumberedsubsubsec Bar and bar number checks
+@subsubsection Bar and bar number checks
 
 @cindex bar check
 @funindex barCheckSynchronize
@@ -2065,11 +2129,11 @@ when it is processed.
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 
 @node Rehearsal marks
-@unnumberedsubsubsec Rehearsal marks
+@subsubsection Rehearsal marks
 
 @cindex rehearsal marks
 @cindex mark, rehearsal
@@ -2171,7 +2235,7 @@ For common tweaks to the positioning of rehearsal marks, see
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 This manual: @ref{The Feta font}, @ref{Text marks}.
 
@@ -2182,7 +2246,7 @@ the definition of @code{format-mark-numbers} and
 @code{format-mark-letters}.  They can be used as inspiration for
 other formatting functions.
 
-Examples: @lsr{parts,rehearsal-mark-numbers.ly}
+Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
 
 
 @node Special rhythmic concerns
@@ -2196,7 +2260,7 @@ Examples: @lsr{parts,rehearsal-mark-numbers.ly}
 @end menu
 
 @node Grace notes
-@unnumberedsubsubsec Grace notes
+@subsubsection Grace notes
 
 @funindex \grace
 @cindex ornaments
@@ -2359,7 +2423,7 @@ Music Glossary:
 @rglos{acciaccatura},
 @rglos{appoggiatura}
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{GraceMusic}.
 
@@ -2395,7 +2459,7 @@ expressions.  Nesting or juxtaposing grace sections is not
 supported, and might produce crashes or other errors.
 
 @node Aligning to cadenzas
-@unnumberedsubsubsec Aligning to cadenzas
+@subsubsection Aligning to cadenzas
 
 @cindex cadenza
 @cindex cadenza, aligning to
@@ -2429,11 +2493,11 @@ cadenza = \relative c' {
 
 @seealso
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 
 @node Time administration
-@unnumberedsubsubsec Time administration
+@subsubsection Time administration
 
 @cindex time administration
 @cindex timing (within the score)
@@ -2508,7 +2572,7 @@ notes.
 
 This manual: @ref{Bar numbers}, @ref{Unmetered music}
 
-Snippets: @lsrdir{rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}
 
 Internals Reference: @internalsref{Timing_translator},
 @internalsref{Score}
@@ -2517,3 +2581,6 @@ Internals Reference: @internalsref{Timing_translator},
 
 
 
+
+
+
index eafcc36d243f2d7e4b7439b9807dc6df4be4282a..bca28d52dfde5e4d59fd496c25a2b9cb3ee94ad7 100644 (file)
@@ -31,7 +31,7 @@ than one voice on the same staff.
 @end menu
 
 @node Chorded notes
-@unnumberedsubsubsec Chorded notes
+@subsubsection Chorded notes
 
 @cindex Chords
 
@@ -52,7 +52,7 @@ Music Glossary: @rglos{chord}.
 
 Notation Reference: @ref{Introducing chord names}.
 
-Snippets: @lsrdir{simultaneous}.
+Snippets: @lsrdir{Simultaneous,Simultaneous-notes}.
 
 @refbugs
 
@@ -62,7 +62,7 @@ accurately.  Use @code{<g a>8 <e a>8} instead.
 
 
 @node Clusters
-@unnumberedsubsubsec Clusters
+@subsubsection Clusters
 
 @cindex cluster
 
@@ -82,13 +82,13 @@ clusters.
 
 @seealso
 
-Snippets: @lsrdir{simultaneous}.
+Snippets: @lsrdir{Simultaneous,Simultaneous-notes}.
 
 Internals Reference: @internalsref{ClusterSpanner},
 @internalsref{ClusterSpannerBeacon},
 @internalsref{Cluster_spanner_engraver}.
 
-Examples: @lsr{contemporary,cluster@/.ly}.
+Examples: @c @lsr{contemporary,cluster@/.ly}.
 
 
 
@@ -102,7 +102,7 @@ Examples: @lsr{contemporary,cluster@/.ly}.
 @end menu
 
 @node Collision resolution
-@unnumberedsubsubsec Collision resolution
+@subsubsection Collision resolution
 
 @cindex merging notes
 @cindex note collisions
@@ -250,7 +250,7 @@ override typesetting decisions.
 
 @seealso
 
-Snippets: @lsrdir{simultaneous}.
+Snippets: @lsrdir{Simultaneous,Simultaneous-notes}.
 
 Internals Reference: the objects responsible for resolving
 collisions are @internalsref{NoteCollision} and
@@ -270,7 +270,7 @@ cluster notation (see @ref{Clusters}).
 
 
 @node Automatic part combining
-@unnumberedsubsubsec Automatic part combining
+@subsubsection Automatic part combining
 @cindex automatic part combining
 @cindex part combiner
 @cindex combining parts
@@ -353,7 +353,7 @@ has no effect on the pitches of @var{musicexpr1} and
 
 Music Glossary: @rglos{a due}.
 
-Snippets: @lsrdir{simultaneous}.
+Snippets: @lsrdir{Simultaneous,Simultaneous-notes}.
 
 Internals Reference: @internalsref{PartCombineMusic}, @internalsref{Voice}.
 
@@ -375,7 +375,7 @@ events in those will be ignored.
 
 
 @node Writing music in parallel
-@unnumberedsubsubsec Writing music in parallel
+@subsubsection Writing music in parallel
 
 @cindex Writing music in parallel
 @cindex Interleaved music
@@ -444,5 +444,5 @@ music = {
 
 @seealso
 
-Snippets: @lsrdir{simultaneous}
+Snippets: @lsrdir{Simultaneous,Simultaneous-notes}
 
index ede0209436060daafe645245c9b1f3a8a7cb8a33..2d6136abf24e1c6bdba9242ae1754c99cebb2cce 100644 (file)
@@ -35,6 +35,7 @@ or stretched.
 * Breaks::                      
 * Vertical spacing::            
 * Horizontal spacing::          
+* Page layout MOVED FROM LM::   
 @end menu
 
 
@@ -563,7 +564,7 @@ The pairs
 * Page breaking::               
 * Optimal page breaking::       
 * Optimal page turning::        
-* Minimal page breaking::        
+* Minimal page breaking::       
 * Explicit breaks::             
 * Using an extra voice for breaks::  
 @end menu
@@ -618,7 +619,7 @@ A linebreaking configuration can be saved as a @code{.ly} file
 automatically.  This allows vertical alignments to be stretched to
 fit pages in a second formatting run.  This is fairly new and
 complicated.  More details are available in
-@lsrdir{spacing}
+@c @lsrdir{spacing}
 
 @refbugs
 
@@ -1039,8 +1040,8 @@ Internals: Vertical alignment of staves is handled by the
 specifying the vertical extent are described in connection with
 the @internalsref{Axis_group_engraver}.
 
-Example files: @lsr{spacing,page-spacing.ly},
-@lsr{spacing,alignment-vertical-spacing.ly}.
+Example files: @c @lsr{spacing,page-spacing.ly},
+@c @lsr{spacing,alignment-vertical-spacing.ly}.
 
 
 @node Vertical spacing between systems
@@ -2051,3 +2052,262 @@ to break across systems and pages.  See the respective parts of the manual
 for these related settings.
 
 
+
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+@menu
+* Introduction to layout::      
+* Global sizes::                
+* Line breaks::                 
+* Page breaks::                 
+* Fitting music onto fewer pages::  
+@end menu
+
+@node Introduction to layout
+@subsection Introduction to layout
+
+The global paper layout is determined by three factors: 
+the page layout, the line breaks, and the spacing. These all 
+influence each other. The choice of spacing determines how 
+densely each system of music is set. This influences where line 
+breaks are chosen, and thus ultimately, how many pages a piece 
+of music takes.
+
+Settings which influence layout may be placed in two blocks.
+The @code{\paper @{...@}} block is placed outside any
+@code{\score @{...@}} blocks and contains settings that
+relate to the entire document.  The @code{\layout @{...@}}
+block is placed within a @code{\score @{...@}} block and
+contains settings for that particular score.  If you have
+only one @code{\score @{...@}} block the two have the same
+effect.  In general the commands shown in this section can
+be placed in either.
+
+Much more detail on the options for tweaking the laying out
+of music are contained in @ruser{Spacing issues}.
+
+@node Global sizes
+@subsection Global sizes
+
+TODO Check all these examples
+
+The default @strong{paper size} which LilyPond assumes in laying
+out the music is A4.  This may be changed in two ways:
+
+@example
+#(set-default-paper-size "a6")
+
+\paper @{
+#(set-paper-size "letter")
+@}
+@end example
+
+@noindent
+The first command sets the size of all pages. The second command
+sets the size of the pages to which the \paper block applies -- if
+the \paper block is at the top of the file, then it will apply
+to all pages.  Support for the following paper sizes is available:
+a6, a5, a4, a3, legal, letter, 11x17 (also known as tabloid).
+Setting the paper size automatically sets suitable margins and
+line length.
+
+If the symbol @code{landscape} is supplied as an argument to
+@code{set-default-paper-size}, the pages will be rotated by 90
+degrees, and wider line widths will be set correspondingly, e.g.
+
+@example
+#(set-default-paper-size "a6" 'landscape)
+@end example
+
+The default @strong{staff size} is set to 20 points.
+This may be changed in two ways:
+
+@example
+#(set-global-staff-size 14)
+
+\paper @{
+#(set-global-staff-size 16)
+@}
+@end example
+
+@noindent
+The first command sets the size in all pages. The second command
+sets the size in the pages to which the \paper block applies -\96 if
+the \paper block is at the top of the file, then it will apply
+to all pages.  All the fonts are automatically scaled to suit
+the new value of the staff size.
+
+@node Line breaks
+@subsection Line breaks
+
+Line breaks are normally determined automatically. They are chosen
+so that lines look neither cramped nor loose, and consecutive
+lines have similar density.  Occasionally you might want to
+override the automatic breaks; you can do this by specifying
+@code{\break}. This will force a line break at this point.  However,
+line breaks can only occur at the end of @q{complete} bars, i.e.,
+where there are no notes or tuplets left @q{hanging} over the bar
+line.  If you want to have a line break where there is no bar line,
+you can force an invisible bar line by entering @code{\bar ""},
+although again there must be no notes left hanging over in any of
+the staves at this point, or it will be ignored.
+
+The opposite command, @code{\noBreak}, forbids a line break at the
+bar line where it is inserted.
+
+The most basic settings influencing line spacing are @code{indent}
+and @code{line-width}. They are set in the @code{\layout} block.
+They control the indentation of the first line of music, and the
+lengths of the lines.
+
+If @code{ragged-right} is set to true in the @code{\layout} block,
+then systems end at their natural horizontal length, instead of
+being spread horizontally to fill the whole line. This is useful
+for short fragments, and for checking how tight the natural
+spacing is.
+
+The option @code{ragged-last} is similar to @code{ragged-right},
+but affects only the last line of the piece.
+
+@example
+\layout @{
+indent = #0
+line-width = #150
+ragged-last = ##t
+@}
+@end example
+
+@node Page breaks
+@subsection Page breaks
+
+The default page breaking may be overriden by inserting 
+@code{\pageBreak} or @code{\noPageBreak} commands.
+These commands are analogous to the @code{\break} and 
+@code{\noBreak} commands discused above and force or forbid 
+a page-break at the point where they are inserted.
+Of course, the @code{\pageBreak} command also forces a line break.
+Like @code{\break}, the @code{\pageBreak} command is effective only
+at the end of a @q{complete} bar as defined above.  For more
+details see @ruser{Page breaking} and following sections.
+
+There are also analogous settings to @code{ragged-right} and
+@code{ragged-last} which have the same effect on vertical spacing:
+@code{ragged-bottom} and @code{ragged-last-bottom}.  If set to
+@code{##t} the systems on all pages or just the last page
+respectively will not be justified vertically.
+
+For more details see @ruser{Vertical spacing}.
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+Sometimes you can end up with one or two staves on a second
+(or third, or fourth...) page.  This is annoying, especially
+if you look at previous pages and it looks like there is plenty
+of room left on those.
+
+When investigating layout issues, @code{annotate-spacing} is
+an invaluable tool.  This command prints the values of various
+layout spacing commands; see @ruser{Displaying spacing}, for more
+details.  From the output of @code{annotate-spacing}, we can
+see which margins we may wish to alter.
+
+Other than margins, there are a few other options to save space:
+
+@itemize
+@item
+You may tell LilyPond to place systems as close together as
+possible (to fit as many systems as possible onto a page), but
+then to space those systems out so that there is no blank
+space at the bottom of the page.
+
+@example
+\paper @{
+  between-system-padding = #0.1
+  between-system-space = #0.1
+  ragged-last-bottom = ##f
+  ragged-bottom = ##f
+@}
+@end example
+
+@item
+You may force the number of systems (i.e., if LilyPond wants
+to typeset some music with 11 systems, you could force it to
+use 10).
+
+@example
+\paper @{
+  system-count = #10
+@}
+@end example
+
+@item
+Avoid (or reduce) objects which increase the vertical size of
+a system.  For example, volta repeats (or alternate repeats)
+require extra space.  If these repeats are spread over two
+systems, they will take up more space than one system with
+the volta repeats and another system without.
+
+Another example is moving dynamics which @q{stick out} of
+a system, as in the second bar here:
+
+@lilypond[verbatim,quote,fragment,ragged-right,relative=1]
+e4 c g\f c
+\override DynamicText #'extra-offset = #'( -2.2 . 2.0)
+e4 c g\f c
+@end lilypond
+
+@item
+Alter the horizontal spacing via @code{SpacingSpanner}.  See
+@ruser{Changing horizontal spacing}, for more details.  Here's
+an example first showing the default behaviour:
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  \relative c'' {
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
+  }
+}
+@end lilypond
+
+@noindent
+and now with @code{common-shortest-duration} increased from the
+value of @code{1/4} (a quarter note is the most common in this
+example) to @code{1/2}:
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  \relative c'' {
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
+  }
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+                #'common-shortest-duration = #(ly:make-moment 1 2)
+    }
+  }
+}
+@end lilypond
+
+@noindent
+Note that this override cannot be modified dynamically, so it must
+always be placed in a @code{\context@{..@}} block so that it applies
+to the whole score.
+
+TODO Add description of using \context in this way earlier if it is
+not already anywhere  -td
+
+@end itemize
+
+
+
index cc4a830cae0d77720d31d4cc8b5b866d58704ba5..b1d47765da5a93a44bc020566946c2f4b257938f 100644 (file)
@@ -37,7 +37,7 @@ Two or more staves can be grouped vertically in a @code{GrandStaff}, a
 @end menu
 
 @node System start delimiters
-@unnumberedsubsubsec System start delimiters
+@subsubsection System start delimiters
 
 @cindex start of system
 @cindex staff, multiple
@@ -116,7 +116,7 @@ the command @code{\override Staff.BarLine #'transparent = ##t}
 
 Staff groups can be nested, using the context
 @code{InnerStaffGroup} or @code{InnerChoirStaff}; see
-@lsr{staff,staff-brackets.ly}
+@c @lsr{staff,staff-brackets.ly}
 @c snippet 137
 
 @commonprop
@@ -148,15 +148,14 @@ instantiated manually
 @c FIXME: Graham will deal with this.  -gp
 @c snippet 201
 To display a bracket even if there is only one staff, see
-@lsr{staff,display-bracket-with-only-one-staff-in-a
-system.ly}
+@c @lsr{staff,display-bracket-with-only-one-staff-in-a system.ly}
 
 @seealso
 
 Music Glossary: @rglos{brace}, @rglos{staff}, @rglos{staves}
 @rglos{bracket}.
 
-Snippets: @lsrdir{staff}
+Snippets: @lsrdir{Staff,Staff-notation}
 
 Internals Reference: @internalsref{ChoirStaff},
 @internalsref{GrandStaff}, @internalsref{StaffGroup},
@@ -166,7 +165,7 @@ Internals Reference: @internalsref{ChoirStaff},
 
 
 @node Staff symbol
-@unnumberedsubsubsec Staff symbol
+@subsubsection Staff symbol
 
 @cindex adjusting staff symbol
 
@@ -174,8 +173,8 @@ The layout object which draws the lines of a staff is called
 @code{staff symbol}.  The staff symbol may be tuned in the number,
 thickness and distance of lines, using properties.  This is
 demonstrated in the example files
-@lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and
-@lsr{staff,changing-the-staff-size.ly}.
+@c @lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and
+@c @lsr{staff,changing-the-staff-size.ly}.
 
 In addition, staves may be started and stopped at will.  This is
 done with @code{\startStaff} and @code{\stopStaff}.
@@ -238,14 +237,14 @@ In combination with Frenched staves, this may be used to typeset
 
 Music Glossary: @rglos{ossia}, @rglos{staff}, @rglos{Frenched staff}.
 
-Snippets: @lsrdir{staff}
+Snippets: @lsrdir{Staff,Staff-notation}
 
 Internals Reference: @internalsref{StaffSymbol},
 @internalsref{DrumStaff}.
 
 
 @node Hiding staves
-@unnumberedsubsubsec Hiding staves
+@subsubsection Hiding staves
 
 @cindex Frenched scores
 @cindex staves, hiding
@@ -316,7 +315,7 @@ You can make the staff lines invisible by removing the
 
 Notation Reference: @ref{Staff symbol}.
 
-Snippets: @lsrdir{staff}
+Snippets: @lsrdir{Staff,Staff-notation}
 
 Internals Reference: @internalsref{ChordNames},
 @internalsref{FiguredBass}, @internalsref{Lyrics},
@@ -333,7 +332,7 @@ Internals Reference: @internalsref{ChordNames},
 @end menu
 
 @node Metronome marks
-@unnumberedsubsubsec Metronome marks
+@subsubsection Metronome marks
 
 @cindex Tempo
 @cindex beats per minute
@@ -378,12 +377,11 @@ For more details, see @ref{Text markup}.
 @seealso
 
 Music Glossary: @rglos{metronome}, @rglos{metronomic indication},
-@rglos{tempo indication}.
-@c FIXME : add @rglos{Mälzels Metronome}, @rglos{M.M.}, @rglos{tempo}?
+@rglos{tempo indication}, @rglos{metronome mark}.
 
 Notation Reference: @ref{Text markup}.
 
-Snippets: @lsrdir{staff}.
+Snippets: @lsrdir{Staff,Staff-notation}.
 
 Internals Reference: @internalsref{MetronomeMark}, @ref{MIDI
 output}.
@@ -405,7 +403,7 @@ place it further away from the staff.
 
 
 @node Instrument names
-@unnumberedsubsubsec Instrument names
+@subsubsection Instrument names
 
 @cindex instrument names
 @cindex instrument names, short
@@ -516,18 +514,19 @@ c1 c c c \break
 
 Notation Reference: @ref{Modifying context plug-ins}.
 
-Snippets: @lsrdir{staff}
+Snippets: @lsrdir{Staff,Staff-notation}
 
 Internals Reference: @internalsref{InstrumentName},
 @internalsref{PianoStaff}, @internalsref{Staff}.
 
 
 @node Quoting other voices
-@unnumberedsubsubsec Quoting other voices
+@subsubsection Quoting other voices
 
 @cindex cues
 @cindex quoting other voices
 @cindex fragments
+@cindex cue notes
 
 With quotations, fragments of other parts can be inserted into a
 part directly.  Before a part can be quoted, it must be marked
@@ -637,14 +636,19 @@ written entirely in lower-case letters: @code{\addquote}.
 
 Notation Reference: @ref{Instrument transpositions}.
 
-Snippets: @lsrdir{staff}
+Snippets: @lsrdir{Staff,Staff-notation}
 
 Internals Reference: @internalsref{QuoteMusic}, @internalsref{Voice}.
 
 
 @node Formatting cue notes
-@unnumberedsubsubsec Formatting cue notes
+@subsubsection Formatting cue notes
 
+@cindex cues
+@cindex cue notes
+@cindex cue notes, formatting
+@cindex fragments
+@cindex quoting other voices 
 @cindex cues, formatting
 
 The previous section deals with inserting notes from another
@@ -658,7 +662,7 @@ The syntax is
 @end example
 
 This will insert notes from the part @var{name} into a
-@internalsref{Voice} called @code{cue}.  This happens
+@code{Voice} called @code{cue}.  This happens
 simultaneously with @var{music}, which usually is a rest.  When
 the cue notes start, the staff in effect becomes polyphonic for a
 moment.  The argument @var{updown} determines whether the cue
@@ -696,19 +700,20 @@ smaller = {
 @end lilypond
 
 
-Here are a couple of hints for successful cue notes
+Here are a couple of hints for successful cue notes:
 
 @itemize
 @item
 Cue notes have smaller font sizes.
 
 @item
-the cued part is marked with the instrument playing the cue.
+The cued part is marked with the instrument playing the cue.
 
 @item
-when the original part takes over again, this should be marked
+When the original part takes over again, this should be marked
 with the name of the original instrument.
 
+@item
 Any other changes introduced by the cued part should also be
 undone.  For example, if the cued instrument plays in a different
 clef, the original clef should be stated once again.
@@ -744,8 +749,8 @@ cbsn = \relative c, {
 
 @seealso
 
-Snippets: @lsrdir{staff}
-
+Snippets: @lsrdir{Staff,Staff-notation}.
 
+Internals Reference: @internalsref{Voice}.
 
 
index 09a03aba952a80ce9575f496ad5302aba30d47e4..9137b701ec3e1a92be7cdff2fe57f09892ba95be 100644 (file)
@@ -26,7 +26,7 @@ strings.
 @end menu
 
 @node Artificial harmonics (strings)
-@unnumberedsubsubsec Artificial harmonics (strings)
+@subsubsection Artificial harmonics (strings)
 
 @cindex artificial harmonics
 
index e57a04968eb7f70ee30c301ae2c49f2a4eb637c5..9d710c5bec745625b0a1bf925e20f5f413dd863b 100644 (file)
@@ -28,526 +28,65 @@ beautiful printed scores!
 
 @node Single staff
 @appendixsec Single staff
-@appendixsubsec Notes only
 
-The first example gives you a staff with notes, suitable for a solo
-instrument or a melodic fragment.  Cut and paste this into a file,
-add notes, and you're finished!
+@appendixsubsec Notes only
 
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-melody = \relative c' {
-   \clef treble
-   \key c \major
-   \time 4/4
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-only-notes.ly}
 
-   a4 b c d
-}
-
-\score {
-   \new Staff \melody
-   \layout { }
-   \midi {}
-}
-@end lilypond
 
 @appendixsubsec Notes and lyrics
 
-The next example demonstrates a simple melody with lyrics.  Cut and
-paste, add notes, then words for the lyrics.  This example turns off
-automatic beaming, which is common for vocal parts.  If you want to use
-automatic beaming, you'll have to change or comment out the relevant
-line.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-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 lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-notes-and-lyrics.ly}
 
 @appendixsubsec Notes and chords
 
-Want to prepare a lead sheet with a melody and chords?  Look no further!
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-melody = \relative c' {
-   \clef treble
-   \key c \major
-   \time 4/4
-
-   f4 e8[ c] d4 g |
-   a2 ~ a2 |
-}
-
-harmonies = \chordmode {
-   c4:m f:min7 g:maj c:aug d2:dim b:sus
-}
-
-\score {
-   <<
-      \new ChordNames {
-         \set chordChanges = ##t
-         \harmonies
-      }
-   \new Staff \melody
-   >>
-
-   \layout{ }
-   \midi { }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-notes-and-chords.ly}
 
 @appendixsubsec Notes, lyrics, and chords.
 
-This template allows you to prepare a song with melody, words, and chords.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-melody = \relative c' {
-   \clef treble
-   \key c \major
-   \time 4/4
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-notes,-lyrics,-and-chords.ly}
 
-   a b c d
-}
-
-text = \lyricmode {
-   Aaa Bee Cee Dee
-}
-
-harmonies = \chordmode {
-   a2 c2
-}
-
-\score {
-   <<
-      \new ChordNames {
-         \set chordChanges = ##t
-         \harmonies
-      }
-   \new Voice = "one" {
-      \autoBeamOff
-      \melody
-   }
-   \new Lyrics \lyricsto "one" \text
-   >>
-   \layout { }
-   \midi { }
-}
-@end lilypond
 
 @node Piano templates
 @appendixsec Piano templates
-@appendixsubsec Solo piano
-
-Here is a simple piano staff.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-upper = \relative c'' {
-   \clef treble
-   \key c \major
-   \time 4/4
-
-   a b c d
-}
 
-lower = \relative c {
-   \clef bass
-   \key c \major
-   \time 4/4
-
-   a2 c
-}
+@appendixsubsec Solo piano
 
-\score {
-   \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano  "
-      \new Staff = "upper" \upper
-      \new Staff = "lower" \lower
-   >>
-   \layout { }
-   \midi { }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-simple.ly}
 
 @appendixsubsec Piano and melody with lyrics
 
-Here is a typical song format: one staff with the melody and lyrics, with
-piano accompaniment underneath.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-melody = \relative c'' {
-   \clef treble
-   \key c \major
-   \time 4/4
-
-   a b c d
-}
-
-text = \lyricmode {
-   Aaa Bee Cee Dee
-}
-
-upper = \relative c'' {
-   \clef treble
-   \key c \major
-   \time 4/4
-
-   a b c d
-}
-
-lower = \relative c {
-   \clef bass
-   \key c \major
-   \time 4/4
-
-   a2 c
-}
-
-\score {
-   <<
-      \new Voice = "mel" {
-          \autoBeamOff
-          \melody
-      }
-      \new Lyrics \lyricsto mel \text
-
-      \new PianoStaff <<
-         \new Staff = "upper" \upper
-         \new Staff = "lower" \lower
-      >>
-   >>
-   \layout {
-      \context { \RemoveEmptyStaffContext }
-   }
-   \midi { }
-}
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-melody-and-lyrics.ly}
 
 @appendixsubsec Piano centered lyrics
 
-Instead of having a full staff for the melody and lyrics, you can place
-the lyrics between the piano staff (and omit the separate melody staff).
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-upper = \relative c'' {
-   \clef treble
-   \key c \major
-   \time 4/4
-
-   a b c d
-}
-
-lower = \relative c {
-   \clef bass
-   \key c \major
-   \time 4/4
-
-   a2 c
-}
-
-text = \lyricmode {
-   Aaa Bee Cee Dee
-}
-
-\score {
-  \new GrandStaff <<
-    \new Staff = upper { \new Voice = "singer" \upper }
-    \new Lyrics \lyricsto "singer" \text
-    \new Staff = lower {
-      \clef bass
-      \lower
-    }
-  >>
-  \layout {
-    \context { \GrandStaff \accepts "Lyrics" }
-    \context { \Lyrics \consists "Bar_engraver" }
-  }
-  \midi { }
-}
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-centered-lyrics.ly}
 
 @appendixsubsec Piano centered dynamics
 
-Many piano scores have the dynamics centered between the two
-staves.  This requires a bit of tweaking to implement, but
-since the template is right here, you don't have to do the
-tweaking yourself.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-upper = \relative c'' {
-  \clef treble
-  \key c \major
-  \time 4/4
-
-  a b c d
-}
-
-lower = \relative c {
-  \clef bass
-  \key c \major
-  \time 4/4
-
-  a2 c
-}
-
-dynamics = {
-  s2\fff\> s4
-  s\!\pp
-}
-
-pedal = {
-  s2\sustainDown s2\sustainUp
-}
-
-\score {
-  \new PianoStaff <<
-    \new Staff = "upper" \upper
-    \new Dynamics = "dynamics" \dynamics
-    \new Staff = "lower" <<
-      \clef bass
-      \lower
-    >>
-    \new Dynamics = "pedal" \pedal
-  >>
-  \layout {
-    \context {
-      \type "Engraver_group"
-      \name Dynamics
-      \alias Voice % So that \cresc works, for example.
-      \consists "Output_property_engraver"
-
-      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
-      \override DynamicLineSpanner #'Y-offset = #0
-      pedalSustainStrings = #'("Ped." "*Ped." "*")
-      pedalUnaCordaStrings = #'("una corda" "" "tre corde")
-
-      \consists "Piano_pedal_engraver"
-      \consists "Script_engraver"
-      \consists "Dynamic_engraver"
-      \consists "Text_engraver"
-
-      \override TextScript #'font-size = #2
-      \override TextScript #'font-shape = #'italic
-
-      \consists "Skip_event_swallow_translator"
-
-      \consists "Axis_group_engraver"
-    }
-    \context {
-      \PianoStaff
-      \accepts Dynamics
-    }
-  }
-}
-\score {
-  \new PianoStaff <<
-    \new Staff = "upper" << \upper \dynamics >>
-    \new Staff = "lower" << \lower \dynamics >>
-    \new Dynamics = "pedal" \pedal
-  >>
-  \midi {
-    \context {
-      \type "Performer_group"
-      \name Dynamics
-      \consists "Piano_pedal_performer"
-    }
-    \context {
-      \PianoStaff
-      \accepts Dynamics
-    }
-  }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-centered-dynamics.ly}
 
 
 @node String quartet
 @appendixsec String quartet
-@appendixsubsec String quartet
-
-This template demonstrates a string quartet.  It also uses a @code{\global}
-section for time and key signatures.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-
-global= {
-  \time 4/4
-  \key c \major
-}
 
-violinOne = \new Voice { \relative c''{
-  \set Staff.instrumentName = "Violin 1 "
-
-  c2 d e1
-
-\bar "|." }}
-violinTwo = \new Voice { \relative c''{
-  \set Staff.instrumentName = "Violin 2 "
-
-  g2 f e1
-
-\bar "|." }}
-viola = \new Voice { \relative c' {
-  \set Staff.instrumentName = "Viola "
-  \clef alto
-
-  e2 d c1
-
-\bar "|." }}
-cello = \new Voice { \relative c' {
-  \set Staff.instrumentName = "Cello     "
-  \clef bass
-
-  c2 b a1
+@appendixsubsec String quartet
 
-\bar "|."}}
-
-\score {
-   \new StaffGroup <<
-      \new Staff << \global \violinOne >>
-      \new Staff << \global \violinTwo >>
-      \new Staff << \global \viola >>
-      \new Staff << \global \cello >>
-   >>
-   \layout { }
-   \midi { }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{string-quartet-template-simple.ly}
 
 @appendixsubsec String quartet parts
 
-The previous example produces a nice string quartet, but what if you
-needed to print parts?  This template demonstrates how to use the
-@code{\tag} feature to easily split a piece into individual parts.
-
-You need to split this template into separate files; the filenames
-are contained in comments at the beginning of each file.  @code{piece.ly}
-contains all the music definitions.  The other files -- @code{score.ly},
-@code{vn1.ly}, @code{vn2.ly}, @code{vla.ly}, and
-@code{vlc.ly} -- produce the appropiate part.
-
-@verbatim
-%%%%% piece.ly
-\version "2.11.23"
-
-global= {
-  \time 4/4
-  \key c \major
-}
-
-Violinone = \new Voice { \relative c''{
-  \set Staff.instrumentName = "Violin 1 "
-
-  c2 d e1
-
-\bar "|." }}   %*********************************
-Violintwo = \new Voice { \relative c''{
-  \set Staff.instrumentName = "Violin 2 "
-
-  g2 f e1
-
-\bar "|." }}   %*********************************
-Viola = \new Voice { \relative c' {
-  \set Staff.instrumentName = "Viola "
-  \clef alto
-
-  e2 d c1
-
-\bar "|." }}   %*********************************
-Cello = \new Voice { \relative c' {
-  \set Staff.instrumentName = "Cello     "
-  \clef bass
-
-  c2 b a1
-
-\bar "|."}}   %**********************************
-
-music = {
-  <<
-    \tag #'score \tag #'vn1 \new Staff { << \global \Violinone >> }
-    \tag #'score \tag #'vn2 \new Staff { << \global \Violintwo>> }
-    \tag #'score \tag #'vla \new Staff { << \global \Viola>> }
-    \tag #'score \tag #'vlc \new Staff { << \global \Cello>> }
-  >>
-}
-
-
-
-%%%%% score.ly
-\version "2.11.23"
-\include "piece.ly"
-#(set-global-staff-size 14)
-\score {
-  \new StaffGroup \keepWithTag #'score \music
-  \layout { }
-  \midi { }
-}
-
-
-%%%%% vn1.ly
-\version "2.11.23"
-\include "piece.ly"
-\score {
-  \keepWithTag #'vn1 \music
-  \layout { }
-}
-
-
-%%%%% vn2.ly
-\version "2.11.23"
-\include "piece.ly"
-\score {
-  \keepWithTag #'vn2 \music
-  \layout { }
-}
-
-
-%%%%% vla.ly
-\version "2.11.23"
-\include "piece.ly"
-\score {
-  \keepWithTag #'vla \music
-  \layout { }
-}
-
-
-%%%%% vlc.ly
-\version "2.11.23"
-\include "piece.ly"
-\score {
-  \keepWithTag #'vlc \music
-  \layout { }
-}
-@end verbatim
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{string-quartet-template-with-separate-parts.ly}
 
 
 @node Vocal ensembles
@@ -555,293 +94,18 @@ music = {
 
 @appendixsubsec SATB vocal score
 
-Here is a standard four-part SATB vocal score.  With larger ensembles,
-it's often useful to include a section which is included in all
-parts.  For example, the time signature and key signatures are almost
-always the same for all parts.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-global = {
-   \key c \major
-   \time 4/4
-}
-
-sopMusic = \relative c'' {
-   c4 c c8[( b)] c4
-}
-sopWords = \lyricmode {
-   hi hi hi hi
-}
-
-altoMusic = \relative c' {
-   e4 f d e
-}
-altoWords =\lyricmode {
-   ha ha ha ha
-}
-
-tenorMusic = \relative c' {
-   g4 a f g
-}
-tenorWords = \lyricmode {
-   hu hu hu hu
-}
-
-bassMusic = \relative c {
-   c4 c g c
-}
-bassWords = \lyricmode {
-   ho ho ho ho
-}
-
-\score {
-   \new ChoirStaff <<
-      \new Lyrics = sopranos { s1 }
-      \new Staff = women <<
-         \new Voice =
-           "sopranos" { \voiceOne << \global \sopMusic >> }
-         \new Voice =
-           "altos" { \voiceTwo << \global \altoMusic >> }
-      >>
-      \new Lyrics = "altos" { s1 }
-      \new Lyrics = "tenors" { s1 }
-      \new Staff = men <<
-         \clef bass
-         \new Voice =
-           "tenors" { \voiceOne <<\global \tenorMusic >> }
-         \new Voice =
-           "basses" { \voiceTwo <<\global \bassMusic >> }
-      >>
-      \new Lyrics = basses { s1 }
-
-      \context Lyrics = sopranos \lyricsto sopranos \sopWords
-      \context Lyrics = altos \lyricsto altos \altoWords
-      \context Lyrics = tenors \lyricsto tenors \tenorWords
-      \context Lyrics = basses \lyricsto basses \bassWords
-   >>
-
-   \layout {
-      \context {
-         % a little smaller so lyrics
-         % can be closer to the staff
-         \Staff
-         \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
-      }
-   }
-}
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{vocal-ensemble-template.ly}
 
 @appendixsubsec SATB vocal score and automatic piano reduction
 
-This template adds an automatic piano reduction to the SATB vocal
-score.  This demonstrates one of the strengths of LilyPond -- you
-can use a music definition more than once.  If you make any changes
-to the vocal notes (say, tenorMusic), then the changes will also
-apply to the piano reduction.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-global = {
-   \key c \major
-   \time 4/4
-}
-
-sopMusic = \relative c'' {
-   c4 c c8[( b)] c4
-}
-sopWords = \lyricmode {
-   hi hi hi hi
-}
-
-altoMusic = \relative c' {
-   e4 f d e
-}
-altoWords =\lyricmode {
-   ha ha ha ha
-}
-
-tenorMusic = \relative c' {
-   g4 a f g
-}
-tenorWords = \lyricmode {
-   hu hu hu hu
-}
-
-bassMusic = \relative c {
-   c4 c g c
-}
-bassWords = \lyricmode {
-   ho ho ho ho
-}
-
-\score {
-  <<
-    \new ChoirStaff <<
-      \new Lyrics = sopranos { s1 }
-      \new Staff = women <<
-        \new Voice =
-          "sopranos" { \voiceOne << \global \sopMusic >> }
-        \new Voice =
-          "altos" { \voiceTwo << \global \altoMusic >> }
-      >>
-      \new Lyrics = "altos" { s1 }
-      \new Lyrics = "tenors" { s1 }
-      \new Staff = men <<
-        \clef bass
-        \new Voice =
-          "tenors" { \voiceOne <<\global \tenorMusic >> }
-        \new Voice =
-          "basses" { \voiceTwo <<\global \bassMusic >> }
-      >>
-      \new Lyrics = basses { s1 }
-
-      \context Lyrics = sopranos \lyricsto sopranos \sopWords
-      \context Lyrics = altos \lyricsto altos \altoWords
-      \context Lyrics = tenors \lyricsto tenors \tenorWords
-      \context Lyrics = basses \lyricsto basses \bassWords
-    >>
-  \new PianoStaff <<
-    \new Staff <<
-      \set Staff.printPartCombineTexts = ##f
-      \partcombine
-      << \global \sopMusic >>
-      << \global \altoMusic >>
-    >>
-    \new Staff <<
-      \clef bass
-      \set Staff.printPartCombineTexts = ##f
-      \partcombine
-      << \global \tenorMusic >>
-      << \global \bassMusic >>
-    >>
-   >>
-  >>
-  \layout {
-    \context {
-      % a little smaller so lyrics
-      % can be closer to the staff
-      \Staff
-        \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
-    }
-  }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{vocal-ensemble-template-with-automatic-piano-reduction.ly}
 
 @appendixsubsec SATB with aligned contexts
 
-Here all the lyrics lines are placed using @code{alignAboveContext}
-and @code{alignBelowContext}.
-
-@lilypond[quote,verbatim,ragged-right]
-\version "2.11.23"
-global = {
-  \key c \major
-  \time 4/4
-}
-
-sopMusic = \relative c'' {
-  c4 c c8[( b)] c4
-}
-sopWords = \lyricmode {
-  hi hi hi hi
-}
-
-altoMusic = \relative c' {
-  e4 f d e
-}
-altoWords =\lyricmode {
-  ha ha ha ha
-}
-
-tenorMusic = \relative c' {
-  g4 a f g
-}
-tenorWords = \lyricmode {
-  hu hu hu hu
-}
-
-bassMusic = \relative c {
-  c4 c g c
-}
-bassWords = \lyricmode {
-  ho ho ho ho
-}
-
-\score {
-  \new ChoirStaff <<
-     \new Staff = women <<
-        \new Voice =
-          "sopranos" { \voiceOne << \global \sopMusic >> }
-        \new Voice =
-          "altos" { \voiceTwo << \global \altoMusic >> }
-     >>
-     \new Lyrics \with {alignAboveContext=women} \lyricsto sopranos \sopWords
-     \new Lyrics \with {alignBelowContext=women} \lyricsto altos \altoWords
-% we could remove the line about this with the line below, since we want
-% the alto lyrics to be below the alto Voice anyway.
-%    \new Lyrics \lyricsto altos \altoWords
-
-     \new Staff = men <<
-        \clef bass
-        \new Voice =
-          "tenors" { \voiceOne <<\global \tenorMusic >> }
-        \new Voice =
-          "basses" { \voiceTwo <<\global \bassMusic >> }
-     >>
-
-     \new Lyrics \with {alignAboveContext=men} \lyricsto tenors \tenorWords
-     \new Lyrics \with {alignBelowContext=men} \lyricsto basses \bassWords
-% again, we could replace the line above this with the line below.
-%    \new Lyrics \lyricsto basses \bassWords
-  >>
-
-  \layout {
-     \context {
-        % a little smaller so lyrics
-        % can be closer to the staff
-        \Staff
-        \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
-     }
-  }
-}
-
-
-\score {
-  \new ChoirStaff <<
-     \new Staff = women <<
-        \new Voice =
-          "sopranos" { \voiceOne << \global \sopMusic >> }
-        \new Voice =
-          "altos" { \voiceTwo << \global \altoMusic >> }
-     >>
-
-     \new Lyrics \with {alignAboveContext=women} \lyricsto sopranos \sopWords
-     \new Lyrics \lyricsto altos \altoWords
-
-     \new Staff = men <<
-        \clef bass
-        \new Voice =
-          "tenors" { \voiceOne <<\global \tenorMusic >> }
-        \new Voice =
-          "basses" { \voiceTwo <<\global \bassMusic >> }
-     >>
-
-     \new Lyrics \with {alignAboveContext=men} \lyricsto tenors \tenorWords
-     \new Lyrics \lyricsto basses \bassWords
-  >>
-
-  \layout {
-     \context {
-        % a little smaller so lyrics
-        % can be closer to the staff
-        \Staff
-        \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
-     }
-  }
-} 
-@end lilypond
+@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 confict
@@ -850,573 +114,24 @@ bassWords = \lyricmode {
 
 @appendixsubsec Transcription of mensural music
 
-When transcribing mensural music, an incipit at the beginning of the
-piece is useful to indicate the original key and tempo.  While today
-musicians are used to bar lines in order to faster recognize rhythmic
-patterns, bar lines were not yet invented during the period of
-mensural music; in fact, the meter often changed after every few
-notes.  As a compromise, bar lines are often printed between the
-staves rather than on the staves.
-
-@lilypond[quote,verbatim,line-width=11.0\cm]
-\version "2.11.23"
-
-global = {
-  \set Score.skipBars = ##t
-
-  % incipit
-  \once \override Score.SystemStartBracket #'transparent = ##t
-  \override Score.SpacingSpanner #'spacing-increment = #1.0 % tight spacing
-  \key f \major
-  \time 2/2
-  \once \override Staff.TimeSignature #'style = #'neomensural
-  \override Voice.NoteHead #'style = #'neomensural
-  \override Voice.Rest #'style = #'neomensural
-  \set Staff.printKeyCancellation = ##f
-  \cadenzaOn % turn off bar lines
-  \skip 1*10
-  \once \override Staff.BarLine #'transparent = ##f
-  \bar "||"
-  \skip 1*1 % need this extra \skip such that clef change comes
-            % after bar line
-  \bar ""
-
-  % main
-  \revert Score.SpacingSpanner #'spacing-increment % CHECK: no effect?
-  \cadenzaOff % turn bar lines on again
-  \once \override Staff.Clef #'full-size-change = ##t
-  \set Staff.forceClef = ##t
-  \key g \major
-  \time 4/4
-  \override Voice.NoteHead #'style = #'default
-  \override Voice.Rest #'style = #'default
-
-  % TODO: setting printKeyCancellation back to #t must not
-  % occur in the first bar after the incipit.  Dto. for forceClef.
-  % Therefore, we need an extra \skip.
-  \skip 1*1
-  \set Staff.printKeyCancellation = ##t
-  \set Staff.forceClef = ##f
-
-  \skip 1*7 % the actual music
-
-  % let finis bar go through all staves
-  \override Staff.BarLine #'transparent = ##f
-
-  % finis bar
-  \bar "|."
-}
-
-discantusNotes = {
-  \transpose c' c'' {
-    \set Staff.instrumentName = "Discantus  "
-
-    % incipit
-    \clef "neomensural-c1"
-    c'1. s2   % two bars
-    \skip 1*8 % eight bars
-    \skip 1*1 % one bar
-
-    % main
-    \clef "treble"
-    d'2. d'4 |
-    b e' d'2 |
-    c'4 e'4.( d'8 c' b |
-    a4) b a2 |
-    b4.( c'8 d'4) c'4 |
-    \once \override NoteHead #'transparent = ##t c'1 |
-    b\breve |
-  }
-}
-
-discantusLyrics = \lyricmode {
-  % incipit
-  IV-
-
-  % main
-  Ju -- bi -- |
-  la -- te De -- |
-  o, om --
-  nis ter -- |
-  ra, __ om- |
-  "..." |
-  -us. |
-}
-
-altusNotes = {
-  \transpose c' c'' {
-    \set Staff.instrumentName = "Altus  "
-
-    % incipit
-    \clef "neomensural-c3"
-    r1        % one bar
-    f1. s2    % two bars
-    \skip 1*7 % seven bars
-    \skip 1*1 % one bar
-
-    % main
-    \clef "treble"
-    r2 g2. e4 fis g | % two bars
-    a2 g4 e |
-    fis g4.( fis16 e fis4) |
-    g1 |
-    \once \override NoteHead #'transparent = ##t g1 |
-    g\breve |
-  }
-}
-
-altusLyrics = \lyricmode {
-  % incipit
-  IV-
-
-  % main
-  Ju -- bi -- la -- te | % two bars
-  De -- o, om -- |
-  nis ter -- ra, |
-  "..." |
-  -us. |
-}
-
-tenorNotes = {
-  \transpose c' c' {
-    \set Staff.instrumentName = "Tenor  "
-
-    % incipit
-    \clef "neomensural-c4"
-    r\longa   % four bars
-    r\breve   % two bars
-    r1        % one bar
-    c'1. s2   % two bars
-    \skip 1*1 % one bar
-    \skip 1*1 % one bar
-
-    % main
-    \clef "treble_8"
-    R1 |
-    R1 |
-    R1 |
-    r2 d'2. d'4 b e' | % two bars
-    \once \override NoteHead #'transparent = ##t e'1 |
-    d'\breve |
-  }
-}
-
-tenorLyrics = \lyricmode {
-  % incipit
-  IV-
-
-  % main
-  Ju -- bi -- la -- te | % two bars
-  "..." |
-  -us. |
-}
-
-bassusNotes = {
-  \transpose c' c' {
-    \set Staff.instrumentName = "Bassus  "
-
-    % incipit
-    \clef "bass"
-    r\maxima  % eight bars
-    f1. s2    % two bars
-    \skip 1*1 % one bar
-
-    % main
-    \clef "bass"
-    R1 |
-    R1 |
-    R1 |
-    R1 |
-    g2. e4 |
-    \once \override NoteHead #'transparent = ##t e1 |
-    g\breve |
-  }
-}
-
-bassusLyrics = \lyricmode {
-  % incipit
-  IV-
-
-  % main
-  Ju -- bi- |
-  "..." |
-  -us. |
-}
-
-\score {
-  \new StaffGroup = choirStaff <<
-    \new Voice =
-      "discantusNotes" << \global \discantusNotes >>
-    \new Lyrics =
-      "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
-    \new Voice =
-      "altusNotes" << \global \altusNotes >>
-    \new Lyrics =
-      "altusLyrics" \lyricsto altusNotes { \altusLyrics }
-    \new Voice =
-      "tenorNotes" << \global \tenorNotes >>
-    \new Lyrics =
-      "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
-    \new Voice =
-      "bassusNotes" << \global \bassusNotes >>
-    \new Lyrics =
-      "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
-  >>
-  \layout {
-    \context {
-      \Score
-
-      % no bars in staves
-      \override BarLine #'transparent = ##t
-
-      % incipit should not start with a start delimiter
-      \remove "System_start_delimiter_engraver"
-    }
-    \context {
-      \Voice
-
-      % no slurs
-      \override Slur #'transparent = ##t
-
-      % Comment in the below "\remove" command to allow line
-      % breaking also at those bar lines where a note overlaps
-      % into the next bar.  The command is commented out in this
-      % short example score, but especially for large scores, you
-      % will typically yield better line breaking and thus improve
-      % overall spacing if you comment in the following command.
-      %\remove "Forbid_line_break_engraver"
-    }
-  }
-}
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ancient-notation-template----modern-transcription-of-mensural-music.ly}
 
 @appendixsubsec Gregorian transcription template
 
-This example demonstrates how to do modern transcription of Gregorian
-music.  Gregorian music has no measure, no stems; it uses only half and
-quarter note heads, and special marks, indicating rests of different length.
-
-@lilypond[quote,verbatim,ragged-right]
-\include "gregorian-init.ly"
-\version "2.11.23"
-
-chant = \relative c' {
-  \set Score.timing = ##f
-  f4 a2 \divisioMinima
-  g4 b a2 f2 \divisioMaior
-  g4( f) f( g) a2 \finalis
-}
-
-verba = \lyricmode {
-  Lo -- rem ip -- sum do -- lor sit a -- met
-}
-
-\score {
-  \new Staff <<
-    \new Voice = "melody" {
-      \chant
-    }
-    \new Lyrics = "one" \lyricsto melody \verba
-  >>
-
-  \layout {
-    \context {
-      \Staff
-      \remove "Time_signature_engraver"
-      \remove "Bar_engraver"
-      \override Stem #'transparent = ##t
-    }
-    \context {
-      \Voice
-      \override Stem #'length = #0
-    }
-    \context {
-      \Score
-      barAlways = ##t
-    }
-  }
-}
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ancient-notation-template----modern-transcription-of-gregorian-music.ly}
 
 @node Jazz combo
 @appendixsec Jazz combo
 
-This is a much more complicated template, for a jazz ensemble.  Note that all
-instruments are notated in @code{\key c \major}.  This refers to the key in
-concert pitch; LilyPond will automatically transpose the key if the music
-is within a @code{\transpose} section.
-
-@c TODO must clean up this jazz combo example
-@c   - transpositions stated in names (ie "trumpet in Bb" or whatever)
-@c   - one global section, instead of "global" (time) and "key"
-@c   - does it need those wierd macros?  sl, nsl, etc.
-@c   - maybe ask Amelie Zapf to clean it up, or whether I should just
-@c     make whatever changes I feel like.
-
-@c TODO: produces a warning ; key change merge.
-@c The `line-width' argument is for the \header.
-
-@lilypond[quote,verbatim,ragged-right,line-width]
-\version "2.11.23"
-\header {
-  title = "Song"
-  subtitle = "(tune)"
-  composer = "Me"
-  meter = "moderato"
-  piece = "Swing"
-  tagline = \markup {
-    \column {
-      "LilyPond example file by Amelie Zapf,"
-      "Berlin 07/07/2003"
-    }
-  }
-  texidoc = "Jazz tune for combo
-             (horns, guitar, piano, bass, drums)."
-}
-
-#(set-global-staff-size 16)
-\include "english.ly"
-
-%%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%
-
-sl = {
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-}
-nsl = {
-  \revert NoteHead #'style
-  \revert Stem #'transparent
-}
-cr = \override NoteHead #'style = #'cross
-ncr = \revert NoteHead #'style
-
-%% insert chord name style stuff here.
-
-jzchords = { }
-
-
-%%%%%%%%%%%% Keys'n'thangs %%%%%%%%%%%%%%%%%
-
-global = {
-  \time 4/4
-}
-
-Key = { \key c \major }
-
-% ############ Horns ############
-
-% ------ Trumpet ------
-trpt = \transpose c d \relative c'' {
-  \Key
-  c1 c c
-}
-trpharmony = \transpose c' d {
-  \jzchords
-}
-trumpet = {
-  \global
-  \set Staff.instrumentName = #"Trumpet"
-  \clef treble
-  <<
-    \trpt
-  >>
-}
-
-% ------ Alto Saxophone ------
-alto = \transpose c a \relative c' {
-  \Key
-  c1 c c
-}
-altoharmony = \transpose c' a {
-  \jzchords
-}
-altosax = {
-  \global
-  \set Staff.instrumentName = #"Alto Sax"
-  \clef treble
-  <<
-    \alto
-  >>
-}
-
-% ------ Baritone Saxophone ------
-bari = \transpose c a' \relative c {
-  \Key
-  c1 c \sl d4^"Solo" d d d \nsl
-}
-bariharmony = \transpose c' a \chordmode {
-  \jzchords s1 s d2:maj e:m7
-}
-barisax = {
-  \global
-  \set Staff.instrumentName = #"Bari Sax"
-  \clef treble
-  <<
-    \bari
-  >>
-}
-
-% ------ Trombone ------
-tbone = \relative c {
-  \Key
-  c1 c c
-}
-tboneharmony = \chordmode {
-  \jzchords
-}
-trombone = {
-  \global
-  \set Staff.instrumentName = #"Trombone"
-  \clef bass
-  <<
-    \tbone
-  >>
-}
-
-% ############ Rhythm Section #############
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{jazz-combo-template.ly}
 
-% ------ Guitar ------
-gtr = \relative c'' {
-  \Key
-  c1 \sl b4 b b b \nsl c1
-}
-gtrharmony = \chordmode {
-  \jzchords
-  s1 c2:min7+ d2:maj9
-}
-guitar = {
-  \global
-  \set Staff.instrumentName = #"Guitar"
-  \clef treble
-  <<
-    \gtr
-  >>
-}
-
-%% ------ Piano ------
-rhUpper = \relative c'' {
-  \voiceOne
-  \Key
-  c1 c c
-}
-rhLower = \relative c' {
-  \voiceTwo
-  \Key
-  e1 e e
-}
 
-lhUpper = \relative c' {
-  \voiceOne
-  \Key
-  g1 g g
-}
-lhLower = \relative c {
-  \voiceTwo
-  \Key
-  c1 c c
-}
 
-PianoRH = {
-  \clef treble
-  \global
-  \set Staff.midiInstrument = "acoustic grand"
-  <<
-    \new Voice = "one" \rhUpper
-    \new Voice = "two" \rhLower
-  >>
-}
-PianoLH = {
-  \clef bass
-  \global
-  \set Staff.midiInstrument = "acoustic grand"
-  <<
-    \new Voice = "one" \lhUpper
-    \new Voice = "two" \lhLower
-  >>
-}
-
-piano = {
-  <<
-    \set PianoStaff.instrumentName = #"Piano"
-    \new Staff = "upper" \PianoRH
-    \new Staff = "lower" \PianoLH
-  >>
-}
-
-% ------ Bass Guitar ------
-Bass = \relative c {
-  \Key
-  c1 c c
-}
-bass = {
-  \global
-  \set Staff.instrumentName = #"Bass"
-  \clef bass
-  <<
-    \Bass
-  >>
-}
-
-% ------ Drums ------
-up = \drummode {
-  hh4 <hh sn>4 hh <hh sn> hh <hh sn>4
-  hh4 <hh sn>4
-  hh4 <hh sn>4
-  hh4 <hh sn>4
-}
-
-down = \drummode {
-  bd4 s bd s bd s bd s bd s bd s
-}
-
-drumContents = {
-  \global
-  <<
-    \set DrumStaff.instrumentName = #"Drums"
-    \new DrumVoice { \voiceOne \up }
-    \new DrumVoice { \voiceTwo \down }
-  >>
-}
-
-%%%%%%%%% It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%
-
-\score {
-  <<
-    \new StaffGroup = "horns" <<
-      \new Staff = "trumpet" \trumpet
-      \new Staff = "altosax" \altosax
-      \new ChordNames = "barichords" \bariharmony
-      \new Staff = "barisax" \barisax
-      \new Staff = "trombone" \trombone
-    >>
-
-    \new StaffGroup = "rhythm" <<
-      \new ChordNames = "chords" \gtrharmony
-      \new Staff = "guitar" \guitar
-      \new PianoStaff = "piano" \piano
-      \new Staff = "bass" \bass
-      \new DrumStaff { \drumContents }
-    >>
-  >>
-
-  \layout {
-    \context { \RemoveEmptyStaffContext }
-    \context {
-      \Score
-      \override BarNumber #'padding = #3
-      \override RehearsalMark #'padding = #2
-      skipBars = ##t
-    }
-  }
-
-  \midi { }
-}
-@end lilypond
 
 @ignore
-
 This isn't very useful, and only duplicates material in
 "global issues".  And if this info changes, this section often
 gets forgotten.
@@ -1435,7 +150,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.23"
+\version "2.11.38"
 \header {
   dedication = "dedication"
   title = "Title"
index 265ddd9f262f7e92cf587c84a386897a04a5acb8..e5655241a93393f3f4435d5e34d35845b0f0ca21 100644 (file)
@@ -39,7 +39,7 @@ information, see @ref{Text encoding}.
 @end menu
 
 @node Overview of text entry
-@unnumberedsubsubsec Overview of text entry
+@subsubsection Overview of text entry
 
 There are four ways to add text to scores:
 
@@ -82,12 +82,12 @@ c4\mark "foo" c c c
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 
 
 @node Text scripts
-@unnumberedsubsubsec Text scripts
+@subsubsection Text scripts
 
 @cindex Text scripts
 @cindex text items, non-empty
@@ -96,15 +96,15 @@ Snippets: @lsrdir{text}
 It is possible to place arbitrary strings of text or @ref{Text
 markup}, above or below notes by using a string @code{c^"text"}.
 By default, these indications do not influence the note spacing,
-but by using the command @code{\fatText}, the widths will be taken
+but by using the command @code{\textLengthOn}, the widths will be taken
 into account
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4^"longtext" \fatText c4_"longlongtext" c4
+c4^"longtext" \textLengthOn c4_"longlongtext" c4
 @end lilypond
 
 @noindent
-To prevent text from influencing spacing, use @code{\emptyText}.
+To prevent text from influencing spacing, use @code{\textLengthOff}.
 
 More complex formatting may also be added to a note by using the
 markup command,
@@ -119,10 +119,10 @@ markup}.
 
 @refcommands
 
-@funindex \fatText
-@code{\fatText},
-@funindex \emptyText
-@code{\emptyText}.
+@funindex \textLengthOn
+@code{\textLengthOn},
+@funindex \textLengthOff
+@code{\textLengthOff}.
 
 
 @commonprop
@@ -141,13 +141,13 @@ default; to enable it, use
 
 Notation Reference: @ref{Text markup}.
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 Internals Reference: @internalsref{TextScript}.
 
 
 @node Text spanners
-@unnumberedsubsubsec Text spanners
+@subsubsection Text spanners
 
 @cindex Text spanners
 
@@ -194,13 +194,13 @@ To print a solid line, use
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 Internals Reference: @internalsref{TextSpanner}.
 
 
 @node Text marks
-@unnumberedsubsubsec Text marks
+@subsubsection Text marks
 
 @cindex coda on bar line
 @cindex segno on bar line
@@ -339,7 +339,7 @@ staff, you may alter this to print them on every staff,
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 Internals Reference: @internalsref{RehearsalMark}.
 
@@ -356,7 +356,7 @@ Internals Reference: @internalsref{RehearsalMark}.
 @end menu
 
 @node Text markup introduction
-@unnumberedsubsubsec Text markup introduction
+@subsubsection Text markup introduction
 
 @cindex markup
 @cindex text markup
@@ -459,7 +459,7 @@ To keep lists of words distinct, please use quotes @code{"} or
 the @code{\line} command
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c4^\markup{ \center-align { on three lines } }
 c4^\markup{ \center-align { "all one line" } }
 c4^\markup{ \center-align { { on three lines } } }
@@ -487,7 +487,7 @@ markup, you need to use the #'padding property or create an
 #0}).
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\fatText
+\textLengthOn
 c'4^\markup{ \raise #5 "not raised" }
 \once \override TextScript #'padding = #3
 c'4^\markup{ raised }
@@ -504,7 +504,7 @@ advisable to cancel those properties with @code{normal-text}.  See
 
 This manual: @ref{Overview of text markup commands}.
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 Internals Reference: @internalsref{TextScript}.
 
@@ -521,7 +521,7 @@ Syntax errors for markup mode are confusing.
 
 
 @node Nested scores
-@unnumberedsubsubsec Nested scores
+@subsubsection Nested scores
 
 It is possible to nest music inside markups, by adding a
 @code{\score} block to a markup expression.  Such a score must
@@ -541,10 +541,10 @@ contain a @code{\layout} block.
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 @node Page wrapping text
-@unnumberedsubsubsec Page wrapping text
+@subsubsection Page wrapping text
 
 Whereas @code{\markup} is used to enter a non-breakable block of
 text, @code{\markuplines} can be used at top-level to enter lines
@@ -574,7 +574,7 @@ lists.  The built-in markup list commands are described in
 This manual: @ref{Overview of text markup list commands}, @ref{New
 markup list command definition}.
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 @refcommands
 
@@ -582,7 +582,7 @@ Snippets: @lsrdir{text}
 @code{\markuplines}
 
 @node Font selection
-@unnumberedsubsubsec Font selection
+@subsubsection Font selection
 
 @cindex font selection
 @cindex font magnification
@@ -692,7 +692,7 @@ sans serif and monospaced text.  For example,
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 
 @node Special text concerns
@@ -706,7 +706,7 @@ Snippets: @lsrdir{text}
 @end menu
 
 @node New dynamic marks
-@unnumberedsubsubsec New dynamic marks
+@subsubsection New dynamic marks
 
 It is possible to print new dynamic marks or text that should be
 aligned with dynamics.  Use @code{make-dynamic-script} to create
@@ -743,11 +743,11 @@ boxf = \markup{ \bracket { \dynamic f } }
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 
 @node Text and line spanners
-@unnumberedsubsubsec Text and line spanners
+@subsubsection Text and line spanners
 
 Some performance indications, e.g., @i{rallentando} and
 @i{accelerando} and @i{trills} are written as text and are
@@ -906,7 +906,7 @@ hairpins with \!.
 
 @seealso
 
-Snippets: @lsrdir{text}
+Snippets: @lsrdir{Text,Text}
 
 Internals Reference: @internalsref{TextSpanner},
 @internalsref{Glissando}, @internalsref{VoiceFollower},
index 3e76b025e2d9b40a18a8ed617e734912dfa5e81c..765bd4aff14c58efd9975298da541a818ef53f38 100644 (file)
@@ -65,6 +65,9 @@ in LilyPond format to produce a file which can be printed and
 (optionally) a MIDI file which can be played.  The first example
 shows what a simple input text file looks like.
 
+To create sheet music, we write a text file that specifies the
+notation.  For example, if we write:
+
 @example
 @{
   c' e' g' e'
@@ -81,8 +84,8 @@ the result looks like this:
 }
 @end lilypond
 
-@warning{Every piece of LilyPond input needs to have
-@strong{@{ curly braces @}} placed around the input.  The braces
+@warning{Notes and lyrics in LilyPond input must always be
+surrounded by @strong{@{ curly braces @}}.  The braces
 should also be surrounded by a space unless they are at the
 beginning or end of a line to avoid ambiguities.  The braces may
 be omitted in some examples in this manual, but don't forget them
@@ -628,7 +631,7 @@ note's @notation{pitch}!  This is a feature that often causes
 confusion to newcomers, so let us explain it in more detail.
 
 LilyPond makes a sharp distinction between musical content and
-layout.  The alteration (@notation{flat}, @notation{natural} or
+layout.  The alteration (@notation{flat}, @notation{natural sign} or
 @notation{sharp}) of a note is part of the pitch, and is therefore
 musical content.  Whether an accidental (a @emph{printed} flat,
 natural or sharp sign) is printed in front of the corresponding
@@ -1036,9 +1039,9 @@ the input, not relative to the @code{c''} in the initial
 @subheading Simultaneous music expressions: single staff
 
 To determine the number of staves in a piece, LilyPond looks at
-the first expression.  If it is a single note, there is one staff;
-if there is a simultaneous expression, there is more than one
-staff.
+the beginning of the first expression.  If is a single note, there
+is one staff; if there is a simultaneous expression, there is more
+than one staff.
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -1157,10 +1160,12 @@ Notation Reference: @ruser{Piano music},
 
 Music Glossary: @rglos{chord}.
 
-@notation{Chords} can be made by surrounding pitches with single
-angle brackets.  Note that all the notes in a chord must have the
-same duration, and that duration is placed after the closing 
-bracket. 
+We saw earlier how notes can be combined into @notation{chords} by
+indicating they are simultaneous by enclosing them in double angle
+brackets.  However, the normal way of indicating a chord is to
+surround the pitches with @emph{single} angle brackets.  Note that
+all the notes in a chord must have the same duration, and that the
+duration is placed after the closing bracket.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 r4 <c e g>4 <c f a>2
@@ -1168,8 +1173,8 @@ r4 <c e g>4 <c f a>2
 
 Think of chords as almost equivalent to single notes:
 almost everything you can attach to a single note can be attached
-to a chord, and everything must go @emph{outside} the angle 
-brackets.  For example, you can combine markings like beams and 
+to a chord, and everything must go @emph{outside} the angle
+brackets.  For example, you can combine markings like beams and
 ties with chords.  They must be placed outside the angle brackets.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
@@ -1580,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that
 was used to write the file:
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 @end example
 
 @noindent
@@ -1602,7 +1607,7 @@ main music expression; the @code{\header} block is usually placed
 underneath the @ref{Version number}.
 
 @example
-\version "2.11.23"
+\version "2.11.38"
 \header @{
   title = "Symphony"
   composer = "Me"
@@ -1717,3 +1722,4 @@ you have more experience.
 
 
 
+
index 95b865d414a369928653d1492b60ccd0a87f6862..7698e32f74beec66a2de099a7658c1f7474f291c 100644 (file)
 This chapter discusses how to modify output.  LilyPond is extremely
 configurable; virtually every fragment of output may be changed.
 
-TODO: This chapter is still under development and this version is
-not yet complete.  Don't translate yet!
-
-
 
 @menu
 * Tweaking basics::             
@@ -24,7 +20,6 @@ not yet complete.  Don't translate yet!
 * Appearance of objects::       
 * Placement of objects::        
 * Collisions of objects::       
-* Page layout::                 
 * Further tweaking::            
 @end menu
 
@@ -50,7 +45,7 @@ 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 potted commands which can
+tweaking.  Later we give a variety of ready-made commands which can
 simply be copied to obtain the same effect in your own scores, and
 at the same time we show how these commands may be constructed so 
 that you may learn how to develop your own tweaks.
@@ -81,10 +76,12 @@ constructed.  That @code{Staff} object then holds all the
 properties associated with that particular staff, for example, its
 name and its key signature, together with details of the engravers
 which have been assigned to operate within that staff's context.
-Similarly, there are @code{Voice} objects, @code{Score} objects,
-@code{Lyric} objects, and objects to represent bar lines,
- note heads, ties, dynamics, etc, each with their own set of
-properties.
+Similarly, there are objects to hold the properties of all other
+contexts, such as @code{Voice} objects, @code{Score} objects,
+@code{Lyrics} objects, as well as objects to represent all
+notational elements such as bar lines,
+note heads, ties, dynamics, etc.  Every object has its own set of
+property values.
 
 Some types of object are given special names.  Objects which
 represent items of notation on the printed output such as
@@ -134,9 +131,12 @@ verbatim.
 @headitem Object/property type           
   @tab Naming convention
   @tab Example
-@item Contexts, Layout Objects     
+@item Contexts
   @tab Aaaa or AaaaAaaaAaaa
-  @tab Staff, GrandStaff, 
+  @tab Staff, GrandStaff
+@item Layout Objects
+  @tab Aaaa or AaaaAaaaAaaa
+  @tab Slur, NoteHead
 @item Engravers
   @tab Aaaa_aaa_engraver
   @tab Clef_engraver, Note_heads_engraver
@@ -221,12 +221,12 @@ We mention it here for completeness, but for details see
 @c Maybe explain in a later iteration  -td
 
 The final tweaking command which is available is @code{\tweak}.
-It is not really a new command but a shorthand for an 
-@code{\override} command which must be used in a few special
-circumstances.  Again, we shall not discuss or use it here.  
-You may find the details in 
+This should be used to change the properties of objects which
+occur at the same musical moment, such as the notes within a
+chord.  Using @code{\override} would affect all the notes
+within a chord, whereas @code{\tweak} affects just the following
+item in the input stream.  You may find the details in
 @ruser{Objects connected to the input}.
-@c Maybe explain in a later iteration  -td
 
 @node The Internals Reference manual
 @section The Internals Reference manual
@@ -723,7 +723,21 @@ 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?
 
-As before, we go to the IR to find the layout object which prints
+Before we tackle this, let us remember that object properties
+are grouped in what are called @emph{interfaces} -- see
+@ref{Properties found in interfaces}.  This is simply to
+group together those properties that are commonly required
+together -- if one of them is required for an object, so are
+the others.  Some objects then need the properties in some
+interfaces, others need them from other interfaces.  The
+interfaces which contain the properties required by a 
+particular grob are listed in the IR at the bottom of the
+page describing that grob, and those properties may be
+viewed by looking at those interfaces.
+
+We explained how to find information about grobs in 
+@ref{Properties of layout objects}.  Using the same approach,
+we go to the IR to find the layout object which prints
 bar lines.  Going via @emph{Backend} and @emph{All layout objects}
 we find there
 is a layout object called @code{BarLine}.  Its properties include
@@ -1520,18 +1534,37 @@ and to a numerical value appropriate to each outside-staff object
 when the object is created.  The following table shows
 the default numerical values for some of the commonest
 outside-staff objects which are, by default, placed in the
-@code{Staff} Context.
-
-@multitable @columnfractions .3 .3
-@headitem Layout Object           @tab Priority
-@item @code{DynamicLineSpanner}   @tab @code{ 250}
-@item @code{DynamicText}          @tab @code{ 250}
-@item @code{OttavaBracket}        @tab @code{ 400}
-@item @code{TextScript}           @tab @code{ 450}
-@item @code{TextSpanner}          @tab @code{ 350}
+@code{Staff} or @code{Voice} contexts.
+
+@multitable @columnfractions .3 .3 .3
+@headitem Layout Object           
+  @tab Priority     
+  @tab Controls position of:
+@item @code{MultiMeasureRestText}
+  @tab @code{450}
+  @tab Text over full-bar rests
+@item @code{TextScript}
+  @tab @code{450}
+  @tab Markup text
+@item @code{OttavaBracket}
+  @tab @code{400}
+  @tab Ottava brackets
+@item @code{TextSpanner}
+  @tab @code{350}
+  @tab Text spanners
+@item @code{DynamicLineSpanner}
+  @tab @code{250}
+  @tab All dynamic markings
+@item @code{VoltaBracketSpanner}
+  @tab @code{100}
+  @tab Volta brackets
+@item @code{TrillSpanner}
+  @tab @code{50}
+  @tab Spanning trills
 @end multitable
 
-Here is an example showing the default placement of these.
+Here is an example showing the default placement of some of
+these.
 
 @cindex text spanner
 @funindex \startTextSpan
@@ -1585,9 +1618,9 @@ given the following default @code{outside-staff-priority} values:
 
 @multitable @columnfractions .3 .3
 @headitem Layout Object           @tab Priority
-@item @code{BarNumber}            @tab @code{ 100}
-@item @code{MetronomeMark}        @tab @code{1000}
 @item @code{RehearsalMark}        @tab @code{1500}
+@item @code{MetronomeMark}        @tab @code{1000}
+@item @code{BarNumber}            @tab @code{ 100}
 @end multitable
 
 If the default values of @code{outside-staff-priority} does not
@@ -1596,7 +1629,8 @@ may be overridden.  Suppose we would
 like the ottava bracket to be placed below the text spanner in the
 example above.  All we need to do is to look up the priority of
 @code{OttavaBracket} in the IR or in the tables above, and reduce
-it to a value lower than that of a @code{TextSpanner}:
+it to a value lower than that of a @code{TextSpanner}, remembering
+that @code{OttavaBracket} is created in the @code{Staff} context:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 % Set details for later Text Spanner
@@ -1605,7 +1639,7 @@ it to a value lower than that of a @code{TextSpanner}:
 % Place dynamics above staff
 \dynamicUp
 %Place following Ottava Bracket below Text Spanners
-\once \override OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket #'outside-staff-priority = #340
 % Start Ottava Bracket
 #(set-octavation 1)
 c' \startTextSpan
@@ -1646,21 +1680,21 @@ Perhaps this is not so good.  What we would really like to do
 is to position all the annotation at the same distance above
 the staff?  To do this, we clearly
 will need to space the notes out horizontally to make more
-room for the text.  This is done using the @code{fatText}
+room for the text.  This is done using the @code{textLengthOn}
 command.
 
-@subheading \fatText
+@subheading \textLengthOn
 
-@funindex \fatText
+@funindex \textLengthOn
 @cindex notes, spreading out with text
 
 By default, text produced by markup takes up no horizontal space
-as far as laying out the music is concerned.  The @code{\fatText}
+as far as laying out the music is concerned.  The @code{\textLengthOn}
 command reverses this behaviour, causing the notes to be spaced
 out as far as is necessary to accommodate the text:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\fatText  % Cause notes to space out to accommodate text
+\textLengthOn  % Cause notes to space out to accommodate text
 c2^"Text1"
 c^"Text2"
 c^"Text3"
@@ -1668,9 +1702,9 @@ c^"Text4"
 @end lilypond  
 
 The command to revert to the default behaviour is 
-@code{\emptyText}.  Remember @code{\once} only works with
+@code{\textLengthOff}.  Remember @code{\once} only works with
 @code{\override}, @code{\set}, @code{\revert} or @code{unset},
-so cannot be used with @code{\fatText}.
+so cannot be used with @code{\textLengthOn}.
 
 Markup text will also avoid notes which project above the staff.
 If this is not desired, the automatic displacement upwards may
@@ -1693,7 +1727,7 @@ c''2
 R1
 % Turn off collision avoidance
 \once \override TextScript #'outside-staff-priority = ##f
-\fatText  % and turn on fatText
+\textLengthOn  % and turn on textLengthOn
 c,,2^"Long Text   "  % Spaces at end are honoured
 c''2
 @end lilypond
@@ -1734,7 +1768,7 @@ Should a similar situation arise in @q{real} music, it may
 be preferable to space out the notes
 a little further, so the dynamic markings can all fit at the
 same vertical distance from the staff.  We were able to do this
-for markup text by using the @code{\fatText} command, but there
+for markup text by using the @code{\textLengthOn} command, but there
 is no equivalent command for dynamic marks.  So we shall have to
 work out how to do this using @code{\override} commands.
 
@@ -1763,7 +1797,7 @@ These are properties of all grobs which support the
 
 By default, outside-staff objects are given a width of zero so
 that they may overlap in the horizontal direction.  This is done
-by by the trick of adding infinity to the leftmost extent and 
+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
@@ -1908,16 +1942,19 @@ objects, this value is set by default to be around 1.0 or less
 @code{self-alignment-X}
 
 @cindex self-alignment-X property
-This property aligns the object to the left, to the right, or
-centers 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
+This property can be used to align the object to the left, to 
+the right, or to center it with respect to the parent object's 
+reference point.  It may be used with all objects which support
+the @code{self-alignment-interface}.  In general these are objects
 that contain text.  The values are @code{LEFT}, @code{RIGHT}
-or @code{CENTER}.  The movement is limited by the length of the
-object.  Any numerical value between @code{-1} and @code{+1} may
-also 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.
+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
+move the text even further to the right.  A change of @code{1}
+in the value corresponds to a movement of half the text's length.
 
 @item
 @code{extra-spacing-width}
@@ -2005,7 +2042,12 @@ This is most useful for manually adjusting the slope and height
 of beams, slurs, and tuplets.   It takes a pair of numbers
 giving the position of the left and right ends of the beam, slur,
 etc. relative to the center line of the staff.  Units are
-staff-spaces.
+staff-spaces.  Note, though, that slurs and phrasing slurs cannot
+be repositioned by arbitrarily large amounts.  LilyPond first
+generates a list of possible positions for the slur and by default
+finds the slur that @qq{looks best}.  If the @code{positions}
+property has been overridden the slur that is closest to the
+requested positions is selected from the list.
 @end table
 
 Objects do not all have all of these properties in general.
@@ -2040,7 +2082,8 @@ should be used to move them.
 Let's now see how the properties in the previous section can
 help to resolve overlapping notation.
 
-@subheading padding property
+@c FIXME: formatting
+@subheading @code{padding}
 @cindex padding property
 
 The @code{padding} property can be set to increase
@@ -2065,12 +2108,19 @@ d1
 @end lilypond
 
 Note in the second example how important it is to figure out what
-context handles a certain object.  Since the @code{MetronomeMark} object
+context handles a certain object.  Since the @code{MetronomeMark}
+object
 is handled in the @code{Score} context, property changes in the
 @code{Voice} context will not be noticed.  For more details, see
 @ruser{Constructing a tweak}.
 
-@subheading left-padding and right-padding properties
+If the @code{padding} property of an object is increased when that
+object is in a stack of objects being positioned according to
+their @code{outside-staff-priority}, then that object and all 
+objects outside it are moved.
+
+@subheading @code{left-padding} and @code{right-padding}
 @cindex left-padding property
 @cindex right-padding property
 
@@ -2723,268 +2773,12 @@ lhMusic = \relative c' {
 @end lilypond
 
 
-@node Page layout
-@section Page layout
-
-@menu
-* Introduction to layout::      
-* Global sizes::                
-* Line breaks::                 
-* Page breaks::                 
-* Fitting music onto fewer pages::  
-@end menu
-
-@node Introduction to layout
-@subsection Introduction to layout
-
-The global paper layout is determined by three factors: 
-the page layout, the line breaks, and the spacing. These all 
-influence each other. The choice of spacing determines how 
-densely each system of music is set. This influences where line 
-breaks are chosen, and thus ultimately, how many pages a piece 
-of music takes.
-
-Settings which influence layout may be placed in two blocks.
-The @code{\paper @{...@}} block is placed outside any
-@code{\score @{...@}} blocks and contains settings that
-relate to the entire document.  The @code{\layout @{...@}}
-block is placed within a @code{\score @{...@}} block and
-contains settings for that particular score.  If you have
-only one @code{\score @{...@}} block the two have the same
-effect.  In general the commands shown in this section can
-be placed in either.
-
-Much more detail on the options for tweaking the laying out
-of music are contained in @ruser{Spacing issues}.
-
-@node Global sizes
-@subsection Global sizes
-
-TODO Check all these examples
-
-The default @strong{paper size} which LilyPond assumes in laying
-out the music is A4.  This may be changed in two ways:
-
-@example
-#(set-default-paper-size "a6")
-
-\paper @{
-#(set-paper-size "letter")
-@}
-@end example
-
-@noindent
-The first command sets the size of all pages. The second command
-sets the size of the pages to which the \paper block applies -- if
-the \paper block is at the top of the file, then it will apply
-to all pages.  Support for the following paper sizes is available:
-a6, a5, a4, a3, legal, letter, 11x17 (also known as tabloid).
-Setting the paper size automatically sets suitable margins and
-line length.
-
-If the symbol @code{landscape} is supplied as an argument to
-@code{set-default-paper-size}, the pages will be rotated by 90
-degrees, and wider line widths will be set correspondingly, e.g.
-
-@example
-#(set-default-paper-size "a6" 'landscape)
-@end example
-
-The default @strong{staff size} is set to 20 points.
-This may be changed in two ways:
-
-@example
-#(set-global-staff-size 14)
-
-\paper @{
-#(set-global-staff-size 16)
-@}
-@end example
-
-@noindent
-The first command sets the size in all pages. The second command
-sets the size in the pages to which the \paper block applies -\96 if
-the \paper block is at the top of the file, then it will apply
-to all pages.  All the fonts are automatically scaled to suit
-the new value of the staff size.
-
-@node Line breaks
-@subsection Line breaks
-
-Line breaks are normally determined automatically. They are chosen
-so that lines look neither cramped nor loose, and consecutive
-lines have similar density.  Occasionally you might want to
-override the automatic breaks; you can do this by specifying
-@code{\break}. This will force a line break at this point.  However,
-line breaks can only occur at the end of @q{complete} bars, i.e.,
-where there are no notes or tuplets left @q{hanging} over the bar
-line.  If you want to have a line break where there is no bar line,
-you can force an invisible bar line by entering @code{\bar ""},
-although again there must be no notes left hanging over in any of
-the staves at this point, or it will be ignored.
-
-The opposite command, @code{\noBreak}, forbids a line break at the
-bar line where it is inserted.
-
-The most basic settings influencing line spacing are @code{indent}
-and @code{line-width}. They are set in the @code{\layout} block.
-They control the indentation of the first line of music, and the
-lengths of the lines.
-
-If @code{ragged-right} is set to true in the @code{\layout} block,
-then systems end at their natural horizontal length, instead of
-being spread horizontally to fill the whole line. This is useful
-for short fragments, and for checking how tight the natural
-spacing is.
-
-The option @code{ragged-last} is similar to @code{ragged-right},
-but affects only the last line of the piece.
-
-@example
-\layout @{
-indent = #0
-line-width = #150
-ragged-last = ##t
-@}
-@end example
-
-@node Page breaks
-@subsection Page breaks
-
-The default page breaking may be overriden by inserting 
-@code{\pageBreak} or @code{\noPageBreak} commands.
-These commands are analogous to the @code{\break} and 
-@code{\noBreak} commands discused above and force or forbid 
-a page-break at the point where they are inserted.
-Of course, the @code{\pageBreak} command also forces a line break.
-Like @code{\break}, the @code{\pageBreak} command is effective only
-at the end of a @q{complete} bar as defined above.  For more
-details see @ruser{Page breaking} and following sections.
-
-There are also analogous settings to @code{ragged-right} and
-@code{ragged-last} which have the same effect on vertical spacing:
-@code{ragged-bottom} and @code{ragged-last-bottom}.  If set to
-@code{##t} the systems on all pages or just the last page
-respectively will not be justified vertically.
-
-For more details see @ruser{Vertical spacing}.
-
-@node Fitting music onto fewer pages
-@subsection Fitting music onto fewer pages
-
-Sometimes you can end up with one or two staves on a second
-(or third, or fourth...) page.  This is annoying, especially
-if you look at previous pages and it looks like there is plenty
-of room left on those.
-
-When investigating layout issues, @code{annotate-spacing} is
-an invaluable tool.  This command prints the values of various
-layout spacing commands; see @ruser{Displaying spacing}, for more
-details.  From the output of @code{annotate-spacing}, we can
-see which margins we may wish to alter.
-
-Other than margins, there are a few other options to save space:
-
-@itemize
-@item
-You may tell LilyPond to place systems as close together as
-possible (to fit as many systems as possible onto a page), but
-then to space those systems out so that there is no blank
-space at the bottom of the page.
-
-@example
-\paper @{
-  between-system-padding = #0.1
-  between-system-space = #0.1
-  ragged-last-bottom = ##f
-  ragged-bottom = ##f
-@}
-@end example
-
-@item
-You may force the number of systems (i.e., if LilyPond wants
-to typeset some music with 11 systems, you could force it to
-use 10).
-
-@example
-\paper @{
-  system-count = #10
-@}
-@end example
-
-@item
-Avoid (or reduce) objects which increase the vertical size of
-a system.  For example, volta repeats (or alternate repeats)
-require extra space.  If these repeats are spread over two
-systems, they will take up more space than one system with
-the volta repeats and another system without.
-
-Another example is moving dynamics which @q{stick out} of
-a system, as in the second bar here:
-
-@lilypond[verbatim,quote,fragment,ragged-right,relative=1]
-e4 c g\f c
-\override DynamicText #'extra-offset = #'( -2.2 . 2.0)
-e4 c g\f c
-@end lilypond
-
-@item
-Alter the horizontal spacing via @code{SpacingSpanner}.  See
-@ruser{Changing horizontal spacing}, for more details.  Here's
-an example first showing the default behaviour:
-
-@lilypond[verbatim,quote,ragged-right]
-\score {
-  \relative c'' {
-    g4 e e2 |
-    f4 d d2 |
-    c4 d e f |
-    g4 g g2 |
-    g4 e e2 |
-  }
-}
-@end lilypond
-
-@noindent
-and now with @code{common-shortest-duration} increased from the
-value of @code{1/4} (a quarter note is the most common in this
-example) to @code{1/2}:
-
-@lilypond[verbatim,quote,ragged-right]
-\score {
-  \relative c'' {
-    g4 e e2 |
-    f4 d d2 |
-    c4 d e f |
-    g4 g g2 |
-    g4 e e2 |
-  }
-  \layout {
-    \context {
-      \Score
-      \override SpacingSpanner
-                #'common-shortest-duration = #(ly:make-moment 1 2)
-    }
-  }
-}
-@end lilypond
-
-@noindent
-Note that this override cannot be modified dynamically, so it must
-always be placed in a @code{\context@{..@}} block so that it applies
-to the whole score.
-
-TODO Add description of using \context in this way earlier if it is
-not already anywhere  -td
-
-@end itemize
-
-
 @node Further tweaking
 @section Further tweaking
 
 @menu
 * Other uses for tweaks::       
+* Using variables for tweaks::  
 * Other sources of information::  
 * Advanced tweaks with Scheme::  
 * Avoiding tweaks with slower processing::  
@@ -3094,6 +2888,10 @@ while the second (with no stencil) does not.
 
 @end itemize
 
+@node Using variables for tweaks
+@subsection Using variables for tweaks
+
+TODO Add section
 
 @node Other sources of information
 @subsection Other sources of information
@@ -3233,3 +3031,6 @@ In some cases (see issue 246), this must be done before
 
 
 
+
+
+
index 6ddaf4f9a8f5ca8fa792edbfcaf1805dc6898bc4..712ca7890c9e86126cfda66d81caf67b72b84cdf 100644 (file)
@@ -67,7 +67,7 @@ To make lyrics avoid bar lines as well, use
 @end menu
 
 @node Setting simple songs
-@unnumberedsubsubsec Setting simple songs
+@subsubsection Setting simple songs
 
 @cindex \addlyrics
 
@@ -104,7 +104,7 @@ introduced in @ref{Entering lyrics}.
 
 
 @node Entering lyrics
-@unnumberedsubsubsec Entering lyrics
+@subsubsection Entering lyrics
 
 @cindex lyrics
 @funindex \lyricmode
@@ -280,7 +280,7 @@ explicitly, using @code{\lyricmode}
 @end menu
 
 @node Automatic syllable durations
-@unnumberedsubsubsec Automatic syllable durations
+@subsubsection Automatic syllable durations
 
 @cindex automatic syllable durations
 @cindex lyrics and melodies
@@ -336,7 +336,7 @@ is the same as
 @end example
 
 @node Another way of entering lyrics
-@unnumberedsubsubsec Another way of entering lyrics
+@subsubsection Another way of entering lyrics
 
 Lyrics can also be entered without @code{\addlyrics} or
 @code{\lyricsto}.  In this case,
@@ -379,7 +379,7 @@ Internals Reference: @internalsref{Lyrics}.
 
 
 @node Assigning more than one syllable to a single note
-@unnumberedsubsubsec Assigning more than one syllable to a single note
+@subsubsection Assigning more than one syllable to a single note
 
 
 @funindex _
@@ -410,7 +410,7 @@ Internals Reference: @internalsref{LyricCombineMusic}.
 
 
 @node More than one note on a single syllable
-@unnumberedsubsubsec More than one note on a single syllable
+@subsubsection More than one note on a single syllable
 
 @cindex melisma
 @cindex melismata
@@ -483,7 +483,7 @@ A complete example of a SATB score setup is in section
 
 Internals Reference: @internalsref{Melisma_translator}.
 
-@lsr{vocal,lyric@/-combine.ly}.
+@c @lsr{vocal,lyric@/-combine.ly}.
 
 @refbugs
 
@@ -491,7 +491,7 @@ Melismata are not detected automatically, and extender lines must be
 inserted by hand.
 
 @node Extenders and hyphens
-@unnumberedsubsubsec Extenders and hyphens
+@subsubsection Extenders and hyphens
 
 @cindex melisma
 @cindex extender
@@ -529,7 +529,7 @@ Internals Reference: @internalsref{LyricExtender},
 @end menu
 
 @node Working with lyrics and variables
-@unnumberedsubsubsec Working with lyrics and variables
+@subsubsection Working with lyrics and variables
 
 @cindex lyrics, variables
 
@@ -605,7 +605,7 @@ differing ways.  Such variations can still be captured with
 
 
 @node Lyrics to multiple notes of a melisma
-@unnumberedsubsubsec Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
 
 One possibility is that the text has a melisma in one stanza, but
 multiple syllables in another one.  One solution is to make the faster
@@ -659,7 +659,7 @@ For example,
 
 
 @node Divisi lyrics
-@unnumberedsubsubsec Divisi lyrics
+@subsubsection Divisi lyrics
 
 You can display alternate (or divisi) lyrics by naming voice
 contexts and attaching lyrics to those specific contexts.
@@ -705,7 +705,7 @@ section.
 
 
 @node Switching the melody associated with a lyrics line
-@unnumberedsubsubsec Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
 
 More complex variations in text underlay are possible.  It is possible
 to switch the melody for a line of lyrics during the text.  This is
@@ -788,7 +788,7 @@ The underlay is switched back to the starting situation by assigning
 
 
 @node Lyrics independent of notes
-@unnumberedsubsubsec Lyrics independent of notes
+@subsubsection Lyrics independent of notes
 
 In some complex vocal music, it may be desirable to place
 lyrics completely independently of notes.  Music defined
@@ -824,7 +824,7 @@ lyr = \lyricmode { I like my cat! }
 @end menu
 
 @node Spacing lyrics
-@unnumberedsubsubsec Spacing lyrics
+@subsubsection Spacing lyrics
 
 @cindex Spacing lyrics
 @cindex Lyrics, increasing space between
@@ -880,7 +880,7 @@ layout.
 
 
 @node Adding stanza numbers 
-@unnumberedsubsubsec Adding stanza numbers 
+@subsubsection Adding stanza numbers 
 
 @cindex stanza number
 
@@ -903,7 +903,7 @@ These numbers are put just before the start of the first syllable.
 
 
 @node Adding dynamics marks
-@unnumberedsubsubsec Adding dynamics marks
+@subsubsection Adding dynamics marks
 
 Stanzas differing in loudness may be indicated by putting a
 dynamics mark before each stanza.  In Lilypond, everthing coming in
@@ -929,7 +929,7 @@ text = {
 @end lilypond
 
 @node Adding singer names
-@unnumberedsubsubsec Adding singer names
+@subsubsection Adding singer names
 
 @cindex singer name
 @cindex name of singer
@@ -952,7 +952,7 @@ the line, just like instrument names.  They are created by setting
 
 
 @node Printing stanzas at the end 
-@unnumberedsubsubsec Printing stanzas at the end 
+@subsubsection Printing stanzas at the end 
 
 Sometimes it is appropriate to have one stanza set
 to the music, and the rest added in verse form at
@@ -997,7 +997,7 @@ its fleece was white as snow.
 
 
 @node Printing stanzas at the end in multiple columns 
-@unnumberedsubsubsec Printing stanzas at the end in multiple columns 
+@subsubsection Printing stanzas at the end in multiple columns 
 
 When a piece of music has many verses, they are often printed in
 multiple columns across the page.  An outdented verse number often
index 7b1e1cd5b13812d6ce3628c81e499d1a862270ec..94d43b171d09d5c742f27cb8e7a2a1ecfb5a433a 100644 (file)
@@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains
 
 @example
 %%%   global.ly
-\version "2.11.23"
+\version "2.11.38"
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-layout.ly"
diff --git a/Documentation/user/writing-sections.txt b/Documentation/user/writing-sections.txt
new file mode 100644 (file)
index 0000000..3a0c767
--- /dev/null
@@ -0,0 +1,106 @@
+CHECKLIST FOR DOC SECTION REWRITES
+
+You've volunteered (or are considering volunteering) to edit a
+section of the NR.  Congratulations!  You'll learn a lot about
+this part of lilypond.  You'll also get thoroughly fed up with
+documentation work, and especially with me... but as they say,
+"you can't make an omelett without breaking a few eggs".  Welcome
+to egg-hood!
+
+REQUIRED READING
+
+- policy.txt
+- writing-texinfo.txt
+- this document :)
+- NR 1.1 Pitches.  Ideally, read it in your favorite output format
+  (either info, PDF, or HTML), *and* in source format
+  (pitches.itely).  This is our "demonstration" chapter, so the
+  below points really just boil down to "make it like
+  pitches.itely".
+
+
+WORKING
+
+I recommend working on one subsection at a time.  For each
+subsection,
+- check the mundane formatting.  Are the headings (@refcommands,
+  @seealso, etc) in the right order?
+- add any appropriate index entries.
+- 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.
+- move LSR-worthy material into LSR.  Add the snippet (or
+  just send it to Valentin for adding), delete the material from
+  the .itely file, and add a @lilypondfile command.
+
+- check the examples and descriptions.  Do they still work?
+  *Do not* assume that the existing text is accurate/complete;
+  some of the manual is highly out of date.
+- is the material in the @refbugs  still accurate?
+- process anything on the TODO list on the GDP web site.
+- 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
+  "consultants" who would help with such questions)
+
+In general, I favor short text explanations with good examples --
+"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.
+
+
+TWEAKS
+
+In general, any \set or \override commands should go in the
+"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 "main text" (ie not inside @refcommands or @seealso
+or whatever) -- instrument names are a good example of this.
+  \set Staff.instrumentName = #"foo"
+On the other side of this,
+  \override Score.Hairpin #'after-line-breaking = ##t
+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 "nice" if you spent a lot of time crafting nice tweaks
+for users... but my recommendation is *not* to do this.  There's a
+lot of doc work to do without adding examples of tweaks.  Tweak
+examples are trivial to add later -- they could be made by normal
+users, or by you after GDP is over.
+
+Basically, it's not something that needs to be done while I'm
+around.  Remember that I'm gone in August at the latest; there's a
+*lot* of doc work that should be done before then.  I strongly
+recommend that you save all the tweaks until later.
+
+
+FINAL
+
+- when you think you're finished, let me know.  I'll spend a few
+  minutes and send you a list of mistakes to fix.
+  (there's a *lot* of details to cover; we'll probably spend a
+  week going back and forth like this.  See earlier warning about
+  hating me by the time you're done with a doc section :)
+- I'll ask people on -user to review the Snippet list at this
+  time; correcting things on the Snippet list is much easier than
+  getting comments on the integrated snippets.
+- when we're both satisfied with the section, we'll invite
+  comments from -user.  Judging from my experience with Pitches,
+  it will take between three and five weeks to keep on revising
+  the "final" version.
+
+I personally found it quite frustrating to still be fixing
+problems in a doc section which I thought was "perfect" a whole
+bloody *month* ago.  Don't get me wrong; it's great that we get so
+many comments from -user.  :)   But just be aware that when you
+think you're finally done with a section, you're actually only
+halfway there.
+
+
+
index 11f49990c59221dfe1f27ad9d172ddcdac421d15..4c988f754eb83724971cff8d21f78d3121d2771f 100644 (file)
@@ -14,7 +14,7 @@ something, you can cut-and-paste that stuff into a new location.
 
 Most of the manual operates at the
        @node Foo
-       @unnumberedsubsubsec Foo
+       @subsubsection Foo
 level.  Sections are created with
        @node Foo
        @subsection Foo
@@ -29,8 +29,16 @@ commands.
 
 * Use two spaces for indentation in lilypond examples.  (no tabs)
 
+* 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
+    \set Staff.instrumentName = #"cello"
+
+* Examples should end with a complete bar if possible.
+
 * If possible, only write one bar per line.  The notes on each
-  line should be an independent line.
+  line should be an independent line -- tweaks should occur on
+  their own line if possible.
   Bad:
     \override textscript #'padding = #3 c1^"hi"
   Good:
@@ -200,10 +208,12 @@ commands.
   required.  Any link in a doc section must be duplicated in the
   @seealso section at the bottom.
 
-* Introducing examples may be done with
+* Introducing examples must be done with
      . (ie finish the previous sentence/paragaph)
      : (ie `in this example:')
      , (ie `may add foo with the blah construct,')
+  The old "sentence runs directly into the example" method is not
+  allowed any more.
 
 * Abbrevs in caps, e.g., HTML, DVI, MIDI, etc.
 
@@ -218,10 +228,3 @@ commands.
   this is, don't say `Ba@ss{}tuba' but `Baßtuba'.  This ensures that
   all such characters appear in all output formats.
 
-* Don't use a @ref{link to another section} in the middle of a
-  sentence.  It looks ok in HTML, moderately bad in PDF, and
-  utterly horrible in INFO.  Instead, reword the sentence so that
-  users are encouraged to see @ref{link to another section}.
-  (at the end of the sentence)
-
-
diff --git a/VERSION b/VERSION
index 97b9b012e15a177ea276561694cbe5ec47ca2060..77ea76be6d62a7b5e1f5e93b219e70fc7dfe59a7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=11
-PATCH_LEVEL=37
+PATCH_LEVEL=39
 MY_PATCH_LEVEL=
 
index 1b7f9032536d5cb5481895d0d53e9756abbaaf37..804fc1f999a4727e265c5d27a686394078725e5c 100644 (file)
@@ -21,7 +21,7 @@
 # version 2006/05/20 or later.                                         #
 ########################################################################
 
-our $VERSION = "2.4.3";   # mf2pt1 version number
+our $VERSION = "2.4.4";   # mf2pt1 version number
 require 5.6.1;            # I haven't tested mf2pt1 with older Perl versions
 
 use File::Basename;
@@ -340,9 +340,9 @@ 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;
+        next if !defined $val;
+        $$varptr = $val;
+        return;
     }
 }
 
@@ -745,7 +745,7 @@ ENDTRAILER
 # commands also defined by Plain Metafont.
 my %opthash = ();
 GetOptions (\%opthash,
-           "fontversion=s",       # font_version
+            "fontversion=s",       # font_version
             "comment=s",           # font_comment
             "family=s",            # font_family
             "weight=s",            # font_weight
@@ -759,7 +759,7 @@ GetOptions (\%opthash,
             "designsize=f",        # font_size (*)
             "encoding=s",          # font_coding_scheme (*)
             "rounding=f",
-           "bpppix=f",
+            "bpppix=f",
             "ffscript=s",
             "h|help",
             "V|version") || pod2usage(2);
@@ -819,18 +819,18 @@ ENCODING:
 {
     if (-e $encoding) {
         # Filenames take precedence over built-in encodings.
-       my @enc_array;
+        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 "/";
-           }
-       }
+        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_name = substr (shift @enc_array, 1);
         $encoding = \@enc_array;
-       last ENCODING;
+        last ENCODING;
     }
     $encoding=\@standardencoding,  last ENCODING  if $encoding eq "standard";
     $encoding=\@isolatin1encoding, last ENCODING  if $encoding eq "isolatin1";
index 8d7899ef0ebf7de524234f0c27d235919101d5e7..26cd613e4cdad36764c976bb424b124bc1638b08 100644 (file)
@@ -17,19 +17,23 @@ 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">
+        '''<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' }
+        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'''
+    }
 
 import langdefs
 
-# ugly hack: the following overwrites HTML Info dir with a link to
-# the (more useful) documentation index
 for l in langdefs.LANGUAGES:
-    static_files[os.path.join ('Documentation/user', outdir, l.file_name ('index', '.html'))] = \
+    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'
 
@@ -45,9 +49,9 @@ sys.stderr.write ("Mirrorring...\n")
 dirs, symlinks, files = mirrortree.walk_tree (
     tree_roots = doc_dirs,
     process_dirs = outdir,
-    exclude_dirs = '(^|/)(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + r'|po|out|\w*?-root)(/|$)',
+    exclude_dirs = '(^|/)(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + r'|po|out|.*?[.]t2d|\w*?-root)(/|$)',
     find_files = r'.*?\.(?:midi|html|pdf|png|txt|ly|signature)$|VERSION',
-    exclude_files = r'lily-[0-9a-f]+.*\.pdf')
+    exclude_files = r'lily-[0-9a-f]+.*\.(pdf|txt)')
 
 # actual mirrorring stuff
 html_files = []
index 129ebcb6d4b456bdf86dc3bb549d63e9f1277f91..b15a0b0de07d26044bd63cf1c294ced47a96dbc7 100644 (file)
@@ -175,11 +175,7 @@ STEPMAKE_GUILE(OPTIONAL)
 # perl for help2man.
 STEPMAKE_PERL(OPTIONAL)
 
-# New makeinfo for multi-page website docs Simply always require new
-# makeinfo should avoid bug reports; if people want to build lily
-# without the docs, they can find this comment and use an older
-# makeinfo--but hopefully won't report makeinfo problems.
-STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.8)
+STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11)
 
 AC_DEFINE_UNQUOTED(FLOWER_VERSION, "${FULL_FLOWER_VERSION}")
 
index 627de67da0eddb30631231fcdbc749bba22df634..729a745b9f0d2cbc22839a696f70f84c2dff57b7 100644 (file)
@@ -14,7 +14,7 @@
 
 I = \once \override NoteColumn #'ignore-collision = ##t
 
-\version "2.11.32"
+\version "2.11.38"
 
 staffPiano = \new PianoStaff {
   \set Score.timing = ##f
index 7f49c57688a12a13e91ff6d8142acef84a45d86b..549bda4fd5b4474fa356aa10ce289983c46eee5d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.11"
+\version "2.11.38"
 
 \layout {
   indent = #0
index 22837f034e5a57fc6b20a46107b563c899d1acac..b434aa74672e9245552b350d4d165b20a345aa3e 100644 (file)
@@ -21,7 +21,7 @@
 % Copyright 2006 for the entire score;
 % All rights reserved by the composer.
 
-\version "2.11.2"
+\version "2.11.38"
 
 \include "english.ly"
 \include "cary-layout.ly"
                                \override Stem #'length = #10
                                \override Beam #'positions = #'(-13 . -13)
                                \override DynamicLineSpanner #'staff-padding = #18
-                               \override TextSpanner #'edge-text = #(cons (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 #'edge-height = #'(0 . 1.25)
-                               \override TextSpanner #'bound-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 6f2cf822ea845a43fd96eed7339c29d40ac9f683..74ec47ee28389ef4502a260d6b385384dabe27df 100644 (file)
@@ -18,4 +18,4 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.10.0"
+\version "2.11.38"
index 532b461ca5719ae8b65ab9a9bde1e7913bd910b6..8693e6e962df14f2c41ea8153586a823e7945589 100644 (file)
@@ -17,5 +17,5 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.10.0"
+\version "2.11.38"
 
index 85277c45a4766fc64a4e8800075e56166c3849e3..e76f5b4db79ce9bd08ba2916cb5966f8dafdc294 100644 (file)
@@ -33,4 +33,4 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.10.0"
+\version "2.11.38"
index 9f91786efeb9c91742ee8109b88c5c5de7f834fb..89be94295eb7f298d285e42538999ca1d321a86e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 \header {
     composer = "ARTHUR GRAY"
@@ -219,9 +219,9 @@ middleDynamics = {
        s32 s s\! s
     
     }
-    \fatText
+    \textLengthOn
     s32 s-"rall." s s s8 s4
-    \emptyText
+    \textLengthOff
     | %5
     s2-"a tempo" s8
     s \> s s
index 7ef747f28e0172b6fa89d4bfb68fb6f791c3453c..b457150eaed98b7b073a3787c10489e3a73f3cce 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "chords, ancient-notation, contexts-and-engravers"
index 57cbb559b3c19f605eb5bf26d5544fbae9228c50..2be46181f91fded7f25bbc0f28e4be072d6cf67b 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches, staff-notation, vocal-music"
index 1ae18b0a730c136dda6c2563ca49a1098e2d79d9..ff9d5a2777381b3d23f116c15cd462119e274ed3 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers"
index 16c370faa8656cb375addd3939e08c4134a20a8f..8f1472e42aba51c3a1874912a43933136b0ba484 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers, breaks"
index 4ffd3cf0fc45d3e1f325e62d54c450ad99da9113..15d77cbcffe4245d197c82572f918a890cccf3c7 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, expressive-marks"
index 6e76d637c262f98580d3e6a243dbc41b507e8c95..f9941b82c8205cf162745cb42ffd7be5725ec546 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, percussion"
index da8ec5ea629371b558274765d40cf791ccb910b9..64fb4d5f25df791fac9cd927dd557176e1f7d333 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "guitar"
index fcf98a1deedd387fcf1f36ec2b87189893e8c0a0..7341d4f224349bd5b86adc1b3b1471bbec903fed 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks"
index c1045bdfed1fc841a8c61dc0437ad1afb8a6f8fa..85ac4910c5c5544cf210efacfd2229d082330396 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "titles"
@@ -24,7 +24,7 @@ solution, you can format the date just as you like it by adapting the
 details on this format string: Formatting Calendar Time. 
 " }
 % begin verbatim
-\version "2.11.35"
+\version "2.11.38"
 % first, define a variable to hold the formatted date:
 date = #(strftime "%d-%m-%Y" (localtime (current-time)))
 
index 9d0a518ac8d31091cc942cce86f4e7b9ac361a47..68a31e707bc1f41e6e224c4ccdaa4736c113f4a2 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, vocal-music, spacing"
index 8794457dfa39a74a6465d5f010bd90ead113cfe6..586103c4a0de81a63b92d5e352ac6f3d9b1ee9f8 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, paper-and-layout, titles"
index d6c6fc9319b634ad533ad4374c62e7172443f806..1cb96225ba2e0c137931491681bc5fb132d83cf8 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, vocal-music"
index 5f71b712ecb13d45822ba0fcd0f26c424affdeb8..28e73ec1c40851c382df6b1582122bc87f14f2cb 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "tweaks-and-overrides, paper-and-layout, spacing"
index 81359ddc8841add99bfb780e14a37cb57af757c4..67d6605a4f87d239d06619ff9a14d27e1bdff8f4 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
index 08a64ad169d085d18b038e1644bf0bdbd23f6d9d..d6c563becfeb72aebcd735b1d4a9ddab5d6da4eb 100644 (file)
@@ -1,9 +1,9 @@
 %% 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.35"
+\version "2.11.38"
 
 \header {
-  lsrtags = "pitches"
+  lsrtags = "pitches, vocal-music"
  texidoc = "
 If you have multiple voices in a single staff and you want a single
 ambitus per staff rather than per voice, add the
@@ -16,8 +16,6 @@ ambitus per staff rather than per voice, add the
   }
 <<
   \new Voice \relative c'' {
-      % eliminates collision
-      \override Staff.Ambitus #'X-offset = #-1.0
       \voiceOne
       c4 a d e f1
     }
index eef25c714264920812e75dfc4d0794908633cb1d..55cf18912ceacf4163bc1368af0853a3089ebdf7 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation"
index fbaf650bdf77637a6d9ef2581ab2bbaa8a3cbb95..892b8942d0244c29e26c52df9902d13bf459b216 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation, template"
index 0e5d1b3e1f4ff5930162504bc795d186687a01f3..f42d442776147c07da7200973a75f4afe46dddde 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation, template"
index 34c0084249daa100eb1240900d419bb262b644ae..c8b0963a4e083b78d839e807407bdf091a69422e 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation"
index c6e68f26325bc9af66d4a1f443d69d8efb9a289e..70aef6b7b9981ef8c6d8f73736f6b7b5f556eb91 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches, editorial-and-educational-use"
index e5e9bb7e65cf76ae63e02bfee5b10baf720dd892..2dbb41df46d9f8aa21ad232322d918d24014f5dc 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms"
index d2435bf06ff6bd4bd3caedabb5c58d1411236c21..8d008b750738ac9db970325453f7d9b909714c6b 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms"
index cbf5a6ee08f2d7598b6b9bab5ffa21a43133010f..ea2fc571a8fd17938dd8307710c22944200b4f92 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, breaks"
index 7d26111648a0f6913f76b9d09bd4e29a4fb22a94..b33e4ab0d12edcfa915660025875191092636b81 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "editorial-and-educational-use, text"
index 25a58aaaa2fde808f4fe33d850d5f11e305de4d9..f8d87e3870cc78ee7c93fb8fe96027fe07516035 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks"
index 164764ac91350185884baf74e6bb6683a473c650..56117a6cb86be0c46908e329e4f17a23e5c17471 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks"
index a6780af5cbe778b10a808dffd3f5284e38cb9d0a..08ee89a2858d6a097177f62298e3b04323b807e6 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index 117035b5b2ea9fcc35198a9cbcee29dfe42d050b..e427bfcfa97a51efe091945fe200bf7e98550621 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks, text"
index 834d8b21fd105eb5468678a09eaa4cc5f5cc211b..22724d65b1d3ef97fbfebb2b5f22691f8eeabb75 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks"
index e521e95e5f8e08d463693e7ee40f1cfeba10c2de..afcfe680e00953423087781f16df182aaac81293 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "simultaneous-notes, editorial-and-educational-use, tweaks-and-overrides"
index c9a11ee9d0817957e3906e66dd2c6764c6bbaf2e..c5c1976dc5994a436132f05b14b82741dc8ec045 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "tweaks-and-overrides"
index 9d8e2f1516373742f6e9a47bd9c8d89b9967af10..1a71ec3e8fb835a03bd60a5ab1922ffed25c3d12 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks, editorial-and-educational-use"
index 072d98624367bbff31282702ac052854ef848a69..03f64fea32cb2b224c921f8e6b6575831c1d6c4f 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "chords"
index 8612a64ff75650067ee960de2f3446fba4d8cbc9..1f87eb9fe991baddd670c1fd904f14c8f660c178 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "editorial-and-educational-use, text, tweaks-and-overrides"
index ff6fc15ac35d72c9a4335c572c5fa6db6bb7a649..7beb4a38b0b29b5caa4e5d5564588d48bb84836e 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation"
index aeecc69820c5896f8d6655d4cd94938082393dc6..2c54e420a894ad6e63ccaba90a784bee16091aa3 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
index 8605a9cf7e0f093b380ffe72173aaa5a23a552c1..fa8bd79a8aba6d24b085297d5905d1281f659702 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, contexts-and-engravers"
index ac300809c5346589d41ec65cb7571a7df9e56f51..af4ca99b46fbf49f1eac80115bef7841b3e58eb4 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
index 8e174224d8240b381508aa07919039b9da39ec73..22cc2cb27adee110fdbe5eb9484879e1aadba335 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "chords"
index b394dd41df9e15d7a8280071768240e4856288fa..dac04fe9798199140e57e7258036fbf8ca57f127 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches, staff-notation, editorial-and-educational-use, tweaks-and-overrides"
@@ -23,7 +23,7 @@ space. The clefOctavation value would normally be set to 7, -7, 15 or
 When a clef change takes place at a line break the new clef symbol is
 printed at both the end of the previous line and the beginning of the
 new line by default. If the warning clef at the end of the previous
-line in not required it can be suppressed by setting the
+line is not required it can be suppressed by setting the
 explicitClefVisibility Staff property to the value 
 @code{end-of-line-invisible}. The default behaviour can be recovered
 with  @code{\\unset Staff.explicitClefVisibility}.
index 48259b8474ef314198306f4d2e4ba8b74c21434c..2681cb08ab3f21a7c56ea2d2cf268da48dc53851 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Clip systems"
index 9093b2df6d909b5fd4bfd4f86b6352d4dd28f65c..e5b2c277071ba8e97f9711bf2e46c00b8249006d 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "simultaneous-notes, chords, piano-music"
index 75f6249134e5f10095953ed59dae2bb7fe706ac9..48ab991661e4488626897682e62d9ccbc9d4c625 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "editorial-and-educational-use, tweaks-and-overrides"
index 08839abbd079ccea3f265a9c5ceac919619d5ad2..52c146f7c47c4fedc5dab4b1451c3d818f08bba4 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks, text"
index 9c0b7722737d61047bee05f4c07fff3bb4fa7cfd..c493552014a8f7af8b5a664e819657dd09ec7508 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "simultaneous-notes, text"
index 1bb96252a7cc251f7c24c71fb3163681738579e4..37b840a30899535bb20b5d1296eb845210e74acf 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms"
index 6beb1d7e077a781f99701e8bdb04b0bed3e3e1d3..db28346ec3a09275bda2e7288449520ec8cb7755 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms"
index 7b8c9becb3f6ca7340d1b82e50a8bd7baf6f3a72..3b163adf2e8a02547150bdc6cc01256022d1799c 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks"
index 36426d1e602204515beeb85e7792a1391450af7a..7c14c06ec7f4c9c43bafa645ce68901b75b2e549 100644 (file)
@@ -1,8 +1,8 @@
 creating-blank-staves.ly
 chant-or-psalms-notation.ly
-adding-a-figured-bass-above-or-below-the-notes.ly
+adding-and-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
 engravers-one-by-one.ly
-adding-and-extra-staff-at-a-line-break.ly
+adding-a-figured-bass-above-or-below-the-notes.ly
index ed8dc33ce41c6071c1fc3f046fcc3b7ed87ff79c..d5707537d3333576576d1c9687a7b612c8669c16 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
index 8e1b779a1e264211570af8afbb3505c1bf66497b..2a19a9959c257caa563f51b8c33e5eecabef805d 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches"
index 46c72b65d2b973011bfe11450ee875b6f51fec64..f44697755b278e10353e579bc6f6ce93e4607c9a 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, editorial-and-educational-use, contexts-and-engravers, paper-and-layout"
index f38e46bbd296cfe6f4ea55fe12510d4f29113479..34b4f2eb785299b72a3270aa61aa27aed593ef05 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
index 0853632d32d6214430a42ca8658848b6cf0c2b67..a3d250f11d50f4d4bd1383691abada68deaa3db2 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation, tweaks-and-overrides"
index 8f2ae4fc2786c89b836212c52021eba49895fc14..4f7941129d102ab8325caec3072b91307bfdd107 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, piano-music, strings, midi"
@@ -9,7 +9,7 @@ Problem: How to know which MidiInstrument would be best for your
 composition? Solution: A Lilypond demo file. 
 " }
 % begin verbatim
-%\version "2.11.35"
+%\version "2.11.38"
 
 basemelodie = { c'4. \mf g  c'16 b' c'' d'' | e'' d'' e'' f'' g''4 g'''4 r | r1 }
 melodie = { \tempo 4 = 150 \basemelodie }
index 7f73eff6b1ab334062aa70f75f849bc22226969e..6870f153b3c327d13e3fbdc722eeb8f2baa14f8a 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, paper-and-layout, titles"
index 45e383e6539c9c4aa57a9b16043ce86f1218408b..2b054fdaa361131998ebc106796775b5b1382548 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches"
index 9894d10ff5b1c0d62253ac1d119fde87820617c1..29d23925a9c097efa928871d2dacaaae5a791162 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Drawing boxes around grobs"
index c596551d60fc41c4f90f1bce724aae796d589f1f..a73b93ff6ca1b47f89fa05f90c185e20dc6c992d 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Drawing circles around various objects"
index 0708835a5db1a3b21ab16ce5323d36557bff81a4..022286d6071b37efd3f4847e8d69cd5d3e02965d 100644 (file)
@@ -1,5 +1,5 @@
-creating-blank-staves.ly
 applying-noteheads-styles-depending-on-the-step-of-the-scale.ly
+creating-blank-staves.ly
 changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
 coloring-objects.ly
 inserting-score-fragments-above-the-staff,-as-markups.ly
index 0f874131e9133021762afe20f4fd5fe1bede9c60..0069a9f92f7628f8b549db76257e90421d83aa5c 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "contexts-and-engravers"
index d688d8b1798a5a5abe9385061c94761237fe154e..7ed0da7c352070e49aa2c725f0f33b692cee1c66 100644 (file)
@@ -1,9 +1,9 @@
 combining-dynamics-with-markup-texts.ly
 creating-text-spanners.ly
-breathing-sign.ly
+adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
 changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
 caesura-railtracks-with-fermata.ly
-adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
+breathing-sign.ly
 center-text-below-hairpin-dynamics.ly
 contemporary-glissando.ly
 adding-parentheses-around-an-expressive-mark.ly
index c902900f5c5d951a1a8abf5311734e6f8ae45998..bb895aba3712e3cd81a3c25d7a97f3adf6177ef6 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, editorial-and-educational-use"
index 455e96962da5ce23f411aed262b2465fab56613b..037b35539217a87e2aac1d77aec5466ab115bb29 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "editorial-and-educational-use, text, vocal-music"
index 388273c307d35c3f22e05b039d99f0ab893bc39b..54720e2eabb7ded7780f893a3054885e4259bb0f 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches"
index b0858086bb6032619c856d4342c6e99fa8714a46..0873ab4e5fa061ce95965d60fceb802e4ba85457 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, percussion"
index d0c17caf8dc416bf231729c212e69406bf3d0c94..9db3e3ae3eb263ad2ec6d5fee15b071576209600 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, vocal-music"
index 725100cbc1eb38df1bdfc1ff8bb9475534b0fcad..f80973921e72ebc78932a3212081757a707fe224 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, editorial-and-educational-use"
index f0a3f5fe128a5cc957debb84607e8990276a5be2..1fa05fc74fbf15f3e11d8ef1d85d5853b333b597 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "piano-music, percussion, guitar, template"
index fcf90a207fcc721e3054c0e5cc256858c9202a59..c2e7d3211b13c52715d24b3e13c9f5faa0f41210 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.35"
+\version "2.11.38"
 
 \header {
   doctitle = "Letter tablature formatting"
index e04344911510b5dc72bff7d7cf3bab48231e1c5d..1ab598090bb881c2e3d439d51379c47516ff3301 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Line arrows"
index 79b8ac85401fa02fd922c06ab3c8cbf7ddaf9600..74c7218e4bf93ea27da9b8645d652b22fc8919ee 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Makam"
index 8d20fd3a59c5018e04380d926859272a5583909c..d9208f04fb27690a13cd8ab72d4ac0c0ca76ad3b 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Making an object invisible with the transparent property"
index 2ed191b0c4182d4668f6f1cb5bf7e3f55c8fc607..cef8e0f13cd007f3ec597f417d13085d7c8947ab 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
index 64c007c2307f5d270cc28723e1c03d44543d8c51..c7c91a59ea6c01c273872946d7265f88cff2c8a7 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.35"
+\version "2.11.38"
 
 \header {
   doctitle = "Markup lines"
index 4ed8fa1f7f497a349dd3c97ff3359bce968c0c42..4ad574a0eb36aad4acc4a2e6d2521a6ae1718105 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.35"
+\version "2.11.38"
 % possible rename to scheme- or something like that.  -gp
 \header {
   doctitle = "Move specific text"
index 62422ba4481aa04f31e43620b243350a1e0b2a86..fd57c48b66b63cee7f0f8277be52cd1c1afd555d 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches, staff-notation"
index 0da459223310070aa9aaf1ae18bc9854f6340a89..d64bfa45db1575ccf71869c300ce2ceb655448da 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches, text"
index 748c9079813e722b580dda49fba0210c405ef6c3..b825f8cb919b5dd617ca8bd49b109f74f9adc69a 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.35"
+\version "2.11.38"
 
 \header {
   doctitle = "Outputting the version number"
index 37372edf216d330706b529f32acaac5ec4a916e2..e6a50acf156194220eda4941b2a310723a1cf653 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Page label"
index 22cae45775d5c3e325f14ee9c90a699dabb2f366..06d260833ce6ebd7df65367df805a3fe52253e9b 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "piano-music, template"
index 0b65b98ac17ab013da78818ebd4ca16906b27240..383c6bcb32dc09c09c1182045018463a50183be9 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.35"
+\version "2.11.38"
 
 \header {
   doctitle = "Piano template with centered dynamics"
index 96968b7dc6343973c0291de45986213bf64207db..9727132ff76567e390e1c1698d4a9d0707ba7a37 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, piano-music, template"
index c7dea583137a07463b0efa91aace5af3cc29a80d..3b9f4c5f29ea324a01ab078bc423b79103af5680 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, piano-music, template"
index b1a49b2e7c03bf90fd4e94d02a81ec1e47bbff0f..6b85fe7a49d2648bcca7c4eaf6b932f3784c430b 100644 (file)
@@ -1,5 +1,5 @@
 applying-noteheads-styles-depending-on-the-step-of-the-scale.ly
-ambiti-multiple-voices.ly
+creating-a-sequence-of-notes-on-various-pitches.ly
 makam.ly
 transposing-pitches-with-minimum-accidentals-smart-transpose.ly
 ottava-text.ly
@@ -10,5 +10,5 @@ adding-ambiti-per-voice.ly
 clefs-commonly-tweaked-properties.ly
 dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
 preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly
-creating-a-sequence-of-notes-on-various-pitches.ly
+ambiti-multiple-voices.ly
 non-traditional-key-signatures.ly
index 0a4082c417ed65a33240f87ac245edb9ab649afd..a9604be799a7e9f881fd771b8f5b833ec22379c9 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "repeats, breaks"
index 70695f8e8741a4a0b4aae4d251e23e46440e0437..b802fc08217b64515c064a8995062e319d2ceea6 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches"
index 803e54b7ba02bcc96667e7202cd62307cd120264..c7fbfb283c336d2a0a0274a97ec3537e663af6f0 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "pitches"
index e05e2542cacdb2bf4b7ed51db7868440b39c9209..050b6897087a3ce65a2d1ca0857a27513377612b 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "tweaks-and-overrides, spacing"
index 95ba983666e31306f7aadca14b81f596633af969..cd07810a5b57f2c4dfe675d511c78b67bba40d26 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.35"
+\version "2.11.38"
 \header {
   doctitle = "Quoting another voice with transposition"
   lsrtags = "pitches,staff-notation"
index 7ad768a1217ebf5f4ca0a8086eea806850d1c66a..2380dc166f5ce76ad3216148a7a8eda5b8bafa14 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Quoting another voice"
index c38f21e90fd66135029ad3733a9598521e3d7af2..62cf4a07e848703958469f243f43fceff5c202cd 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
index 5b8ab05a443622baba97e7610e4485d61a78d3c3..45e09b689086c44dd5e55a2b7150a6430620bc44 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, editorial-and-educational-use, tweaks-and-overrides"
index 35ce406627c5bb4e927942c7c4727f220e008c81..2a1edde5b98697aee82366c8ea5d193ef263f5f7 100644 (file)
@@ -1,19 +1,19 @@
 altering-the-number-of-stems-in-a-beam.ly
-chant-or-psalms-notation.ly
-heavily-customized-polymetric-time-signatures.ly
+adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
 conducting-signs,-measure-grouping-signs.ly
-skips-in-lyric-mode-2.ly
-automatic-beam-subdivisions.ly
+heavily-customized-polymetric-time-signatures.ly
 rhythmic-slashes.ly
-adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
+skips-in-lyric-mode-2.ly
+manually-controlling-beam-positions.ly
+chant-or-psalms-notation.ly
 changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
 automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
 making-an-object-invisible-with-the-transparent-property.ly
-manually-controlling-beam-positions.ly
+automatic-beam-subdivisions.ly
 forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
 controlling-tuplet-bracket-visibility.ly
 beam-across-line-breaks.ly
-compound-time-signatures.ly
+skips-in-lyric-mode.ly
 adding-drum-parts.ly
 rest-styles.ly
-skips-in-lyric-mode.ly
+compound-time-signatures.ly
index ec1083213e8cf9e533a4f345eb1c7747792510d3..69ddae9f866594138310f50238a747f98d617fa2 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "template"
index 04c59caa1fbf21fa19c9e2d39ff674c5ad5579c5..8f05237b12e38ad748588a4a1ce5c1dd62216e69 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, chords, template"
index 95302edc3dd4a985e7c38f7543f2f3820cadd871..b80b8ea30e33f30ed2ae4eac5b5e6542f3e58013 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "chords, template"
index bc12e8363c6325e190ade768f434eccab7393e88..1ed0dcb4330e2fc1fde97d4665aa14c3c0d61d75 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, template"
index 7873a28e525d99f9ee279e8cf82f30aea02a8cba..49d7a2090cdfdd7267cb2befd21d03094c55bd9e 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "template"
index 558259919c027fe562eeb87a8c726672e23f423b..7d6a885fe9c7fb5f0443d2e704413197d6dbaf88 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, vocal-music"
index 402eaa6a3ece884cf6218111bcae793e20500bc7..9c5cc3cb80217d18ae9b13aa8bc2c328d853a441 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "rhythms, vocal-music"
index a0d5352384730414624a54f53d661e0f032a43f6..d9f5825d2e1e103ad235fda9f8ecc453a051ca18 100644 (file)
@@ -1,5 +1,5 @@
 alignment-vertical-spacing.ly
 vertically-aligning-ossias-and-lyrics.ly
 page-label.ly
-adjusting-lyrics-vertical-spacing.ly
 proportional-strict-notespacing.ly
+adjusting-lyrics-vertical-spacing.ly
index 1bde440670bc034cebc699604e55243c32c33033..51b72daef63999bd3247db763553f4485765df42 100644 (file)
@@ -1,13 +1,13 @@
 creating-blank-staves.ly
+time-signature-in-parentheses.ly
 adding-and-extra-staff-at-a-line-break.ly
 changing-the-number-of-lines-in-a-staff.ly
-time-signature-in-parentheses.ly
+inserting-score-fragments-above-the-staff,-as-markups.ly
 adding-an-extra-staff.ly
 changing-the-staff-size.ly
-quoting-another-voice.ly
+quoting-another-voice-with-transposition.ly
 adding-ambiti-per-voice.ly
 clefs-commonly-tweaked-properties.ly
+quoting-another-voice.ly
 volta-multi-staff.ly
-inserting-score-fragments-above-the-staff,-as-markups.ly
-quoting-another-voice-with-transposition.ly
 non-traditional-key-signatures.ly
index 98bbbb08d7574633411b6bde08b6b822907bc8e3..b5a07be2fa88bd5b06e45af64c14d27a3117b593 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "strings, template"
index bb6c13d12650a9a1e47fb5f6f9920e5894495e46..7f4be12db139ab054aa6b510355737261158a88a 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "strings, template"
index ecd2a989da56e58cc219928339cb6abeaaa8e24c..b7636826aebd10963274eaea0c1595a2b7285f6c 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Table of contents"
index 59b06c613003f94fdd4a141e68e2a39f338babca..8af6644e5a99342e8f7792020acffb241f94ab88 100644 (file)
@@ -1,17 +1,17 @@
 piano-template-with-centered-dynamics.ly
 single-staff-template-with-notes-and-lyrics.ly
 single-staff-template-with-only-notes.ly
-piano-template-with-centered-lyrics.ly
+jazz-combo-template.ly
 score-for-diatonic-accordion.ly
 piano-template-simple.ly
-string-quartet-template-with-separate-parts.ly
-ancient-notation-template----modern-transcription-of-gregorian-music.ly
 ancient-notation-template----modern-transcription-of-mensural-music.ly
-piano-template-with-melody-and-lyrics.ly
+ancient-notation-template----modern-transcription-of-gregorian-music.ly
+single-staff-template-with-notes-and-chords.ly
 string-quartet-template-simple.ly
 single-staff-template-with-notes,-lyrics,-and-chords.ly
-single-staff-template-with-notes-and-chords.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-jazz-combo-template.ly
+piano-template-with-melody-and-lyrics.ly
+string-quartet-template-with-separate-parts.ly
 vocal-ensemble-template.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+piano-template-with-centered-lyrics.ly
 vocal-ensemble-template-with-automatic-piano-reduction.ly
index 8d117ee76bb0f6db26260090b19cec809542725c..7a103584fc7692cf17164ead0db2aa648a378687 100644 (file)
@@ -3,16 +3,16 @@ creating-text-spanners.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 markup-lines.ly
 center-text-below-hairpin-dynamics.ly
-piano-template-with-centered-lyrics.ly
+ottava-text.ly
 demonstrating-all-headers.ly
 changing-the-default-text-font-family.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
+combining-two-parts-on-the-same-staff.ly
 aligning-and-centering-instrument-names.ly
 utf-8.ly
 outputting-the-version-number.ly
 blanking-staff-lines-using-the--whiteout-command.ly
 formatting-lyrics-syllables.ly
-combining-two-parts-on-the-same-staff.ly
-ottava-text.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
+piano-template-with-centered-lyrics.ly
 adjusting-lyrics-vertical-spacing.ly
 aligning-lyrics.ly
index be8ed8e0c5ca99196db5e3702d1377c6f3859841..ce9b3a589b338dd3727ffe9be179c965cf200f4f 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "editorial-and-educational-use"
index 553e963822433ac98bab7a2e4de615d86ace6f53..db9ee9eeddfec7b10b3008d7e5465b0f0dc660df 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
index e8009ae0514af6be2ef978ca16a21f0901abfdd6..17699f6043d4d8501b9b27728b8270f6ed7206e7 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "ancient-notation, tweaks-and-overrides"
index 2b00d1a8c17257ec34d749a528d40e8484f7e93e..4bce592109fad2cf31c3fe33d01aa3d6304bcec1 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.35"
+\version "2.11.38"
 \header {
   doctitle = "Transposing music with minimum accidentals"
   lsrtags = "pitches"
index 310a0fe5e5a2c7f6295d64bcba2825ebb8ad70d9..f178dc8d540c337423e48974ce1205b8cd7ef528 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.35"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Using the @code{\tweak} command to tweak individual grobs"
index 52b454077bdaebfe8123787e5452085dc89fcfb7..85c44ad8791145a6a10faeb6708854e927b93d84 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.35"
+\version "2.11.38"
 
 %% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
 
index 2272cbf2c7f8b51db23a567f99404a26212314e3..ae90d7eced51f4260ebb988cf31171006a96a3b5 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, tweaks-and-overrides, spacing"
index a4bf30972f7cccea4ca236ba0f9a548638df5751..27d05f4a01faa772042adea854244872947d2ea7 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, piano-music, template"
index a608c855a5d945597c7269877d67e8d740a0e976..d3042b5a497d9a9f1f9868e0c9300972c7e31485 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "text, vocal-music, contexts-and-engravers, template"
index 895ad33a3540651dc951127bc5ab8eab0d75e294..35618505e9acabbca194e4a55115f73d015a2a26 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.35"
+\version "2.11.38"
 
 \header {
   lsrtags = "vocal-music, template"
index 427a1d526b4ae9a2af4b19b7109dcb5ba1889d41..398c1df27aac64972a8f247ace8500759cb67977 100644 (file)
@@ -1,16 +1,17 @@
 chant-or-psalms-notation.ly
 single-staff-template-with-notes-and-lyrics.ly
 skips-in-lyric-mode-2.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
+skips-in-lyric-mode.ly
+aligning-lyrics.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 how-to-put-ties-between-syllables-in-lyrics.ly
 adding-ambiti-per-voice.ly
-piano-template-with-melody-and-lyrics.ly
+vertically-aligning-ossias-and-lyrics.ly
 single-staff-template-with-notes,-lyrics,-and-chords.ly
-demo-midiinstruments.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
 formatting-lyrics-syllables.ly
-vertically-aligning-ossias-and-lyrics.ly
-aligning-lyrics.ly
+piano-template-with-melody-and-lyrics.ly
+ambiti-multiple-voices.ly
 vocal-ensemble-template.ly
 adjusting-lyrics-vertical-spacing.ly
-skips-in-lyric-mode.ly
+demo-midiinstruments.ly
index 391e36b5f9948e7d448b2a2fc782c8d1e6570509..b171c518869a6e941e498bc840ef5e40ab6f6777 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.36"
+\version "2.11.38"
 \layout { ragged-right= ##t }
 \header {
   doctitle = "Volta multi-staff"
index cbc8ea921d664d61237b7ce6944fd766173a0530..56ddfc7fa660fafcb483b512124b8a2616b5f257 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header {
 
 texidoc = " Chord names are generated from a list pitches.  The
index f1ca5b4a49328ad056276bb8bbb652cf8e9eb10b..1c3324c57dae13201d1490d222d99384e04d5bdf 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header  {
     texidoc = "@cindex Chord Names German
 The english naming of chords (default) can be changed to german 
index 5d8d4626ea412d77c6e7dc2c95d5366d65fa364c..9be64b0f0ead8a29ed89705ae6682edc87a06af4 100644 (file)
@@ -9,7 +9,7 @@ Choices are @code{divisioMinima}, @code{divisioMaior},
 
 " }
 
-\version "2.10.0"
+\version "2.11.38"
 
 \include "gregorian-init.ly"
 
index 3279c7ee3a4bbac85ecc6587974d8e8848d64d83..6022cb472594d4bdd05423c79753bb907029dd6a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.7 Editorial annotations
index cc65ce18b3a2a2fe4dcb3c40cce5c773e1a338ff..56f873644c22a81fe06d52fbb0fbd03063cea34b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.3 Expressive marks
index dae8fd4597580fff1de2b0cfda50aa8142cf92fe..f6f86e6ffe62dbf1b1c1f0acf5a23249094f199d 100644 (file)
@@ -9,7 +9,7 @@
   evenFooterMarkup = \markup {}
   }
 
-\version "2.11.27"
+\version "2.11.38"
 
 #(define-markup-command (doc-char layout props name) (string?)
   (interpret-markup layout props
index c561eec4d11ad2ce795155fb7fd33374ab09c652..2668343e8fbceea4aa203bb10e0f59d743b1fc7e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header{
   texidoc="
 Note head shapes may be set from several choices.  
index 4b4f0b84f16ddada2f9b6d77a20ce29af663ea1e..67e74f8a2bce6f5424dc5f2eeab2645f4a680328 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.1 Pitches
index 816990627135c99c68fae463fce14d884a883b2c..16ce69716ca8d50cf53c9f4ce59c6cf6f33668f4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.7 Repeats
index 2d7dbbf92cc86ab98ed305b34f28c8747e73306b..ff2a300f35aae4eaa059e4236ea049d6dfd5c80c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.2 Rhythms
index e13a70e8eead745aed7de1f135d47b2b380b4790..beada640a5e50bf9afe81a580114700fc7f78498 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header {
     title = "Screech and boink"
     subtitle = "Random complex notation"
index 1c86c03eaa0acb8c7a98106633de24bc02934189..dabd5cf46156c580ad4af4740560fb25135289ad 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 % this chart is used in the manual too.
 
index f675e9f0ad5bc015f6ce2b432c183a22ed90bf44..ff363992be82e229809a2bf05357fbbde115e001 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.5 Simultaneous notes
index 3942374a45c7f19b51713785ae0305a0b094ae67..d981a20bbef1901faf5bf5a9394866f3a082bc65 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.6 Staff notation
index c7d8f01e27a56a8e9001eb22f863fb6fd12fb3ba..c29327137d22e21e547cfb9e4780487d7a31ecd4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.34"
+\version "2.11.38"
 \include "english.ly"
 
 % NR 1.8 Text
index 08f6657698ec6361b7080c1786789a99de27cc6c..34f044362c30a1a35bbba073ff52605898b71202 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header {
   title =      "Title"
   subtitle =   "Subtitle"
index c29b50f060d945656ca76a1215b49e49a302f709..310439102bf2be302f839d36f188f705ee9b7049 100644 (file)
@@ -7,7 +7,7 @@
   copyright = "Public Domain"
 }
 
-\version "2.10.0"
+\version "2.11.38"
 
 global =  {
   \key a \minor
index 176b388c758ae97cedc97cb53683900ad131d07d..31720633f4cb1f907f5390168466335c22d27ca5 100644 (file)
@@ -27,7 +27,7 @@ been lowered
 
 }
 
-\version "2.10.0"
+\version "2.11.38"
 manuscriptBreak = { \break }
 
 
index 564d620c2dba186a188b025aab771ae856509fa5..b22bbf878c9d8e4e3fadcd9cbe5465ad9a23d999 100644 (file)
@@ -40,7 +40,7 @@ instrument = "Piano"
  footer = "Mutopia-2001/04/27-xx"
 } 
 
-\version "2.10.0"
+\version "2.11.38"
 
 #(set-global-staff-size 16)
 
index 4fe111136a48e2b3a236c4b7edd9b862a9af65f3..276f102b2521c87c9f23d5aed4a878e2c2c15609 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 forcedLastBreak =  { \break }
 
index ef9f2b053bb7c45f7c423bc102996b4e1587712a..63f4f9a048e42bcbc8fd6dbbacecb1690ffd5383 100644 (file)
@@ -1,5 +1,5 @@
 #(ly:set-option 'old-relative)
-\version "2.10.0"
+\version "2.11.38"
 
 %{
  Header for Petites Preludes.
@@ -126,7 +126,7 @@ four = \relative c{
        d4. fis16 g r16 bes8. ~ bes4 |
        %10
        \stemDown
-       << d,1  { \fatText s4^\markup { \hspace #20 }
+       << d,1  { \textLengthOn s4^\markup { \hspace #20 }
                 s4^\markup { \hspace #1 }  s4 }
             >>
 }
index 4d201945e2ba4fea1a64ba77d82ce18130883fb5..0bb7239a35e5004d787ced2543040f4c8af59051 100644 (file)
@@ -41,7 +41,7 @@
 
 
 
-\version "2.10.0"
+\version "2.11.38"
 
 
 
index 0721b1f7861897df7b71d030960d45218d25ff61..1c0eec1c99880930d0a26df1cf87f39474c1a5eb 100644 (file)
@@ -4,7 +4,7 @@
 
 #(set-global-staff-size 16)
 
-\version "2.10.0"
+\version "2.11.38"
 
 \header {
   title = "Romanzen"
index 1e7960dd22fdb007156d7ae140a75599331730de..a63f310d9bebd0b2d811adff95e81e0fce345d5b 100644 (file)
@@ -41,7 +41,7 @@ virtuoso that taught in Geneva.
 
 %}
 
-\version "2.10.0"
+\version "2.11.38"
 
 \include "mozart-hrn3-defs.ily"
 \include "mozart-hrn3-allegro.ily"
index 0f87feae221f3dfb29111433b88447ca89781bcc..638f3be0bc27ac360063019c9bfd28f97dd60c39 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.11"
+\version "2.11.38"
 
 \header
 {
index ca15e771163903e843fdff6a7fee4ac1e19f7030..e32c633a052797ce5fa73fcb43894d591533d0a2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 \header {
     title      = "Puer natus est nobis"
     subtitle   = "Antiphona ad introitum VII"
index c6458c46fdc733299e7c4911e5b1bc90dd1a1f0d..07a42fff7fea1ed5c29681cc1f8e8985aa85e404 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 \header{
     texidoc="
@@ -11,7 +11,7 @@ Different text styles are used for various purposes.
 }
 
 \relative c'' \context Staff {
-    \emptyText
+    \textLengthOff
     \repeat volta 2 { \time 4/4 c4^"cuivre"_\fermata }
     \alternative {
        {
index 42bb9f1440cebdd23d802afeb6626d868bae49d1..4613aea986a28c527113f4b04436061d9cf4cfa0 100644 (file)
@@ -4,7 +4,7 @@
 \header {
 
 texidoc=" Auto change piano staff switches voices between up
-and down staves automatically rests are switched along with the coming
+and down staves automatically; rests are switched along with the coming
 note. When central C is reached, staff is not yet switched (by default).
 
 "
index f709dabb7bdf899dda3d2f62511b7ad93bc85e7c..6848b4e876bf19f6b0987cc07b58ec5aa1d93e82 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Excercise all output functions"
 }
 
-\version "2.10.0"
+\version "2.11.38"
 
 \paper { ragged-right = ##t }
 
@@ -25,7 +25,7 @@
       \override Glissando #'style = #'zigzag
       \slurDashed
       f2( \glissando f')
-      \setEasyHeads
+      \easyHeadsOn
       f e 
     }
   >>
index 3dcab53c3102e377984fce497f40f1ab69fbc1eb..93ba77f917f24adc4d92fc0649781ca7c9799919 100644 (file)
@@ -3,7 +3,7 @@
 
 \header {
 
-texidoc="Bar number may be set and their padding adjusted individually.  
+texidoc="Bar numbers may be set and their padding adjusted individually.  
 The counting of bar numbers is started after the anacrusis.
 
 To prevent clashes at the beginning of a line, the padding may have to 
index b622dbd2770a4e8b270c6b4505f867430055f71f..49c78e8352f30b27b15c1223edde35840e52f567 100644 (file)
@@ -4,7 +4,7 @@
 texidoc="
 Beams should behave reasonably well, even under extreme circumstances.
 Stems may be short, but noteheads should never touch the beam.  Note that
-under normal circumstances, these beams would get knees here
+under normal circumstances, these beams would get knees.  Here
 @code{Beam.auto-knee-gap} was set to false.
 "
 }
index 141479d2f8d67197277ece6236fb09e49bbf6d89..46519952066cc93bcef5a2e10bd379be9081f118 100644 (file)
@@ -1,7 +1,7 @@
 \version "2.10.0"
 
 \header {
-    texidoc = "In french style beaming, the stems do not go between beams."
+    texidoc = "In French style beaming, the stems do not go between beams."
 }
 
 \layout { ragged-right= ##t }
index 40a7cb50b47da5a8973086e0a882bfd433058065..57590306d89067c0f07801753617e0a1e28c3ccd 100644 (file)
@@ -3,7 +3,7 @@
 \header{
 
   texidoc=" Beams on ledgered notes should always reach the middle staff
-line.  The second beam counting from the note head side, should never
+line.  The second beam, counting from the note head side, should never
 be lower than the second staff line.  This does not hold for grace
 note beams.  Override with @code{no-stem-extend}.  "
 
index b3a88c798ee9f08150a94adc0da12b1f97945c3e..2ba54fdc47d326ff30028d5a353ef82484581326 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.10.0"
+\version "2.11.38"
 
 \header{
   texidoc="
@@ -13,7 +13,7 @@ Breaks can be encouraged and discouraged using @code{\\break} and
 }
 
 \relative c'' \context Voice {
-  \emptyText
+  \textLengthOff
   c1 \noBreak c1 \noBreak \mark "nobreak" c1 \noBreak
   c1 \break \mark "break" c1 \break \mark "break" c1 
 }
index fe99e4e2019349a81f64ea6f3a04959f709ac3a3..326e45fe8405a4d71c9ddce921b13269cd7561e9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 \header{
 
@@ -13,7 +13,7 @@ full size."
 
 
 { 
-  \fatText
+  \textLengthOn
   \clef "treble" c'1^"treble" \bar "||"
   \clef "french"c'1^"french" \bar "||"
   \clef "soprano"c'1^"soprano" \bar "||"
index b269de735450a87d3da95a4ebec287fbc72bc10c..a060f867efde5907b5f7c4368411725f0fb1e6b2 100644 (file)
@@ -1,8 +1,8 @@
 \version "2.10.0"
 \header {
     
-    texidoc = "If collision resolution finds dotted note head must
-       remain on left hand side, move dots to the right."
+    texidoc = "If dotted note heads must remain on the left side,  
+collision resolution moves the dots to the right."
 
 }
 
index 2512870dcdb2733b996c5dca28285d4d8650a8e9..efbeb87ab80dd42a346adcd6d923e2777b8ffc88 100644 (file)
@@ -1,7 +1,7 @@
 \version "2.10.0" \header{
 
 
-    texidoc=" Noteheads can have dots, and rests too.  
+    texidoc=" Both noteheads and rests can have dots.  
     Augmentation dots should never be printed on a staff line,
 but rather be shifted vertically. They should go up, but in case of
 multiple parts, the down stems have down shifted dots.  In case of
index 463bd2d5bd6d8a356eee01df7766254e95cd0f3e..5c75ae804ca3bcb08be8346c46e8217e75433611 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.11.38"
 
 \header {
     texidoc = " Easy-notation (or Ez-notation) prints names in note heads.
@@ -11,7 +11,7 @@ You also get ledger lines, of course."
 } 
 
 \relative {
-  \setEasyHeads
+  \easyHeadsOn
   f1 e
   f2 e
   f4 e
index 8d68529ea1a232cfe803d1691492c18dacd32a3d..6dc49cdfa1ede8de8cf789a55b9f6a3ba0b28484 100644 (file)
@@ -1,6 +1,7 @@
 
 \version "2.10.0"
-\header { texidoc = "Each clef have own accidental placing rules. " }
+\header { texidoc = "Each clef has its own accidental placing
+rules. "}
 
 #(set-global-staff-size 16)
 
index 230453f9f64e575dbc1f8598d753f3c934a4552a..24b74669ccb43908c386bd2470d2ab3d6d15ee8a 100644 (file)
@@ -1,5 +1,7 @@
 \version "2.10.0"
 #(set-default-paper-size "a6" 'landscape)
+\header { texidoc = " Scores may be printed in landcape mode."}
+
 
 pattern = \relative { a b c d \break }
 
diff --git a/input/regression/ligature-bracket.ly b/input/regression/ligature-bracket.ly
new file mode 100644 (file)
index 0000000..9b75f81
--- /dev/null
@@ -0,0 +1,9 @@
+\header {
+  texidoc = "The ligature bracket right-end is not affected by other voices."
+}
+
+\version "2.11.38"
+<<
+       \new Staff {\[b2 b\]   | \[b b\] }
+       \new Staff {b2 b       | b4 b b b }
+>>
index 36f814d485bdd7f9317a1a055993722ccb89bf6d..045f7ff2be7d19e309899cddf5cdca666814b49c 100644 (file)
@@ -1,10 +1,8 @@
 \version "2.10.0"
 \header {
-
   texidoc = "With the @code{\\lyricsto} mechanism, individual lyric
-    lines can be associated with one melody line. For each lyric line,
-    can be tuned whether to follow melismata or not."
-  
+    lines can be associated with one melody line. Each lyric line
+can be tuned to either follow or ignore melismata."
 }
 
 
index 2ab0764371fea3c1905fe7c1beb795cb1a9bb346..798dc13623f821f805c20308df5dc8d2980a390b 100644 (file)
@@ -1,7 +1,7 @@
 \header {
 
   texidoc = "Switching the melody to a different voice works even
-the switch occurs together with context instantiation."
+if the switch occurs together with context instantiation."
 
 }
 
index 242971536d94ba2fdda96ea96caabb74ba27f2fc..dd8ec91e2debf4ab6d11e098e18ce6110300e705 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.10.0"
+\version "2.11.38"
 
 \header{
 
@@ -9,7 +9,7 @@ have melismata either by setting a property melismaBusy, or by setting
 automaticMelismas (which will set melismas during slurs and ties).  If
 you want a different order than first Music, then Lyrics, you must
 precook a chord of staves/lyrics and label those.  Of course, the
-lyrics ignores any other rhythms in the piece."
+lyrics ignore any other rhythms in the piece."
 
 }
 
@@ -20,7 +20,7 @@ lyrics ignores any other rhythms in the piece."
 m = \relative c'' {
     \autoBeamOff
     g8( a)  r8 \times 2/3 { g'8( f e) } r8 \grace {  d16[ c b] } e4
-    \emptyText
+    \textLengthOff
     d8.^"melisma"      \melisma c16
     \melismaEnd
     b
index 95627b107aa334c18b447305b3cc60a8fdbe7611..7e1f52f7f67c07f5ab436ba91905885d1dcce16f 100644 (file)
@@ -9,7 +9,10 @@
 
 <<
     \context Staff  { c' (c') c'( c') }
-    \context Lyrics \lyricmode { bla -- alb xxx -- yyy }
+    \context Lyrics \lyricmode {
+      \override Lyrics . LyricSpace #'minimum-distance = #5.0
+      a -- b x -- y
+    }
 >>
 
 
index bc870f59b33bbcdb5a5fcf558238f616914a5664..c63a805a045bea1a2261e9e07ed3efed1c8ca5ef 100644 (file)
@@ -8,13 +8,13 @@ the papercolumn is very wide."
   ragged-right = ##t
 }
 
-\version "2.10.7"
+\version "2.11.38"
 <<
   \new Staff \relative c' {
     \key aes \major
     \context Voice = "1" { 
       f8 f
-      \emptyText
+      \textLengthOff
       
       f^"xxxxxxxxxxxxxxxxxxxxxxxxxx"  f
     }
index e4589d4a9bd9302a855a179c56de59de0998e752..00ae9f90958a794fabd649e22a82606efc3ad939 100644 (file)
@@ -25,10 +25,10 @@ For maintenance reasons, we don't excercise the entire markup command set.
 
 
 
-\version "2.11.5"
+\version "2.11.38"
 
 {
-  \fatText
+  \textLengthOn
   f'1-\markup {
     foo
     \raise #0.2 \hbracket \bold bar
index 2b799be25bb3a2a5c7fc7877b5ca5cadbf3a9b6c..4e48abde542150c144ac15faded1eb23d6846ea3 100644 (file)
@@ -1,7 +1,7 @@
-
-\version "2.10.0"
-
 \version "2.10.1" 
+\header {
+  texidoc = "Midi can create drums."
+}
 
 \score {
   \new DrumStaff <<
index 1a0c716453d0d0d1144905d777c5c2291cc82f86..f50d741ed12830d5f93ea592ec16abdf0428cdb5 100644 (file)
@@ -1,29 +1,17 @@
 <?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/07_nokey.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
+<!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="0">
-                       <part-name>NoClef Test</part-name>
-                       <score-instrument id="#1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="#1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
+                       <part-name></part-name>
                </score-part>
        </part-list>
        <part id="0">
                <measure number="1">
                        <attributes>
-                               <divisions>960</divisions>
+                               <divisions>1</divisions>
                                <time>
                                <beats>4</beats>
                                <beat-type>4</beat-type>
                                        <step>C</step>
                                        <octave>4</octave>
                                </pitch>
-                               <duration>3840</duration>
+                               <duration>4</duration>
                                <voice>1</voice>
                                <type>whole</type>
                        </note>
                </measure>
-
                <measure number="2">
                        <note>
                                <pitch>
                                        <step>C</step>
                                        <octave>4</octave>
                                </pitch>
-                               <duration>3840</duration>
+                               <duration>4</duration>
                                <voice>1</voice>
                                <type>whole</type>
                        </note>
index 0b274f79869daaaa0903802a3ca1a26113f47b78..e6c9ca066a4379299754ec81d923aaddecdd1fa4 100644 (file)
@@ -1,22 +1,18 @@
 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 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>
+<score-partwise version="2.0">
+  <work><work-title>No time signature given</work-title></work> 
+       <identification/>
        <part-list>
                <score-part id="P1">
-                       <part-name>MIDI Track 1</part-name>
+                       <part-name></part-name>
                </score-part>
        </part-list>
        <part id="P1">
                <measure number="1">
                        <attributes>
-                               <divisions>96</divisions>
+                               <divisions>1</divisions>
                                <key><fifths>0</fifths></key>
                                <staves>2</staves>
                                <clef number="1"><sign>G</sign><line>2</line></clef>
@@ -24,7 +20,7 @@
                        </attributes>
                        <note>
                                <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
+                               <duration>4</duration>
                                <voice>1</voice>
                                <type>whole</type>
                                <staff>1</staff>
@@ -32,7 +28,7 @@
                        <backup><duration>384</duration></backup>
                        <note>
                                <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>384</duration>
+                               <duration>4</duration>
                                <voice>2</voice>
                                <type>whole</type>
                                <staff>2</staff>
index 2d18a8ff4fc18a33d21ba5c66caee9f88c177ffa..e467ce7ab7a969823e632543aceb852b698d45af 100644 (file)
@@ -2,19 +2,15 @@
 <!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>
+       <work><work-title>A tie</work-title></work> 
+       <identification/>
        <part-list>
-               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
+               <score-part id="P1"><part-name></part-name></score-part>
        </part-list>
        <part id="P1">
                <measure number="1">
                        <attributes>
-                               <divisions>96</divisions>
+                               <divisions>1</divisions>
                                <key><fifths>0</fifths></key>
                                <time><beats>4</beats><beat-type>4</beat-type></time>
                                <staves>1</staves>
@@ -22,7 +18,7 @@
                        </attributes>
                        <note>
                                <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
+                               <duration>4</duration>
                                <tie type="start"/>
                                <voice>1</voice>
                                <type>whole</type>
@@ -33,7 +29,7 @@
                <measure number="2">
                        <note release="-684">
                                <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
+                               <duration>4</duration>
                                <tie type="stop"/>
                                <voice>1</voice>
                                <type>whole</type>
diff --git a/input/regression/musicxml/02a-Articulations-Finale.xml b/input/regression/musicxml/02a-Articulations-Finale.xml
deleted file mode 100644 (file)
index c65f1af..0000000
+++ /dev/null
@@ -1,989 +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>Articulations 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
-        <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
-          <articulations>\r
-            <accent placement="below"/>\r
-            <staccato placement="below"/>\r
-          </articulations>\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
-          <articulations>\r
-            <staccatissimo placement="below"/>\r
-          </articulations>\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
-          <articulations>\r
-            <accent placement="below"/>\r
-          </articulations>\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
-          <articulations>\r
-            <accent placement="below"/>\r
-            <staccato placement="below"/>\r
-          </articulations>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\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
-          <articulations>\r
-            <strong-accent placement="above" type="up"/>\r
-          </articulations>\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
-          <articulations>\r
-            <strong-accent placement="above" type="up"/>\r
-            <staccato placement="above"/>\r
-          </articulations>\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
-          <articulations>\r
-            <tenuto placement="below"/>\r
-          </articulations>\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
-          <articulations>\r
-            <detached-legato placement="below"/>\r
-          </articulations>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\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
-          <articulations>\r
-            <accent placement="below"/>\r
-            <tenuto placement="below"/>\r
-          </articulations>\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
-          <fermata type="upright"/>\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
-          <ornaments>\r
-            <trill-mark placement="above"/>\r
-          </ornaments>\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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\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
-      </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
-      </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
-          <ornaments>\r
-            <wavy-line placement="below" relative-x="6" type="start"/>\r
-            <wavy-line placement="below" relative-x="16" type="stop"/>\r
-          </ornaments>\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
-          <ornaments>\r
-            <wavy-line placement="above" type="start"/>\r
-            <wavy-line placement="above" relative-x="15" type="stop"/>\r
-            <inverted-mordent placement="below"/>\r
-          </ornaments>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\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
-          <ornaments>\r
-            <mordent placement="below"/>\r
-          </ornaments>\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
-          <ornaments>\r
-            <turn placement="above"/>\r
-          </ornaments>\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
-            <up-bow placement="above"/>\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
-            <down-bow placement="above"/>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\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
-            <harmonic placement="below"/>\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
-            <harmonic placement="below"/>\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
-            <stopped placement="below"/>\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
-            <fingering placement="above">1</fingering>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <print new-system="yes"/>\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
-            <fingering placement="above">2</fingering>\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
-            <fingering placement="above">3</fingering>\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
-            <fingering placement="above">4</fingering>\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
-            <fingering placement="above">5</fingering>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <pedal line="no" relative-x="-9" type="start"/>\r
-        </direction-type>\r
-      </direction>\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
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <pedal line="no" type="stop"/>\r
-        </direction-type>\r
-      </direction>\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
-      </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
-          <arpeggiate/>\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
-          <ornaments/>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\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
-          <ornaments/>\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
-          <ornaments/>\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
-          <articulations>\r
-            <caesura relative-x="21"/>\r
-          </articulations>\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
-          <articulations>\r
-            <breath-mark placement="above" relative-x="18"/>\r
-          </articulations>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\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
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <words relative-x="-7">(</words>\r
-        </direction-type>\r
-      </direction>\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
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <words relative-x="15">)</words>\r
-        </direction-type>\r
-      </direction>\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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="11">\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
-          <articulations>\r
-            <staccato placement="above"/>\r
-          </articulations>\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
-          <articulations>\r
-            <accent placement="above"/>\r
-          </articulations>\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
-          <articulations>\r
-            <accent placement="above"/>\r
-            <staccato placement="above"/>\r
-          </articulations>\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
-          <articulations>\r
-            <accent placement="above"/>\r
-            <tenuto placement="above"/>\r
-          </articulations>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="12">\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
-      </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
-      </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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="13">\r
-      <print new-system="yes"/>\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
-      </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
-      </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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="14">\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
-      </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
-      </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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="15">\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
-      </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
-      </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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="16">\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
-      </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
-          <articulations>\r
-            <accent placement="below"/>\r
-          </articulations>\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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="17">\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
-      </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
-      </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
-      </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
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="18">\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/02a-Notations-MusicXML.xml b/input/regression/musicxml/02a-Notations-MusicXML.xml
new file mode 100644 (file)
index 0000000..7240873
--- /dev/null
@@ -0,0 +1,1232 @@
+<?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>bend 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>-5</bend-alter><pre-bend/></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>pre-bend -(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>5</bend-alter><release/></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>bend 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/02b-Articulations-Texts-PJB.xml b/input/regression/musicxml/02b-Articulations-Texts-PJB.xml
new file mode 100644 (file)
index 0000000..8e52b8d
--- /dev/null
@@ -0,0 +1,106 @@
+<?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/02c-Articulations-Noteedit.xml b/input/regression/musicxml/02c-Articulations-Noteedit.xml
deleted file mode 100644 (file)
index e1f650c..0000000
+++ /dev/null
@@ -1,204 +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>2</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>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <staccato/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <strong-accent/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <tenuto/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <staccatissimo/>
-                                       </articulations>
-                               </notations>
-                       </note>
-               </measure>
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <accent/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <fermata type="upright"/>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>3</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <dot/>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                               <stem>up</stem>
-                       </note>
-               </measure>
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <barline location="right">
-                               <bar-style>light-heavy</bar-style>
-                               <repeat direction="backward"/>
-                       </barline>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml b/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml
new file mode 100644 (file)
index 0000000..ae2a60c
--- /dev/null
@@ -0,0 +1,101 @@
+<?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>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <key>
+          <fifths>0</fifths>
+        </key>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </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/02d-Arpeggio.xml b/input/regression/musicxml/02d-Arpeggio.xml
new file mode 100644 (file)
index 0000000..97e33b1
--- /dev/null
@@ -0,0 +1,242 @@
+<?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-Articulations-TwoStaves-Noteedit.xml b/input/regression/musicxml/02d-Articulations-TwoStaves-Noteedit.xml
deleted file mode 100644 (file)
index 93aaf24..0000000
+++ /dev/null
@@ -1,294 +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>Irgendein Lied</work-title>
-       </work>
-
-       <identification>
-               <creator type="composer">Rainer Zufall</creator>
-               <rights>Public Domain, so that the whole world can savely forget about it...</rights>
-               <encoding>
-                       <software>NoteEdit</software>
-               </encoding>
-       </identification>
-
-       <part-list>
-               <score-part id="P1">
-                       <part-name>Damen</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>
-               <score-part id="P2">
-                       <part-name>Herren</part-name>
-                       <score-instrument id="P2-I2">
-                               <instrument-name>Klavier 1</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="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>2</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>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <staccato/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <strong-accent/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <tenuto/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <staccatissimo/>
-                                       </articulations>
-                               </notations>
-                       </note>
-               </measure>
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <articulations>
-                                               <accent/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <fermata type="upright"/>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>3</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <dot/>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                               <stem>up</stem>
-                       </note>
-               </measure>
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>2</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <barline location="right">
-                               <bar-style>light-heavy</bar-style>
-                               <repeat direction="backward"/>
-                       </barline>
-               </measure>
-       </part>
-       <part id="P2">
-               <measure number="1">
-                       <attributes>
-                               <divisions>2</divisions>
-                               <key>
-                                       <fifths>-1</fifths>
-                               </key>
-                               <time>
-                                       <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>8</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <notations>
-                                       <articulations>
-                                               <staccato/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <backup>
-                               <duration>8</duration>
-                       </backup>
-               </measure>
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>D</step>
-                                       <octave>3</octave>
-                               </pitch>
-                               <duration>8</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <notations>
-                                       <articulations>
-                                               <staccato/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <backup>
-                               <duration>8</duration>
-                       </backup>
-               </measure>
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>D</step>
-                                       <octave>3</octave>
-                               </pitch>
-                               <duration>8</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <notations>
-                                       <articulations>
-                                               <staccato/>
-                                       </articulations>
-                               </notations>
-                       </note>
-                       <backup>
-                               <duration>8</duration>
-                       </backup>
-                       <barline location="right">
-                               <bar-style>light-heavy</bar-style>
-                               <repeat direction="backward"/>
-                       </barline>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02e-Articulations-JScore.xml b/input/regression/musicxml/02e-Articulations-JScore.xml
deleted file mode 100644 (file)
index b05acb9..0000000
+++ /dev/null
@@ -1,286 +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 Articulations 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>4</beats><beat-type>4</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>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<accent placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<staccato placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<tenuto placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<strong-accent placement="below" />
-</articulations>
-</notations>
-</note>
-</measure>
-<measure number="2" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></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>
-<notations>
-<articulations>
-<accent placement="below" />
-<staccato placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<accent placement="below" />
-<tenuto placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<articulations>
-<strong-accent placement="below" />
-<staccato placement="below" />
-</articulations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<fermata type="upright" />
-</notations>
-</note>
-</measure>
-<measure number="3" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></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>
-<notations>
-<technical>
-<harmonic />
-</technical>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<ornaments>
-<trill-mark placement="above" />
-</ornaments>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<ornaments>
-<trill-mark placement="above" />
-</ornaments>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<ornaments>
-<trill-mark placement="above" />
-</ornaments>
-</notations>
-</note>
-</measure>
-<measure number="4" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></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>
-<notations>
-<ornaments>
-<trill-mark placement="above" />
-</ornaments>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<ornaments>
-<mordent placement="above" />
-</ornaments>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-<ornaments>
-<inverted-mordent placement="above" />
-</ornaments>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-</measure>
-</part>
-</score-partwise>
diff --git a/input/regression/musicxml/02f-Articulations-MusicXML.xml b/input/regression/musicxml/02f-Articulations-MusicXML.xml
deleted file mode 100644 (file)
index 86f799c..0000000
+++ /dev/null
@@ -1,761 +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>Articulations Test</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Kate</software>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>Test 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>12</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>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <accent/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <ornaments>
-                  <turn/>
-                  <accidental-mark>sharp</accidental-mark>
-                  <accidental-mark>three-quarters-flat</accidental-mark>
-                  <accidental-mark>natural</accidental-mark>
-              </ornaments>
-          </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>
-                  <bend><bend-alter>4</bend-alter></bend>
-              </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>
-              <articulations>
-                  <breath-mark/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <caesura/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <ornaments>
-                  <delayed-turn/>
-              </ornaments>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <detached-legato/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <doit/>
-              </articulations>
-          </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>
-                  <double-tongue/>
-              </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>
-                  <down-bow/>
-              </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>
-              <articulations>
-                  <falloff/>
-              </articulations>
-          </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>
-                  <fingering/>
-              </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>
-                    <fingernails/>
-                </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>
-                    <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>
-                    <hammer-on type="start"/>
-                </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>
-                    <hammer-on type="stop"/>
-                    <harmonic/>
-                </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>
-                    <heel/>
-                </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>
-                <ornaments>
-                    <inverted-mordent/>
-                </ornaments>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <ornaments>
-                    <!--inverted-turn/-->
-                </ornaments>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <ornaments>
-                    <mordent/>
-                </ornaments>
-            </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>
-                    <open-string/>
-                </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>
-                <articulations>
-                    <plop/>
-                </articulations>
-            </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>
-                    <pluck/>
-                </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>
-                    <!--portato/-->
-                </technical>
-            </notations>
-        </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <technical>
-                    <pull-off type="start"/>
-                </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>
-                    <pull-off type="stop"/>
-                </technical>
-                <ornaments>
-                    <schleifer/>
-                </ornaments>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <scoop/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <ornaments>
-                    <shake/>
-                </ornaments>
-            </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>
-                    <snap-pizzicato/>
-                </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>
-                <articulations>
-                    <spiccato/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <staccatissimo/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <staccato/>
-                </articulations>
-            </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>
-                    <stopped/>
-                </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>
-                    <!--stress/-->
-                </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>5</string>
-                </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>
-                <articulations>
-                    <strong-accent/>
-                </articulations>
-            </notations>
-        </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <technical>
-                    <tap/>
-                </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>
-                <articulations>
-                    <tenuto/>
-                </articulations>
-            </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>
-                    <thumb-position/>
-                </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>
-                    <toe/>
-                </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>
-                <ornaments>
-                    <turn/>
-                </ornaments>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <ornaments>
-                    <tremolo>3</tremolo>
-                </ornaments>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <ornaments>
-                    <trill-mark/>
-                </ornaments>
-            </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>
-                    <triple-tongue/>
-                </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>
-                    <!--unstress/-->
-                </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>
-                    <up-bow/>
-                </technical>
-            </notations>
-        </note>
-        <note>
-            <rest/>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-        </note>
-        <note>
-            <rest/>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-        </note>
-    </measure>
-    <!--=======================================================-->
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/02g-ArticulationsNoAttributes-MusicXML.xml b/input/regression/musicxml/02g-ArticulationsNoAttributes-MusicXML.xml
deleted file mode 100644 (file)
index 0ff1989..0000000
+++ /dev/null
@@ -1,765 +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>Articulations Test</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Kate</software>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>Test 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>12</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>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <accent/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <accidental-mark/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <bend/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <breath-mark/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <caesura/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <delayed-turn/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <detached-legato/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <doit/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <double-tongue/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <down-bow/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <falloff/>
-              </articulations>
-          </notations>
-      </note>
-      <note>
-          <pitch>
-              <step>C</step>
-              <octave>4</octave>
-          </pitch>
-          <duration>1</duration>
-          <voice>1</voice>
-          <type>quarter</type>
-          <stem>up</stem>
-          <notations>
-              <articulations>
-                  <fingering/>
-              </articulations>
-          </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>
-                <articulations>
-                    <fingernails/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <fret/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <hammer-on/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <harmonic/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <heel/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <inverted-mordent/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <inverted-turn/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <mordent/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <open-string/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <plop/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <pluck/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <portato/>
-                </articulations>
-            </notations>
-        </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <pull-off/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <schleifer/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <scoop/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <shake/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <snap-pizzicato/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <spiccato/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <staccatissimo/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <staccato/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <stopped/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <stress/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <string/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <strong-accent/>
-                </articulations>
-            </notations>
-        </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <tap/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <tenuto/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <thumb-position/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <toe/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <turn/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <tremolo/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <trill-mark/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <triple-tongue/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <unstress/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <up-bow/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-            <notations>
-                <articulations>
-                    <wavy-line/>
-                </articulations>
-            </notations>
-        </note>
-        <note>
-            <pitch>
-                <step>C</step>
-                <octave>4</octave>
-            </pitch>
-            <duration>1</duration>
-            <voice>1</voice>
-            <type>quarter</type>
-            <stem>up</stem>
-        </note>
-    </measure>
-    <!--=======================================================-->
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/02h-MultipleNotationChildren-RFK.xml b/input/regression/musicxml/02h-MultipleNotationChildren-RFK.xml
deleted file mode 100644 (file)
index ae2a60c..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>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <key>
-          <fifths>0</fifths>
-        </key>
-        <time>
-          <beats>3</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </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/02i-Articulations-Texts-PJB.xml b/input/regression/musicxml/02i-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/03a-Directions-MusicXML.xml b/input/regression/musicxml/03a-Directions-MusicXML.xml
new file mode 100644 (file)
index 0000000..6863135
--- /dev/null
@@ -0,0 +1,781 @@
+<?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-Dynamics-Finale.xml b/input/regression/musicxml/03a-Dynamics-Finale.xml
deleted file mode 100644 (file)
index e8028f8..0000000
+++ /dev/null
@@ -1,397 +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 Dynamics 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-02</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>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
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80" relative-x="-3">\r
-            <ffff/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <sound dynamics="141"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <sound dynamics="127"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <dynamics default-y="-80" placement="below">\r
-            <fff/>\r
-          </dynamics>\r
-        </notations>\r
-      </note>\r
-      <sound dynamics="112"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <dynamics default-y="-80" placement="below">\r
-            <ff/>\r
-          </dynamics>\r
-        </notations>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <f/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-        <sound dynamics="98"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <mf/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>1</offset>\r
-        <sound dynamics="83"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <sound dynamics="69"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <dynamics default-y="-80" placement="below">\r
-            <mp/>\r
-          </dynamics>\r
-        </notations>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <p/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-        <sound dynamics="54"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <pp/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <sound dynamics="40"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <ppp/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>1</offset>\r
-        <sound dynamics="26"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <pppp/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <sound dynamics="11"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <fp/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <fz/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <sf/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>1</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <sfz/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>1</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <sffz/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\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
-        <sound dynamics="54"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</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>8</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>8</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>8</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/03b-AccordionRegistrations-MusicXML.xml b/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml
new file mode 100644 (file)
index 0000000..ad6fa3c
--- /dev/null
@@ -0,0 +1,356 @@
+<?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-Dynamics-Noteedit.xml b/input/regression/musicxml/03b-Dynamics-Noteedit.xml
deleted file mode 100644 (file)
index 17d3726..0000000
+++ /dev/null
@@ -1,234 +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="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <mf/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <ppp/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <pp/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <p/>
-                                       </dynamics>
-                               </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>
-               </measure>
-               <measure number="2">
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <mp/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <mf/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <f/>
-                                       </dynamics>
-                               </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>
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <ff/>
-                                       </dynamics>
-                               </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>
-               </measure>
-               <measure number="3">
-                       <direction placement="above">
-                               <direction-type>
-                                       <dynamics>
-                                               <fff/>
-                                       </dynamics>
-                               </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>
-                       <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>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/03c-Dynamics-JScore.xml b/input/regression/musicxml/03c-Dynamics-JScore.xml
deleted file mode 100644 (file)
index d88b3a0..0000000
+++ /dev/null
@@ -1,260 +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_Dynamics_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>4</beats><beat-type>4</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 placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<ppp />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<pp />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<p />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<mp />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-</measure>
-<measure number="2" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</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>
-<dynamics relative-y="-6" >
-<mf />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<f />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<ff />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<direction placement="below" >
-<direction-type>
-<dynamics relative-y="-6" >
-<fff />
-</dynamics>
-</direction-type>
-<staff>1</staff>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-</measure>
-<measure number="3" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></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>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>960</duration>
-<voice>1</voice>
-<type>quarter</type>
-<notations>
-</notations>
-</note>
-</measure>
-<measure number="4" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></key>
-<time><beats>4</beats><beat-type>4</beat-type></time>
-<clef><sign>G</sign><line>2</line></clef>
-</attributes>
-</measure>
-</part>
-</score-partwise>
index 30744f7dc2ddd40eaefd3d9e80674191f312d8de..30ab9337838b255239206cad8a5608e369056760 100644 (file)
   </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
         <stem>down</stem>\r
         <notations>\r
           <ornaments>\r
-            <wavy-line number="1" type="stop"/>\r
+            <wavy-line number="1" type="start"/>\r
           </ornaments>\r
         </notations>\r
       </note>\r
         <stem>down</stem>\r
         <notations>\r
           <ornaments>\r
-            <wavy-line default-y="10" number="1" type="start"/>\r
+            <wavy-line default-y="10" number="1" type="stop"/>\r
           </ornaments>\r
         </notations>\r
       </note>\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
diff --git a/input/regression/musicxml/04b-Glissando.xml b/input/regression/musicxml/04b-Glissando.xml
new file mode 100644 (file)
index 0000000..a9e0e0a
--- /dev/null
@@ -0,0 +1,316 @@
+<?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>
index a32187a23b847b69bb548bdce219b38565a0eeff..e98b46b46976f79e25b36bd61237da74a61857a3 100644 (file)
@@ -1,52 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
                                 "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Finale "Quoted" test</movement-title>\r
+<score-partwise version="2.0">\r
+  <movement-title>"Quotes" in header fields</movement-title>\r
   <identification>\r
-    <creator type="composer">Reinhold "Tester" Kainhofer</creator>\r
+    <creator type="composer">Some "Tester" Name</creator>\r
     <rights>Free for anyone ("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
+      <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>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
+      <part-name>Staff "Test"</part-name>\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
+        <type>whole</type>\r
       </note>\r
       <barline location="right">\r
         <bar-style>light-heavy</bar-style>\r
index 82256aac1899a49edac0097d279fddfc856e4418..9627a48ffebe224e50f5577a9572191302f78b1f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.10.0"
+\version "2.11.38"
 
 \header{
   texidoc=" By default, text is set with empty horizontal dimensions.  
@@ -11,11 +11,11 @@ to control the horizontal size of text.  " }
 }
 
 \relative c''{
-  %% \emptyText
+  %% \textLengthOff
   %% short for \override TextScript  #'no-spacing-rods = ##t
   c2_"very wide and long text" c | \break
   %% short for \override TextScript  #'no-spacing-rods = ##f
-  \fatText
+  \textLengthOn
   c_"very wide and long text" c
 }
 
index d17d80d4c50b700fb25409b42a60b77eef2cf40e..185dba65da56997f1cf9605627f0c64f79341dd3 100644 (file)
@@ -4,7 +4,7 @@
     texidoc = "With @code{\\cueDuring} and @code{\\quoteDuring},
 fragments of previously entered music may be
 quoted. @code{quotedEventTypes} will determines what things are
-quoted. In this example, a 16th rests is not quoted, since
+quoted. In this example, a 16th rest is not quoted, since
 @code{rest-event} is not in @code{quotedEventTypes}."
 
 }
index 1f29585f3c06829f71ad84b682525c47e561c5e5..64a361e15ae2666cc722423b7fd46b7db78db993 100644 (file)
@@ -3,7 +3,7 @@
 
     texidoc = "With @code{\\quote}, fragments of previously entered
 music may be quoted. @code{quotedEventTypes} will determines what
-things are quoted. In this example, a 16th rests is not quoted, since
+things are quoted. In this example, a 16th rest is not quoted, since
 @code{rest-event} is not in @code{quotedEventTypes}."
 
 }
index 95f1e851fe811e1a1a10256ebcf175f33f0e7282..f2de829c3e858a88eb4a3ecd94c902055dae12f6 100644 (file)
@@ -1,5 +1,5 @@
 \header {
-  texidoc = "Rests under beams moved by whole staff spaces."
+  texidoc = "Rests under beams are moved by whole staff spaces."
 }
 
 \layout {
index fb1f40f7560f612a39fc495caa026fbc780d3ea5..c9d35453f3f93f5ad71bffc6db7b09c462384bac 100644 (file)
@@ -2,8 +2,8 @@
 \version "2.10.0"
 \header
 {
-  texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
-the rest.
+  texidoc ="Slurs may be placed over rests. The slur will avoid
+colliding with the rests.
 
 "
 }
index 85cd473ecd21ee4e0ffbb5bdd7a281bd9c687700..9a4374f2caf198a769fe55c93dfd5b51cd90b20a 100644 (file)
@@ -6,6 +6,8 @@
   (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
 */
 
+#include "international.hh"
+
 #include "ligature-engraver.hh"
 #include "note-column.hh"
 #include "tuplet-bracket.hh"
 
 #include "translator.icc"
 
-/*
- * This engraver marks ligatures of any kind by just printing a
- * horizontal square bracket on top of each ligature.  See class
- * Ligature_engraver for more information on the interaction between
- * this class and its superclass.
- */
-class Ligature_bracket_engraver : public Ligature_engraver
+class Ligature_bracket_engraver : public Engraver
 {
 protected:
-  virtual Spanner *create_ligature_spanner ();
-  virtual void typeset_ligature (Spanner *ligature,
-                                vector<Grob_info> primitives);
+  virtual void process_music ();
+  virtual void stop_translation_timestep ();
   DECLARE_ACKNOWLEDGER (rest);
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_TRANSLATOR_LISTENER (ligature);
 public:
   TRANSLATOR_DECLARATIONS (Ligature_bracket_engraver);
+
+private:
+  Drul_array<Stream_event *> events_drul_;
+  Spanner *finished_ligature_;
+  Spanner *ligature_;
+  Stream_event *previous_start_event_;
 };
 
 IMPLEMENT_TRANSLATOR_LISTENER (Ligature_bracket_engraver, ligature);
 void
 Ligature_bracket_engraver::listen_ligature (Stream_event *ev)
 {
-  Ligature_engraver::listen_ligature (ev);
+  Direction d = to_dir (ev->get_property ("span-direction"));
+  ASSIGN_EVENT_ONCE (events_drul_[d], ev);
 }
 
 Ligature_bracket_engraver::Ligature_bracket_engraver ()
 {
-}
-
-Spanner *
-Ligature_bracket_engraver::create_ligature_spanner ()
-{
-  return make_spanner ("LigatureBracket", SCM_EOL);
+  ligature_ = 0;
+  finished_ligature_ = 0;
+  events_drul_[LEFT] = events_drul_[RIGHT] = 0;
+  previous_start_event_ = 0;
 }
 
 void
-Ligature_bracket_engraver::typeset_ligature (Spanner *, vector<Grob_info>)
+Ligature_bracket_engraver::process_music()
 {
-  // no real ligature to typeset; the LigatureBracket just does it
+  if (events_drul_[STOP])
+    {
+      if (!ligature_)
+       {
+         events_drul_[STOP]->origin ()->warning (_ ("cannot find start of ligature"));
+         return;
+       }
+
+      finished_ligature_ = ligature_;
+      ligature_ = 0;
+      previous_start_event_ = 0;
+    }
+
+  if (events_drul_[START])
+    {
+      if (ligature_)
+       {
+         events_drul_[START]->origin ()->warning (_ ("already have a ligature"));
+         return;
+       }
+
+      previous_start_event_ = events_drul_[START];
+      ligature_ = make_spanner ("LigatureBracket", events_drul_[START]->self_scm ());
+    }
 }
 
 void
 Ligature_bracket_engraver::acknowledge_note_column (Grob_info info)
 {
-  if (current_ligature ())
+  if (ligature_)
     {
-      Tuplet_bracket::add_column (current_ligature (),
-                                 dynamic_cast<Item *> (info.grob ()));
-
-      // avoid "junking empty ligature" message by acknowledging dummy
-      // note head
-      Ligature_engraver::acknowledge_note_head (Grob_info ());
+      Tuplet_bracket::add_column (ligature_,
+                                 info.item ());
+      add_bound_item (ligature_, info.item());
     }
 }
 
 void
 Ligature_bracket_engraver::acknowledge_rest (Grob_info info)
 {
-  if (current_ligature ())
-    Ligature_engraver::acknowledge_rest (info);
+  acknowledge_note_column(info);
+}
+
+
+void
+Ligature_bracket_engraver::stop_translation_timestep ()
+{
+  events_drul_[LEFT] =  
+    events_drul_[RIGHT] = 0;
+  finished_ligature_ = 0;
 }
 
 ADD_ACKNOWLEDGER (Ligature_bracket_engraver, rest);
@@ -84,6 +112,6 @@ ADD_ACKNOWLEDGER (Ligature_bracket_engraver, note_column);
 
 ADD_TRANSLATOR (Ligature_bracket_engraver,
                /* doc */ "Handles Ligature_events by engraving Ligature brackets.",
-               /* create */ "TupletBracket",
+               /* create */ "LigatureBracket",
                /* read */ "",
                /* write */ "");
index fa1e72b31ac4ea3cc3ee14841a12450734f58753..64a056aaba79aeade56a5f3b54db07e03ca9cb45 100644 (file)
@@ -149,7 +149,7 @@ Optimal_page_breaking::solve ()
        break;
     }
 
-  message ("Drawing systems...");
+  message (_ ("Drawing systems..."));
   break_into_pieces (0, end, best_division);
   SCM lines = systems ();
   return make_pages (best.systems_per_page_, lines);
index 2b7d5a8281b11e7fedd46017bd9303090ea3f0b9..2d59701482336b229e1f029e8664c5f3f89499cb 100644 (file)
@@ -619,7 +619,7 @@ automatically when an output definition (a @code{\score} or
 
   verticallySpacedContexts = #'(Staff)
 
-  hairpinToBarline = ##t 
+  \override Voice #'hairpinToBarline = ##t 
   
   timing = ##t
 }
index 8ca7f8c284678bf57d6c6cb77a68374133ab54dd..11c0318b4a814a552867fc7e7ea7c44ab0fa43a2 100644 (file)
@@ -1,6 +1,6 @@
 % property-init.ly
 
-\version "2.10.0"
+\version "2.11.38"
 
 stemUp = \override Stem  #'direction = #UP
 stemDown = \override Stem  #'direction = #DOWN 
@@ -8,7 +8,7 @@ stemNeutral= \revert Stem #'direction
 
 slurUp = \override Slur  #'direction = #UP
 slurDown = \override Slur  #'direction = #DOWN
-slurNeutral = \revert Slur #'direction 
+slurNeutral = \revert Slur #'direction
 
 %% There's also dash, but setting dash period/length should be fixed.
 slurDashed = {
@@ -27,16 +27,16 @@ slurSolid = {
 
 phrasingSlurUp = \override PhrasingSlur  #'direction = #UP
 phrasingSlurDown = \override PhrasingSlur  #'direction = #DOWN
-phrasingSlurNeutral = \revert PhrasingSlur #'direction 
+phrasingSlurNeutral = \revert PhrasingSlur #'direction
 
 shiftOn = \override NoteColumn  #'horizontal-shift = #1
 shiftOnn = \override NoteColumn  #'horizontal-shift = #2
 shiftOnnn = \override NoteColumn  #'horizontal-shift = #3
-shiftOff = \revert NoteColumn #'horizontal-shift 
+shiftOff = \revert NoteColumn #'horizontal-shift
 
 tieUp = \override Tie  #'direction = #UP
 tieDown = \override Tie  #'direction = #DOWN
-tieNeutral = \revert Tie #'direction 
+tieNeutral = \revert Tie #'direction
 
 tieDashed = {
   \override Tie #'dash-period = #0.75
@@ -51,13 +51,20 @@ tieSolid = {
   \revert Tie #'dash-fraction
 }
 
-setEasyHeads = \sequential {
+easyHeadsOn = {
   \override NoteHead  #'stencil = #ly:note-head::brew-ez-stencil
   \override NoteHead #'font-size = #-7
   \override NoteHead #'font-family = #'sans
   \override NoteHead #'font-series = #'bold
 }
 
+easyHeadsOff = {
+  \revert NoteHead #'stencil
+  \revert NoteHead #'font-size
+  \revert NoteHead #'font-family
+  \revert NoteHead #'font-series
+}
+
 aikenHeads = \set shapeNoteStyles = ##(do re mi fa #f la ti)
 
 sacredHarpHeads =
@@ -154,11 +161,15 @@ endincipit =  \context Staff {
 autoBeamOff = \set autoBeaming = ##f
 autoBeamOn = \set autoBeaming = ##t
 
-fatText = { \override TextScript  #'extra-spacing-width = #'(0 . 0)
-            \override TextScript  #'infinite-spacing-height = ##t }
+textLengthOn = {
+  \override TextScript  #'extra-spacing-width = #'(0 . 0)
+  \override TextScript  #'infinite-spacing-height = ##t
+}
 
-emptyText = { \override TextScript  #'extra-spacing-width = #'(+inf.0 . -inf.0)
-              \override TextScript  #'infinite-spacing-height = ##f }
+textLengthOff = {
+  \override TextScript  #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \override TextScript  #'infinite-spacing-height = ##f
+}
 
 showStaffSwitch = \set followVoice = ##t
 hideStaffSwitch = \set followVoice = ##f
index b9f509dc862c9f77aadc8480a1a930f6c212daaa..e7abca9b7c4755571e6d68a69ca4663cedd04954 100644 (file)
@@ -31,7 +31,8 @@ ANTI_ALIAS_FACTOR=2
 LILYPOND_JOBS=$(if $(CPU_COUNT),-djob-count=$(CPU_COUNT),)
 LILYPOND_BOOK_LILYPOND_FLAGS=-dbackend=eps --formats=ps,png,pdf $(LILYPOND_JOBS) -dinclude-eps-fonts -dgs-load-fonts --header=texidoc -I $(top-src-dir)/input/manual -dcheck-internal-types -ddump-signatures -danti-alias-factor=$(ANTI_ALIAS_FACTOR)
 LILYPOND_BOOK_VERBOSE = --verbose
-LILYPOND_BOOK_FLAGS = --process="$(LILYPOND_BINARY) $(LILYPOND_BOOK_LILYPOND_FLAGS)" $(LILYPOND_BOOK_VERBOSE)
+LILYPOND_BOOK_INFO_IMAGES_DIR = $(if $(INFO_IMAGES_DIR),--info-images-dir=$(INFO_IMAGES_DIR),)
+LILYPOND_BOOK_FLAGS = --process="$(LILYPOND_BINARY) $(LILYPOND_BOOK_LILYPOND_FLAGS)" $(LILYPOND_BOOK_VERBOSE) $(LILYPOND_BOOK_INFO_IMAGES_DIR)
 TEXINPUTS=$(top-src-dir)/tex/::
 export TEXINPUTS
 
index 74d2bc265d4105f541519c4468c1ebcfc06360f2..41962e0c594c5e3880aa5d2548fd8fe230de83c6 100644 (file)
@@ -1,7 +1,11 @@
+# mf/GNUmakefile
+
 depth = ..
 
-STEPMAKE_TEMPLATES=metafont install install-out
-LOCALSTEPMAKE_TEMPLATES=lilypond
+STEPMAKE_TEMPLATES = metafont \
+                    install \
+                    install-out
+LOCALSTEPMAKE_TEMPLATES = lilypond
 
 include $(depth)/make/stepmake.make
 
@@ -9,27 +13,32 @@ include $(depth)/make/stepmake.make
 EXTRA_DIST_FILES += README mf2pt1.mp
 
 # We don't use $(MF_FILES), because there's more .mf cruft here
-FETA_MF_FILES = $(call src-wildcard,feta[0-9]*.mf)\
-       $(call src-wildcard,feta-braces-[a-z].mf)\
-       $(call src-wildcard,feta-alphabet*[0-9].mf)\
-       $(call src-wildcard,parmesan[0-9]*.mf)
+FETA_MF_FILES = $(call src-wildcard,feta[0-9]*.mf) \
+               $(call src-wildcard,feta-braces-[a-z].mf) \
+               $(call src-wildcard,feta-alphabet*[0-9].mf) \
+               $(call src-wildcard,parmesan[0-9]*.mf)
 
 STAFF_SIZES = 11 13 14 16 18 20 23 26
 BRACES = a b c d e f g h i
 
-OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf)\
- $(outdir)/aybabtu.otf
-PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe)\
- $(STAFF_SIZES:%=$(outdir)/emmentaler-%.dep)
-OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table)\
- $(BRACES:%=$(outdir)/feta-braces-%.otf-table)
+OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf) \
          $(outdir)/aybabtu.otf
+PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) \
           $(STAFF_SIZES:%=$(outdir)/emmentaler-%.dep)
+OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \
           $(BRACES:%=$(outdir)/feta-braces-%.otf-table)
 FETA_FONTS = $(FETA_MF_FILES:.mf=)
 SVG_FILES = $(OTF_FILES:%.otf=%.svg)
 
-FC_FIND=$(shell $(FCMATCH) --verbose 'Century Schoolbook L:style=$(1)' | grep 'file:' | sed 's/.*"\([^"]*\)".*/\1/g')
+FC_FIND = $(shell $(FCMATCH) --verbose 'Century Schoolbook L:style=$(1)' \
+                 | grep 'file:' \
+                 | sed 's/.*"\([^"]*\)".*/\1/g')
 
-NCSB_OTFS=$(addprefix $(outdir)/,CenturySchL-Ital.otf CenturySchL-BoldItal.otf CenturySchL-Roma.otf CenturySchL-Bold.otf)
-NCSB_INSTALL_DIR=$(local_lilypond_datadir)/fonts/otf
+NCSB_OTFS = $(addprefix $(outdir)/,CenturySchL-Ital.otf \
+                                  CenturySchL-BoldItal.otf \
+                                  CenturySchL-Roma.otf \
+                                  CenturySchL-Bold.otf)
+NCSB_INSTALL_DIR = $(local_lilypond_datadir)/fonts/otf
 
 LOG_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.log)
 LISP_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.lisp)
@@ -50,43 +59,69 @@ $(outdir)/aybabtu.otf-gtable: $(BRACES:%=$(outdir)/feta-braces-%.otf-gtable)
 # 2. are not included with teTeX
 #
 
-
-$(outdir)/emmentaler-%.otf $(outdir)/emmentaler-%.svg: $(outdir)/emmentaler-%.pe $(outdir)/feta%.pfb  $(outdir)/feta-alphabet%.pfb  $(outdir)/parmesan%.pfb $(outdir)/feta%.otf-table $(outdir)/feta%.otf-gtable
+$(outdir)/emmentaler-%.otf \
+$(outdir)/emmentaler-%.svg: $(outdir)/emmentaler-%.pe \
+                           $(outdir)/feta%.pfb \
+                           $(outdir)/feta-alphabet%.pfb \
+                           $(outdir)/parmesan%.pfb \
+                           $(outdir)/feta%.otf-table \
+                           $(outdir)/feta%.otf-gtable
        cd $(outdir) && $(FONTFORGE) -script $(notdir $(basename ,$@).pe)
 
-$(outdir)/aybabtu.otf $(outdir)/aybabtu.svg: $(outdir)/aybabtu.pe $(foreach s,$(BRACES),$(outdir)/feta-braces-$(s).pfb) $(outdir)/aybabtu.otf-table $(outdir)/aybabtu.otf-gtable
+$(outdir)/aybabtu.otf \
+$(outdir)/aybabtu.svg: $(outdir)/aybabtu.pe \
+                      $(foreach s,$(BRACES),$(outdir)/feta-braces-$(s).pfb) \
+                      $(outdir)/aybabtu.otf-table $(outdir)/aybabtu.otf-gtable
        cd $(outdir) && $(FONTFORGE) -script aybabtu.pe
 
 $(outdir)/%.pfb: $(outdir)/%.log
 
 $(outdir)/%.otf-table: $(outdir)/%.lisp
-       cat $< \
-               $(if $(findstring brace,$<),,$(subst feta,parmesan,$<)) \
-               $(if $(findstring brace,$<),,$(subst feta,feta-alphabet,$<)) > $@
-
-
-## ugh -- we want this to prevent failing -j2 compiles. 
-$(outdir)/feta26.otf-table: $(outdir)/feta26.lisp $(outdir)/parmesan26.lisp $(outdir)/feta-alphabet26.lisp 
-$(outdir)/feta23.otf-table: $(outdir)/feta23.lisp $(outdir)/parmesan23.lisp $(outdir)/feta-alphabet23.lisp 
-$(outdir)/feta20.otf-table: $(outdir)/feta20.lisp $(outdir)/parmesan20.lisp $(outdir)/feta-alphabet20.lisp 
-$(outdir)/feta18.otf-table: $(outdir)/feta18.lisp $(outdir)/parmesan18.lisp $(outdir)/feta-alphabet18.lisp 
-$(outdir)/feta16.otf-table: $(outdir)/feta16.lisp $(outdir)/parmesan16.lisp $(outdir)/feta-alphabet16.lisp 
-$(outdir)/feta14.otf-table: $(outdir)/feta14.lisp $(outdir)/parmesan14.lisp $(outdir)/feta-alphabet14.lisp 
-$(outdir)/feta13.otf-table: $(outdir)/feta13.lisp $(outdir)/parmesan13.lisp $(outdir)/feta-alphabet13.lisp 
-$(outdir)/feta11.otf-table: $(outdir)/feta11.lisp $(outdir)/parmesan11.lisp $(outdir)/feta-alphabet11.lisp 
-
-
-
-$(outdir)/aybabtu.otf: $(outdir)/aybabtu.subfonts $(outdir)/aybabtu.fontname $(outdir)/aybabtu.otf-table $(outdir)/aybabtu.otf-gtable $(outdir)/aybabtu.pe
-
-$(outdir)/aybabtu.otf $(outdir)/aybabtu.svg: $(BRACES:%=$(outdir)/feta-braces-%.pfb)
+       cat $< $(if $(findstring brace,$<),,$(subst feta,parmesan,$<)) \
+              $(if $(findstring brace,$<),,$(subst feta,feta-alphabet,$<)) > $@
+
+
+## ugh -- we want this to prevent failing -j2 compiles.
+$(outdir)/feta26.otf-table: $(outdir)/feta26.lisp \
+                           $(outdir)/parmesan26.lisp \
+                           $(outdir)/feta-alphabet26.lisp
+$(outdir)/feta23.otf-table: $(outdir)/feta23.lisp \
+                           $(outdir)/parmesan23.lisp \
+                           $(outdir)/feta-alphabet23.lisp
+$(outdir)/feta20.otf-table: $(outdir)/feta20.lisp \
+                           $(outdir)/parmesan20.lisp \
+                           $(outdir)/feta-alphabet20.lisp
+$(outdir)/feta18.otf-table: $(outdir)/feta18.lisp \
+                           $(outdir)/parmesan18.lisp \
+                           $(outdir)/feta-alphabet18.lisp
+$(outdir)/feta16.otf-table: $(outdir)/feta16.lisp \
+                           $(outdir)/parmesan16.lisp \
+                           $(outdir)/feta-alphabet16.lisp
+$(outdir)/feta14.otf-table: $(outdir)/feta14.lisp \
+                           $(outdir)/parmesan14.lisp \
+                           $(outdir)/feta-alphabet14.lisp
+$(outdir)/feta13.otf-table: $(outdir)/feta13.lisp \
+                           $(outdir)/parmesan13.lisp \
+                           $(outdir)/feta-alphabet13.lisp
+$(outdir)/feta11.otf-table: $(outdir)/feta11.lisp \
+                           $(outdir)/parmesan11.lisp \
+                           $(outdir)/feta-alphabet11.lisp
+
+$(outdir)/aybabtu.otf: $(outdir)/aybabtu.subfonts \
+                      $(outdir)/aybabtu.fontname \
+                      $(outdir)/aybabtu.otf-table \
+                      $(outdir)/aybabtu.otf-gtable \
+                      $(outdir)/aybabtu.pe
+
+$(outdir)/aybabtu.otf \
+$(outdir)/aybabtu.svg: $(BRACES:%=$(outdir)/feta-braces-%.pfb)
 
 $(outdir)/aybabtu.fontname:
        echo -n 'aybabtu' > $@
 $(outdir)/aybabtu.subfonts:
        echo $(subst .mf,,$(call src-wildcard,feta-braces-[a-z].mf)) > $@
 
-$(PE_SCRIPTS): $(buildscript-dir)/gen-emmentaler-scripts.py
+$(PE_SCRIPTS): $(top-build-dir)/buildscripts/$(outdir)/gen-emmentaler-scripts
        $(PYTHON) $< --dir=$(outdir)
 
 ALL_FONTS = $(FETA_FONTS)
@@ -94,26 +129,39 @@ PFB_FILES = $(ALL_FONTS:%=$(outdir)/%.pfb)
 
 # Make tfm files first, log files last,
 # so that normally log files aren't made twice
-ALL_GEN_FILES=$(LOG_FILES) $(ENC_FILES) $(LISP_FILES) $(OTF_TABLES) $(NCSB_OTFS) $(PFB_FILES) $(OTF_FILES) $(SVG_FILES) 
+ALL_GEN_FILES = $(LOG_FILES) \
+               $(ENC_FILES) \
+               $(LISP_FILES) \
+               $(OTF_TABLES) \
+               $(NCSB_OTFS) \
+               $(PFB_FILES) \
+               $(OTF_FILES) \
+               $(SVG_FILES)
 
-#PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
+# PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
 
-INSTALLATION_DIR=$(local_lilypond_datadir)/fonts/source
-INSTALLATION_FILES=$(MF_FILES)
+INSTALLATION_DIR = $(local_lilypond_datadir)/fonts/source
+INSTALLATION_FILES = $(MF_FILES)
 
-INSTALLATION_OUT_SUFFIXES=1 2 3 4 5 6
+INSTALLATION_OUT_SUFFIXES = 1 2 3
 
-INSTALLATION_OUT_DIR2=$(local_lilypond_datadir)/fonts/otf
-INSTALLATION_OUT_FILES2=$(OTF_FILES) $(NCSB_OTFS)
+INSTALLATION_OUT_DIR1 = $(local_lilypond_datadir)/fonts/otf
+INSTALLATION_OUT_FILES1 = $(OTF_FILES) \
+                         $(NCSB_OTFS)
 
-INSTALLATION_OUT_DIR5=$(local_lilypond_datadir)/fonts/type1
-INSTALLATION_OUT_FILES5=$(PFB_FILES)
+INSTALLATION_OUT_DIR2 = $(local_lilypond_datadir)/fonts/svg
+INSTALLATION_OUT_FILES2 = $(SVG_FILES)
 
-export MFINPUTS:=.:$(MFINPUTS)
+INSTALLATION_OUT_DIR3 = $(local_lilypond_datadir)/fonts/type1
+INSTALLATION_OUT_FILES3 = $(PFB_FILES)
 
+export MFINPUTS := .:$(MFINPUTS)
 
 
-default: $(ALL_GEN_FILES) $(outdir)/emmentaler-20.otf tree-regen $(outdir)/fonts.conf
+default: $(ALL_GEN_FILES) \
+        $(outdir)/emmentaler-20.otf \
+        tree-regen \
+        $(outdir)/fonts.conf
 
 .PHONY: tree-regen
 
@@ -123,24 +171,30 @@ tree-regen:
 
 ##
 ## todo: this also depends on .tfm, FIXME.
-$(outdir)/%.lisp $(outdir)/%.otf-gtable $(outdir)/%.enc $(outdir)/%.dep: $(outdir)/%.log
-       $(PYTHON) $(buildscript-dir)/mf-to-table.py --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) --lisp=$(outdir)/$(<F:.log=.lisp) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --enc $(outdir)/$(<F:.log=.enc)  $<
+$(outdir)/%.lisp \
+$(outdir)/%.otf-gtable \
+$(outdir)/%.enc \
+$(outdir)/%.dep: $(outdir)/%.log
+       $(PYTHON) $(buildscript-dir)/mf-to-table.py \
+                 --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
+                 --lisp=$(outdir)/$(<F:.log=.lisp) \
+                 --outdir=$(outdir) \
+                 --dep $(outdir)/$(<F:.log=.dep) \
+                 --enc $(outdir)/$(<F:.log=.enc) \
+                 $<
 
 local-clean:
        rm -f mfplain.mem mfplain.log
        rm -f *.tfm *.log
 
 
-## fixme: why is this necessary?
-$(outdir)/%.enc.in: %.enc
-       cp $< $@
-
-
 $(outdir)/fonts.conf:
        echo '<fontconfig><dir>'$(shell cd $(outdir); pwd)'</dir></fontconfig>' > $@
 
-$(NCSB_OTFS): $(NCSB_SOURCE_FILES)  $(buildscript-dir)/pfx2ttf.fontforge
+$(NCSB_OTFS): $(NCSB_SOURCE_FILES) \
+             $(buildscript-dir)/pfx2ttf.fontforge
        $(foreach i, $(basename $(NCSB_SOURCE_FILES)), \
                $(FONTFORGE) -script $(buildscript-dir)/pfx2ttf.fontforge \
                        $(i).pfb $(i).afm $(outdir)/ && ) true
 
+# eof
index 6da5bced1804826521bfbc2e83769529fbec36e1..add8a1dd6198fef08f760735f355ed957c7503f6 100644 (file)
@@ -1,13 +1,12 @@
 # Translation of LilyPond.
-# Copyright (C) 2007 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# Copyright (C) 2008 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as lilypond package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.34\n"
+"Project-Id-Version: lilypond 2.11.38\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2007-10-04 17:07+0200\n"
+"POT-Creation-Date: 2008-01-30 10:02+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"
@@ -29,6 +28,30 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr ""
 
+#: convertrules.py:96
+msgid "new \\header format"
+msgstr ""
+
+#: convertrules.py:130
+msgid "\\translator syntax"
+msgstr ""
+
+#: convertrules.py:381
+msgid "new \\notenames format"
+msgstr ""
+
+#: convertrules.py:401 convertrules.py:428
+msgid "new tremolo format"
+msgstr ""
+
+#: convertrules.py:541
+msgid "new \\textscript markup text"
+msgstr ""
+
+#: convertrules.py:1161
+msgid "cluster syntax"
+msgstr ""
+
 #: convertrules.py:2408
 msgid "LilyPond source must be UTF-8"
 msgstr ""
@@ -46,6 +69,34 @@ msgstr ""
 msgid "Or save as UTF-8 in your editor"
 msgstr ""
 
+#: convertrules.py:2482
+msgid "auto beam settings"
+msgstr ""
+
+#: convertrules.py:2974
+msgid "edge-text settings for TextSpanner."
+msgstr ""
+
+#: convertrules.py:2975
+#, python-format
+msgid ""
+"Use\n"
+"\n"
+"%s"
+msgstr ""
+
+#: convertrules.py:3021
+msgid "all settings related to dashed lines.\n"
+msgstr ""
+
+#: convertrules.py:3022
+msgid "Use \\override ... #'style = #'line for solid lines and\n"
+msgstr ""
+
+#: convertrules.py:3023
+msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
+msgstr ""
+
 #: fontextract.py:26
 #, python-format
 msgid "Scanning %s"
@@ -101,7 +152,7 @@ msgid "preserve ABC's notion of beams"
 msgstr ""
 
 #: abc2ly.py:1354 convert-ly.py:103 etf2ly.py:1192 lilypond-book.py:161
-#: midi2ly.py:900 musicxml2ly.py:975
+#: midi2ly.py:900 musicxml2ly.py:1682
 msgid "Report bugs via"
 msgstr ""
 
@@ -196,7 +247,7 @@ msgid ""
 "file."
 msgstr ""
 
-#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:968 main.cc:154 main.cc:159
+#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:1675 main.cc:154 main.cc:159
 msgid "FILE"
 msgstr ""
 
@@ -270,126 +321,126 @@ msgid ""
 "must use this with dvips -h INPUT.psfonts"
 msgstr ""
 
-#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:959 main.cc:162
+#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:1645 main.cc:162
 msgid "be verbose"
 msgstr ""
 
-#: lilypond-book.py:765
+#: lilypond-book.py:768
 #, python-format
 msgid "file not found: %s"
 msgstr ""
 
-#: lilypond-book.py:996
+#: lilypond-book.py:1002
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:999
+#: lilypond-book.py:1005
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1003
+#: lilypond-book.py:1009
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: lilypond-book.py:1006
+#: lilypond-book.py:1012
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: lilypond-book.py:1025
+#: lilypond-book.py:1031
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: lilypond-book.py:1379
+#: lilypond-book.py:1401
 #, python-format
 msgid "Opening filter `%s'"
 msgstr ""
 
-#: lilypond-book.py:1396
+#: lilypond-book.py:1418
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: lilypond-book.py:1397
+#: lilypond-book.py:1419
 msgid "The error log is as follows:"
 msgstr ""
 
-#: lilypond-book.py:1469
+#: lilypond-book.py:1491
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr ""
 
-#: lilypond-book.py:1580
+#: lilypond-book.py:1602
 msgid "Writing snippets..."
 msgstr ""
 
-#: lilypond-book.py:1585
+#: lilypond-book.py:1607
 msgid "Processing..."
 msgstr ""
 
-#: lilypond-book.py:1589
+#: lilypond-book.py:1611
 msgid "All snippets are up to date..."
 msgstr ""
 
-#: lilypond-book.py:1599
+#: lilypond-book.py:1621
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr ""
 
-#: lilypond-book.py:1610
+#: lilypond-book.py:1632
 #, python-format
 msgid "%s is up to date."
 msgstr ""
 
-#: lilypond-book.py:1616
+#: lilypond-book.py:1638
 #, python-format
 msgid "Writing `%s'..."
 msgstr ""
 
-#: lilypond-book.py:1671
+#: lilypond-book.py:1693
 msgid "Output would overwrite input file; use --output."
 msgstr ""
 
-#: lilypond-book.py:1675
+#: lilypond-book.py:1697
 #, python-format
 msgid "Reading %s..."
 msgstr ""
 
-#: lilypond-book.py:1694
+#: lilypond-book.py:1716
 msgid "Dissecting..."
 msgstr ""
 
-#: lilypond-book.py:1710
+#: lilypond-book.py:1732
 #, python-format
 msgid "Compiling %s..."
 msgstr ""
 
-#: lilypond-book.py:1719
+#: lilypond-book.py:1741
 #, python-format
 msgid "Processing include: %s"
 msgstr ""
 
-#: lilypond-book.py:1733
+#: lilypond-book.py:1755
 #, python-format
 msgid "Removing `%s'"
 msgstr ""
 
-#: lilypond-book.py:1766
+#: lilypond-book.py:1788
 msgid "option --psfonts not used"
 msgstr ""
 
-#: lilypond-book.py:1767
+#: lilypond-book.py:1789
 msgid "processing with dvips will have no fonts"
 msgstr ""
 
-#: lilypond-book.py:1770
+#: lilypond-book.py:1792
 msgid "DVIPS usage:"
 msgstr ""
 
-#: lilypond-book.py:1826
+#: lilypond-book.py:1848
 #, python-format
 msgid "Writing fonts to %s..."
 msgstr ""
@@ -411,7 +462,7 @@ msgstr ""
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:860 musicxml2ly.py:955
+#: midi2ly.py:860 musicxml2ly.py:1641
 #, python-format
 msgid "Convert %s to LilyPond input."
 msgstr ""
@@ -464,11 +515,11 @@ msgstr ""
 msgid "no files specified on command line."
 msgstr ""
 
-#: musicxml2ly.py:943
-msgid "musicxml2ly FILE.xml"
+#: musicxml2ly.py:1628
+msgid "musicxml2ly [options] FILE.xml"
 msgstr ""
 
-#: musicxml2ly.py:946
+#: musicxml2ly.py:1631
 #, python-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -477,11 +528,27 @@ msgid ""
 "information."
 msgstr ""
 
-#: musicxml2ly.py:965
+#: musicxml2ly.py:1651
 msgid "Use lxml.etree; uses less memory and cpu time."
 msgstr ""
 
-#: musicxml2ly.py:973
+#: musicxml2ly.py:1657
+msgid "Input file is a zip-compressed MusicXML file."
+msgstr ""
+
+#: musicxml2ly.py:1662
+msgid "Convert pitches in relative mode."
+msgstr ""
+
+#: musicxml2ly.py:1666
+msgid "Use a different language file, e.g. 'deutsch' for deutsch.ly."
+msgstr ""
+
+#: musicxml2ly.py:1672
+msgid "Do not convert directions (^, _ or -) for articulations."
+msgstr ""
+
+#: musicxml2ly.py:1680
 msgid "set output filename to FILE"
 msgstr ""
 
@@ -505,7 +572,7 @@ msgstr ""
 msgid "invalid argument `%s' to option `%s'"
 msgstr ""
 
-#: warn.cc:68 grob.cc:565 input.cc:82
+#: warn.cc:68 grob.cc:566 input.cc:82
 #, c-format
 msgid "programming error: %s"
 msgstr ""
@@ -568,7 +635,7 @@ msgstr ""
 msgid "removing this vertical group"
 msgstr ""
 
-#: axis-group-interface.cc:531
+#: axis-group-interface.cc:524
 msgid "an outside-staff object should have a direction, defaulting to up"
 msgstr ""
 
@@ -597,7 +664,7 @@ msgstr ""
 msgid "beam was started here"
 msgstr ""
 
-#: beam-quanting.cc:309
+#: beam-quanting.cc:307
 msgid "no feasible beam position"
 msgstr ""
 
@@ -605,7 +672,7 @@ msgstr ""
 msgid "removing beam with no stems"
 msgstr ""
 
-#: beam.cc:1039
+#: beam.cc:1069
 msgid "no viable initial configuration found: may not find good beam slope"
 msgstr ""
 
@@ -662,7 +729,7 @@ msgstr ""
 msgid "unknown cluster style `%s'"
 msgstr ""
 
-#: cluster.cc:135
+#: cluster.cc:147
 msgid "junking empty cluster"
 msgstr ""
 
@@ -724,23 +791,23 @@ msgstr ""
 msgid "dot `%s' not found"
 msgstr ""
 
-#: dynamic-engraver.cc:193
+#: dynamic-engraver.cc:192
 msgid "cannot find start of (de)crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:202
+#: dynamic-engraver.cc:201
 msgid "already have a decrescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:203
 msgid "already have a crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:207
+#: dynamic-engraver.cc:206
 msgid "cresc starts here"
 msgstr ""
 
-#: dynamic-engraver.cc:336
+#: dynamic-engraver.cc:335
 msgid "unterminated (de)crescendo"
 msgstr ""
 
@@ -757,12 +824,12 @@ msgstr ""
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
 msgstr ""
 
-#: font-config.cc:55
+#: font-config.cc:57
 #, c-format
 msgid "failed adding font directory: %s"
 msgstr ""
 
-#: font-config.cc:57
+#: font-config.cc:59
 #, c-format
 msgid "adding font directory: %s"
 msgstr ""
@@ -1192,11 +1259,11 @@ msgid "exception caught: %s"
 msgstr ""
 
 #. FIXME: constant error message.
-#: mark-engraver.cc:154
+#: mark-engraver.cc:129
 msgid "rehearsalMark must have integer value"
 msgstr ""
 
-#: mark-engraver.cc:160
+#: mark-engraver.cc:135
 msgid "mark label must be a markup object"
 msgstr ""
 
@@ -1348,19 +1415,29 @@ msgid "FT_Get_Glyph_Name () error: %s"
 msgstr ""
 
 #. find out the ideal number of pages
-#: optimal-page-breaking.cc:44
+#: optimal-page-breaking.cc:56
 msgid "Finding the ideal number of pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:59
+#: optimal-page-breaking.cc:71
 msgid "Fitting music on 1 page..."
 msgstr ""
 
-#: optimal-page-breaking.cc:61
+#: optimal-page-breaking.cc:73
+#, c-format
+msgid "Fitting music on %d pages..."
+msgstr ""
+
+#: optimal-page-breaking.cc:75
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr ""
 
+#: optimal-page-breaking.cc:152 page-turn-page-breaking.cc:226
+#: paper-score.cc:146
+msgid "Drawing systems..."
+msgstr ""
+
 #: page-turn-page-breaking.cc:146
 #, c-format
 msgid "page-turn-page-breaking: breaking from %d to %d"
@@ -1377,10 +1454,6 @@ msgstr ""
 msgid "Calculating page and line breaks (%d possible page breaks)..."
 msgstr ""
 
-#: page-turn-page-breaking.cc:226 paper-score.cc:146
-msgid "Drawing systems..."
-msgstr ""
-
 #: page-turn-page-breaking.cc:275
 #, c-format
 msgid "break starting at page %d"
@@ -1471,7 +1544,7 @@ msgstr ""
 msgid "MIDI output to `%s'..."
 msgstr ""
 
-#: phrasing-slur-engraver.cc:131
+#: phrasing-slur-engraver.cc:139
 msgid "unterminated phrasing slur"
 msgstr ""
 
@@ -1636,7 +1709,7 @@ msgstr ""
 msgid "cannot end slur"
 msgstr ""
 
-#: slur.cc:359
+#: slur.cc:353
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
@@ -1841,77 +1914,77 @@ msgstr ""
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: lexer.ll:177
+#: lexer.ll:179
 msgid "stray UTF-8 BOM encountered"
 msgstr ""
 
-#: lexer.ll:181
+#: lexer.ll:183
 msgid "Skipping UTF-8 BOM"
 msgstr ""
 
-#: lexer.ll:236
+#: lexer.ll:238
 #, c-format
 msgid "Renaming input to: `%s'"
 msgstr ""
 
-#: lexer.ll:253
+#: lexer.ll:255
 msgid "quoted string expected after \\version"
 msgstr ""
 
-#: lexer.ll:257
+#: lexer.ll:259
 msgid "quoted string expected after \\sourcefilename"
 msgstr ""
 
-#: lexer.ll:261
+#: lexer.ll:263
 msgid "integer expected after \\sourcefileline"
 msgstr ""
 
-#: lexer.ll:274
+#: lexer.ll:276
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:289
+#: lexer.ll:291
 msgid "\\maininput not allowed outside init files"
 msgstr ""
 
-#: lexer.ll:313
+#: lexer.ll:315
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:322
+#: lexer.ll:324
 msgid "end quote missing"
 msgstr ""
 
-#: lexer.ll:467
+#: lexer.ll:469
 msgid "Brace found at end of lyric.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:580
+#: lexer.ll:582
 msgid "Brace found at end of markup.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:684
+#: lexer.ll:686
 #, c-format
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:799
+#: lexer.ll:801 lexer.ll:802
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:905
+#: lexer.ll:907 lexer.ll:908
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 
-#: lexer.ll:906
+#: lexer.ll:908 lexer.ll:909
 msgid "consider updating the input with the convert-ly script"
 msgstr ""
 
-#: lexer.ll:912
+#: lexer.ll:914 lexer.ll:915
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
@@ -1958,11 +2031,11 @@ msgstr ""
 msgid "translator listens to nonexisting event class ~A"
 msgstr ""
 
-#: define-markup-commands.scm:280
+#: define-markup-commands.scm:296
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:1294
+#: define-markup-commands.scm:1310
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
@@ -2109,12 +2182,12 @@ msgstr ""
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:185
+#: lily.scm:177
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:250
+#: lily.scm:242
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
@@ -2174,23 +2247,23 @@ msgstr ""
 msgid "expecting 2 elements for chord tremolo, found ~a"
 msgstr ""
 
-#: music-functions.scm:571
+#: music-functions.scm:564
 #, scheme-format
 msgid "music expected: ~S"
 msgstr ""
 
 #. FIXME: uncomprehensable message
-#: music-functions.scm:621
+#: music-functions.scm:614
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
 msgstr ""
 
-#: music-functions.scm:771
+#: music-functions.scm:764
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:968
+#: music-functions.scm:961
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
@@ -2234,12 +2307,12 @@ msgstr ""
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
-#: parser-clef.scm:127
+#: parser-clef.scm:129
 #, scheme-format
 msgid "unknown clef type `~a'"
 msgstr ""
 
-#: parser-clef.scm:128
+#: parser-clef.scm:130
 #, scheme-format
 msgid "supported clefs: ~a"
 msgstr ""
index 5234d65eca9d428afd12db3a3ce6dc6c8a4a904e..8c29dc99cfc928de5dc8cc1052e8ecaef7ddb244 100644 (file)
@@ -18,31 +18,34 @@ class FatalConversionError:
     pass
 
 conversions = []
-error_file = sys.stderr 
+stderr_write = lilylib.stderr_write
+
+def warning (str):
+    stderr_write (_ ("warning: %s") % str)
 
 def conv(str):
     if re.search ('\\\\multi', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\multi")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\multi")
+       stderr_write ('\n')
     return str
 
-conversions.append (((0,1,9), conv, '\\header { key = concat + with + operator }'))
+conversions.append (((0,1,9), conv, _ ('\\header { key = concat + with + operator }')))
 
 
 def conv (str):
     if re.search ('\\\\octave', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\octave")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\octave")
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
     #  raise FatalConversionError ()
 
     return str
 
 conversions.append ((
-       ((0,1,19), conv, 'deprecated \\octave; cannot convert automatically')))
+       ((0,1,19), conv, _ ('deprecated %s') % '\\octave')))
 
 
 
@@ -55,7 +58,7 @@ def conv (str):
     return str
 
 conversions.append ((
-       ((0,1,20), conv, 'deprecated \\textstyle, new \\key syntax')))
+       ((0,1,20), conv, _ ('deprecated \\textstyle, new \\key syntax'))))
 
 
 
@@ -74,7 +77,7 @@ def conv (str):
     return str
 
 conversions.append ((
-       ((1,0,0), conv, '0.1.21 -> 1.0.0 ')))
+       ((1,0,0), conv, _ ("bump version for release"))))
 
 
 
@@ -92,12 +95,12 @@ conversions.append ((
 
 def conv(str):
     if re.search ('\\\\header', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\header format")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("new \\header format"))
+       stderr_write ('\n')
     return str
 
-conversions.append (((1,0,2), conv, '\\header { key = concat + with + operator }'))
+conversions.append (((1,0,2), conv, _ ('\\header { key = concat + with + operator }')))
 
 
 def conv(str):
@@ -126,9 +129,9 @@ conversions.append (((1,0,5), conv, 'ChoireStaff -> ChoirStaff'))
 
 def conv(str):
     if re.search ('[a-zA-Z]+ = *\\translator',str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\translator syntax")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("\\translator syntax"))
+       stderr_write ('\n')
     #  raise FatalConversionError ()
     return str
 
@@ -198,14 +201,14 @@ conversions.append (((1,0,16), conv, '\\type -> \\context, textstyle -> textStyl
 
 def conv(str):
     if re.search ('\\\\repeat',str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\repeat")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\repeat")
+       stderr_write ('\n')
     #  raise FatalConversionError ()
     return str
 
 conversions.append (((1,0,18), conv,
-                    '\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative'))
+                    _ ('\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative')))
 
 
 def conv(str):
@@ -248,7 +251,7 @@ def conv(str):
     return str
 
 conversions.append (((1,1,52), conv,
-       'deprecate \\grouping'))
+       _ ('deprecate %s') % '\\grouping'))
 
 
 
@@ -348,14 +351,14 @@ conversions.append (((1,3,18), conv, 'staffLineLeading -> staffSpace'))
 
 def conv(str):
     if re.search ('\\\\repetitions',str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\repetitions")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\repetitions")
+       stderr_write ('\n')
     #  raise FatalConversionError ()
     return str
 
 conversions.append (((1,3,23), conv,
-       '\\\\repetitions feature dropped'))
+       _ ('deprecate %s ') % '\\repetitions'))
 
 
 
@@ -377,9 +380,9 @@ def conv (str):
     str = re.sub ("\\\\musicalpitch *{([0-9 -]+)}",
                  "\\\\musicalpitch #'(\\1)", str)
     if re.search ('\\\\notenames',str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\notenames format")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("new \\notenames format"))
+       stderr_write ('\n')
     return str
 
 conversions.append (((1,3,38), conv, '\musicalpitch { a b c } -> #\'(a b c)'))
@@ -397,9 +400,9 @@ conversions.append (((1,3,39), conv, '\\key A ;  ->\\key a;'))
 
 def conv (str):
     if re.search ('\\[:',str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "new tremolo format")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("new tremolo format"))
+       stderr_write ('\n')
     return str
 
 conversions.append (((1,3,41), conv,
@@ -411,7 +414,7 @@ def conv (str):
     return str
 
 conversions.append (((1,3,42), conv,
-       'Staff_margin_engraver deprecated, use Instrument_name_engraver'))
+       _ ('Staff_margin_engraver deprecated, use Instrument_name_engraver')))
 
 
 def conv (str):
@@ -424,9 +427,9 @@ conversions.append (((1,3,49), conv,
 
 def conv (str):
     if re.search ('\\\\keysignature', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "new tremolo format")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % '\\keysignature')
+       stderr_write ('\n')
     return str
 
 
@@ -530,16 +533,16 @@ def conv (str):
     return str
 
 conversions.append (((1,3,93), conv,
-       'property definiton case (eg. onevoice -> oneVoice)'))
+       _ ('change property definiton case (eg. onevoice -> oneVoice)')))
 
 
 
 def conv (str):
     str = re.sub ('ChordNames*', 'ChordNames', str)
     if re.search ('\\\\textscript "[^"]* *"[^"]*"', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\textscript markup text")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("new \\textscript markup text"))
+       stderr_write ('\n')
 
     str = re.sub ('\\textscript +("[^"]*")', '\\textscript #\\1', str)
 
@@ -632,7 +635,7 @@ def conv (str):
     str = re.sub ('\n([^ \t\n]+)[ \t]*= *', regularize_assignment, str)
     return str
 
-conversions.append (((1,3,117), conv, 'identifier names: $!foo_bar_123 -> xfooBarABC'))
+conversions.append (((1,3,117), conv, _ ('identifier names: %s') % '$!foo_bar_123 -> xfooBarABC'))
 
 
 
@@ -673,7 +676,7 @@ def conv (str):
     str = re.sub ('point-and-click +#t', 'point-and-click line-column-location', str)
     return str
 
-conversions.append (((1,3,138), conv, 'point-and-click argument changed to procedure.'))
+conversions.append (((1,3,138), conv, _ ('point-and-click argument changed to procedure.')))
 
 
 def conv (str):
@@ -733,7 +736,7 @@ def conv (str):
     str = re.sub ("([^ \t;#]);", "\\1", str)
 
     return str
-conversions.append (((1,3,146), conv, 'semicolons removed'))
+conversions.append (((1,3,146), conv, _('semicolons removed')))
 
 
 def conv (str):
@@ -789,7 +792,7 @@ def conv (str):
     return str
 
 # 40 ?
-conversions.append (((1,5,40), conv, 'breakAlignOrder property names'))
+conversions.append (((1,5,40), conv, _ ('%s property names') % 'breakAlignOrder'))
 
 
 
@@ -822,7 +825,7 @@ def conv (str):
     str = re.sub ('textNonEmpty *= *##f', "TextScript \\set #'no-spacing-rods = ##t", str)
     return str
 
-conversions.append (((1,5,58), conv, 'deprecate textNonEmpty'))
+conversions.append (((1,5,58), conv, _ ('deprecate %s') % 'textNonEmpty'))
 
 
 
@@ -852,14 +855,14 @@ conversions.append (((1,5,62), conv,
 def conv (str):
     if re.search (r'\addlyrics',str) \
           and re.search ('automaticMelismata', str)  == None:
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "automaticMelismata; turned on by default since 1.5.67.")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "automaticMelismata; turned on by default since 1.5.67.")
+       stderr_write ('\n')
        raise FatalConversionError ()
     return str
 
 conversions.append (((1,5,67), conv,
-                    'automaticMelismata turned on by default'))
+                    _ ('automaticMelismata turned on by default')))
 
 
 def conv (str):
@@ -1113,19 +1116,19 @@ conversions.append (((1,7,18), conv,
 
 def conv(str):
     if re.search( r'\\GraceContext', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "GraceContext")
-       error_file.write (FROM_TO \
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "GraceContext")
+       stderr_write (FROM_TO \
                          % ("GraceContext", "#(add-to-grace-init .. )"))
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
        raise FatalConversionError ()
 
     str = re.sub ('HaraKiriStaffContext', 'RemoveEmptyStaffContext', str)
     return str
 
-conversions.append (((1,7,19), conv,"remove GraceContext"))
+conversions.append (((1,7,19), conv, _ ("remove %s") % "GraceContext"))
 
 
 
@@ -1157,17 +1160,17 @@ conversions.append (((1,7,23), conv,"barNonAuto -> automaticBars"))
 
 def conv(str):
     if re.search( r'-(start|stop)Cluster', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "Cluster syntax")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("cluster syntax"))
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
 
        raise FatalConversionError ()
 
     return str
 
-conversions.append (((1,7,24), conv,"cluster syntax"))
+conversions.append (((1,7,24), conv, _ ("cluster syntax")))
 
 
 def conv(str):
@@ -1176,7 +1179,7 @@ def conv(str):
     str = re.sub (r"\\property *Staff\.(Sustain|Sostenuto|UnaCorda)Pedal *\\revert *#'pedal-type", '', str)
     return str
 
-conversions.append (((1,7,28), conv,"new Pedal style syntax"))
+conversions.append (((1,7,28), conv, _ ("new Pedal style syntax")))
 
 
 
@@ -1445,17 +1448,17 @@ def conv (str):
 
     return str
 
-conversions.append (((1,9,0), conv, """New relative mode,
-Postfix articulations, new text markup syntax, new chord syntax."""))
+conversions.append (((1,9,0), conv, _ ("""New relative mode,
+Postfix articulations, new text markup syntax, new chord syntax.""")))
 
 
 def conv (str):
     if re.search ("font-style",str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "font-style")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "font-style")
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
 
        raise FatalConversionError ()
 
@@ -1469,7 +1472,7 @@ def conv (str):
     str = re.sub (r'@\\markup', r'-\\markup', str)
     return str
 
-conversions.append (((1,9,1), conv, """Remove - before articulation"""))
+conversions.append (((1,9,1), conv, _ ("""Remove - before articulation""")))
 
 def conv (str):
     str = re.sub ('ly:set-context-property',
@@ -1493,11 +1496,11 @@ def conv (str):
                  'acciaccatura', str)
 
     if re.search ("context-spec-music", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "context-spec-music")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "context-spec-music")
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
 
        raise FatalConversionError ()
 
@@ -1509,12 +1512,13 @@ def conv (str):
     return str
 
 conversions.append (((1,9,3), conv,
-                    """\\acciaccatura misspelling, fingerHorizontalDirection -> fingeringOrientations"""))
+                    (_ ("%s misspelling") % "\\acciaccatura") + \
+                         ", fingerHorizontalDirection -> fingeringOrientations"))
 
 
 def conv (str):
     if re.search ('\\figures', str):
-       error_file.write ("Warning: attempting automatic \\figures conversion.  Check results!");
+       warning (_ ("attempting automatic \\figures conversion.  Check results!"));
 
 
     def figures_replace (m):
@@ -1543,7 +1547,7 @@ def conv (str):
 
     return str
 
-conversions.append (((1,9,4), conv, 'Swap < > and << >>'))
+conversions.append (((1,9,4), conv, _ ('Swap < > and << >>')))
 
 
 def conv (str):
@@ -1555,29 +1559,29 @@ conversions.append (((1,9,5), conv, 'HaraKiriVerticalGroup -> RemoveEmptyVertica
 
 def conv (str):
     if re.search ("ly:get-font", str) :
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "(ly:-get-font")
-       error_file.write ('\n')
-       error_file.write (FROM_TO \
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "(ly:-get-font")
+       stderr_write ('\n')
+       stderr_write (FROM_TO \
                          % ("(ly:paper-get-font (ly:grob-get-paper foo) .. )",
                             "(ly:paper-get-font (ly:grob-get-paper foo) .. )"))
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
        raise FatalConversionError ()
 
     if re.search ("\\pitch *#", str) :
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\pitch")
-       error_file.write ('\n')
-       error_file.write ("Use Scheme code to construct arbitrary note events.")
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\pitch")
+       stderr_write ('\n')
+       stderr_write (_ ("Use Scheme code to construct arbitrary note events."))
+       stderr_write ('\n')
 
        raise FatalConversionError ()
 
     return str
 
 
-conversions.append (((1,9,6), conv, 'ly:get-font deprecated.'))
+conversions.append (((1,9,6), conv, _ ('deprecate %s') % 'ly:get-font'))
 
 def conv (str):
     def sub_alteration (m):
@@ -1601,44 +1605,44 @@ def conv (str):
 
     m= re.search ("\\\\outputproperty #([^#]+)[\t\n ]*#'([^ ]+)", str)
     if m:
-       error_file.write (\
+       stderr_write (_ (\
                r"""\outputproperty found,
 Please hand-edit, using
 
   \applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)
 
-as a substitution text.""" % (m.group (1), m.group (2)) )
+as a substitution text.""") % (m.group (1), m.group (2)) )
        raise FatalConversionError ()
 
     if re.search ("ly:(make-pitch|pitch-alteration)", str) \
           or re.search ("keySignature", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "pitches")
-       error_file.write ('\n')
-       error_file.write (
-           """The alteration field of Scheme pitches was multiplied by 2
-to support quarter tone accidentals.  You must update the following constructs by manually:
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "pitches")
+       stderr_write ('\n')
+       stderr_write (
+           _ ("""The alteration field of Scheme pitches was multiplied by 2
+to support quarter tone accidentals.  You must update the following constructs manually:
 
 * calls of ly:make-pitch and ly:pitch-alteration
 * keySignature settings made with \property
-""")
+"""))
        raise FatalConversionError ()
 
     return str
 conversions.append (((1,9,7), conv,
-                    '''use symbolic constants for alterations,
-remove \\outputproperty, move ly:verbose into ly:get-option'''))
+                    _ ('''use symbolic constants for alterations,
+remove \\outputproperty, move ly:verbose into ly:get-option''')))
 
 
 def conv (str):
     if re.search ("dash-length",str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "dash-length")
-       error_file.write ('\n')
-       error_file.write (FROM_TO % ("dash-length", "dash-fraction"))
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "dash-length")
+       stderr_write ('\n')
+       stderr_write (FROM_TO % ("dash-length", "dash-fraction"))
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
        raise FatalConversionError ()
     return str
 
@@ -1685,7 +1689,7 @@ def conv (str):
     str = re.sub (r"\\property ([a-zA-Z]+)\s*\.\s*automaticMelismata\s*=\s*##([ft])", func, str)
     return str
 
-conversions.append (((2,1,4), conv, """removal of automaticMelismata; use melismaBusyProperties instead."""))
+conversions.append (((2,1,4), conv, _ ("""removal of automaticMelismata; use melismaBusyProperties instead.""")))
 
 
 
@@ -1784,11 +1788,11 @@ conversions.append (((2,1,16), conv, """\\musicglyph #"accidentals-NUM" -> \\sha
 def conv (str):
 
     if re.search (r'\\partcombine', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\partcombine")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "\\partcombine")
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
        raise FatalConversionError ()
 
     # this rule doesn't really work,
@@ -1800,7 +1804,7 @@ def conv (str):
 
     return str
 
-conversions.append (((2,1,17), conv, """\\partcombine syntax change to \\newpartcombine"""))
+conversions.append (((2,1,17), conv, _ ("\\partcombine syntax change to \\newpartcombine")))
 
 
 def conv (str):
@@ -1817,7 +1821,7 @@ conversions.append (((2,1,18), conv, """\\newpartcombine -> \\partcombine,
 
 def conv (str):
     if re.search ('include "drumpitch', str):
-       error_file.write ("Drums found. Enclose drum notes in \\drummode")
+       stderr_write (_ ("Drums found. Enclose drum notes in \\drummode"))
 
     str = re.sub (r'\\include "drumpitch-init.ly"','', str)
 
@@ -1828,14 +1832,14 @@ def conv (str):
 
 
     if re.search ('drums->paper', str):
-       error_file.write ("\nDrum notation found. Check file manually!")
+       stderr_write (_ ("\n%s found. Check file manually!\n") % _("Drum notation"))
 
     str = re.sub (r"""\\apply\s+#\(drums->paper\s+'([a-z]+)\)""",
                  r"""\property DrumStaff.drumStyleTable = #\1-style""",
                  str)
 
     if re.search ('Thread', str):
-       error_file.write ("\nThread found. Check file manually!\n");
+       stderr_write (_ ("\n%s found. Check file manually!\n") % "Thread");
 
     str = re.sub (r"""(\\once\s*)?\\property\s+Thread\s*\.\s*NoteHead\s*"""
                  + r"""\\(set|override)\s*#'style\s*=\s*#'harmonic"""
@@ -1846,7 +1850,7 @@ def conv (str):
     str = re.sub (r"""Thread""", """Voice""", str)
 
     if re.search ('\bLyrics\b', str):
-       error_file.write ("\nLyrics found. Check file manually!\n");
+       stderr_write (_ ("\n%s found. Check file manually!\n") % "Lyrics");
 
     str = re.sub (r"""LyricsVoice""", r"""L@ricsVoice""", str)
     str = re.sub (r"""\bLyrics\b""", r"""LyricsVoice""", str)
@@ -1856,8 +1860,8 @@ def conv (str):
 
     return str
 
-conversions.append (((2,1,19), conv, """Drum notation changes, Removing \\chordmodifiers, \\notenames.
-Harmonic notes. Thread context removed. Lyrics context removed."""))
+conversions.append (((2,1,19), conv, _ ("""Drum notation changes, Removing \\chordmodifiers, \\notenames.
+Harmonic notes. Thread context removed. Lyrics context removed.""")))
 
 def conv (str):
     str = re.sub (r'nonevent-skip', 'skip-music', str)
@@ -1885,8 +1889,8 @@ brew_molecule -> print
 brew-new-markup-molecule -> Text_item::print
 LyricsVoice -> Lyrics
 tupletInvisible -> TupletBracket \set #'transparent
-Grob::preset_extent removed.
-""" ))
+%s.
+""" % (_ ("remove %s") % "Grob::preset_extent")))
 
 
 def conv (str):
@@ -1913,11 +1917,11 @@ def conv (str):
     str = re.sub ('Molecule', 'Stencil', str)
     return str
 
-conversions.append (((2,1,22), conv, """new syntax for property settings:
+conversions.append (((2,1,22), conv, """%s
        \\set A.B = #C , \\unset A.B
        \\override A.B #C = #D, \\revert A.B #C
 
-"""))
+""" % _ ("new syntax for property settings:")))
 
 def conv (str):
     def subst_in_trans (match):
@@ -1950,7 +1954,8 @@ def conv (str):
 
     return str
 
-conversions.append (((2,1,23), conv, """Property setting syntax in \\translator{ }"""))
+conversions.append (((2,1,23), conv, _ ("Property setting syntax in \\translator{ }")))
+
 def conv (str):
     str = re.sub (r'music-list\?', 'ly:music-list?', str)
     str = re.sub (r'\|\s*~', '~ |', str)
@@ -1967,11 +1972,11 @@ def conv (str):
     str = re.sub (r'ly:get-broken-into', 'ly:spanner-broken-into', str)
     str = re.sub (r'Melisma_engraver', 'Melisma_translator', str)
     if re.search ("ly:get-paper-variable", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "ly:paper-get-variable")
-       error_file.write ('\n')
-       error_file.write ('use (ly:paper-lookup (ly:grob-paper ))')
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "ly:paper-get-variable")
+       stderr_write ('\n')
+       stderr_write (_ ('use %s') % '(ly:paper-lookup (ly:grob-paper ))')
+       stderr_write ('\n')
        raise FatalConversionError ()
 
     str = re.sub (r'\\defaultAccidentals', "#(set-accidental-style 'default)", str)
@@ -1987,7 +1992,7 @@ def conv (str):
 
     return str
 
-conversions.append (((2,1,25), conv, """Scheme grob function renaming"""))
+conversions.append (((2,1,25), conv, _ ("Scheme grob function renaming")))
 
 
 def conv (str):
@@ -2000,11 +2005,11 @@ def conv (str):
 
     return str
 
-conversions.append (((2,1,26), conv, """More Scheme function renaming"""))
+conversions.append (((2,1,26), conv, _ ("More Scheme function renaming")))
 
 def conv (str):
     def subst (m):
-       g = string.atoi (m.group (2))
+       g = int (m.group (2))
        o = g / 12
        g -= o * 12
        if g <  0:
@@ -2116,7 +2121,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 2, 0), conv,
-                    '''clean up version. '''))
+                    _ ("bump version for release")))
 
 def conv (str):
     return re.sub (r'\\apply\b', r'\\applymusic', str)
@@ -2126,15 +2131,15 @@ conversions.append (((2, 3, 1), conv,
 
 def conv (str):
     if re.search ('textheight', str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "textheight")
-       error_file.write ('\n')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
-       error_file.write (
-"""Page layout has been changed, using paper size and margins.
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "textheight")
+       stderr_write ('\n')
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
+       stderr_write (
+_ ("""Page layout has been changed, using paper size and margins.
 textheight is no longer used.
-""")
+"""))
     str = re.sub (r'\\OrchestralScoreContext', '\\Score', str)
     def func(m):
        if m.group(1) not in ['RemoveEmptyStaff',
@@ -2158,7 +2163,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 3, 4), conv,
-                    '''remove \\notes'''))
+                    _ ('remove %s') % '\\notes'))
 
 
 
@@ -2194,7 +2199,7 @@ def conv (str):
     str = re.sub (r'\\addlyrics', r'\\oldaddlyrics', str)
     str = re.sub (r'\\newlyrics', r'\\addlyrics', str)
     if re.search (r"\\override\s*TextSpanner", str):
-       error_file.write ("\nWarning: TextSpanner has been split into DynamicTextSpanner and TextSpanner\n")
+       stderr_write ("\nWarning: TextSpanner has been split into DynamicTextSpanner and TextSpanner\n")
     return str
 
 conversions.append (((2, 3, 10), conv,
@@ -2251,8 +2256,8 @@ def conv (str):
     return str
 
 conversions.append (((2, 3, 16), conv,
-                    '''\\foo -> \\foomode (for chords, notes, etc.)
-fold \\new FooContext \\foomode into \\foo.'''))
+                    _ ('''\\foo -> \\foomode (for chords, notes, etc.)
+fold \\new FooContext \\foomode into \\foo.''')))
 
 def conv (str):
     str = re.sub (r'(slur|stem|phrasingSlur|tie|dynamic|dots|tuplet|arpeggio|)Both', r'\1Neutral', str)
@@ -2261,8 +2266,8 @@ def conv (str):
     return str
 
 conversions.append (((2, 3, 17), conv,
-                    '''\\foo -> \\foomode (for chords, notes, etc.)
-fold \\new FooContext \\foomode into \\foo.'''))
+                    '''slurBoth -> slurNeutral, stemBoth -> stemNeutral, etc.
+\\applymusic #(remove-tag 'foo) -> \\removeWithTag 'foo'''))
 
 
 def conv (str):
@@ -2277,12 +2282,12 @@ def conv (str):
     str = re.sub (r'\\paper', r'\\layout', str)
     str = re.sub (r'\\bookpaper', r'\\paper', str)
     if re.search ('paper-set-staff-size', str):
-       error_file.write ('''\nWarning: staff size should be changed at top-level
+       warning (_ ('''staff size should be changed at top-level
 with
 
   #(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)
 
-''')
+'''))
 
 
     str = re.sub (r'#\(paper-set-staff-size', '%Use set-global-staff-size at toplevel\n% #(layout-set-staff-size', str)
@@ -2290,8 +2295,7 @@ with
     
 conversions.append (((2, 3, 22),
                     conv,
-                    '''paper -> layout
- bookpaper -> paper''' ))
+                    '''paper -> layout, bookpaper -> paper''' ))
 
 
 def conv (str):
@@ -2313,7 +2317,7 @@ def conv (str):
 
 conversions.append (((2, 3, 24),
                     conv,
-                    '''regularize other identifiers.'''))
+                    _ ('''regularize other identifiers''')))
 
 def conv (str):
     str = re.sub ('petrucci_c1', 'petrucci-c1', str)
@@ -2330,19 +2334,18 @@ def conv (str):
 
 conversions.append (((2, 4, 0),
                     conv,
-                    ''))
+                    _ ("bump version for release")))
 
 
 def conv (str):
     str = re.sub (r'\\quote\s+"?([a-zA-Z0-9]+)"?\s+([0-9.*/]+)',
                  r'\\quoteDuring #"\1" { \skip \2 }',
-                 str
-                 )
+                 str)
     return str
 
 conversions.append (((2, 5, 0),
                     conv,
-                    ''))
+                    '\\quote -> \\quoteDuring'))
 
 
 def conv (str):
@@ -2402,20 +2405,20 @@ def conv (str):
        if encoding == 'latin1':
            return match.group (2)
 
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % ("\\encoding: %s" % encoding))
-       error_file.write ('\n')
-       error_file.write (_ ("LilyPond source must be UTF-8"))
-       error_file.write ('\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % ("\\encoding: %s" % encoding))
+       stderr_write ('\n')
+       stderr_write (_ ("LilyPond source must be UTF-8"))
+       stderr_write ('\n')
        if encoding == 'TeX':
-           error_file.write (_ ("Try the texstrings backend"))
-           error_file.write ('\n')
+           stderr_write (_ ("Try the texstrings backend"))
+           stderr_write ('\n')
        else:
-           error_file.write ( _("Do something like: %s") % \
+           stderr_write ( _("Do something like: %s") % \
                               ("recode %s..utf-8 FILE" % encoding))
-           error_file.write ('\n')
-       error_file.write (_ ("Or save as UTF-8 in your editor"))
-       error_file.write ('\n')
+           stderr_write ('\n')
+       stderr_write (_ ("Or save as UTF-8 in your editor"))
+       stderr_write ('\n')
        raise FatalConversionError ()
 
        return match.group (0)
@@ -2446,27 +2449,27 @@ def conv (str):
 
 conversions.append (((2, 5, 13),
                     conv,
-                    '\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click'))
+                    _ ('\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click')))
 
 
 def conv (str):
     if re.search ("ly:stencil-set-extent!", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "ly:stencil-set-extent!")
-       error_file.write ('\n')
-       error_file.write ('use (set! VAR (ly:make-stencil (ly:stencil-expr VAR) X-EXT Y-EXT))\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "ly:stencil-set-extent!")
+       stderr_write ('\n')
+       stderr_write ('use (set! VAR (ly:make-stencil (ly:stencil-expr VAR) X-EXT Y-EXT))\n')
        raise FatalConversionError ()
     if re.search ("ly:stencil-align-to!", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "ly:stencil-align-to!")
-       error_file.write ('\n')
-       error_file.write ('use (set! VAR (ly:stencil-aligned-to VAR AXIS DIR))\n')
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % "ly:stencil-align-to!")
+       stderr_write ('\n')
+       stderr_write ('use (set! VAR (ly:stencil-aligned-to VAR AXIS DIR))\n')
        raise FatalConversionError ()
     return str
 
 conversions.append (((2, 5, 17),
                     conv,
-                    'ly:stencil-set-extent! removed'))
+                    _ ('remove %s') % 'ly:stencil-set-extent!'))
 
 def conv (str):
     str = re.sub (r"ly:warn\b", 'ly:warning', str)
@@ -2478,21 +2481,21 @@ conversions.append (((2, 5, 18),
 def conv (str):
     if re.search ("(override-|revert-)auto-beam-setting", str)\
        or re.search ("autoBeamSettings", str):
-       error_file.write ('\n')
-       error_file.write (NOT_SMART % "auto beam settings")
-       error_file.write ('\n')
-       error_file.write ('''
+       stderr_write ('\n')
+       stderr_write (NOT_SMART % _ ("auto beam settings"))
+       stderr_write ('\n')
+       stderr_write (_ ('''
 Auto beam settings must now specify each interesting moment in a measure
 explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.
-''')
-       error_file.write (UPDATE_MANUALLY)
-       error_file.write ('\n')
+'''))
+       stderr_write (UPDATE_MANUALLY)
+       stderr_write ('\n')
        raise FatalConversionError ()
     return str
 
 conversions.append (((2, 5, 21),
                     conv,
-                    'warn about auto beam settings'))
+                    _ ('warn about auto beam settings')))
 
 def conv (str):
     str = re.sub (r"unfoldrepeats", 'unfoldRepeats', str)
@@ -2500,16 +2503,13 @@ def conv (str):
     return str
 
 conversions.append (((2, 5, 25), conv,
-
-                    'unfoldrepeats -> unfoldRepeats,'
-                    + 'compressmusic -> compressMusic'))
+            'unfoldrepeats -> unfoldRepeats, compressmusic -> compressMusic'))
 
 def conv (str):
     return str
 
 conversions.append (((2, 6, 0), conv,
-
-                    'dummy rule for 2.6')) 
+                    _ ("bump version for release")))
 
 
 
@@ -2547,7 +2547,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 7, 4), conv,
-                    '''keyAccidentalOrder->keyAlterationOrder'''))
+                    '''keyAccidentalOrder -> keyAlterationOrder'''))
 
 
 
@@ -2563,7 +2563,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 7, 6), conv,
-                    '''Performer_group_performer -> Performer_group, Engraver_group_engraver -> Engraver_group
+                    '''Performer_group_performer -> Performer_group, Engraver_group_engraver -> Engraver_group,
 inside-slur -> avoid-slur'''))
 
 
@@ -2617,15 +2617,15 @@ def conv (str):
                subber, str)
 
     if re.search ('bar-size-procedure', str):
-       error_file.write (NOT_SMART % "bar-size-procedure")
+       stderr_write (NOT_SMART % "bar-size-procedure")
     if re.search ('space-function', str):
-       error_file.write (NOT_SMART % "space-function")
+       stderr_write (NOT_SMART % "space-function")
     if re.search ('verticalAlignmentChildCallback', str):
-       error_file.write ('verticalAlignmentChildCallback has been deprecated') 
+       stderr_write (_ ('verticalAlignmentChildCallback has been deprecated'))
     return str
 
 conversions.append (((2, 7, 13), conv,
-                    '''layout engine refactoring. [FIXME] '''))
+                    '''layout engine refactoring [FIXME]'''))
 
 
 
@@ -2649,18 +2649,18 @@ def conv (str):
     return str
 
 conversions.append (((2, 7, 14), conv,
-                    '''Remove callbacks property, deprecate XY-extent-callback. '''))
+                    _ ('Remove callbacks property, deprecate XY-extent-callback.')))
 
 
 def conv (str):
     if re.search ('[XY]-offset-callbacks', str):
-       error_file.write (NOT_SMART % "[XY]-offset-callbacks")
+       stderr_write (NOT_SMART % "[XY]-offset-callbacks")
     if re.search ('position-callbacks', str):
-       error_file.write (NOT_SMART % "position-callbacks")
+       stderr_write (NOT_SMART % "position-callbacks")
     return str
 
 conversions.append (((2, 7, 15), conv,
-                    '''Use grob closures iso. XY-offset-callbacks.'''))
+                    _ ('Use grob closures iso. XY-offset-callbacks.')))
 
 
 def conv (str):
@@ -2682,7 +2682,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 7, 24), conv,
-                    """deprecate number-visibility""")) 
+                    _ ('deprecate %s') % 'number-visibility')) 
 
 def conv (str):
     str = re.sub (r"ly:spanner-get-bound", "ly:spanner-bound", str)
@@ -2767,7 +2767,7 @@ def conv (str):
     return str
 
 conversions.append (((2, 7, 32), conv,
-                    """foobar -> foo-bar for \paper, \layout"""))
+                    _ ("foobar -> foo-bar for \paper, \layout")))
 
 def conv (str):
     str = re.sub ('debug-beam-quanting', 'debug-beam-scoring', str)
@@ -2828,9 +2828,9 @@ def conv (str):
                   r"""\\override \g<context>TupletNumber #'text = #tuplet-number::calc-fraction-text""", str)
 
     if re.search ('tupletNumberFormatFunction', str):
-        error_file.write ("\n")
-       error_file.write ("tupletNumberFormatFunction has been removed. Use #'text property on TupletNumber")
-        error_file.write ("\n")
+        stderr_write ("\n")
+       stderr_write ("tupletNumberFormatFunction has been removed. Use #'text property on TupletNumber")
+        stderr_write ("\n")
         
     return str
 
@@ -2874,7 +2874,7 @@ def conv (str):
     str = re.sub (r'\\midi\s*{\s*\\tempo ([0-9]+)\s*([.]*)\s*=\s*([0-9]+)\s*}', sub_tempo, str)
     return str
 
-conversions.append (((2, 9, 16), conv, """deprecate \\tempo in \\midi"""))
+conversions.append (((2, 9, 16), conv, _ ("deprecate \\tempo in \\midi")))
 
 def conv (str):
     str = re.sub ('printfirst-page-number', 'print-first-page-number', str)
@@ -2886,7 +2886,7 @@ conversions.append (((2, 9, 19), conv, """printfirst-page-number -> print-first-
 def conv (str):
     return str
 
-conversions.append (((2, 10, 0), conv, """bump version for release"""))
+conversions.append (((2, 10, 0), conv, _ ("bump version for release")))
 
 
 def conv (str):
@@ -2909,7 +2909,7 @@ def conv (str):
     
     return str
 
-conversions.append (((2, 11, 5), conv, """deprecate cautionary-style. Use AccidentalCautionary properties"""))
+conversions.append (((2, 11, 5), conv, _ ("deprecate cautionary-style. Use AccidentalCautionary properties")))
 
                     
 
@@ -2938,7 +2938,7 @@ def conv (str):
                        'standard-alteration-glyph-name-alist')
     return str
 
-conversions.append (((2, 11, 6), conv, """Rename accidental glyphs, use glyph-name-alist."""))
+conversions.append (((2, 11, 6), conv, _ ("Rename accidental glyphs, use glyph-name-alist.")))
 
 
 def conv (str):
@@ -2948,13 +2948,12 @@ def conv (str):
                   r"\override Beam #'breakable", str)
     str = re.sub (r'addquote' , 'addQuote', str)
     if re.search ("Span_dynamic_performer", str):
-        error_file.write ("Span_dynamic_performer has been merged into Dynamic_performer")
+        stderr_write ("Span_dynamic_performer has been merged into Dynamic_performer")
 
     return str
 
 conversions.append (((2, 11, 10), conv, """allowBeamBreak -> Beam #'breakable = ##t
 addquote -> addQuote
-
 """))
 
 def conv (str):
@@ -2971,8 +2970,8 @@ def conv (str):
                   str)
 
     if re.search ('edge-text', str):
-       error_file.write (NOT_SMART % "edge-text settings for TextSpanner.")
-       error_file.write ("Use\n\n"
+       stderr_write (NOT_SMART % _ ("edge-text settings for TextSpanner."))
+       stderr_write (_ ("Use\n\n%s") %
                           "\t\\override TextSpanner #'bound-details #'right #'text = <right-text>\n"
                           "\t\\override TextSpanner #'bound-details #'left #'text = <left-text>\n")
 
@@ -3018,10 +3017,20 @@ def conv (str):
                   r"scripts.caesura.curved", str)
 
     if re.search ('dash-fraction', str):
-       error_file.write (NOT_SMART % "all settings related to dashed lines.\n")
-       error_file.write ("Use \\override ... #'style = #'line for solid lines and\n")
-       error_file.write ("\t\\override ... #'style = #'dashed-line for dashed lines.")
+       stderr_write (NOT_SMART % _ ("all settings related to dashed lines.\n"))
+       stderr_write (_ ("Use \\override ... #'style = #'line for solid lines and\n"))
+       stderr_write (_ ("\t\\override ... #'style = #'dashed-line for dashed lines."))
 
     return str
 
-conversions.append (((2, 11, 35), conv, """scripts.caesura -> scripts.caesura.curved. Use #'style not #'dash-fraction to select solid/dashed lines."""))
+conversions.append (((2, 11, 35), conv, """scripts.caesura -> scripts.caesura.curved.
+""" + _ ("Use #'style not #'dash-fraction to select solid/dashed lines.")))
+
+def conv (str):
+    str = re.sub (r"setEasyHeads", r"easyHeadsOn", str)
+    str = re.sub (r"fatText", r"textLengthOn", str)
+    str = re.sub (r"emptyText", r"textLengthOff", str)
+    return str
+
+conversions.append (((2, 11, 38), conv, """\\setEasyHeads -> \\easyHeadsOn, \\fatText -> \\textLengthOn,
+\\emptyText -> \\textLengthOff"""))
index 43722345932a551150674a65027ae6cc266dcd59..ec38d70d73471defa16afdb0b2cc1a6b2b4e47b8 100644 (file)
@@ -38,19 +38,31 @@ if os.environ.has_key ('LILYPOND_DATADIR') :
 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
+# use ugettext iso gettext, and encode the string when writing to
+# stdout/stderr
 
 localedir = '@localedir@'
 try:
     import gettext
-    gettext.bindtextdomain ('lilypond', localedir)
-    gettext.textdomain ('lilypond')
-    _ = gettext.gettext
+    t = gettext.translation ('lilypond', localedir)
+    _ = t.ugettext
 except:
     def _ (s):
        return s
 underscore = _
-progress = sys.stderr.write 
+
+# Urg, Python 2.4 does not define stderr/stdout encoding
+# Maybe guess encoding from LANG/LC_ALL/LC_CTYPE?
+
+def encoded_write(f, s):
+    f.write (s.encode (f.encoding or 'utf_8'))
+
+def stderr_write (s):
+    encoded_write (sys.stderr, s)
+
+progress = stderr_write
 
 # Modified version of the commands.mkarg(x), which always uses 
 # double quotes (since Windows can't handle the single quotes:
index 8fb4e5c31976c972e3544b182b15ccb14104b2a6..07af416ab779ef2d024423e98b13baa821fde1d6 100644 (file)
@@ -519,11 +519,11 @@ class SequentialMusic (NestedMusic):
         value = None
         at = len( self.elements ) - 1
         while (at >= 0 and
-               not isinstance (self.elements[at], EventChord) and
+               not isinstance (self.elements[at], ChordEvent) and
                not isinstance (self.elements[at], BarLine)):
             at -= 1
 
-        if (at >= 0 and isinstance (self.elements[at], EventChord)):
+        if (at >= 0 and isinstance (self.elements[at], ChordEvent)):
             value = self.elements[at]
         return value
 
@@ -567,7 +567,7 @@ class RepeatedMusic:
             self.music = SequentialMusic ()
             self.music.elements = music
         else:
-            sys.stderr.write ("WARNING: Unable to set the music %s for the repeat %s" % (music, self))
+            sys.stderr.write (_ ("WARNING: Unable to set the music %s for the repeat %s" % (music, self)))
     def add_ending (self, music):
         self.endings.append (music)
     def print_ly (self, printer):
@@ -575,7 +575,7 @@ class RepeatedMusic:
         if self.music:
             self.music.print_ly (printer)
         else:
-            sys.stderr.write ("WARNING: Encountered repeat without body\n")
+            sys.stderr.write (_ ("WARNING: Encountered repeat without body\n"))
             printer.dump ('{}')
         if self.endings:
             printer.dump ('\\alternative {')
@@ -662,7 +662,7 @@ class Paper:
         printer.newline ()
 
 
-class EventChord (NestedMusic):
+class ChordEvent (NestedMusic):
     def __init__ (self):
         NestedMusic.__init__ (self)
         self.grace_elements = None
@@ -697,6 +697,10 @@ class EventChord (NestedMusic):
                 printer ('\\grace')
             # don't print newlines after the { and } braces
             self.grace_elements.print_ly (printer, False)
+        # Print all overrides and other settings needed by the 
+        # articulations/ornaments before the note
+        for e in other_events:
+            e.print_before_note (printer)
 
         if rest_events:
             rest_events[0].print_ly (printer)
@@ -719,6 +723,9 @@ class EventChord (NestedMusic):
         for e in other_events:
             e.print_ly (printer)
 
+        for e in other_events:
+            e.print_after_note (printer)
+
         self.print_comment (printer)
             
 class Partial (Music):
@@ -755,6 +762,19 @@ class BarLine (Music):
         return " | "
 
 class Event(Music):
+    def __init__ (self):
+        # strings to print before the note to which an event is attached.
+        # Ignored for notes etc.
+        self.before_note = None
+        self.after_note = None
+   # print something before the note to which an event is attached, e.g. overrides
+    def print_before_note (self, printer):
+        if self.before_note:
+            printer.dump (self.before_note)
+   # print something after the note to which an event is attached, e.g. resetting
+    def print_after_note (self, printer):
+        if self.after_note:
+            printer.dump (self.after_note)
     pass
 
 class SpanEvent (Event):
@@ -772,34 +792,45 @@ class SpanEvent (Event):
         self.span_type = type
 
 class SlurEvent (SpanEvent):
+    def print_before_note (self, printer):
+        command = {'dotted': '\\slurDotted', 
+                  'dashed' : '\\slurDashed'}.get (self.line_type, '')
+        if command and self.span_direction == -1:
+            printer.dump (command)
+    def print_after_note (self, printer):
+        # reset non-solid slur types!
+        command = {'dotted': '\\slurSolid', 
+                  'dashed' : '\\slurSolid'}.get (self.line_type, '')
+        if command and self.span_direction == -1:
+            printer.dump (command)
     def ly_expression (self):
-        before = ''
-        after = ''
-        # TODO: setting dashed/dotted line style does not work, because that
-        #       command needs to be written before the note, not when the
-        #       event is observed after the note!
-        #before = {'dotted': '\\slurDotted', 
-        #          'dashed' : '\\slurDashed'}.get (self.line_type, '')
-        #if before:
-            #after = '\\slurSolid'
-
-        return {-1: before + '(' + after,
-            1:')'}.get (self.span_direction, '')
+        return {-1: '(', 1:')'}.get (self.span_direction, '')
 
 class BeamEvent (SpanEvent):
     def ly_expression (self):
-        return {-1: '[',
-            1:']'}.get (self.span_direction, '')
+        return {-1: '[', 1:']'}.get (self.span_direction, '')
 
 class PedalEvent (SpanEvent):
     def ly_expression (self):
         return {-1: '\\sustainDown',
+            0:'\\sustainUp\\sustainDown',
             1:'\\sustainUp'}.get (self.span_direction, '')
 
+class TextSpannerEvent (SpanEvent):
+    def ly_expression (self):
+        return {-1: '\\startTextSpan',
+            1:'\\stopTextSpan'}.get (self.span_direction, '')
+
+class BracketSpannerEvent (SpanEvent):
+    def ly_expression (self):
+        return {-1: '\\startGroup',
+            1:'\\stopGroup'}.get (self.span_direction, '')
+
+
 # type==-1 means octave up, type==-2 means octave down
 class OctaveShiftEvent (SpanEvent):
     def wait_for_note (self):
-        return False;
+        return False
     def set_span_type (self, type):
         self.span_type = {'up': 1, 'down': -1}.get (type, 0)
     def ly_octave_shift_indicator (self):
@@ -824,24 +855,37 @@ class TrillSpanEvent (SpanEvent):
             1:'\\stopTrillSpan'}.get (self.span_direction, '')
 
 class GlissandoEvent (SpanEvent):
+    def print_before_note (self, printer):
+        if self.span_direction == -1:
+            style= {
+                "dashed" : "dashed-line",
+                "dotted" : "dotted-line",
+                "wavy"   : "zigzag" 
+            }. get (self.line_type, None)
+            if style:
+                printer.dump ("\once \override Glissando #'style = #'%s" % style)
     def ly_expression (self):
-        style = ''
-        # TODO: wavy-line glissandos don't work, becasue the style has to be
-        #       set before the note, at the \glissando it's already too late!
-        #if self.line_type == 'wavy':
-            #style = "\once\override Glissando #'style = #'zigzag"
-        # In lilypond, glissando is NOT a spanner, unlike MusicXML.
-        return {-1: style + '\\glissando',
+        return {-1: '\\glissando',
             1:''}.get (self.span_direction, '')
 
 class ArpeggioEvent(Event):
     def __init__ (self):
         Event.__init__ (self)
         self.direction = 0
+        self.non_arpeggiate = False
     def wait_for_note (self):
-        return True;
+        return True
+    def print_before_note (self, printer):
+        if self.non_arpeggiate:
+            printer.dump ("\\arpeggioBracket")
+        else:
+          dir = { -1: "\\arpeggioDown", 1: "\\arpeggioUp" }.get (self.direction, '')
+          if dir:
+              printer.dump (dir)
+    def print_after_note (self, printer):
+        if self.non_arpeggiate or self.direction:
+            printer.dump ("\\arpeggioNeutral")
     def ly_expression (self):
-        # TODO: Use self.direction for up/down arpeggios
         return ('\\arpeggio')
 
 
@@ -871,32 +915,45 @@ class HairpinEvent (SpanEvent):
 
 class DynamicsEvent (Event):
     def __init__ (self):
+        Event.__init__ (self)
         self.type = None
-        self.available_commands = [ "ppppp", "pppp", "ppp", "pp", "p", 
-                                    "mp", "mf", 
-                                    "f", "ff", "fff", "ffff", 
-                                    "fp", "sf", "sff", "sp", "spp", "sfz", "rfz" ];
     def wait_for_note (self):
-        return True;
+        return True
     def ly_expression (self):
-        if self.type == None:
-            return;
-        elif self.type in self.available_commands:
+        if self.type:
             return '\%s' % self.type
         else:
-            return '-\markup{ \dynamic %s }' % self.type
-        
-    def print_ly (self, printer):
-        if self.type == None:
             return
-        elif self.type in self.available_commands:
+
+    def print_ly (self, printer):
+        if self.type:
             printer.dump ("\\%s" % self.type)
+
+class MarkEvent (Event):
+    def __init__ (self, text="\\default"):
+        Event.__init__ (self)
+        self.mark = text
+    def wait_for_note (self):
+        return False
+    def ly_contents (self):
+        if self.mark:
+            return '%s' % self.mark
         else:
-            printer.dump ("-\\markup{ \\dynamic %s }" % self.type)
+            return "\"ERROR\""
+    def ly_expression (self):
+        return '\\mark %s' % self.ly_contents ()
+
+class MusicGlyphMarkEvent (MarkEvent):
+    def ly_contents (self):
+        if self.mark:
+            return '\\markup { \\musicglyph #"scripts.%s" }' % self.mark
+        else:
+            return ''
 
 
 class TextEvent (Event):
     def __init__ (self):
+        Event.__init__ (self)
         self.Text = None
         self.force_direction = None
         self.markup = ''
@@ -914,10 +971,11 @@ class TextEvent (Event):
 
 class ArticulationEvent (Event):
     def __init__ (self):
+        Event.__init__ (self)
         self.type = None
         self.force_direction = None
     def wait_for_note (self):
-        return True;
+        return True
 
     def direction_mod (self):
         return { 1: '^', -1: '_', 0: '-' }.get (self.force_direction, '')
@@ -1178,7 +1236,7 @@ class MultiMeasureRest(Music):
   'elements
   (list (make-music (quote BarCheck))
         (make-music
-          'EventChord
+          'ChordEvent
           'elements
           (list (make-music
                   'MultiMeasureRestEvent
@@ -1366,7 +1424,7 @@ def test_pitch ():
 
 def test_printer ():
     def make_note ():
-        evc = EventChord()
+        evc = ChordEvent()
         n = NoteEvent()
         evc.append (n)
         return n
@@ -1396,21 +1454,21 @@ def test_printer ():
 def test_expr ():
     m = SequentialMusic()
     l = 2  
-    evc = EventChord()
+    evc = ChordEvent()
     n = NoteEvent()
     n.duration.duration_log = l
     n.pitch.step = 1
     evc.insert_around (None, n, 0)
     m.insert_around (None, evc, 0)
 
-    evc = EventChord()
+    evc = ChordEvent()
     n = NoteEvent()
     n.duration.duration_log = l
     n.pitch.step = 3
     evc.insert_around (None, n, 0)
     m.insert_around (None, evc, 0)
 
-    evc = EventChord()
+    evc = ChordEvent()
     n = NoteEvent()
     n.duration.duration_log = l
     n.pitch.step = 2 
@@ -1421,7 +1479,7 @@ def test_expr ():
     evc.type = 'treble'
     m.insert_around (None, evc, 0)
 
-    evc = EventChord()
+    evc = ChordEvent()
     tonic = Pitch ()
     tonic.step = 2
     tonic.alteration = -2
index 63296f193e0bfc484f118017713e8a2c369295ea..f96895f638e036445eb6ea7c4f18565d0de7ebb1 100644 (file)
@@ -202,6 +202,21 @@ class Pitch (Music_xml_node):
            alter = int (ch.get_text ().strip ())
        return alter
 
+class Unpitched (Music_xml_node):
+    def get_step (self):
+       ch = self.get_unique_typed_child (get_class (u'display-step'))
+       step = ch.get_text ().strip ()
+       return step
+
+    def get_octave (self):
+       ch = self.get_unique_typed_child (get_class (u'display-octave'))
+
+       if ch:
+           octave = ch.get_text ().strip ()
+           return int (octave)
+       else:
+           return None
+
 class Measure_element (Music_xml_node):
     def get_voice_id (self):
        voice_id = self.get_maybe_exist_named_child ('voice')
@@ -247,7 +262,7 @@ class Attributes (Measure_element):
             else:
                 return (4, 4)
         except KeyError:
-            sys.stderr.write ('error: requested time signature, but time sig unknown\n')
+            sys.stderr.write (_ ("error: requested time signature, but time sig is unknown\n"))
             return (4, 4)
 
     # returns clef information in the form ("cleftype", position, octave-shift)
@@ -309,8 +324,11 @@ class Note (Measure_element):
                     'whole': 0,
                     'breve': -1,
                     'long': -2}.get (log, 0)
+       elif self.get_maybe_exist_named_child (u'grace'):
+           # FIXME: is it ok to default to eight note for grace notes?
+           return 3
         else:
-            self.message ("Encountered note at %s without %s duration (no <type> element):" % (self.start, self.duration) )
+            self.message (_ ("Encountered note at %s with %s duration (no <type> element):") % (self.start, self.duration) )
             return 0
 
     def get_factor (self):
@@ -344,7 +362,7 @@ class Part_list (Music_xml_node):
         if instrument_name:
             return instrument_name
         else:
-            sys.stderr.write ("Opps, couldn't find instrument for ID=%s\n" % id)
+            sys.stderr.write (_ ("Unable to find find instrument for ID=%s\n") % id)
             return "Grand Piano"
 
 class Part_group (Music_xml_node):
@@ -733,6 +751,12 @@ class Wedge (Music_xml_spanner):
 class Tuplet (Music_xml_spanner):
     pass
 
+class Bracket (Music_xml_spanner):
+    pass
+
+class Dashes (Music_xml_spanner):
+    pass
+
 class Slur (Music_xml_spanner):
     def get_type (self):
        return self.type
@@ -752,6 +776,9 @@ class Pedal (Music_xml_spanner):
 class Glissando (Music_xml_spanner):
     pass
 
+class Slide (Music_xml_spanner):
+    pass
+
 class Octave_shift (Music_xml_spanner):
     # default is 8 for the octave-shift!
     def get_size (self):
@@ -849,7 +876,9 @@ class_dict = {
         'bar-style': BarStyle,
        'beam' : Beam,
         'bend' : Bend,
+        'bracket' : Bracket,
        'chord': Chord,
+        'dashes' : Dashes,
        'dot': Dot,
        'direction': Direction,
         'direction-type': DirType,
@@ -872,6 +901,7 @@ class_dict = {
        'pitch': Pitch,
        'rest': Rest,
     'score-part': Score_part,
+        'slide': Slide,
        'slur': Slur,
        'staff': Staff,
         'syllabic': Syllabic,
@@ -879,6 +909,7 @@ class_dict = {
        'time-modification': Time_modification,
         'tuplet': Tuplet,
        'type': Type,
+       'unpitched': Unpitched,
         'wavy-line': Wavy_line,
         'wedge': Wedge,
         'words': Words,
index a80deb681c6ea1244ebaa4a5c39eec4a508e0230..e8c22474325ffa41203086b22a69bd6bbde5925a 100644 (file)
@@ -228,7 +228,7 @@ for the full staff.")
 
 
      (gridInterval ,ly:moment? "Interval for which to generate
-@ref{GridPoint}s.")
+@code{GridPoint}s.")
 
 
      (hairpinToBarline ,boolean? "If set, end a hairpin at the barline
index 8b58b1a57a491992761a90a45d1fcaf68eb0aefa..0800d482d843f581a46f62421edb29f40c2b3727 100644 (file)
@@ -88,7 +88,7 @@
     
     (Ambitus
      . (
-       (axes . (0 1))
+       (axes . (,X ,Y))
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (space-alist . (
                               staff-bar
                               time-signature
                               custos)))
-       (axes . (0))
+       (axes . (,X))
        (meta . ((class . Item)
                 (interfaces . (break-alignment-interface
                                axis-group-interface))))))
 
     (BreakAlignGroup
      . (
-       (axes . (0))
+       (axes . (,X))
        (X-extent . ,ly:axis-group-interface::width)
        (break-align-anchor . ,ly:break-aligned-interface::calc-average-anchor)
        (break-visibility . ,ly:break-aligned-interface::calc-break-visibility)
        ;; todo: add X self alignment?
        (baseline-skip . 2)
        (side-axis . ,Y)
+       (avoid-slur . outside )
        (font-series . bold)
        (meta . ((class . Item)
                 (interfaces . (text-script-interface
 
     (DotColumn
      . (
-       (axes . (0))
+       (axes . (,X))
        (direction . ,RIGHT)
        (positioning-done . ,ly:dot-column::calc-positioning-done) 
        (X-extent . ,ly:axis-group-interface::width)
                                text-interface))))))
     (DynamicLineSpanner
      . (
-       (axes . (1))
+       (axes . (,Y))
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (staff-padding . 0.1)
        (padding . 0.6)
     (NonMusicalPaperColumn
      . (
        (allow-loose-spacing . #t)
-       (axes . (0))
+       (axes . (,X))
        (before-line-breaking . ,ly:paper-column::before-line-breaking)
        (X-extent . ,ly:axis-group-interface::width)
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
     
     (NoteCollision
      . (
-       (axes . (0 1))
+       (axes . (,X ,Y))
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (positioning-done . ,ly:note-collision-interface::calc-positioning-done)
 
     (NoteColumn
      . (
-       (axes . (0 1))
+       (axes . (,X ,Y))
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
 
     (PaperColumn
      . (
-       (axes . (0))
+       (axes . (,X))
        (allow-loose-spacing . #t)
        (before-line-breaking . ,ly:paper-column::before-line-breaking)
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
 
     (SostenutoPedalLineSpanner
      . (
-       (axes . (1))
+       (axes . (,Y))
        (Y-extent . ,ly:axis-group-interface::height)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
 
     (SustainPedalLineSpanner
      . (
-       (axes . (1))
+       (axes . (,Y))
        (Y-extent . ,ly:axis-group-interface::height)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
 
     (System
      . (
-       (axes . (0 1))
+       (axes . (,X ,Y))
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
        (vertical-skylines . ,ly:axis-group-interface::calc-skylines)
 
     (UnaCordaPedalLineSpanner
      . (
-       (axes . (1))
+       (axes . (,Y))
        (Y-extent . ,ly:axis-group-interface::height)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
 
     (VerticalAlignment
      . (
-       (axes . (1))
+       (axes . (,Y))
        (positioning-done . ,ly:align-interface::calc-positioning-done)
        (after-line-breaking . ,ly:align-interface::stretch-after-break)
        (Y-extent . ,ly:axis-group-interface::height)
                                axis-group-interface))))))
     (VerticalAxisGroup
      . (
-       (axes . (1))
+       (axes . (,Y))
        (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback)
        (Y-extent . ,ly:hara-kiri-group-spanner::y-extent)
        (X-extent . ,ly:axis-group-interface::width)
 
     (VoltaBracketSpanner
      . (       
-       (axes . (1))
+       (axes . (,Y))
        (side-axis . ,Y)
        (direction . ,UP)
        (padding . 1)
index 81c6e3685075ffcd7fce1be946ebcf7da1ee5830..2f4d37a434b784cc231956aaae056cbc96688240 100644 (file)
@@ -230,8 +230,10 @@ Voice-state objects
     
     (set! (ly:music-property m 'elements) (list m1 m2))
     (set! (ly:music-property m 'split-list)
-         (determine-split-list (reverse! (cdr (assoc "one" evs1)) '())
-                               (reverse! (cdr (assoc "two" evs2)) '())))
+      (if (and (assoc "one" evs1) (assoc "two" evs2))
+         (determine-split-list (reverse! (cdr (assoc "one" evs1)) '())
+                               (reverse! (cdr (assoc "two" evs2)) '()))
+         '() ))
     m))
 
 (define-public (determine-split-list evl1 evl2)
index 9501b405fe69c43a7eeb8809402112cd87eba423..6d7eda4a41dd712884a96e137947ce2c7d91025c 100644 (file)
@@ -44,17 +44,17 @@ program_name = os.path.basename (sys.argv[0])
 program_version = '@TOPLEVEL_VERSION@'
 
 def warning (s):
-    sys.stderr.write (program_name + ": " + _ ("warning: %s") % s + '\n')
+    ly.stderr_write (program_name + ": " + _ ("warning: %s") % s + '\n')
 
 def error (s):
-    sys.stderr.write (program_name + ": " + _ ("error: %s") % s + '\n')
+    ly.stderr_write (program_name + ": " + _ ("error: %s") % s + '\n')
 
 def identify (port=sys.stderr):
-    port.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+    ly.encoded_write (port, '%s (GNU LilyPond) %s\n' % (program_name, program_version))
 
 def warranty ():
     identify ()
-    sys.stdout.write ('''
+    ly.encoded_write (sys.stdout, '''
 Copyright (c) %s by
 
   Han-Wen Nienhuys
@@ -178,7 +178,7 @@ class UnknownVersion:
     pass
 
 def do_one_file (infile_name):
-    sys.stderr.write (_ ("Processing `%s\'... ") % infile_name)
+    ly.stderr_write (_ ("Processing `%s\'... ") % infile_name)
     sys.stderr.write ('\n')
 
     from_version = None
index 4e4c3077824008b296f638c6dd01a2b6022c738b..bdb0637d17ee418424e1d1e83eb5fc91f96315e7 100644 (file)
@@ -74,16 +74,15 @@ def exit (i):
         sys.exit (i)
 
 def identify ():
-    sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+    ly.encoded_write (sys.stdout, '%s (GNU LilyPond) %s\n' % (program_name, program_version))
 
-def progress (s):
-    sys.stderr.write (s)
+progress = ly.progress
 
 def warning (s):
-    sys.stderr.write (program_name + ": " + _ ("warning: %s") % s + '\n')
+    ly.stderr_write (program_name + ": " + _ ("warning: %s") % s + '\n')
 
 def error (s):
-    sys.stderr.write (program_name + ": " + _ ("error: %s") % s + '\n')
+    ly.stderr_write (program_name + ": " + _ ("error: %s") % s + '\n')
 
 def ps_page_count (ps_name):
     header = open (ps_name).read (1024)
@@ -94,7 +93,7 @@ def ps_page_count (ps_name):
 
 def warranty ():
     identify ()
-    sys.stdout.write ('''
+    ly.encoded_write (sys.stdout, '''
 %s
 
 %s
@@ -125,10 +124,16 @@ def get_option_parser ():
                   action='append', dest='include_path',
                   default=[os.path.abspath (os.getcwd ())])
 
+    p.add_option ('--info-images-dir', help=_ ("format Texinfo output so that Info will "
+                                               "look for images of music in DIR"),
+                  metavar=_ ("DIR"),
+                  action='store', dest='info_images_dir',
+                  default='')
+
     p.add_option ('--left-padding', 
-                  metavar=_("PAD"),
+                  metavar=_ ("PAD"),
                   dest="padding_mm",
-                  help="Pad left side of music to align music inspite of uneven bar numbers. (in mm)",
+                  help=_ ("pad left side of music to align music inspite of uneven bar numbers (in mm)"),
                   type="float",
                   default=3.0)
     
@@ -144,7 +149,7 @@ def get_option_parser ():
     p.add_option ('--pdf',
                   action="store_true",
                   dest="create_pdf",
-                  help=_ ("Create PDF files for use with PDFTeX"),
+                  help=_ ("create PDF files for use with PDFTeX"),
                   default=False)
     p.add_option ('', '--psfonts', action="store_true", dest="psfonts",
                   help=_ ('''extract all PostScript fonts into INPUT.psfonts for LaTeX
@@ -157,7 +162,7 @@ must use this with dvips -h INPUT.psfonts'''),
     p.add_option ('-w', '--warranty',
                   help=_ ("show warranty and copyright"),
                   action='store_true')
-    p.add_option_group ('bugs',
+    p.add_option_group (_ ('Bugs'),
                         description=(_ ("Report bugs via")
                                      + ''' http://post.gmane.org/post.php'''
                                      '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
@@ -628,7 +633,7 @@ output = {
 
         OUTPUTIMAGE: r'''@noindent
 @ifinfo
-@image{%(base)s,,,%(alt)s,%(ext)s}
+@image{%(info_image_path)s,,,%(alt)s,%(ext)s}
 @end ifinfo
 @html
 <p>
@@ -1204,6 +1209,7 @@ class Lilypond_snippet (Snippet):
             # Specifying no extension is most robust.
             ext = ''
             alt = self.option_dict[ALT]
+            info_image_path = os.path.join (global_options.info_images_dir, base)
             str += output[TEXINFO][OUTPUTIMAGE] % vars ()
 
         base = self.basename ()
@@ -1417,8 +1423,8 @@ def filter_pipe (input, cmd):
         exit_status = status >> 8
         error (_ ("`%s' failed (%d)") % (cmd, exit_status))
         error (_ ("The error log is as follows:"))
-        sys.stderr.write (error)
-        sys.stderr.write (stderr.read ())
+        ly.stderr_write (error)
+        ly.stderr_write (stderr.read ())
         exit (status)
 
     if global_options.verbose:
index e03a2afe0c0edb196bee2c00457ab0650f2b2b51..d847be27e9c0475e1063e1755e0b1166b686b930 100644 (file)
@@ -127,15 +127,16 @@ Options:
 
 (define (strip-framework-path var)
   (define pat "lilypond/usr")
-  (let*
-      ((val (getenv var))
-       (paths (string-split val #\:))
-       (without (remove (lambda (s) (string-contains s pat))
-                       paths)))
-
-    (if (not (= (length without)
-               (length paths)))
-       (setenv var (string-join without ":")))))
+  (if (getenv var)
+      (let*
+         ((val (getenv var))
+          (paths (string-split val #\:))
+          (without (remove (lambda (s) (string-contains s pat))
+                           paths)))
+       
+       (if (not (= (length without)
+                   (length paths)))
+           (setenv var (string-join without ":"))))))
 
 (define (main args)
   (let ((files (parse-options args)))
index 157275c251e23d126995276615b7c9b0eb4d17b4..eaf7f5d616e55fb0227260bda2ce6a965f3b8749 100644 (file)
@@ -31,6 +31,7 @@ import sys
 
 import midi
 import lilylib as ly
+global _;_=ly._
 
 ################################################################
 ## CONSTANTS
@@ -55,15 +56,6 @@ allowed_tuplet_clocks = []
 
 ################################################################
 
-localedir = '@localedir@'
-try:
-    import gettext
-    gettext.bindtextdomain ('lilypond', localedir)
-    gettext.textdomain ('lilypond')
-    _ = gettext.gettext
-except:
-    def _ (s):
-        return s
 
 program_name = sys.argv[0]
 program_version = '@TOPLEVEL_VERSION@'
@@ -75,7 +67,7 @@ def identify ():
 
 def warranty ():
     identify ()
-    sys.stdout.write ('''
+    ly.encoded_write (sys.stdout, '''
 Copyright (c) %s by
 
  Han-Wen Nienhuys
@@ -89,14 +81,14 @@ Copyright (c) %s by
 
 
 def progress (s):
-    errorport.write (s + '\n')
+    ly.encoded_write (errorport, s + '\n')
 
 def warning (s):
     progress (_ ("warning: ") + s)
         
 def error (s):
     progress (_ ("error: ") + s)
-    raise _ ("Exiting ... ")
+    raise _ ("Exiting... ")
 
 def system (cmd, ignore_error = 0):
     return ly.system (cmd, ignore_error=ignore_error)
@@ -107,7 +99,6 @@ def strip_extension (f, ext):
         e = ''
     return p + e
 
-\f
 
 
 class Duration:
@@ -891,12 +882,13 @@ def get_option_parser ():
     p.add_option ('-x', '--text-lyrics', help=_ ("treat every text as a lyric"),
            action='store_true')
 
-    p.add_option_group (_ ("Examples"),
+# urg, Python 2.5 optparse is broken, it doesn't accept Unicode strings
+    p.add_option_group (_ ("Examples").encode (sys.stdout.encoding),
               description = r'''
   midi2ly --key=-2:1 --duration-quant=32 \
     --allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi
 ''')
-    p.add_option_group ('bugs',
+    p.add_option_group (_ ('Bugs').encode (sys.stdout.encoding),
                         description=(_ ('Report bugs via')
                                      + ''' http://post.gmane.org/post.php'''
                                      '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
@@ -910,8 +902,8 @@ def do_options ():
 
     if not args or args[0] == '-':
         opt_parser.print_help ()
-        sys.stderr.write ('\n%s: %s %s\n' % (program_name, _ ("error: "),
-                          _ ("no files specified on command line.")))
+        ly.stderr_write ('\n%s: %s %s\n' % (program_name, _ ("error: "),
+                         _ ("no files specified on command line.")))
         sys.exit (2)
 
     if options.duration_quant:
index 5884f536b945115fe19b1b7712913cc6c565c73c..1b8c568b5a588cb0622b0f121842fd357831f32c 100644 (file)
@@ -25,11 +25,11 @@ from rational import Rational
 options = None
 
 def progress (str):
-    sys.stderr.write (str + '\n')
+    ly.stderr_write (str + '\n')
     sys.stderr.flush ()
 
 def error_message (str):
-    sys.stderr.write (str + '\n')
+    ly.stderr_write (str + '\n')
     sys.stderr.flush ()
 
 needed_additional_definitions = []
@@ -49,8 +49,7 @@ additional_definitions = {
       )
     )
   )
-)
-"""
+)"""
 }
 
 def round_to_two_digits (val):
@@ -191,12 +190,11 @@ class PartGroupInfo:
     def add_end (self, g):
         self.end[getattr (g, 'number', "1")] = g
     def print_ly (self, printer):
-        error_message ("Unprocessed PartGroupInfo %s encountered" % self)
+        error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
     def ly_expression (self):
-        error_message ("Unprocessed PartGroupInfo %s encountered" % self)
+        error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
         return ''
 
-
 def staff_attributes_to_string_tunings (mxl_attr):
     details = mxl_attr.get_maybe_exist_named_child ('staff-details')
     if not details:
@@ -219,7 +217,7 @@ def staff_attributes_to_string_tunings (mxl_attr):
 
         step = i.get_named_child (u'tuning-step')
         step = step.get_text ().strip ()
-        p.step = (ord (step) - ord ('A') + 7 - 2) % 7
+        p.step = musicxml_step_to_lily (step)
 
         octave = i.get_named_child (u'tuning-octave')
         octave = octave.get_text ().strip ()
@@ -425,8 +423,8 @@ def rational_to_lily_duration (rational_len):
     d.duration_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (rational_len.denominator (), -1)
     d.factor = Rational (rational_len.numerator ())
     if d.duration_log < 0:
-        error_message ("Encountered rational duration with denominator %s, "
-                       "unable to convert to lilypond duration" %
+        error_message (_ ("Encountered rational duration with denominator %s, "
+                       "unable to convert to lilypond duration") %
                        rational_len.denominator ())
         # TODO: Test the above error message
         return None
@@ -608,7 +606,7 @@ def musicxml_key_to_lily (attributes):
         start_pitch.step = n
         start_pitch.alteration = a
     except  KeyError:
-        error_message ('unknown mode %s' % mode)
+        error_message (_ ("unknown mode %s, expecting 'major' or 'minor'") % mode)
 
     fifth = musicexp.Pitch()
     fifth.step = 4
@@ -646,7 +644,7 @@ class Marker (musicexp.Music):
         self.direction = 0
         self.event = None
     def print_ly (self, printer):
-        sys.stderr.write ("Encountered unprocessed marker %s\n" % self)
+        ly.stderr_write (_ ("Encountered unprocessed marker %s\n") % self)
         pass
     def ly_expression (self):
         return ""
@@ -707,12 +705,15 @@ def musicxml_barline_to_lily (barline):
     return retval.values ()
 
 spanner_event_dict = {
-    'slur' : musicexp.SlurEvent,
     'beam' : musicexp.BeamEvent,
+    'dashes' : musicexp.TextSpannerEvent,
+    'bracket' : musicexp.BracketSpannerEvent,
     'glissando' : musicexp.GlissandoEvent,
+    'octave-shift' : musicexp.OctaveShiftEvent,
     'pedal' : musicexp.PedalEvent,
+    'slide' : musicexp.GlissandoEvent,
+    'slur' : musicexp.SlurEvent,
     'wavy-line' : musicexp.TrillSpanEvent,
-    'octave-shift' : musicexp.OctaveShiftEvent,
     'wedge' : musicexp.HairpinEvent
 }
 spanner_type_dict = {
@@ -722,6 +723,7 @@ spanner_type_dict = {
     'decreschendo': -1,
     'diminuendo': -1,
     'continue': 0,
+    'change': 0,
     'up': -1,
     'down': -1,
     'stop': 1,
@@ -736,7 +738,7 @@ def musicxml_spanner_to_lily_event (mxl_event):
     if func:
         ev = func()
     else:
-        error_message ('unknown span event %s' % mxl_event)
+        error_message (_ ('unknown span event %s') % mxl_event)
 
 
     type = mxl_event.get_type ()
@@ -746,7 +748,7 @@ def musicxml_spanner_to_lily_event (mxl_event):
     if span_direction != None:
         ev.span_direction = span_direction
     else:
-        error_message ('unknown span type %s for %s' % (type, name))
+        error_message (_ ('unknown span type %s for %s') % (type, name))
 
     ev.set_span_type (type)
     ev.line_type = getattr (mxl_event, 'line-type', 'solid')
@@ -757,27 +759,47 @@ def musicxml_spanner_to_lily_event (mxl_event):
     return ev
 
 def musicxml_direction_to_indicator (direction):
-    return { "above": 1, "upright": 1, "up":1, "below": -1, "downright": -1, "down": -1 }.get (direction, 0)
+    return { "above": 1, "upright": 1, "up": 1, "below": -1, "downright": -1, "down": -1, "inverted": -1 }.get (direction, 0)
 
 def musicxml_fermata_to_lily_event (mxl_event):
     ev = musicexp.ArticulationEvent ()
-    ev.type = "fermata"
+    txt = mxl_event.get_text ()
+    # The contents of the element defined the shape, possible are normal, angled and square
+    ev.type = { "angled": "shortfermata", "square": "longfermata" }.get (txt, "fermata")
     if hasattr (mxl_event, 'type'):
       dir = musicxml_direction_to_indicator (mxl_event.type)
       if dir and options.convert_directions:
         ev.force_direction = dir
     return ev
 
-
 def musicxml_arpeggiate_to_lily_event (mxl_event):
     ev = musicexp.ArpeggioEvent ()
     ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
     return ev
 
+def musicxml_nonarpeggiate_to_lily_event (mxl_event):
+    ev = musicexp.ArpeggioEvent ()
+    ev.non_arpeggiate = True
+    ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
+    return ev
 
 def musicxml_tremolo_to_lily_event (mxl_event):
     ev = musicexp.TremoloEvent ()
-    ev.bars = mxl_event.get_text ()
+    txt = mxl_event.get_text ()
+    if txt:
+      ev.bars = txt
+    else:
+      ev.bars = "3"
+    return ev
+
+def musicxml_falloff_to_lily_event (mxl_event):
+    ev = musicexp.BendEvent ()
+    ev.alter = -4
+    return ev
+
+def musicxml_doit_to_lily_event (mxl_event):
+    ev = musicexp.BendEvent ()
+    ev.alter = 4
     return ev
 
 def musicxml_bend_to_lily_event (mxl_event):
@@ -785,6 +807,12 @@ def musicxml_bend_to_lily_event (mxl_event):
     ev.alter = mxl_event.bend_alter ()
     return ev
 
+def musicxml_caesura_to_lily_event (mxl_event):
+    ev = musicexp.MarkupEvent ()
+    # FIXME: default to straight or curved caesura?
+    ev.contents = "\\musicglyph #\"scripts.caesura.straight\""
+    ev.force_direction = 1
+    return ev
 
 def musicxml_fingering_event (mxl_event):
     ev = musicexp.ShortArticulationEvent ()
@@ -835,13 +863,13 @@ articulations_dict = {
     "accidental-mark": musicxml_accidental_mark,
     "bend": musicxml_bend_to_lily_event,
     "breath-mark": (musicexp.NoDirectionArticulationEvent, "breathe"),
-    #"caesura": "caesura",
+    "caesura": musicxml_caesura_to_lily_event,
     #"delayed-turn": "?",
     "detached-legato": (musicexp.ShortArticulationEvent, "_"), # or "portato"
-    #"doit": "",
+    "doit": musicxml_doit_to_lily_event,
     #"double-tongue": "",
     "down-bow": "downbow",
-    #"falloff": "",
+    "falloff": musicxml_falloff_to_lily_event,
     "fingering": musicxml_fingering_event,
     #"fingernails": "",
     #"fret": "",
@@ -868,7 +896,7 @@ articulations_dict = {
     "strong-accent": (musicexp.ShortArticulationEvent, "^"), # or "marcato"
     #"tap": "",
     "tenuto": (musicexp.ShortArticulationEvent, "-"), # or "tenuto"
-    #"thumb-position": "",
+    "thumb-position": "thumb",
     #"toe": "",
     "turn": "turn",
     "tremolo": musicxml_tremolo_to_lily_event,
@@ -909,15 +937,26 @@ def musicxml_articulation_to_lily_event (mxl_event):
     return ev
 
 
+
 def musicxml_dynamics_to_lily_event (dynentry):
-    dynamics_available = ( "p", "pp", "ppp", "pppp", "ppppp", "pppppp",
-        "f", "ff", "fff", "ffff", "fffff", "ffffff",
-        "mp", "mf", "sf", "sfp", "sfpp", "fp",
-        "rf", "rfz", "sfz", "sffz", "fz" )
-    if not dynentry.get_name() in dynamics_available:
+    dynamics_available = (
+        "ppppp", "pppp", "ppp", "pp", "p", "mp", "mf", 
+        "f", "ff", "fff", "ffff", "fp", "sf", "sff", "sp", "spp", "sfz", "rfz" )
+    dynamicsname = dynentry.get_name ()
+    if dynamicsname == "other-dynamics":
+        dynamicsname = dynentry.get_text ()
+    if not dynamicsname or dynamicsname=="#text":
         return
+
+    if not dynamicsname in dynamics_available:
+        # Get rid of - in tag names (illegal in ly tags!)
+        dynamicstext = dynamicsname
+        dynamicsname = string.replace (dynamicsname, "-", "")
+        additional_definitions[dynamicsname] = dynamicsname + \
+              " = #(make-dynamic-script \"" + dynamicstext + "\")"
+        needed_additional_definitions.append (dynamicsname)
     event = musicexp.DynamicsEvent ()
-    event.type = dynentry.get_name ()
+    event.type = dynamicsname
     return event
 
 # Convert single-color two-byte strings to numbers 0.0 - 1.0
@@ -994,16 +1033,140 @@ def musicxml_words_to_lily_event (words):
     return event
 
 
-direction_spanners = [ 'octave-shift', 'pedal', 'wedge' ]
+# convert accordion-registration to lilypond.
+# Since lilypond does not have any built-in commands, we need to create
+# the markup commands manually and define our own variables.
+# Idea was taken from: http://lsr.dsi.unimi.it/LSR/Item?id=194
+def musicxml_accordion_to_markup (mxl_event):
+    commandname = "accReg"
+    command = ""
+
+    high = mxl_event.get_maybe_exist_named_child ('accordion-high')
+    if high:
+        commandname += "H"
+        command += """\\combine
+          \\raise #2.5 \\musicglyph #\"accordion.accDot\"
+          """
+    middle = mxl_event.get_maybe_exist_named_child ('accordion-middle')
+    if middle:
+        # By default, use one dot (when no or invalid content is given). The 
+        # MusicXML spec is quiet about this case...
+        txt = 1
+        try:
+          txt = string.atoi (middle.get_text ())
+        except ValueError:
+            pass
+        if txt == 3:
+            commandname += "MMM"
+            command += """\\combine
+          \\raise #1.5 \\musicglyph #\"accordion.accDot\"
+          \\combine
+          \\raise #1.5 \\translate #(cons 1 0) \\musicglyph #\"accordion.accDot\"
+          \\combine
+          \\raise #1.5 \\translate #(cons -1 0) \\musicglyph #\"accordion.accDot\"
+          """
+        elif txt == 2:
+            commandname += "MM"
+            command += """\\combine
+          \\raise #1.5 \\translate #(cons 0.5 0) \\musicglyph #\"accordion.accDot\"
+          \\combine
+          \\raise #1.5 \\translate #(cons -0.5 0) \\musicglyph #\"accordion.accDot\"
+          """
+        elif not txt <= 0:
+            commandname += "M"
+            command += """\\combine
+          \\raise #1.5 \\musicglyph #\"accordion.accDot\"
+          """
+    low = mxl_event.get_maybe_exist_named_child ('accordion-low')
+    if low:
+        commandname += "L"
+        command += """\\combine
+          \\raise #0.5 \musicglyph #\"accordion.accDot\"
+          """
+
+    command += "\musicglyph #\"accordion.accDiscant\""
+    command = "\\markup { \\normalsize %s }" % command
+    # Define the newly built command \accReg[H][MMM][L]
+    additional_definitions[commandname] = "%s = %s" % (commandname, command)
+    needed_additional_definitions.append (commandname)
+    return "\\%s" % commandname
+
+def musicxml_accordion_to_ly (mxl_event):
+    txt = musicxml_accordion_to_markup (mxl_event)
+    if txt:
+        ev = musicexp.MarkEvent (txt)
+        return ev
+    return
+
+
+def musicxml_rehearsal_to_ly_mark (mxl_event):
+    text = mxl_event.get_text ()
+    if not text:
+        return
+    # default is boxed rehearsal marks!
+    encl = "box"
+    if hasattr (mxl_event, 'enclosure'):
+        encl = {"none": None, "square": "box", "circle": "circle" }.get (mxl_event.enclosure, None)
+    if encl:
+        text = "\\%s { %s }" % (encl, text)
+    ev = musicexp.MarkEvent ("\\markup { %s }" % text)
+    return ev
+
+# translate directions into Events, possible values:
+#   -) string  (MarkEvent with that command)
+#   -) function (function(mxl_event) needs to return a full Event-derived object
+#   -) (class, name)  (like string, only that a different class than MarkEvent is used)
+directions_dict = {
+    'accordion-registration' : musicxml_accordion_to_ly,
+    'coda' : (musicexp.MusicGlyphMarkEvent, "coda"),
+#     'damp' : ???
+#     'damp-all' : ???
+#     'eyeglasses': ??????
+#     'harp-pedals' : 
+#     'image' : 
+#     'metronome' : 
+    'rehearsal' : musicxml_rehearsal_to_ly_mark,
+#     'scordatura' : 
+    'segno' : (musicexp.MusicGlyphMarkEvent, "segno"),
+    'words' : musicxml_words_to_lily_event,
+}
+directions_spanners = [ 'octave-shift', 'pedal', 'wedge', 'dashes', 'bracket' ]
 
 def musicxml_direction_to_lily (n):
     # TODO: Handle the <staff> element!
     res = []
+    # placement applies to all children!
+    dir = None
+    if hasattr (n, 'placement') and options.convert_directions:
+        dir = musicxml_direction_to_indicator (n.placement)
     dirtype_children = []
+    # TODO: The direction-type is used for grouping (e.g. dynamics with text), 
+    #       so we can't simply flatten them out!
     for dt in n.get_typed_children (musicxml.DirType):
         dirtype_children += dt.get_all_children ()
 
     for entry in dirtype_children:
+        # backets, dashes, octave shifts. pedal marks, hairpins etc. are spanners:
+        if entry.get_name() in directions_spanners:
+            event = musicxml_spanner_to_lily_event (entry)
+            if event:
+                res.append (event)
+            continue
+
+        # now treat all the "simple" ones, that can be translated using the dict
+        ev = None
+        tmp_tp = directions_dict.get (entry.get_name (), None)
+        if isinstance (tmp_tp, str): # string means MarkEvent
+            ev = musicexp.MarkEvent (tmp_tp)
+        elif isinstance (tmp_tp, tuple): # tuple means (EventClass, "text")
+            ev = tmp_tp[0] (tmp_tp[1])
+        elif tmp_tp:
+            ev = tmp_tp (entry)
+        if ev:
+            # TODO: set the correct direction! Unfortunately, \mark in ly does
+            #       not seem to support directions!
+            res.append (ev)
+            continue
 
         if entry.get_name () == "dynamics":
             for dynentry in entry.get_all_children ():
@@ -1011,18 +1174,6 @@ def musicxml_direction_to_lily (n):
                 if ev:
                     res.append (ev)
 
-        if entry.get_name () == "words":
-            ev = musicxml_words_to_lily_event (entry)
-            if ev:
-                res.append (ev)
-
-        # octave shifts. pedal marks, hairpins etc. are spanners:
-        if entry.get_name() in direction_spanners:
-            event = musicxml_spanner_to_lily_event (entry)
-            if event:
-                res.append (event)
-
-
     return res
 
 def musicxml_frame_to_lily_event (frame):
@@ -1071,26 +1222,34 @@ instrument_drumtype_dict = {
 def musicxml_note_to_lily_main_event (n):
     pitch  = None
     duration = None
-        
-    mxl_pitch = n.get_maybe_exist_typed_child (musicxml.Pitch)
     event = None
+
+    mxl_pitch = n.get_maybe_exist_typed_child (musicxml.Pitch)
     if mxl_pitch:
         pitch = musicxml_pitch_to_lily (mxl_pitch)
-        event = musicexp.NoteEvent()
+        event = musicexp.NoteEvent ()
         event.pitch = pitch
 
         acc = n.get_maybe_exist_named_child ('accidental')
         if acc:
             # let's not force accs everywhere. 
             event.cautionary = acc.editorial
+
+    elif n.get_maybe_exist_typed_child (musicxml.Unpitched):
+       # Unpitched elements have display-step and can also have
+       # display-octave.
+       unpitched = n.get_maybe_exist_typed_child (musicxml.Unpitched)
+       event = musicexp.NoteEvent ()
+       event.pitch = musicxml_unpitched_to_lily (unpitched)
         
     elif n.get_maybe_exist_typed_child (musicxml.Rest):
         # rests can have display-octave and display-step, which are
         # treated like an ordinary note pitch
         rest = n.get_maybe_exist_typed_child (musicxml.Rest)
-        event = musicexp.RestEvent()
+        event = musicexp.RestEvent ()
         pitch = musicxml_restdisplay_to_lily (rest)
         event.pitch = pitch
+
     elif n.instrument_name:
         event = musicexp.NoteEvent ()
         drum_type = instrument_drumtype_dict.get (n.instrument_name)
@@ -1099,11 +1258,13 @@ def musicxml_note_to_lily_main_event (n):
         else:
             n.message ("drum %s type unknown, please add to instrument_drumtype_dict" % n.instrument_name)
             event.drum_type = 'acousticsnare'
-    
-    if not event:
+
+    else:
         n.message ("cannot find suitable event")
 
-    event.duration = musicxml_duration_to_lily (n)
+    if event:
+       event.duration = musicxml_duration_to_lily (n)
+
     return event
 
 
@@ -1150,7 +1311,7 @@ class LilyPondVoiceBuilder:
         self.set_duration (duration)
         
         # Insert all pending dynamics right after the note/rest:
-        if isinstance (music, musicexp.EventChord) and self.pending_dynamics:
+        if isinstance (music, musicexp.ChordEvent) and self.pending_dynamics:
             for d in self.pending_dynamics:
                 music.append (d)
             self.pending_dynamics = []
@@ -1182,7 +1343,7 @@ class LilyPondVoiceBuilder:
         diff = moment - current_end
         
         if diff < Rational (0):
-            error_message ('Negative skip %s' % diff)
+            error_message (_ ('Negative skip %s') % diff)
             diff = Rational (0)
 
         if diff > Rational (0) and not (self.ignore_skips and moment == 0):
@@ -1203,7 +1364,7 @@ class LilyPondVoiceBuilder:
             skip.duration.factor = duration_factor
             skip.duration.dots = duration_dots
 
-            evc = musicexp.EventChord ()
+            evc = musicexp.ChordEvent ()
             evc.elements.append (skip)
             self.add_music (evc, diff)
 
@@ -1214,16 +1375,16 @@ class LilyPondVoiceBuilder:
 
         value = None
 
-        # if the position matches, find the last EventChord, do not cross a bar line!
+        # if the position matches, find the last ChordEvent, do not cross a bar line!
         at = len( self.elements ) - 1
         while (at >= 0 and
-               not isinstance (self.elements[at], musicexp.EventChord) and
+               not isinstance (self.elements[at], musicexp.ChordEvent) and
                not isinstance (self.elements[at], musicexp.BarLine)):
             at -= 1
 
         if (self.elements
             and at >= 0
-            and isinstance (self.elements[at], musicexp.EventChord)
+            and isinstance (self.elements[at], musicexp.ChordEvent)
             and self.begin_moment == starting_at):
             value = self.elements[at]
         else:
@@ -1234,7 +1395,7 @@ class LilyPondVoiceBuilder:
     def correct_negative_skip (self, goto):
         self.end_moment = goto
         self.begin_moment = goto
-        evc = musicexp.EventChord ()
+        evc = musicexp.ChordEvent ()
         self.elements.append (evc)
 
 
@@ -1245,6 +1406,12 @@ class VoiceData:
         self.lyrics_dict = {}
         self.lyrics_order = []
 
+def musicxml_step_to_lily (step):
+    if step:
+       return (ord (step) - ord ('A') + 7 - 2) % 7
+    else:
+       return None
+
 def musicxml_voice_to_lily_voice (voice):
     tuplet_events = []
     modes_found = {}
@@ -1335,7 +1502,7 @@ def musicxml_voice_to_lily_voice (voice):
             continue
 
         if not n.__class__.__name__ == 'Note':
-            error_message ('not a Note or Attributes? %s' % n)
+            error_message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
             continue
 
         rest = n.get_maybe_exist_typed_child (musicxml.Rest)
@@ -1358,13 +1525,12 @@ def musicxml_voice_to_lily_voice (voice):
             first_pitch = main_event.pitch
         ignore_lyrics = inside_slur or is_tied or is_chord
 
-        if hasattr (main_event, 'drum_type') and main_event.drum_type:
+        if main_event and hasattr (main_event, 'drum_type') and main_event.drum_type:
             modes_found['drummode'] = True
 
-
         ev_chord = voice_builder.last_event_chord (n._when)
         if not ev_chord: 
-            ev_chord = musicexp.EventChord()
+            ev_chord = musicexp.ChordEvent()
             voice_builder.add_music (ev_chord, n._duration)
 
         grace = n.get_maybe_exist_typed_child (musicxml.Grace)
@@ -1373,14 +1539,12 @@ def musicxml_voice_to_lily_voice (voice):
             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.EventChord ()
+                grace_chord = musicexp.ChordEvent ()
                 ev_chord.append_grace (grace_chord)
             if hasattr (grace, 'slash'):
                 # TODO: use grace_type = "appoggiatura" for slurred grace notes
                 if grace.slash == "yes":
                     ev_chord.grace_type = "acciaccatura"
-                elif grace.slash == "no":
-                    ev_chord.grace_type = "grace"
             # now that we have inserted the chord into the grace music, insert
             # everything into that chord instead of the ev_chord
             ev_chord = grace_chord
@@ -1416,7 +1580,7 @@ def musicxml_voice_to_lily_voice (voice):
                 if s.get_type () in ('start','stop')]
             if slurs:
                 if len (slurs) > 1:
-                    error_message ('more than 1 slur?')
+                    error_message (_ ('cannot have two simultaneous slurs'))
                 # record the slur status for the next note in the loop
                 if not grace:
                     if slurs[0].get_type () == 'start':
@@ -1446,7 +1610,14 @@ def musicxml_voice_to_lily_voice (voice):
                 if ev:
                     ev_chord.append (ev)
 
+            arpeggiate = notations.get_named_children ('non-arpeggiate')
+            for a in arpeggiate:
+                ev = musicxml_nonarpeggiate_to_lily_event (a)
+                if ev:
+                    ev_chord.append (ev)
+
             glissandos = notations.get_named_children ('glissando')
+            glissandos += notations.get_named_children ('slide')
             for a in glissandos:
                 ev = musicxml_spanner_to_lily_event (a)
                 if ev:
@@ -1468,12 +1639,6 @@ def musicxml_voice_to_lily_voice (voice):
             #         shake | wavy-line | mordent | inverted-mordent | 
             #         schleifer | tremolo | other-ornament, accidental-mark
             ornaments = notations.get_named_children ('ornaments')
-            for a in ornaments:
-                for ch in a.get_named_children ('tremolo'):
-                    ev = musicxml_tremolo_to_lily_event (ch)
-                    if ev: 
-                        ev_chord.append (ev)
-
             ornaments += notations.get_named_children ('articulations')
             ornaments += notations.get_named_children ('technical')
 
@@ -1524,7 +1689,7 @@ def musicxml_voice_to_lily_voice (voice):
             tuplet_events.append ((ev_chord, tuplet_event, frac))
 
     ## force trailing mm rests to be written out.   
-    voice_builder.add_music (musicexp.EventChord (), Rational (0))
+    voice_builder.add_music (musicexp.ChordEvent (), Rational (0))
     
     ly_voice = group_tuplets (voice_builder.elements, tuplet_events)
     ly_voice = group_repeats (ly_voice)
@@ -1543,7 +1708,7 @@ def musicxml_voice_to_lily_voice (voice):
     
     
     if len (modes_found) > 1:
-       error_message ('Too many modes found %s' % modes_found.keys ())
+       error_message (_ ('cannot simultaneously have more than one mode: %s') % modes_found.keys ())
        
     if options.relative:
         v = musicexp.RelativeMusic ()
@@ -1560,7 +1725,6 @@ def musicxml_voice_to_lily_voice (voice):
     
     return return_value
 
-
 def musicxml_id_to_lily (id):
     digits = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five',
               'Six', 'Seven', 'Eight', 'Nine', 'Ten']
@@ -1572,20 +1736,30 @@ def musicxml_id_to_lily (id):
     id = re.sub  ('[^a-zA-Z]', 'X', id)
     return id
 
-
 def musicxml_pitch_to_lily (mxl_pitch):
-    p = musicexp.Pitch()
+    p = musicexp.Pitch ()
     p.alteration = mxl_pitch.get_alteration ()
-    p.step = (ord (mxl_pitch.get_step ()) - ord ('A') + 7 - 2) % 7
+    p.step = musicxml_step_to_lily (mxl_pitch.get_step ())
     p.octave = mxl_pitch.get_octave () - 4
     return p
 
+def musicxml_unpitched_to_lily (mxl_unpitched):
+    p = None
+    step = mxl_unpitched.get_step ()
+    if step:
+       p = musicexp.Pitch ()
+       p.step = musicxml_step_to_lily (step)
+    octave = mxl_unpitched.get_octave ()
+    if octave and p:
+       p.octave = octave - 4
+    return p
+
 def musicxml_restdisplay_to_lily (mxl_rest):
     p = None
     step = mxl_rest.get_step ()
     if step:
-        p = musicexp.Pitch()
-        p.step = (ord (step) - ord ('A') + 7 - 2) % 7
+        p = musicexp.Pitch ()
+        p.step = musicxml_step_to_lily (step)
     octave = mxl_rest.get_octave ()
     if octave and p:
         p.octave = octave - 4
@@ -1614,7 +1788,7 @@ def get_all_voices (parts):
 
         part_ly_voices = {}
         for n, v in name_voice.items ():
-            progress ("Converting to LilyPond expressions...")
+            progress (_ ("Converting to LilyPond expressions..."))
             # musicxml_voice_to_lily_voice returns (lily_voice, {nr->lyrics, nr->lyrics})
             part_ly_voices[n] = musicxml_voice_to_lily_voice (v)
 
@@ -1625,30 +1799,30 @@ def get_all_voices (parts):
 
 
 def option_parser ():
-    p = ly.get_option_parser(usage=_ ("musicxml2ly [options] FILE.xml"),
-                             version=('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
+    p = ly.get_option_parser (usage = _ ("musicxml2ly [options] FILE.xml"),
+                             version = ('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
                                       +
 _ ("""This program is free software.  It is covered by the GNU General Public
 License and you are welcome to change it and/or distribute copies of it
 under certain conditions.  Invoke as `%s --warranty' for more
 information.""") % 'lilypond'
 + """
-Copyright (c) 2005--2007 by
+Copyright (c) 2005--2008 by
     Han-Wen Nienhuys <hanwen@xs4all.nl>,
     Jan Nieuwenhuizen <janneke@gnu.org> and
     Reinhold Kainhofer <reinhold@kainhofer.com>
 """),
-                             description=_ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n")
+                             description = _ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n")
     p.add_option ('-v', '--verbose',
-                  action="store_true",
-                  dest='verbose',
-                  help=_ ("be verbose"))
+                  action = "store_true",
+                  dest = 'verbose',
+                  help = _ ("be verbose"))
 
     p.add_option ('', '--lxml',
-                  action="store_true",
-                  default=False,
-                  dest="use_lxml",
-                  help=_ ("Use lxml.etree; uses less memory and cpu time."))
+                  action = "store_true",
+                  default = False,
+                  dest = "use_lxml",
+                  help = _ ("Use lxml.etree; uses less memory and cpu time."))
 
     p.add_option ('-z', '--compressed',
                   action = "store_true",
@@ -1658,28 +1832,35 @@ Copyright (c) 2005--2007 by
 
     p.add_option ('-r', '--relative',
                   action = "store_true",
+                  default = True,
                   dest = "relative",
-                  help = _ ("Convert pitches in relative mode."))
+                  help = _ ("Convert pitches in relative mode. (Default)"))
+
+    p.add_option ('-a', '--absolute',
+                  action = "store_false",
+                  dest = "relative",
+                  help = _ ("Convert pitches in absolute mode."))
 
     p.add_option ('-l', '--language',
+                  metavar = _ ("LANG"),
                   action = "store",
-                  help = _ ("Use a different language file, e.g. 'deutsch' for deutsch.ly."))
+                  help = _ ("Use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly."))
 
-    p.add_option ('--no-articulation-directions', '--nd',
+    p.add_option ('--nd', '--no-articulation-directions', 
                   action = "store_false",
                   default = True,
                   dest = "convert_directions",
-                  help = _ ("Do not convert directions (^, _ or -) for articulations."))
+                  help = _ ("Do not convert directions (^, _ or -) for articulations, dynamics, etc."))
 
     p.add_option ('-o', '--output',
-                  metavar=_ ("FILE"),
-                  action="store",
-                  default=None,
-                  type='string',
-                  dest='output_name',
-                  help=_ ("set output filename to FILE"))
-    p.add_option_group ('bugs',
-                        description=(_ ("Report bugs via")
+                  metavar = _ ("FILE"),
+                  action = "store",
+                  default = None,
+                  type = 'string',
+                  dest = 'output_name',
+                  help = _ ("set output filename to FILE"))
+    p.add_option_group ( _ ('Bugs'),
+                        description = ( _ ("Report bugs via")
                                      + ''' http://post.gmane.org/post.php'''
                                      '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
     return p
@@ -1735,7 +1916,7 @@ def update_score_setup (score_structure, part_list, voices):
         part_id = part_definition.id
         nv_dict = voices.get (part_id)
         if not nv_dict:
-            error_message ('unknown part in part-list: %s' % part_id)
+            error_message (_ ('unknown part in part-list: %s') % part_id)
             continue
 
         staves = reduce (lambda x,y: x+ y,
@@ -1769,6 +1950,7 @@ def print_ly_additional_definitions (printer, filename):
         printer.newline ()
     for a in set(needed_additional_definitions):
         printer.print_verbatim (additional_definitions.get (a, ''))
+        printer.newline ()
     printer.newline ()
 
 # Read in the tree from the given I/O object (either file or string) and 
@@ -1790,7 +1972,7 @@ def read_xml (io_object, use_lxml):
 def read_musicxml (filename, compressed, use_lxml):
     raw_string = None
     if compressed:
-        progress ("Input file %s is compressed, extracting raw MusicXML data" % filename)
+        progress (_ ("Input file %s is compressed, extracting raw MusicXML data") % filename)
         z = zipfile.ZipFile (filename, "r")
         container_xml = z.read ("META-INF/container.xml")
         if not container_xml:
@@ -1816,7 +1998,7 @@ def read_musicxml (filename, compressed, use_lxml):
 
 
 def convert (filename, options):
-    progress ("Reading MusicXML from %s ..." % filename)
+    progress (_ ("Reading MusicXML from %s ...") % filename)
     
     tree = read_musicxml (filename, options.compressed, options.use_lxml)
     parts = tree.get_typed_children (musicxml.Part)
@@ -1844,7 +2026,7 @@ def convert (filename, options):
     driver_ly_name = options.output_name + '.ly'
 
     printer = musicexp.Output_printer()
-    progress ("Output to `%s'" % defs_ly_name)
+    progress (_ ("Output to `%s'") % defs_ly_name)
     printer.set_file (codecs.open (defs_ly_name, 'wb', encoding='utf-8'))
 
     print_ly_preamble (printer, filename)
@@ -1858,7 +2040,7 @@ def convert (filename, options):
     printer.close ()
     
     
-    progress ("Output to `%s'" % driver_ly_name)
+    progress (_ ("Output to `%s'") % driver_ly_name)
     printer = musicexp.Output_printer()
     printer.set_file (codecs.open (driver_ly_name, 'wb', encoding='utf-8'))
     print_ly_preamble (printer, filename)
@@ -1901,7 +2083,7 @@ def main ():
     if filename and 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") % args[0])
 
 if __name__ == '__main__':
     main()
index 71cd6f1bda8d7b47c13e7ca36f61d23f3c2b4aa7..64bdecf6775fcc8df561ad3313ac573251aa677f 100644 (file)
@@ -16,12 +16,12 @@ $(outdir)/%.tfm $(outdir)/%.log: %.mf
 # ugh . mf2pt1 is extremely broken, it pollutes CWD iso. creating a
 # temp dir.
 $(outdir)/%.pfb: %.mf $(outdir)/mf2pt1.mem
-       TMP=`mktemp -d $(outdir)/pfbtemp.XXXXXXXXX` \
-               ( cd $$TMP ; \
-               ln -s ../mf2pt1.mem . ; \
-               MFINPUTS=../..:../:: $(PERL) ../../$(buildscript-dir)/mf2pt1.pl $(MF2PT1_OPTIONS) $< ) ; \
-               mv $$TMP/*pfb $(outdir) ; \
-               rm -rf $$TMP
+       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) $< ) \
+       && mv $$TMP/*pfb $(outdir); \
+       rm -rf $$TMP
 
-$(outdir)/mf2pt1.mem:
-       cd $(outdir) && mpost -progname=mpost -ini ../mf2pt1 \\dump
+$(outdir)/mf2pt1.mem: mf2pt1.mp
+       cd $(outdir) && mpost -progname=mpost -ini $(top-src-dir)/mf/mf2pt1.mp \\dump
index 48a6f7e9000599800be7eb2b6d78a715b88722a8..c37356207988e2de87157ad08f13d22a70e23872 100644 (file)
@@ -3,7 +3,7 @@
 
 $(outdir)/%.info: $(outdir)/%.texi
 # makeinfo MUST have PNGs in cwd for info images to work
-       cd $(outdir) && $(MAKEINFO) -I$(srcdir) --output=$(@F) $(<F)
+       $(MAKEINFO) -I$(outdir) --output=$@ $<
 
 $(outdir)/%-big-page.html: $(outdir)/%.texi
        $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
@@ -20,9 +20,9 @@ $(outdir)/%.pdf.omf: %.texi
 $(outdir)/%.ps.gz.omf: %.texi
        $(call GENERATE_OMF,ps.gz)
 
-# Generic rule not possible?
-$(outdir)/%/%.html: $(outdir)/%.texi
-       $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+$(outdir)/%/index.html: $(outdir)/%.texi
+       mkdir -p $(dir $@)
+       $(MAKEINFO) -I $(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
 
 $(outdir)/%.pdf: $(outdir)/%.texi
        cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) --batch $(TEXINFO_PAPERSIZE_OPTION) $(<F)
index 534e591ae42a844baecd28e7e1131b038a0b57a2..d36ff83b81db972664de69f49987e9341cab6a6c 100644 (file)
@@ -18,7 +18,7 @@ MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
 # info stuff
 INFO_INSTALL_FILES = $(wildcard $(addsuffix *, $(INFO_FILES)))
 INFO_INSTALL_COMMAND =$(if $(INFO_INSTALL_FILES),\
-       $(INSTALLPY) -d $(DESTDIR)$(package_infodir) ; \
-       $(MAKE) INSTALLATION_OUT_DIR=$(package_infodir) \
+       $(INSTALLPY) -d $(DESTDIR)$(infodir) ; \
+       $(MAKE) INSTALLATION_OUT_DIR=$(infodir) \
                depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_INSTALL_FILES)" \
                -f $(stepdir)/install-out.sub.make,true)
index 69e08c6ef7910ead923e72401f0d598f03e0028d..8878b31ec137e14b3a5711f9177c0e111991a917 100644 (file)
@@ -66,8 +66,10 @@ local-help:
   .             to=0.1.74.jcn2\n\
   dist        roll tarball: $(depth)/$(outdir)/$(distname).tar.gz\n\
   distclean   also remove configure output\n\
-  doc         update all documentation\n\
+  doc         update all documentation (without images)\n\
   cvs-clean   also remove out directories and generated files\n\
+  info        update info docs (without images)\n\
+  info out=www  update info docs with images\n\
   maintainerclean also remove distributed generated files\n\
   po          make new translation Portable Object database\n\
   po-replace  do po-update and replace catalogs with msgmerged versions\n\