]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 6 Oct 2007 20:54:04 +0000 (17:54 -0300)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 6 Oct 2007 20:54:04 +0000 (17:54 -0300)
39 files changed:
Documentation/topdocs/AUTHORS.texi
THANKS
input/regression/musicxml/00a-Pitches-Finale.xml [new file with mode: 0644]
input/regression/musicxml/00b-Durations-Finale.xml [new file with mode: 0644]
input/regression/musicxml/00c-Tie-PJB.xml [new file with mode: 0644]
input/regression/musicxml/01-Chord-Rosegarden.xml [deleted file]
input/regression/musicxml/01a-Chord-Rosegarden.xml [new file with mode: 0644]
input/regression/musicxml/02b-Articulations-Rosegarden.xml [deleted file]
input/regression/musicxml/02f-Articulations-MusicXML.xml [new file with mode: 0644]
input/regression/musicxml/02g-ArticulationsNoAttributes-MusicXML.xml [new file with mode: 0644]
input/regression/musicxml/04b-Spanners-Rosegarden.xml [deleted file]
input/regression/musicxml/04e-OctaveShifts-Finale.xml [new file with mode: 0644]
input/regression/musicxml/05b-Header-Information-Rosegarden.xml [deleted file]
input/regression/musicxml/07c-NoTime-PJB.xml [new file with mode: 0644]
input/regression/musicxml/07d-Midmeasure-Clef-Finale.xml [new file with mode: 0644]
input/regression/musicxml/08a-Partorder-Rosegarden.xml
input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml [new file with mode: 0644]
input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml [new file with mode: 0644]
input/regression/musicxml/08f-PianoStaff-PJB.xml [new file with mode: 0644]
input/regression/musicxml/09b-Barlines-Finale.xml [new file with mode: 0644]
input/regression/musicxml/11a-RestDurations-Finale.xml [new file with mode: 0644]
input/regression/musicxml/11b-PitchedRests-PJB.xml [new file with mode: 0644]
input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml [new file with mode: 0644]
input/regression/musicxml/12b-Tuplets-Finale.xml [new file with mode: 0644]
input/regression/musicxml/13a-GraceNotes-Finale.xml [new file with mode: 0644]
input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml [new file with mode: 0644]
input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml [new file with mode: 0644]
input/regression/musicxml/14b-DifferentKeys-PJB.xml [new file with mode: 0644]
input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml [new file with mode: 0644]
input/regression/musicxml/15a-Percussion-Finale.xml [new file with mode: 0644]
lily/axis-group-interface.cc
ly/engraver-init.ly
mf/README
po/fr.po
po/lilypond.pot
python/musicexp.py
python/musicxml.py
scm/define-markup-commands.scm
scripts/musicxml2ly.py

index c2c816327a9d8eb3f698dc95688a7c988dfefef5..626f0664a1ac1da44e8d9fb065d3f39ea88d6ceb 100644 (file)
@@ -29,18 +29,23 @@ al-niente hairpins.
    
 @item @email{benkop@@freestart.hu,Pal Benko},
     Ancient notation.
+@item @email{jch@@pps.jussieu.fr, Juliusz Chroboczek},
+    Type42 code.
 @item @email{david.feuer@@gmail.com, David Feuer},
     PS output code refactoring.
 @item @email{bernard@@fong-hurley.org.uk, Bernard Hurley},
     X11 color.
-@item @email{jiba@@tuxfamily.org, Jean-Baptiste Lamy},
-    Tablature support.
 @item @email{chris@@fluffhouse.org.uk, Chris Jackson},
     Piano pedals, directed arpeggios.
 @item @email{heikki.junes@@hut.fi, Heikki Junes},
     Fine tuning for quarter tones in midi output.
+@item @email{reinhold@@kainhofer.com, Reinhold Kainhofer},
+    @uref{http://reinhold.kainhofer.com},
+    Musicxml2ly development
 @item @email{m.krause@@tu-harburg.de, Michael Krause},
     Breathing signs.
+@item @email{jiba@@tuxfamily.org, Jean-Baptiste Lamy},
+    Tablature support.
 @item @email{wl@@gnu.org, Werner Lemberg},
     @TeX{} glue code.
 @item @email{joe@@neeman.com, Joe Neeman}, 
@@ -55,15 +60,13 @@ al-niente hairpins.
 @item @uref{http://www.ipd.uka.de/~reuter, Jürgen Reuter},
     Ancient notation  support (mensural notation,
     Gregorian chant notation), ambitus, clusters.
-@item @email{nicolas.sceaux@@free.fr,Nicolas Sceaux},
+@item @email{nicolas.sceaux@@free.fr, Nicolas Sceaux},
     Scheme macros, \markup syntax.
 @item @email{carldsorensen@@comcast.net, Carl Sorensen},
     Fret diagrams.    
 @item @email{rune@@zedeler.dk, Rune Zedeler},
     Auto-accidental code, zigzag glissandi, rest bugfixes, minimum
     fret, @code{subdivideBeams}.
-@item @email{jch@@pps.jussieu.fr,Juliusz Chroboczek},
-    Type42 code.
 @end itemize
 
 Font
diff --git a/THANKS b/THANKS
index ecea2fef897b03944fa789c3ce23fc6c89dcbdea..d5e9671c43e701822dd50486e2d9fa6f951671fc 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -19,7 +19,7 @@ CONTRIBUTORS
 Rune Zedeler
 Maximilian Albert
 Milan Zamazal
-
+Reinhold Kainhofer - musicxml2ly development
 
 TRANSLATORS
 
diff --git a/input/regression/musicxml/00a-Pitches-Finale.xml b/input/regression/musicxml/00a-Pitches-Finale.xml
new file mode 100644 (file)
index 0000000..e279025
--- /dev/null
@@ -0,0 +1,1567 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Finale pitch test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-14</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Acoustic Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="24">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="25">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="26">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="27">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="28">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="29">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="30">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="31">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>2</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>double-sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-2</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat-flat</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="32">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental editorial="yes">sharp</accidental>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="33">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="34">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/00b-Durations-Finale.xml b/input/regression/musicxml/00b-Durations-Finale.xml
new file mode 100644 (file)
index 0000000..b4d0a5c
--- /dev/null
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Finale note duration unit test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-14</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>128</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations>
+          <tied type="start"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>128</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations>
+          <tied type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">continue</beam>
+        <beam number="4">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">continue</beam>
+        <beam number="4">continue</beam>
+        <beam number="5">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <stem>down</stem>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <beam number="3">end</beam>
+        <beam number="4">end</beam>
+        <beam number="5">end</beam>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>96</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>48</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>24</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">continue</beam>
+        <beam number="4">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">continue</beam>
+        <beam number="4">continue</beam>
+        <beam number="5">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+        <stem>down</stem>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <beam number="3">end</beam>
+        <beam number="4">end</beam>
+        <beam number="5">end</beam>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/00c-Tie-PJB.xml b/input/regression/musicxml/00c-Tie-PJB.xml
new file mode 100644 (file)
index 0000000..2d18a8f
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-02-02</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>1</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <tie type="start"/>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                               <notations><tied type="start"/></notations>
+                       </note>
+               </measure>
+               <measure number="2">
+                       <note release="-684">
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <tie type="stop"/>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                               <notations><tied type="stop"/></notations>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/01-Chord-Rosegarden.xml b/input/regression/musicxml/01-Chord-Rosegarden.xml
deleted file mode 100644 (file)
index 5407004..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/01_chord.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="0">
-                       <part-name>Chord 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>
-               </score-part>
-       </part-list>
-       <part id="0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01a-Chord-Rosegarden.xml b/input/regression/musicxml/01a-Chord-Rosegarden.xml
new file mode 100644 (file)
index 0000000..5407004
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <work> <work-title>/home/reinhold/lilypond-dev-files/01_chord.xml</work-title></work> 
+       <identification> 
+               <rights>Unknown</rights>
+               <encoding>
+                       <software>Rosegarden-4</software>
+               </encoding>
+       </identification> 
+       <part-list>
+               <score-part id="0">
+                       <part-name>Chord 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>
+               </score-part>
+       </part-list>
+       <part id="0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/02b-Articulations-Rosegarden.xml b/input/regression/musicxml/02b-Articulations-Rosegarden.xml
deleted file mode 100644 (file)
index 4fb2c6c..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/MusicXML/Unprocessd/Articulations/25_Articulations_Rosegarden.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="63">
-                       <part-name>Articulations Test</part-name>
-               </score-part>
-       </part-list>
-       <part id="63">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>6</beats>
-                               <beat-type>8</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="4">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02f-Articulations-MusicXML.xml b/input/regression/musicxml/02f-Articulations-MusicXML.xml
new file mode 100644 (file)
index 0000000..1ae5833
--- /dev/null
@@ -0,0 +1,761 @@
+<?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/>
+                </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
new file mode 100644 (file)
index 0000000..0ff1989
--- /dev/null
@@ -0,0 +1,765 @@
+<?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/04b-Spanners-Rosegarden.xml b/input/regression/musicxml/04b-Spanners-Rosegarden.xml
deleted file mode 100644 (file)
index 9b88046..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/MusicXML/Unprocessd/Articulations/26_Spanners_Rosegarden.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="63">
-                       <part-name>Spanner 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>
-               </score-part>
-       </part-list>
-       <part id="63">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>6</beats>
-                               <beat-type>8</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>6</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>6</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>6</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>3</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>3</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>3</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>2</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>2</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>2</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="4">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="5">
-                       <note>
-                               <tie type="start"/>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <notations>
-                                       <tied type="start"/>
-                               </notations>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <tie type="stop"/>
-                               <tie type="start"/>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <notations>
-                                       <tied type="stop"/>
-                                       <tied type="start"/>
-                               </notations>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <tie type="stop"/>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <notations>
-                                       <tied type="stop"/>
-                               </notations>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="6">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-
-               <measure number="7">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/04e-OctaveShifts-Finale.xml b/input/regression/musicxml/04e-OctaveShifts-Finale.xml
new file mode 100644 (file)
index 0000000..3e93c60
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Octave shift test case</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-14</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift default-y="16" size="15" type="down"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="stop"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift default-y="-97" size="15" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+        <beam number="1">begin</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="stop"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift default-y="62" size="8" type="down"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <beam number="1">begin</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="stop"/>
+        </direction-type>
+        <offset>-3</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift default-y="-89" size="8" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>down</stem>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>down</stem>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="stop"/>
+        </direction-type>
+        <offset>-2</offset>
+      </direction>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/05b-Header-Information-Rosegarden.xml b/input/regression/musicxml/05b-Header-Information-Rosegarden.xml
deleted file mode 100644 (file)
index c7ee370..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/11_header_information.xml</work-title></work> 
-       <identification> 
-               <rights>Mein Schatz!</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="0">
-                       <part-name></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>
-               </score-part>
-       </part-list>
-       <part id="0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-
-               <measure number="2">
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/07c-NoTime-PJB.xml b/input/regression/musicxml/07c-NoTime-PJB.xml
new file mode 100644 (file)
index 0000000..0b274f7
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-01-22</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MIDI Track 1</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/07d-Midmeasure-Clef-Finale.xml b/input/regression/musicxml/07d-Midmeasure-Clef-Finale.xml
new file mode 100644 (file)
index 0000000..efe20ca
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Mid-measure clef-change</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-22</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <barline location="right">
+        <bar-style>none</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure implicit="yes" number="X1">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
index 2e1e763fc882d8a9007e5e10d16584211cce26d0..295c969bc6e46009e5a10215cdcd9f13ea6c07b0 100644 (file)
@@ -1,7 +1,7 @@
 <?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/02_partorder.xml</work-title></work> 
+       <work> <work-title>Part order test</work-title></work> 
        <identification> 
                <rights>Unknown</rights>
                <encoding>
diff --git a/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml b/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml
new file mode 100644 (file)
index 0000000..f919e2c
--- /dev/null
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Part test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-18</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>line</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P2">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P2-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P2-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+    <part-group number="2" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P3">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P3-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P3-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+    <score-part id="P4">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P4-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P4-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+    <part-group number="2" type="stop"/>
+    <part-group number="1" type="stop"/>
+    <score-part id="P5">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P5-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P5-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml b/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml
new file mode 100644 (file)
index 0000000..1b1948f
--- /dev/null
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Score with multi-line instrument names</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-23</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Long&#xd;
+Staff&#xd;
+Name</part-name>
+      <part-abbreviation>St.&#xd;
+Nm.</part-abbreviation>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/08f-PianoStaff-PJB.xml b/input/regression/musicxml/08f-PianoStaff-PJB.xml
new file mode 100644 (file)
index 0000000..ad4023a
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-01-22</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MIDI Track 1</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/09b-Barlines-Finale.xml b/input/regression/musicxml/09b-Barlines-Finale.xml
new file mode 100644 (file)
index 0000000..e3d1a92
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Barline test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-21</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <print new-system="yes"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>dashed</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>dotted</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>none</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <print new-system="yes"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <print new-system="yes"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11a-RestDurations-Finale.xml b/input/regression/musicxml/11a-RestDurations-Finale.xml
new file mode 100644 (file)
index 0000000..65d09ab
--- /dev/null
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Rest unit test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-14</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>64th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>96</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <print new-system="yes"/>
+      <note>
+        <rest/>
+        <duration>48</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>24</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11b-PitchedRests-PJB.xml b/input/regression/musicxml/11b-PitchedRests-PJB.xml
new file mode 100644 (file)
index 0000000..1142b4a
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-02-02</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>5</beats><beat-type>4</beat-type></time>
+                               <staves>1</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>E</display-step><display-octave>4</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>F</display-step><display-octave>5</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>A</display-step><display-octave>3</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>C</display-step><display-octave>6</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml b/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml
new file mode 100644 (file)
index 0000000..0e25560
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-02-02</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>G</step><octave>4</octave></pitch>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>4</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>4</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>5</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>A</step><octave>2</octave></pitch>
+                               <duration>48</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <staff>2</staff>
+                               <beam number="1">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>48</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <staff>2</staff>
+                               <beam number="1">end</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>D</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>E</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">end</beam>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>2</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>3</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>D</step><octave>3</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">end</beam>
+                       </note>
+
+                       <note>
+                               <pitch><step>E</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>F</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>G</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>4</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">end</beam>
+                       </note>
+
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/12b-Tuplets-Finale.xml b/input/regression/musicxml/12b-Tuplets-Finale.xml
new file mode 100644 (file)
index 0000000..e1d54e0
--- /dev/null
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Finale tuplet test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-14</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>84</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>30</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet bracket="no" number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <stem>down</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <stem>up</stem>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/13a-GraceNotes-Finale.xml b/input/regression/musicxml/13a-GraceNotes-Finale.xml
new file mode 100644 (file)
index 0000000..afb34cb
--- /dev/null
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Grace note test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-16</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>4</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+        <notations>
+          <tied type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml b/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml
new file mode 100644 (file)
index 0000000..8efa525
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Chord as a grace note</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-16</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <chord/>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <chord/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml b/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml
new file mode 100644 (file)
index 0000000..7c040fc
--- /dev/null
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Piano staff with dynamics and one-staff clef changes</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-18</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Piano</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <direction placement="below">
+        <direction-type>
+          <dynamics default-y="-62" relative-x="-6">
+            <ffff/>
+          </dynamics>
+        </direction-type>
+        <staff>1</staff>
+        <sound dynamics="141"/>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>1</staff>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <dynamics default-y="-61">
+            <p/>
+          </dynamics>
+        </direction-type>
+        <offset>1</offset>
+        <staff>1</staff>
+        <sound dynamics="54"/>
+      </direction>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <direction placement="below">
+        <direction-type>
+          <dynamics default-y="-62" relative-x="-6">
+            <ffff/>
+          </dynamics>
+        </direction-type>
+        <staff>2</staff>
+        <sound dynamics="141"/>
+      </direction>
+      <direction placement="below">
+        <direction-type>
+          <wedge default-y="-58" spread="0" type="crescendo"/>
+        </direction-type>
+        <offset>1</offset>
+        <staff>2</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <direction>
+        <direction-type>
+          <wedge spread="15" type="stop"/>
+        </direction-type>
+        <offset>3</offset>
+        <staff>2</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <clef number="2">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <attributes>
+        <clef number="1">
+          <sign>C</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>2</voice>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/14b-DifferentKeys-PJB.xml b/input/regression/musicxml/14b-DifferentKeys-PJB.xml
new file mode 100644 (file)
index 0000000..e863e84
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-01-22</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MIDI Track 1</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key number="1"><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <attributes>
+                               <key number="2"><fifths>2</fifths></key>
+                       </attributes>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml b/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml
new file mode 100644 (file)
index 0000000..72abf7b
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-01-22</encoding-date>
+               </encoding>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MIDI Track 1</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key number="1"><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <attributes>
+                               <key number="2"><fifths>2</fifths></key>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/15a-Percussion-Finale.xml b/input/regression/musicxml/15a-Percussion-Finale.xml
new file mode 100644 (file)
index 0000000..6cd3b4d
--- /dev/null
@@ -0,0 +1,374 @@
+<?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>Percussion Test</movement-title>
+  <identification>
+    <creator type="composer">Reinhold Kainhofer</creator>
+    <rights>Public Domain</rights>
+    <encoding>
+      <software>Finale 2007 for Windows</software>
+      <software>Dolet Light for Finale 2007</software>
+      <encoding-date>2007-09-23</encoding-date>
+    </encoding>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Timpani</part-name>
+      <part-abbreviation>Timp.</part-abbreviation>
+      <score-instrument id="P1-I1">
+        <instrument-name>Finger Cymbals</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P2">
+      <part-name>Cymbals</part-name>
+      <part-abbreviation>Cym.</part-abbreviation>
+      <score-instrument id="P2-M76">
+        <instrument-name>MIDI77</instrument-name>
+      </score-instrument>
+      <score-instrument id="P2-M74">
+        <instrument-name>MIDI75</instrument-name>
+      </score-instrument>
+      <score-instrument id="P2-X1">
+        <instrument-name>Cymbal Smash</instrument-name>
+      </score-instrument>
+      <score-instrument id="P2-M71">
+        <instrument-name>MIDI72</instrument-name>
+      </score-instrument>
+      <score-instrument id="P2-M69">
+        <instrument-name>MIDI70</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P2-M76">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>77</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P2-M74">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>75</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P2-X1">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>45</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P2-M71">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>72</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P2-M69">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>70</midi-unpitched>
+      </midi-instrument>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Bass Drums</part-name>
+      <part-abbreviation>B. Dr.</part-abbreviation>
+      <score-instrument id="P3-M64">
+        <instrument-name>MIDI65</instrument-name>
+      </score-instrument>
+      <score-instrument id="P3-M65">
+        <instrument-name>MIDI66</instrument-name>
+      </score-instrument>
+      <score-instrument id="P3-X1">
+        <instrument-name>BD 5</instrument-name>
+      </score-instrument>
+      <score-instrument id="P3-M67">
+        <instrument-name>MIDI68</instrument-name>
+      </score-instrument>
+      <score-instrument id="P3-X8">
+        <instrument-name>BD 1</instrument-name>
+      </score-instrument>
+      <score-instrument id="P3-M77">
+        <instrument-name>MIDI78</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P3-M64">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>65</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P3-M65">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>66</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P3-X1">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>37</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P3-M67">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>68</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P3-X8">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>44</midi-unpitched>
+      </midi-instrument>
+      <midi-instrument id="P3-M77">
+        <midi-channel>10</midi-channel>
+        <midi-program>1</midi-program>
+        <midi-unpitched>78</midi-unpitched>
+      </midi-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations>
+          <tied type="start"/>
+          <ornaments/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations>
+          <tied type="stop"/>
+          <ornaments/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <instruments>6</instruments>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>3</duration>
+        <instrument id="P2-M76"/>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <stem>down</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P2-M76"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <unpitched>
+          <display-step>D</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P2-M74"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>C</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P2-X1"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <notehead>x</notehead>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>B</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P2-M71"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>A</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P2-M69"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <instruments>7</instruments>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <sound tempo="120"/>
+      <note>
+        <unpitched>
+          <display-step>F</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>3</duration>
+        <instrument id="P3-M65"/>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <stem>up</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>F</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P3-X1"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P3-M64"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>G</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P3-M67"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>F</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P3-M77"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>G</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P3-X8"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
index b589ff671ec52d8e34db78f10ce5196b1fc1866a..05536316bbd91e7712067a0c28dbcabe6773105e 100644 (file)
@@ -263,13 +263,6 @@ Axis_group_interface::calc_skylines (SCM smob)
   extract_grob_set (me, "elements", elts);
   Skyline_pair skylines = skyline_spacing (me, elts);
 
-  /* add a minimum-Y-extent-sized box to the skyline */
-  SCM min_y_extent = me->get_property ("minimum-Y-extent");
-  if (is_number_pair (min_y_extent))
-    {
-      Box b (me->extent (me, X_AXIS), ly_scm2interval (min_y_extent));
-      skylines.insert (b, 0, X_AXIS);
-    }
   return skylines.smobbed_copy ();
 }
 
index 58ce25960a62fdd48dbadc1038befe634f3f0b2f..4a09d7c60954c8ba874ef4fe8d511dd436d5c0d7 100644 (file)
@@ -60,6 +60,7 @@
   localKeySignature = #'()
   createSpacing = ##t
   ignoreFiguredBassRest = ##t 
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
   
   %% explicitly set instrument, so we don't get 
   %% weird effects when doing instrument names for
@@ -303,7 +304,6 @@ contained staves are connected vertically."
 distance between the staves, so cross staff beaming and slurring
 can be used."
 
-  \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
   \consists "Instrument_name_engraver"
   
   instrumentName = #'()
index 89eef4ee22bb5c80ce5a6dec0e90c58cb83bed03..2f297705002ae48ef4f7772ec2dca03a925bca9f 100644 (file)
--- a/mf/README
+++ b/mf/README
@@ -77,6 +77,37 @@ Some design rules:
 . Use rounded corners.
 
 
+Hints for stem attachment:
+
+. Stem attachment of glyphs is controlled by two special variables called
+  `charwx' and `charwy'.  Stems can be regarded as (very oblonged)
+  rectangles with slightly rounded corners.  For stems pointing upwards the
+  lower right corner of this rectangle is attached to the glyph at position
+  (charwx, charwy).  For stems pointing downwards it works analogously but
+  with the upper left corner, where the position of the attachment point is
+  additionally reflected horizontally about the center of the glyph -- this
+  ensures that in most cases charwx and charwy can be set to the same values
+  for up and down stems even though these are attached at the right/left end
+  of the note, respectively.  To make this more precise, the upper left
+  corner of a down stem is attached at position (charwd/2 - charwx, charwy),
+  where `charwd' is an internal metafont variable representing the glyph
+  width as specified by the `set_char_box' command.
+
+. In case different stem attachments for upward and downward pointing stems
+  are needed, two separate glyphs must be defined in the Metafont file; of
+  course, this also applies if two entirely different shapes are needed. 
+  These have the same name but are prefixed by `u' and `d', respectively
+  (for `up' and `down', obviously).  In each of these glyphs the variables
+  charwx and charwy must be set accordingly.  If, on the other hand, the
+  attachment point is the `same' for both directions (with the
+  abovementioned horizontal reflection taken into account), then the prefix
+  `s' (for `symmetric') should be used.  See the existing files for
+  examples.  The numbers in the glyph names refer to the duration of the
+  note; e.g., `s0cross' in feta-bolletjes.mf defines the notehead for a
+  whole cross-shaped note (similarly, `s1cross' and `s2cross' are for half
+  and quarter notes, respectively).
+
+
 Finally, some rules to assure that rasterization at low resolutions gives
 good results.  Today, this is a minor issue, but in some cases it might show
 design flaws.
index 57a037e25f546b885969fb819d2c59ad5094f41b..d398da5778e1d35bffa229141b5ba0abba34c245 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,14 +1,14 @@
 # French translation of GNU/lilypond - http//lilypond.org
 # Copyright © 2004 Free Software Foundation, Inc.
-# Jean-Charles Malahieude <lolyfan@wanadoo.fr>, 2007
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-2007.
+# Jean-Charles Malahieude <lolyfan@wanadoo.fr>, 2007
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 2.11.22\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
 "POT-Creation-Date: 2007-04-28 12:03+0200\n"
-"PO-Revision-Date: 2007-09-16 14:22+0200\n"
+"PO-Revision-Date: 2007-10-02 21:50+0200\n"
 "Last-Translator: Jean-Charles Malahieude <lolyfan@wanadoo.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "MIME-Version: 1.0\n"
@@ -24,7 +24,7 @@ msgstr "Pas assez d'intelligence pour convertir %s"
 #: convertrules.py:13
 msgid "Please refer to the manual for details, and update manually."
 msgstr ""
-"SVP référe-vous au manuel pour plus de détails,\n"
+"Consultez le manuel pour plus de détails,\n"
 "et faites la mise à jour manuellement."
 
 #: convertrules.py:14
@@ -34,7 +34,7 @@ msgstr "%s a été remplacé par %s"
 
 #: convertrules.py:2408
 msgid "LilyPond source must be UTF-8"
-msgstr "Le fichier source LilyPond doit être encodé en UTF-8."
+msgstr "Le fichier source LilyPond doit être codé en UTF-8."
 
 #: convertrules.py:2411
 msgid "Try the texstrings backend"
@@ -47,7 +47,7 @@ msgstr "Faites quelque chose comme : %s"
 
 #: convertrules.py:2417
 msgid "Or save as UTF-8 in your editor"
-msgstr "Ou sauvegarder en format UTF-8 à l'aide de votre éditeur."
+msgstr "Ou sauvegarder en format UTF-8 à l'aide de votre éditeur"
 
 #: fontextract.py:26
 #, python-format
@@ -126,12 +126,12 @@ msgstr "Exemples :"
 #: convert-ly.py:47 lilypond-book.py:83 warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
-msgstr "AVERTISSEMENT : %s"
+msgstr "Avertissement : %s"
 
 #: convert-ly.py:50 lilypond-book.py:86 warn.cc:54 input.cc:96 input.cc:104
 #, c-format, python-format
 msgid "error: %s"
-msgstr "ERREUR : %s"
+msgstr "Erreur : %s"
 
 #: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:87
 msgid "Distributed under terms of the GNU General Public License."
@@ -175,7 +175,7 @@ msgstr "Erreur lors de la conversion"
 
 #: convert-ly.py:159
 msgid "Stopping at last succesful rule"
-msgstr "Arrêt après la dernière règle appliquée avec succès."
+msgstr "Arrêt après la dernière règle appliquée avec succès"
 
 #: convert-ly.py:181
 #, python-format
@@ -212,7 +212,9 @@ msgstr "FICHIER"
 
 #: etf2ly.py:1187 lilypond-book.py:158 midi2ly.py:888 main.cc:163
 msgid "show warranty and copyright"
-msgstr "afficher la notice de garantie et du droit d'auteur"
+msgstr ""
+"afficher les notices de garantie\n"
+"et du droit d'auteur"
 
 #: lilypond-book.py:57
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
@@ -250,7 +252,7 @@ msgstr ""
 
 #: lilypond-book.py:123
 msgid "add DIR to include path"
-msgstr "ajouter le RÉPERTOIRE au chemin de recherche des inclusions."
+msgstr "ajouter le RÉPERTOIRE au chemin de recherche des inclusions"
 
 #: lilypond-book.py:124 lilypond-book.py:136 main.cc:153
 msgid "DIR"
@@ -306,7 +308,7 @@ msgstr "traduction en mode de compatibilité : %s=%s"
 #: lilypond-book.py:1006
 #, python-format
 msgid "deprecated ly-option used: %s"
-msgstr "l'option ly-option est obsolète : %s"
+msgstr "option ly-option obsolète : %s"
 
 #: lilypond-book.py:1009
 #, python-format
@@ -410,11 +412,11 @@ msgstr "Écriture des fontes dans %s..."
 
 #: midi2ly.py:95 lily-library.scm:577 lily-library.scm:586
 msgid "warning: "
-msgstr "AVERTISSEMENT :"
+msgstr "Avertissement :"
 
 #: midi2ly.py:98 midi2ly.py:913
 msgid "error: "
-msgstr "ERREUR : "
+msgstr "Erreur : "
 
 #: midi2ly.py:99
 msgid "Exiting ... "
@@ -491,7 +493,7 @@ msgid ""
 "information."
 msgstr ""
 "Ce logiciel est libre. Il est couvert par la licence GNU General Public \n"
-"License, et vous êtes libre de le modifier et/ou d'en distribuer des copies \n"
+"License, et vous êtes libre de le modifier et/ou d'en distribuer des copies\n"
 "sous certaines conditions. \n"
 "Invoquez « %s --warranty » pour plus d'informations."
 
@@ -511,7 +513,7 @@ msgstr "L'option « %s » requiert un argument"
 #: getopt-long.cc:144
 #, c-format
 msgid "option `%s' does not allow an argument"
-msgstr "L'option « %s » s'emploie sans argument."
+msgstr "L'option « %s » s'emploie sans argument"
 
 #: getopt-long.cc:148
 #, c-format
@@ -548,8 +550,8 @@ msgstr "altération accidentelle inconnue, donc ignorée : %s"
 #, c-format
 msgid "pair or context-name expected for accidental rule, found %s"
 msgstr ""
-"Paire ou nom de contexte requis pour la règle d'altération accidentelle,\n"
-"%s trouvé."
+"paire ou nom de contexte requis pour la règle d'altération accidentelle,\n"
+"%s trouvé"
 
 #: accidental.cc:160
 #, c-format
@@ -558,16 +560,16 @@ msgstr "Aucun nom de glyphe ne correspond à l'altération %s"
 
 #: accidental.cc:175
 msgid "natural alteration glyph not found"
-msgstr "Pas de glyphe correspondant au bécarre."
+msgstr "pas de glyphe correspondant au bécarre"
 
 #: align-interface.cc:322
 msgid "tried to get a translation for something that is no child of mine"
-msgstr "tentative de déplacement d'un élément sans relation directe."
+msgstr "tentative de déplacement d'un élément sans relation directe"
 
 #: all-font-metrics.cc:143
 #, c-format
 msgid "cannot find font: `%s'"
-msgstr "Fonte « %s » non trouvée."
+msgstr "fonte « %s » introuvable"
 
 #: apply-context-iterator.cc:31
 msgid "\\applycontext argument is not a procedure"
@@ -588,7 +590,7 @@ msgstr "auriez-vous deux Axis_group_engravers ?"
 
 #: axis-group-engraver.cc:80
 msgid "removing this vertical group"
-msgstr "retrait de ce groupe vertical."
+msgstr "retrait de ce groupe vertical"
 
 #: axis-group-interface.cc:109
 msgid "tried to calculate pure-height at a non-breakpoint"
@@ -652,7 +654,7 @@ msgstr "impossible de changer « %s » en « %s »"
 #. FIXME: constant error message.
 #: change-iterator.cc:82
 msgid "cannot find context to switch to"
-msgstr "impossible de repérer le contexte vers lequel commuter."
+msgstr "impossible de repérer le contexte vers lequel commuter"
 
 #. We could change the current translator's id, but that would make
 #. errors hard to catch.
@@ -671,11 +673,11 @@ msgstr "aucun de ceux-ci dans ma famille"
 
 #: chord-tremolo-engraver.cc:88
 msgid "No tremolo to end"
-msgstr "Il n'y a aucun trémolo à terminer."
+msgstr "Il n'y a aucun trémolo à terminer"
 
 #: chord-tremolo-engraver.cc:110
 msgid "unterminated chord tremolo"
-msgstr "accord en tremolo non terminé."
+msgstr "accord en tremolo non terminé"
 
 #: chord-tremolo-iterator.cc:35
 #, c-format
@@ -685,7 +687,7 @@ msgstr "un accord de tremolo requiert 2 éléments, %d trouvé(s)"
 #: clef.cc:54
 #, c-format
 msgid "clef `%s' not found"
-msgstr "clé `%s' non trouvée"
+msgstr "clé `%s' introuvable"
 
 #: cluster.cc:110
 #, c-format
@@ -733,12 +735,12 @@ msgstr "Événement CreateContext invalide : impossible de créer le contexte %s
 #: context.cc:380
 #, c-format
 msgid "cannot find or create: `%s'"
-msgstr "impossible de trouver ou créer « %s »"
+msgstr "impossible de trouver ou créer « %s »"
 
 #: custos.cc:77
 #, c-format
 msgid "custos `%s' not found"
-msgstr "custode « %s » non trouvée"
+msgstr "custode « %s » introuvable"
 
 #: dispatcher.cc:71
 msgid "Event class should be a symbol"
@@ -807,7 +809,9 @@ msgstr "initialisation à zéro"
 
 #: general-scheme.cc:417 output-ps.scm:61
 msgid "Found infinity or nan in output. Substituting 0.0"
-msgstr "La sortie contient l'infini ou une valeur non numérique. Substitution par 0.0"
+msgstr ""
+"La sortie contient l'infini ou une valeur non numérique. \n"
+"Substitution par 0.0"
 
 #: glissando-engraver.cc:94
 msgid "unterminated glissando"
@@ -844,7 +848,7 @@ msgstr "Impossible d'appliquer « \\~ » à la première tête de ligature"
 #. (pitch == prev_pitch)
 #: gregorian-ligature-engraver.cc:224
 msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr "Impossible d'appliquer « \\~ » à des têtes ayant la même hauteur."
+msgstr "Impossible d'appliquer « \\~ » à des têtes ayant la même hauteur"
 
 #: grob-interface.cc:57
 #, c-format
@@ -880,11 +884,11 @@ msgstr "crescendo trop petit"
 
 #: horizontal-bracket-engraver.cc:59
 msgid "do not have that many brackets"
-msgstr "n'a pas autant de crochets."
+msgstr "n'a pas autant de crochets"
 
 #: horizontal-bracket-engraver.cc:68
 msgid "conflicting note group events"
-msgstr "événements de groupe de notes conflictuels."
+msgstr "événements de groupe de notes conflictuels"
 
 #: hyphen-engraver.cc:93
 msgid "removing unterminated hyphen"
@@ -939,7 +943,7 @@ msgstr "ligature non terminée"
 
 #: ligature-engraver.cc:202
 msgid "ignoring rest: ligature may not contain rest"
-msgstr "le silence est ignoré : une ligature ne peut contenir de silence."
+msgstr "le silence est ignoré : une ligature ne peut contenir de silence"
 
 #: ligature-engraver.cc:203
 msgid "ligature was started here"
@@ -953,15 +957,15 @@ msgstr "(chemin de chargement : « %s »)"
 #: lily-guile.cc:438
 #, c-format
 msgid "cannot find property type-check for `%s' (%s)."
-msgstr "Vérification de type de propriété pour « %s » (%s) non trouvée."
+msgstr "vérification de type de propriété pour « %s » (%s) non trouvée"
 
 #: lily-guile.cc:441
 msgid "perhaps a typing error?"
-msgstr "Probable faute de frappe."
+msgstr "Probable faute de frappe"
 
 #: lily-guile.cc:448
 msgid "doing assignment anyway"
-msgstr "Affectation faite malgré tout."
+msgstr "affectation faite malgré tout"
 
 #: lily-guile.cc:460
 #, c-format
@@ -1010,7 +1014,7 @@ msgstr "Analyse..."
 
 #: lily-parser.cc:127
 msgid "braces do not match"
-msgstr "Accolades non pairées"
+msgstr "accolades non pairées"
 
 #: lyric-combine-music-iterator.cc:327
 #, c-format
@@ -1029,8 +1033,9 @@ msgid ""
 "under certain conditions.  Invoke as `%s --warranty' for more\n"
 "information.\n"
 msgstr ""
-"Ce logiciel est libre. Il est couvert par la licence GNU General Public License,\n"
-"et vous êtes libre de le modifier et/ou d'en distribuer des copies sous certaines conditions\n"
+"Ce logiciel est libre. Il est couvert par la licence GNU General Public \n"
+"License, et vous êtes libre de le modifier et/ou d'en distribuer des copies\n"
+"sous certaines conditions.\n"
 "Invoquez « %s --warranty » pour plus d'informations.\n"
 
 #: main.cc:106
@@ -1050,18 +1055,18 @@ msgid ""
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
 "    Ce logiciel est libre; vous pouvez le redistribuer et/ou le modifier\n"
-"sous les termes de la licence GNU General Public License version 2\n"
-"tel que publié par la Free Software Foundation.\n"
+"selon les termes de la licence GNU General Public License version 2\n"
+"tel que publiée par la Free Software Foundation.\n"
 "\n"
 "    Ce logiciel est distribué dans l'espoir qu'il soit utile\n"
-"mais sans AUCUNE GARANTIE;  sans aucune garantie implicites\n"
-"COMMERCIALES ou pour RÉPONDRE À UN BESOIN PARTICULIER.. Consulter\n"
+"mais sans AUCUNE GARANTIE;  sans aucune garantie implicite\n"
+"COMMERCIALE ou pour RÉPONDRE À UN BESOIN PARTICULIER.. Consulter\n"
 "la license GNU General Public License pour plus de détails.\n"
 "\n"
 "    Vous devriez avoir reçu une copie (consulter le fichier COPYING) de la\n"
-"license GNU General Public License accompagnant ce logiciel; si absente écrire à\n"
-"la Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-"USA.\n"
+"license GNU General Public License accompagnant ce logiciel; si absente\n"
+" écrire à la Free Software Foundation, Inc., 59 Temple Place - Suite 330, \n"
+"Boston, MA 02111-1307, USA.\n"
 
 #: main.cc:137
 msgid "SYM[=VAL]"
@@ -1072,8 +1077,9 @@ msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
 msgstr ""
-"affecte VAL (par défaut #t) à l'option Scheme SYM.\n"
-"Utiliser -dhelp pour obtenir de l'aide."
+"affecte VAL (par défaut #t)\n"
+"à l'option Scheme SYM.\n"
+"Utiliser -dhelp pour avoir de l'aide."
 
 #: main.cc:141
 msgid "EXPR"
@@ -1081,7 +1087,7 @@ msgstr "EXPR"
 
 #: main.cc:141
 msgid "evaluate scheme code"
-msgstr "évalue du code Scheme"
+msgstr "évaluer du code Scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
@@ -1091,7 +1097,9 @@ msgstr "FORMATs"
 
 #: main.cc:144
 msgid "dump FORMAT,...  Also as separate options:"
-msgstr "produire FORMAT,... Aussi comme options séparées :"
+msgstr ""
+"produire FORMAT,...\n"
+"Aussi comme options séparées :"
 
 #: main.cc:145
 msgid "generate DVI (tex backend only)"
@@ -1111,11 +1119,11 @@ msgstr "générer le PostScript"
 
 #: main.cc:149
 msgid "generate TeX (tex backend only)"
-msgstr "<générer le TeX (uniquement pour tex)"
+msgstr "générer le TeX (uniquement pour tex)"
 
 #: main.cc:150
 msgid "show this help and exit"
-msgstr "visualiser cette aide et sortir."
+msgstr "visualiser cette aide et sortir"
 
 #: main.cc:151
 msgid "FIELD"
@@ -1126,20 +1134,22 @@ msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
-"écrire le champ d'en-tête CHAMP dans le fichier \n"
-"nommé BASENAME.CHAMP"
+"écrire le champ d'en-tête CHAMP dans le\n"
+"fichier nommé BASENAME.CHAMP"
 
 #: main.cc:153
 msgid "add DIR to search path"
-msgstr "ajouter le RÉPERTOIRE au chemin de recherche"
+msgstr "ajouter RÉPERTOIRE au chemin de recherche"
 
 #: main.cc:154
 msgid "use FILE as init file"
-msgstr "utiliser le FICHIER comme fichier d'initialisation"
+msgstr ""
+"utiliser FICHIER comme\n"
+"fichier d'initialisation"
 
 #: main.cc:156
 msgid "USER, GROUP, JAIL, DIR"
-msgstr "UTILISATEUR,GROUPE,CAGE,RÉPERTOIRE"
+msgstr "USER,GROUP,CAGE,RÉP"
 
 #: main.cc:156
 msgid ""
@@ -1151,11 +1161,15 @@ msgstr ""
 
 #: main.cc:159
 msgid "write output to FILE (suffix will be added)"
-msgstr "produire la sortie dans le FICHIER (adjonction automatique du suffixe)"
+msgstr ""
+"produire la sortie dans FICHIER \n"
+"(adjonction automatique du suffixe)"
 
 #: main.cc:160
 msgid "relocate using directory of lilypond program"
-msgstr "redétermine le chemin d'exécution de LilyPond"
+msgstr ""
+"redétermine le chemin d'exécution\n"
+"des composants de LilyPond"
 
 #: main.cc:161
 msgid "show version number and exit"
@@ -1199,7 +1213,9 @@ msgstr "Options :"
 #: main.cc:242
 #, c-format
 msgid "Report bugs via %s"
-msgstr "Rapporter toute anomalie à %s."
+msgstr ""
+"Signaler toute anomalie à \n"
+"%s"
 
 #: main.cc:288
 #, c-format
@@ -1215,7 +1231,7 @@ msgstr "utilisateur inconnu : « %s »"
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
-"impossible de repérer l'identifiant utilisateur à partir du nom d'utilisateur : \n"
+"impossible de repérer l'identifiant utilisateur à partir du nom d'utilisateur :\n"
 "%s : %s"
 
 #: main.cc:319
@@ -1238,12 +1254,12 @@ msgstr "impossible de chrooter vers : %s : %s"
 #: main.cc:336
 #, c-format
 msgid "cannot change group id to: %d: %s"
-msgstr "impossible de changer l'id de groupe en : %d : %s"
+msgstr "impossible de changer l'identifiant de groupe en : %d : %s"
 
 #: main.cc:342
 #, c-format
 msgid "cannot change user id to: %d: %s"
-msgstr "impossible de changer l'id utilisateur en : %d : %s"
+msgstr "impossible de changer l'identifiant utilisateur en : %d : %s"
 
 #: main.cc:348
 #, c-format
@@ -1253,7 +1269,7 @@ msgstr "impossible de changer le répertoire de travail en : %s : %s"
 #: main.cc:594
 #, c-format
 msgid "exception caught: %s"
-msgstr "Exception capturée : %s"
+msgstr "exception capturée : %s"
 
 #. FIXME: constant error message.
 #: mark-engraver.cc:154
@@ -1282,7 +1298,7 @@ msgstr "intervale de prime dans la ligature -> escamotage"
 
 #: mensural-ligature-engraver.cc:150
 msgid "mensural ligature: duration none of Mx, L, B, S -> skipping"
-msgstr "ligature mensurale : aucune durée parmi Mx,  L, B, S -> escamotage"
+msgstr "ligature mensurale : aucune durée parmi Mx, L, B, S -> escamotage"
 
 #: mensural-ligature-engraver.cc:198
 msgid "semibrevis must be followed by another one -> skipping"
@@ -1318,7 +1334,7 @@ msgstr "Mensural_ligature: cas inattendu et non interprétable"
 
 #: mensural-ligature.cc:192
 msgid "Mensural_ligature: (join_right == 0)"
-msgstr "Mensural_liguture: (joint_right == 0)"
+msgstr "Mensural_ligature: (joint_right == 0)"
 
 #: midi-item.cc:81
 #, c-format
@@ -1355,7 +1371,7 @@ msgstr "impossible d'ajouter du texte à des têtes de notes individuelles"
 
 #: new-fingering-engraver.cc:239
 msgid "no placement found for fingerings"
-msgstr "Nulle part où positionner des doigtés."
+msgstr "nulle part où positionner des doigtés"
 
 #: new-fingering-engraver.cc:240
 msgid "placing below"
@@ -1532,7 +1548,7 @@ msgstr "liaison de phrasé non terminée"
 #: piano-pedal-engraver.cc:286
 #, c-format
 msgid "expect 3 strings for piano pedals, found: %ld"
-msgstr "Les pédales de piano nécessitent Nécessite 3 cordes. Il y en a %ld"
+msgstr "Les pédales de piano nécessitent 3 cordes. Il y en a %ld"
 
 #: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
 #: piano-pedal-performer.cc:93
@@ -1668,12 +1684,12 @@ msgstr "voici la musique précédente"
 
 #: score.cc:173
 msgid "errors found, ignoring music expression"
-msgstr "suite à des erreurs répétées, l'expression musicale sera ignorée."
+msgstr "suite à des erreurs répétées, l'expression musicale sera ignorée"
 
 #. FIXME:
 #: script-engraver.cc:102
 msgid "do not know how to interpret articulation: "
-msgstr "Ne sait comment interpréter l'articulation: "
+msgstr "ne sait comment interpréter l'articulation : "
 
 #: script-engraver.cc:103
 msgid "scheme encoding: "
@@ -1787,7 +1803,7 @@ msgstr "symbole de chiffrage de mesure « %s » inconnu ; retour à un style num
 #: translator-ctors.cc:52
 #, c-format
 msgid "unknown translator: `%s'"
-msgstr "traducteur inconnu: « %s »"
+msgstr "traducteur inconnu : « %s »"
 
 #: translator-group-ctors.cc:29
 #, c-format
@@ -1910,7 +1926,7 @@ msgstr "Escamotage d'UTF-8 BOM"
 #: lexer.ll:235
 #, c-format
 msgid "Renaming input to: `%s'"
-msgstr "L'entrée a été renommé en « %s »"
+msgstr "L'entrée a été renommée en « %s »"
 
 #: lexer.ll:252
 msgid "quoted string expected after \\version"
@@ -1953,17 +1969,19 @@ msgstr "Accolade repérée à la fin d'un \"markup\". Manquerait-il un espace ?"
 #: lexer.ll:663
 #, c-format
 msgid "invalid character: `%c'"
-msgstr "caractère invalide: « %c »"
+msgstr "caractère invalide : « %c »"
 
 #: lexer.ll:778
 #, c-format
 msgid "unknown escaped string: `\\%s'"
-msgstr "chaîne d'échappement inconnue: « \\%s »"
+msgstr "chaîne d'échappement inconnue : « \\%s »"
 
 #: lexer.ll:884
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
-msgstr "%s est plus qu'obsolète ; le plus ancien pouvant être supporté est : %s"
+msgstr ""
+"%s est plus qu'obsolète ; \n"
+"le plus ancien pouvant être supporté est : %s"
 
 #: lexer.ll:885
 msgid "consider updating the input with the convert-ly script"
@@ -1982,7 +2000,7 @@ msgstr "Invocation de « ~a »..."
 #: backend-library.scm:28
 #, scheme-format
 msgid "`~a' failed (~a)"
-msgstr "« ~a » a mis (~a) en échec"
+msgstr "échec de « ~a » (~a)"
 
 #: backend-library.scm:115 framework-tex.scm:343 framework-tex.scm:368
 #, scheme-format
@@ -1992,7 +2010,7 @@ msgstr "Conversion à « ~a »..."
 #: backend-library.scm:128
 #, scheme-format
 msgid "Converting to ~a..."
-msgstr "Conversion à « ~a »..."
+msgstr "Conversion à ~a..."
 
 #: backend-library.scm:166
 #, scheme-format
@@ -2014,7 +2032,7 @@ msgstr "la classe d'événement ~A semble être inutilisée"
 #: define-event-classes.scm:125
 #, scheme-format
 msgid "translator listens to nonexisting event class ~A"
-msgstr "le traducteur écoute la classe d'événements inexistante ~A"
+msgstr "le traducteur écoute la classe d'événements ~A inexistante"
 
 #: define-markup-commands.scm:273
 msgid "no systems found in \\score markup, does it have a \\layout block?"
@@ -2127,15 +2145,15 @@ msgid ""
 msgstr ""
 "\n"
 "Le support PostScript ne peut traiter une sortie système par système.\n"
-"Utiliser de préférence le support EPS\\n\"\n"
+"Utiliser de préférence le support EPS\n"
 "\n"
-"  lilypond -b eps <fichier>\\n\"\n"
+"  lilypond -b eps <fichier>\n"
 "\n"
-"Si vous avez copié et collé un fragement lilypond à partir d'un page internet,\n"
+"Si vous avez copié et collé un fragment lilypond à partir d'un page internet,\n"
 "assurez-vous d'avoir bien supprimé tout ce qui précède\n"
 "\n"
 "  %% ****************************************************************\n"
-"  %% Start cut-&-pastable-section\\n\"\n"
+"  %% Start cut-&-pastable-section\n"
 "  %% ****************************************************************\n"
 "\n"
 
@@ -2161,7 +2179,7 @@ msgstr "Erreur de définition du lien : attendait ~S 0, repéré ~S."
 
 #: layout-page-layout.scm:115
 msgid "Can't fit systems on page -- ignoring between-system-padding"
-msgstr "Les système ne tiennent pas sur la page; between-system-padding ignoré"
+msgstr "Les système ne tiennent pas sur la page ; between-system-padding ignoré"
 
 #: layout-page-layout.scm:449
 msgid "Calculating page breaks..."
@@ -2175,7 +2193,9 @@ msgstr "unité inconnue : ~S"
 #: lily-library.scm:579
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
-msgstr "déclaration de \\version absente; ajoutez ~a pour une compatibilité future"
+msgstr ""
+"déclaration de \\version absente ;\n"
+"ajoutez ~a pour une compatibilité future"
 
 #: lily-library.scm:587
 msgid "old relative compatibility not used"
@@ -2189,7 +2209,7 @@ msgstr "impossible de trouver ~A"
 #: lily.scm:238
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
-msgstr "type d'argument erroné pour ~a. Attendait ~a, a trouvé ~s"
+msgstr "type d'argument erroné pour ~a. Attendait ~a, ~s trouvé"
 
 #: lily.scm:619
 #, scheme-format
@@ -2252,7 +2272,9 @@ msgstr "requiert de la musique : ~S"
 #: music-functions.scm:623
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
-msgstr "Échec du contrôle de barre de mesure. Aurait dû se trouver à ~a au lieu de ~a"
+msgstr ""
+"Échec du contrôle de barre de mesure. \n"
+"Aurait dû se trouver à ~a au lieu de ~a"
 
 #: music-functions.scm:773
 #, scheme-format
@@ -2301,7 +2323,7 @@ msgstr "Taille de papier inconnue : ~a"
 #. that in parse-scm.cc
 #: paper.scm:159
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
-msgstr "#(set-paper-size ..) doit être dans la section \\\\paper { ... }"
+msgstr "#(set-paper-size ..) doit être dans la section \\paper { ... }"
 
 #: parser-clef.scm:127
 #, scheme-format
@@ -2316,7 +2338,7 @@ msgstr "clefs reconnues : ~a"
 #: ps-to-png.scm:64
 #, scheme-format
 msgid "~a exited with status: ~S"
-msgstr "~a a terminée avec le statut: ~S"
+msgstr "~a s'est terminé avec le statut ~S"
 
 #: to-xml.scm:180
 #, scheme-format
index 7d30315618ee59c13a3b4fd4270e64ba0b91f5a9..016e9102440a21e8342bd52b1bf9665fcf28c45b 100644 (file)
@@ -1,14 +1,14 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation of LilyPond.
+# Copyright (C) 2007 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# This file is distributed under the same license as lilypond package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-06-17 22:47+0200\n"
+"Project-Id-Version: lilypond 2.11.34\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"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -102,7 +102,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:506
+#: midi2ly.py:900 musicxml2ly.py:975
 msgid "Report bugs via"
 msgstr ""
 
@@ -197,7 +197,7 @@ msgid ""
 "file."
 msgstr ""
 
-#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:499 main.cc:154 main.cc:159
+#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:968 main.cc:154 main.cc:159
 msgid "FILE"
 msgstr ""
 
@@ -271,131 +271,131 @@ msgid ""
 "must use this with dvips -h INPUT.psfonts"
 msgstr ""
 
-#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:490 main.cc:162
+#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:959 main.cc:162
 msgid "be verbose"
 msgstr ""
 
-#: lilypond-book.py:768
+#: lilypond-book.py:765
 #, python-format
 msgid "file not found: %s"
 msgstr ""
 
-#: lilypond-book.py:999
+#: lilypond-book.py:996
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1002
+#: lilypond-book.py:999
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1006
+#: lilypond-book.py:1003
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: lilypond-book.py:1009
+#: lilypond-book.py:1006
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: lilypond-book.py:1028
+#: lilypond-book.py:1025
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: lilypond-book.py:1382
+#: lilypond-book.py:1379
 #, python-format
 msgid "Opening filter `%s'"
 msgstr ""
 
-#: lilypond-book.py:1399
+#: lilypond-book.py:1396
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: lilypond-book.py:1400
+#: lilypond-book.py:1397
 msgid "The error log is as follows:"
 msgstr ""
 
-#: lilypond-book.py:1472
+#: lilypond-book.py:1469
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr ""
 
-#: lilypond-book.py:1583
+#: lilypond-book.py:1580
 msgid "Writing snippets..."
 msgstr ""
 
-#: lilypond-book.py:1588
+#: lilypond-book.py:1585
 msgid "Processing..."
 msgstr ""
 
-#: lilypond-book.py:1592
+#: lilypond-book.py:1589
 msgid "All snippets are up to date..."
 msgstr ""
 
-#: lilypond-book.py:1602
+#: lilypond-book.py:1599
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr ""
 
-#: lilypond-book.py:1613
+#: lilypond-book.py:1610
 #, python-format
 msgid "%s is up to date."
 msgstr ""
 
-#: lilypond-book.py:1619
+#: lilypond-book.py:1616
 #, python-format
 msgid "Writing `%s'..."
 msgstr ""
 
-#: lilypond-book.py:1674
+#: lilypond-book.py:1671
 msgid "Output would overwrite input file; use --output."
 msgstr ""
 
-#: lilypond-book.py:1678
+#: lilypond-book.py:1675
 #, python-format
 msgid "Reading %s..."
 msgstr ""
 
-#: lilypond-book.py:1697
+#: lilypond-book.py:1694
 msgid "Dissecting..."
 msgstr ""
 
-#: lilypond-book.py:1713
+#: lilypond-book.py:1710
 #, python-format
 msgid "Compiling %s..."
 msgstr ""
 
-#: lilypond-book.py:1722
+#: lilypond-book.py:1719
 #, python-format
 msgid "Processing include: %s"
 msgstr ""
 
-#: lilypond-book.py:1736
+#: lilypond-book.py:1733
 #, python-format
 msgid "Removing `%s'"
 msgstr ""
 
-#: lilypond-book.py:1769
+#: lilypond-book.py:1766
 msgid "option --psfonts not used"
 msgstr ""
 
-#: lilypond-book.py:1770
+#: lilypond-book.py:1767
 msgid "processing with dvips will have no fonts"
 msgstr ""
 
-#: lilypond-book.py:1773
+#: lilypond-book.py:1770
 msgid "DVIPS usage:"
 msgstr ""
 
-#: lilypond-book.py:1829
+#: lilypond-book.py:1826
 #, python-format
 msgid "Writing fonts to %s..."
 msgstr ""
 
-#: midi2ly.py:95 lily-library.scm:612 lily-library.scm:621
+#: midi2ly.py:95 lily-library.scm:615 lily-library.scm:624
 msgid "warning: "
 msgstr ""
 
@@ -412,7 +412,7 @@ msgstr ""
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:860 musicxml2ly.py:486
+#: midi2ly.py:860 musicxml2ly.py:955
 #, python-format
 msgid "Convert %s to LilyPond input."
 msgstr ""
@@ -465,11 +465,11 @@ msgstr ""
 msgid "no files specified on command line."
 msgstr ""
 
-#: musicxml2ly.py:474
+#: musicxml2ly.py:943
 msgid "musicxml2ly FILE.xml"
 msgstr ""
 
-#: musicxml2ly.py:477
+#: musicxml2ly.py:946
 #, python-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -478,11 +478,11 @@ msgid ""
 "information."
 msgstr ""
 
-#: musicxml2ly.py:496
+#: musicxml2ly.py:965
 msgid "Use lxml.etree; uses less memory and cpu time."
 msgstr ""
 
-#: musicxml2ly.py:504
+#: musicxml2ly.py:973
 msgid "set output filename to FILE"
 msgstr ""
 
@@ -506,7 +506,7 @@ msgstr ""
 msgid "invalid argument `%s' to option `%s'"
 msgstr ""
 
-#: warn.cc:68 grob.cc:557 input.cc:82
+#: warn.cc:68 grob.cc:565 input.cc:82
 #, c-format
 msgid "programming error: %s"
 msgstr ""
@@ -515,31 +515,31 @@ msgstr ""
 msgid "continuing, cross fingers"
 msgstr ""
 
-#: accidental-engraver.cc:247
+#: accidental-engraver.cc:250
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr ""
 
-#: accidental-engraver.cc:274
+#: accidental-engraver.cc:277
 #, c-format
 msgid "ignoring unknown accidental rule: %s"
 msgstr ""
 
-#: accidental-engraver.cc:290
+#: accidental-engraver.cc:293
 #, c-format
 msgid "pair or context-name expected for accidental rule, found %s"
 msgstr ""
 
-#: accidental.cc:160
+#: accidental.cc:187
 #, c-format
 msgid "Could not find glyph-name for alteration %s"
 msgstr ""
 
-#: accidental.cc:175
+#: accidental.cc:202
 msgid "natural alteration glyph not found"
 msgstr ""
 
-#: align-interface.cc:322
+#: align-interface.cc:325
 msgid "tried to get a translation for something that is no child of mine"
 msgstr ""
 
@@ -569,7 +569,7 @@ msgstr ""
 msgid "removing this vertical group"
 msgstr ""
 
-#: axis-group-interface.cc:505
+#: axis-group-interface.cc:531
 msgid "an outside-staff object should have a direction, defaulting to up"
 msgstr ""
 
@@ -725,23 +725,23 @@ msgstr ""
 msgid "dot `%s' not found"
 msgstr ""
 
-#: dynamic-engraver.cc:184
+#: dynamic-engraver.cc:193
 msgid "cannot find start of (de)crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:193
+#: dynamic-engraver.cc:202
 msgid "already have a decrescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:195
+#: dynamic-engraver.cc:204
 msgid "already have a crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:198
+#: dynamic-engraver.cc:207
 msgid "cresc starts here"
 msgstr ""
 
-#: dynamic-engraver.cc:327
+#: dynamic-engraver.cc:336
 msgid "unterminated (de)crescendo"
 msgstr ""
 
@@ -768,15 +768,15 @@ msgstr ""
 msgid "adding font directory: %s"
 msgstr ""
 
-#: general-scheme.cc:198
+#: general-scheme.cc:201
 msgid "infinity or NaN encountered while converting Real number"
 msgstr ""
 
-#: general-scheme.cc:199
+#: general-scheme.cc:202
 msgid "setting to zero"
 msgstr ""
 
-#: general-scheme.cc:417 output-ps.scm:61
+#: general-scheme.cc:421 output-ps.scm:61
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr ""
 
@@ -784,15 +784,15 @@ msgstr ""
 msgid "unterminated glissando"
 msgstr ""
 
-#: global-context-scheme.cc:87 global-context-scheme.cc:105
+#: global-context-scheme.cc:85 global-context-scheme.cc:103
 msgid "no music found in score"
 msgstr ""
 
-#: global-context-scheme.cc:95
+#: global-context-scheme.cc:93
 msgid "Interpreting music... "
 msgstr ""
 
-#: global-context-scheme.cc:118
+#: global-context-scheme.cc:116
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr ""
@@ -832,7 +832,7 @@ msgstr ""
 msgid "%d: %s"
 msgstr ""
 
-#: grob-property.cc:174
+#: grob-property.cc:173
 #, c-format
 msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
 msgstr ""
@@ -875,12 +875,12 @@ msgstr ""
 msgid "position unknown"
 msgstr ""
 
-#: key-signature-interface.cc:71
+#: key-signature-interface.cc:74
 #, c-format
 msgid "No glyph found for alteration: %s"
 msgstr ""
 
-#: key-signature-interface.cc:81
+#: key-signature-interface.cc:84
 msgid "alteration not found"
 msgstr ""
 
@@ -1266,6 +1266,10 @@ msgstr ""
 msgid "cannot write to file: `%s'"
 msgstr ""
 
+#: minimal-page-breaking.cc:42
+msgid "Computing page breaks..."
+msgstr ""
+
 #: music-iterator.cc:171
 msgid "Sending non-event to context"
 msgstr ""
@@ -1292,7 +1296,7 @@ msgstr ""
 msgid "placing below"
 msgstr ""
 
-#: note-collision.cc:464
+#: note-collision.cc:463
 msgid "ignoring too many clashing note columns"
 msgstr ""
 
@@ -1419,7 +1423,7 @@ msgstr ""
 msgid "FreeType face has no PostScript font name"
 msgstr ""
 
-#: paper-column-engraver.cc:213
+#: paper-column-engraver.cc:221
 msgid ""
 "forced break was overridden by some other event, should you be using bar "
 "checks?"
@@ -1633,7 +1637,7 @@ msgstr ""
 msgid "cannot end slur"
 msgstr ""
 
-#: slur.cc:355
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
@@ -1643,7 +1647,7 @@ msgstr ""
 msgid "expected to read %d characters, got %d"
 msgstr ""
 
-#: spaceable-grob.cc:117
+#: spaceable-grob.cc:83
 #, c-format
 msgid "No spring between column %d and next one"
 msgstr ""
@@ -1670,22 +1674,22 @@ msgstr ""
 msgid "weird stem size, check for narrow beams"
 msgstr ""
 
-#: stem.cc:618
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr ""
 
-#: stem.cc:629
+#: stem.cc:634
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr ""
 
-#: system.cc:180
+#: system.cc:179
 #, c-format
 msgid "Element count %d."
 msgstr ""
 
-#: system.cc:272
+#: system.cc:271
 #, c-format
 msgid "Grob count %d"
 msgstr ""
@@ -1702,7 +1706,7 @@ msgstr ""
 msgid "unterminated text spanner"
 msgstr ""
 
-#: tie-engraver.cc:267
+#: tie-engraver.cc:262
 msgid "lonely tie"
 msgstr ""
 
@@ -1723,7 +1727,7 @@ msgstr ""
 msgid "time signature symbol `%s' not found; reverting to numbered style"
 msgstr ""
 
-#: translator-ctors.cc:52
+#: translator-ctors.cc:53
 #, c-format
 msgid "unknown translator: `%s'"
 msgstr ""
@@ -1738,21 +1742,21 @@ msgstr ""
 msgid "cannot find: `%s'"
 msgstr ""
 
-#: translator.cc:346
+#: translator.cc:347
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
 msgstr ""
 
-#: translator.cc:347
+#: translator.cc:348
 #, c-format
 msgid "Previous %s event here"
 msgstr ""
 
-#: trill-spanner-engraver.cc:67
+#: trill-spanner-engraver.cc:84
 msgid "cannot find start of trill spanner"
 msgstr ""
 
-#: trill-spanner-engraver.cc:79
+#: trill-spanner-engraver.cc:96
 msgid "already have a trill spanner"
 msgstr ""
 
@@ -1760,14 +1764,14 @@ msgstr ""
 msgid "No tuplet to end"
 msgstr ""
 
-#: vaticana-ligature-engraver.cc:388
+#: vaticana-ligature-engraver.cc:389
 #, c-format
 msgid ""
 "ignored prefix (es) `%s' of this head according to restrictions of the "
 "selected ligature style"
 msgstr ""
 
-#: vaticana-ligature-engraver.cc:714
+#: vaticana-ligature-engraver.cc:718
 #, c-format
 msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
 msgstr ""
@@ -1785,56 +1789,56 @@ msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
 msgstr ""
 
 #. fixme: be more verbose.
-#: volta-engraver.cc:143
+#: volta-engraver.cc:100
 msgid "cannot end volta spanner"
 msgstr ""
 
-#: volta-engraver.cc:153
+#: volta-engraver.cc:110
 msgid "already have a volta spanner, ending that one prematurely"
 msgstr ""
 
-#: volta-engraver.cc:157
+#: volta-engraver.cc:114
 msgid "also already have an ended spanner"
 msgstr ""
 
-#: volta-engraver.cc:158
+#: volta-engraver.cc:115
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:727
+#: parser.yy:728
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:751
+#: parser.yy:752
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1210
+#: parser.yy:1211
 msgid "Grob name should be alphanumeric"
 msgstr ""
 
-#: parser.yy:1508
+#: parser.yy:1509
 msgid "second argument must be pitch list"
 msgstr ""
 
-#: parser.yy:1535 parser.yy:1540 parser.yy:2005
+#: parser.yy:1536 parser.yy:1541 parser.yy:2006
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1637
+#: parser.yy:1638
 msgid "expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1792 parser.yy:1842
+#: parser.yy:1793 parser.yy:1843
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1959
+#: parser.yy:1960
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:2020
+#: parser.yy:2021
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
@@ -1885,35 +1889,35 @@ msgstr ""
 msgid "Brace found at end of lyric.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:578
+#: lexer.ll:580
 msgid "Brace found at end of markup.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:682
+#: lexer.ll:684
 #, c-format
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:797 lexer.ll:798
+#: lexer.ll:799
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:903 lexer.ll:904
+#: lexer.ll:905
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 
-#: lexer.ll:904 lexer.ll:905
+#: lexer.ll:906
 msgid "consider updating the input with the convert-ly script"
 msgstr ""
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:912
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
 
-#: backend-library.scm:19 lily.scm:762 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:767 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr ""
@@ -1923,17 +1927,17 @@ msgstr ""
 msgid "`~a' failed (~a)"
 msgstr ""
 
-#: backend-library.scm:115 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:117 framework-tex.scm:344 framework-tex.scm:369
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr ""
 
-#: backend-library.scm:128
+#: backend-library.scm:130
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr ""
 
-#: backend-library.scm:166
+#: backend-library.scm:168
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr ""
@@ -1955,31 +1959,31 @@ msgstr ""
 msgid "translator listens to nonexisting event class ~A"
 msgstr ""
 
-#: define-markup-commands.scm:274
+#: define-markup-commands.scm:280
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:1312
+#: define-markup-commands.scm:1294
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
 
-#: define-music-types.scm:746
+#: define-music-types.scm:670
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr ""
 
-#: define-music-types.scm:749
+#: define-music-types.scm:673
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr ""
 
-#: define-music-types.scm:769
+#: define-music-types.scm:692
 #, scheme-format
 msgid "unknown repeat type `~S'"
 msgstr ""
 
-#: define-music-types.scm:770
+#: define-music-types.scm:693
 msgid "See music-types.scm for supported repeats"
 msgstr ""
 
@@ -2003,12 +2007,12 @@ msgstr ""
 msgid "Processing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:150
+#: documentation-lib.scm:154
 #, scheme-format
 msgid "Writing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:172
+#: documentation-lib.scm:176
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr ""
@@ -2018,43 +2022,43 @@ msgstr ""
 msgid "Writing ~a..."
 msgstr ""
 
-#: framework-ps.scm:280
+#: framework-ps.scm:282
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:333
+#: framework-ps.scm:335
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr ""
 
-#: framework-ps.scm:350
+#: framework-ps.scm:352
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:381
+#: framework-ps.scm:383
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:735
+#: framework-ps.scm:750
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr ""
 
-#: framework-ps.scm:754 framework-ps.scm:757
+#: framework-ps.scm:769 framework-ps.scm:772
 #, scheme-format
 msgid "cannot generate ~S using the postscript back-end"
 msgstr ""
 
-#: framework-ps.scm:764
+#: framework-ps.scm:779
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
 "output. For that, use the EPS backend instead,\n"
 "\n"
-"  lilypond -eps FILE\n"
+"  lilypond -dbackend=eps FILE\n"
 "\n"
 "If have cut & pasted a lilypond fragment from a webpage, be sure\n"
 "to only remove anything before\n"
@@ -2084,56 +2088,56 @@ msgstr ""
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr ""
 
-#: layout-page-layout.scm:115
+#: layout-page-layout.scm:124
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr ""
 
-#: layout-page-layout.scm:447
+#: layout-page-layout.scm:458
 msgid "Calculating page breaks..."
 msgstr ""
 
-#: lily-library.scm:580
+#: lily-library.scm:583
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:614
+#: lily-library.scm:617
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 
-#: lily-library.scm:622
+#: lily-library.scm:625
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:182
+#: lily.scm:185
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:247
+#: lily.scm:250
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 
-#: lily.scm:629
+#: lily.scm:634
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:632
+#: lily.scm:637
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:659 lily.scm:752
+#: lily.scm:664 lily.scm:757
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:742
+#: lily.scm:747
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
@@ -2161,28 +2165,33 @@ msgstr ""
 msgid "More alternatives than repeats.  Junking excess alternatives"
 msgstr ""
 
-#: music-functions.scm:250
+#: music-functions.scm:240
+#, scheme-format
+msgid "invalid tremolo repeat count: ~a"
+msgstr ""
+
+#: music-functions.scm:248
 #, scheme-format
 msgid "expecting 2 elements for chord tremolo, found ~a"
 msgstr ""
 
-#: music-functions.scm:573
+#: music-functions.scm:571
 #, scheme-format
 msgid "music expected: ~S"
 msgstr ""
 
 #. FIXME: uncomprehensable message
-#: music-functions.scm:623
+#: music-functions.scm:621
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
 msgstr ""
 
-#: music-functions.scm:773
+#: music-functions.scm:771
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:970
+#: music-functions.scm:968
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
@@ -2206,23 +2215,23 @@ msgstr ""
 msgid "cannot find ~a in ~a"
 msgstr ""
 
-#: paper.scm:84
+#: paper.scm:85
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:132
+#: paper.scm:133
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:144
+#: paper.scm:145
 #, scheme-format
 msgid "Unknown papersize: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:159
+#: paper.scm:160
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
index f4efdd54db16e37ff1649640405dda87baec6121..8ae3105cada6d35d1efeba95378124861b1dc5cb 100644 (file)
@@ -6,6 +6,18 @@ import re
 from rational import Rational
 
 
+def escape_instrument_string (input_string):
+    retstring = string.replace (input_string, "\"", "\\\"")
+    if re.match ('.*\n.*', retstring):
+        strings = retstring.split ('\r\n')
+        retstring = "\\markup { \\column { "
+        for s in strings:
+            retstring += "\\line {\"" + s + "\"} "
+        retstring += "} }"
+    else:
+        retstring = "\"" + retstring + "\""
+    return retstring
+
 class Output_stack_element:
     def __init__ (self):
         self.factor = Rational (1)
@@ -63,8 +75,14 @@ class Output_printer:
         self._line += str
 
     def unformatted_output (self, str):
-        self._nesting += str.count ('<') + str.count ('{')
-        self._nesting -= str.count ('>') + str.count ('}')
+        # don't indent on \< and indent only once on <<
+        self._nesting += ( str.count ('<') 
+                         - str.count ('\<') - str.count ('<<') 
+                         + str.count ('{') )
+        self._nesting -= ( str.count ('>') - str.count ('\>') - str.count ('>>')
+                                           - str.count ('->') - str.count ('_>')
+                                           - str.count ('^>')
+                         + str.count ('}') )
         self.print_verbatim (str)
         
     def print_duration_string (self, str):
@@ -390,17 +408,31 @@ class NestedMusic(Music):
         return None
         
 class SequentialMusic (NestedMusic):
-    def print_ly (self, printer):
+    def get_last_event_chord (self):
+        value = None
+        at = len( self.elements ) - 1
+        while (at >= 0 and
+               not isinstance (self.elements[at], EventChord) and
+               not isinstance (self.elements[at], BarCheck)):
+            at -= 1
+
+        if (at >= 0 and isinstance (self.elements[at], EventChord)):
+            value = self.elements[at]
+        return value
+
+    def print_ly (self, printer, newline = True):
         printer ('{')
         if self.comment:
             self.print_comment (printer)
 
-        printer.newline()
+        if newline:
+            printer.newline()
         for e in self.elements:
             e.print_ly (printer)
 
         printer ('}')
-        printer.newline()
+        if newline:
+            printer.newline()
             
     def lisp_sub_expression (self, pred):
         name = self.name()
@@ -433,7 +465,37 @@ class Lyrics:
         return lstr
 
 
+class Header:
+    def __init__ (self):
+        self.header_fields = {}
+    def set_field (self, field, value):
+        self.header_fields[field] = value
+
+    def print_ly (self, printer):
+        printer.dump ("\header {")
+        printer.newline ()
+        for (k,v) in self.header_fields.items ():
+            if v:
+                printer.dump ('%s = %s' % (k,v))
+                printer.newline ()
+        printer.dump ("}")
+        printer.newline ()
+        printer.newline ()
+
+
+
+
 class EventChord (NestedMusic):
+    def __init__ (self):
+        NestedMusic.__init__ (self)
+        self.grace_elements = None
+        self.grace_type = None
+    def append_grace (self, element):
+        if element:
+            if not self.grace_elements:
+                self.grace_elements = SequentialMusic ()
+            self.grace_elements.append (element)
+
     def get_length (self):
         l = Rational (0)
         for e in self.elements:
@@ -451,6 +513,14 @@ class EventChord (NestedMusic):
         other_events = [e for e in self.elements if
                 not isinstance (e, RhythmicEvent)]
 
+        if self.grace_elements and self.elements:
+            if self.grace_type:
+                printer ('\\%s' % self.grace_type)
+            else:
+                printer ('\\grace')
+            # don't print newlines after the { and } braces
+            self.grace_elements.print_ly (printer, False)
+
         if rest_events:
             rest_events[0].print_ly (printer)
         elif len (note_events) == 1:
@@ -490,7 +560,7 @@ class Event(Music):
     pass
 
 class SpanEvent (Event):
-    def __init__(self):
+    def __init__ (self):
         Event.__init__ (self)
         self.span_direction = 0 # start/stop
         self.line_type = 'solid'
@@ -641,18 +711,30 @@ class ShortArticulationEvent (ArticulationEvent):
     def ly_expression (self):
         return '%s%s' % (self.direction_mod (), self.type)
 
-class TremoloEvent (Event):
+class NoDirectionArticulationEvent (ArticulationEvent):
+    def ly_expression (self):
+        return '\\%s' % self.type
+
+class MarkupEvent (ShortArticulationEvent):
+    def __init__ (self):
+        ArticulationEvent.__init__ (self)
+        self.contents = None
+    def ly_expression (self):
+        if self.contents:
+            return "%s\\markup { %s }" % (self.direction_mod (), self.contents)
+
+class TremoloEvent (ArticulationEvent):
     def __init__ (self):
         Event.__init__ (self)
         self.bars = 0
 
     def ly_expression (self):
         str=''
-        if self.bars > 0:
+        if self.bars and self.bars > 0:
             str += ':%s' % (2 ** (2 + string.atoi (self.bars)))
         return str
 
-class BendEvent (Event):
+class BendEvent (ArticulationEvent):
     def __init__ (self):
         Event.__init__ (self)
         self.alter = 0
@@ -675,12 +757,23 @@ class RhythmicEvent(Event):
                 % self.duration.lisp_expression ())
     
 class RestEvent (RhythmicEvent):
+    def __init__ (self):
+        RhythmicEvent.__init__ (self)
+        self.pitch = None
     def ly_expression (self):
-        return 'r%s' % self.duration.ly_expression ()
+        if self.pitch:
+            return "%s%s\\rest" % (self.pitch.ly_expression (), self.duration.ly_expression ())
+        else:
+            return 'r%s' % self.duration.ly_expression ()
     
     def print_ly (self, printer):
-        printer('r')
-        self.duration.print_ly (printer)
+        if self.pitch:
+            self.pitch.print_ly (printer)
+            self.duration.print_ly (printer)
+            printer ('\\rest')
+        else:
+            printer('r')
+            self.duration.print_ly (printer)
 
 class SkipEvent (RhythmicEvent):
     def ly_expression (self):
@@ -827,6 +920,114 @@ class MultiMeasureRest(Music):
         return 'R%s' % self.duration.ly_expression ()
 
 
+class StaffGroup:
+    def __init__ (self, command = "StaffGroup"):
+        self.stafftype = command
+        self.id = None
+        self.instrument_name = None
+        self.short_instrument_name = None
+        self.symbol = None
+        self.spanbar = None
+        self.children = []
+        # part_information is a list with entries of the form
+        #     [staffid, voicelist]
+        # where voicelist is a list with entries of the form
+        #     [voiceid1, [lyricsid11, lyricsid12,...] ]
+        self.part_information = None
+
+    def appendStaff (self, staff):
+        self.children.append (staff)
+
+    def setPartInformation (self, part_name, staves_info):
+        if part_name == self.id:
+            self.part_information = staves_info
+        else:
+            for c in self.children:
+                c.setPartInformation (part_name, staves_info)
+
+    def print_ly_contents (self, printer):
+        for c in self.children:
+            if c:
+                c.print_ly (printer)
+    def print_ly_overrides (self, printer):
+        needs_with = False
+        needs_with |= self.spanbar == "no"
+        needs_with |= self.instrument_name != None
+        needs_with |= self.short_instrument_name != None
+        needs_with |= (self.symbol != None) and (self.symbol != "bracket")
+        if needs_with:
+            printer.dump ("\\with {")
+            if self.instrument_name or self.short_instrument_name:
+                printer.dump ("\\consists \"Instrument_name_engraver\"")
+            if self.spanbar == "no":
+                printer.dump ("\\override SpanBar #'transparent = ##t")
+            brack = {"brace": "SystemStartBrace",
+                     "none": "f",
+                     "line": "SystemStartBar"}.get (self.symbol, None)
+            if brack:
+                printer.dump ("systemStartDelimiter = #'%s" % brack)
+            printer.dump ("}")
+
+    def print_ly (self, printer):
+        if self.stafftype:
+            printer.dump ("\\new %s" % self.stafftype)
+        self.print_ly_overrides (printer)
+        printer.dump ("<<")
+        printer.newline ()
+        if self.stafftype and self.instrument_name:
+            printer.dump ("\\set %s.instrumentName = %s" % (self.stafftype, 
+                    escape_instrument_string (self.instrument_name)))
+            printer.newline ()
+        if self.stafftype and self.short_instrument_name:
+            printer.dump ("\\set %s.shortInstrumentName = %s\n" % (self.stafftype, 
+                    escape_instrument_string (self.short_instrument_name)))
+            printer.newline ()
+        self.print_ly_contents (printer)
+        printer.newline ()
+        printer.dump (">>")
+        printer.newline ()
+
+
+class Staff (StaffGroup):
+    def __init__ (self):
+        StaffGroup.__init__ (self, "Staff")
+        self.part = None
+
+    def print_ly_overrides (self, printer):
+        pass
+
+    def print_ly_contents (self, printer):
+        if not self.id or not self.part_information:
+            return
+
+        for [staff_id, voices] in self.part_information:
+            if staff_id:
+                printer ('\\context Staff = "%s" << ' % staff_id)
+            else:
+                printer ('\\context Staff << ')
+            printer.newline ()
+            n = 0
+            nr_voices = len (voices)
+            for [v, lyrics] in voices:
+                n += 1
+                voice_count_text = ''
+                if nr_voices > 1:
+                    voice_count_text = {1: ' \\voiceOne', 2: ' \\voiceTwo',
+                                        3: ' \\voiceThree'}.get (n, ' \\voiceFour')
+                printer ('\\context Voice = "%s" {%s \\%s }' % (v,voice_count_text,v))
+                printer.newline ()
+
+                for l in lyrics:
+                    printer ('\\new Lyrics \\lyricsto "%s" \\%s' % (v,l))
+                    printer.newline()
+            printer ('>>')
+
+    def print_ly (self, printer):
+        if self.part_information and len (self.part_information) > 1:
+            self.stafftype = "PianoStaff"
+        StaffGroup.print_ly (self, printer)
+
+
 def test_pitch ():
     bflat = Pitch()
     bflat.alteration = -1
index 6234459187c71c7556e7f1e3cf6ae3537c2556f8..80b332bf6487cda846aada5e7e986e483ff89839 100644 (file)
@@ -1,11 +1,14 @@
+# -*- coding: utf-8 -*-
 import new
 import string
 from rational import *
 import re
+import sys
+import copy
 
 def escape_ly_output_string (input_string):
     return_string = input_string
-    needs_quotes = not re.match ("^[a-zA-ZäöüÜÄÖßñ]*$", return_string);
+    needs_quotes = not re.match (u"^[a-zA-ZäöüÜÄÖßñ]*$", return_string);
     if needs_quotes:
         return_string = "\"" + string.replace (return_string, "\"", "\\\"") + "\""
     return return_string
@@ -41,11 +44,11 @@ class Xml_node:
        return ''.join ([c.get_text () for c in self._children])
 
     def message (self, msg):
-        print msg
+        sys.stderr.write (msg+'\n')
 
         p = self
         while p:
-            print '  In: <%s %s>' % (p._name, ' '.join (['%s=%s' % item for item in p._attribute_dict.items()]))
+            sys.stderr.write ('  In: <%s %s>\n' % (p._name, ' '.join (['%s=%s' % item for item in p._attribute_dict.items()])))
             p = p.get_parent ()
         
     def get_typed_children (self, klass):
@@ -81,7 +84,7 @@ class Xml_node:
     def get_unique_typed_child (self, klass):
        cn = self.get_typed_children(klass)
        if len (cn) <> 1:
-           print self.__dict__ 
+           sys.stderr.write (self.__dict__ + '\n')
            raise 'Child is not unique for', (klass, 'found', cn)
 
        return cn[0]
@@ -121,8 +124,7 @@ class Identification (Xml_node):
         for i in creators:
             if hasattr (i, 'type') and i.type == type:
                 return i.get_text ()
-            else:
-                return ''
+        return None
 
     def get_composer (self):
         c = self.get_creator ('composer')
@@ -133,13 +135,17 @@ class Identification (Xml_node):
         for i in creators:
             if not hasattr (i, 'type'):
                 return i.get_text ()
-        return c
+        return None
     def get_arranger (self):
         return self.get_creator ('arranger')
     def get_editor (self):
         return self.get_creator ('editor')
     def get_poet (self):
-        return self.get_creator ('poet')
+        v = self.get_creator ('lyricist')
+        if v:
+            return v
+        v = self.get_creator ('poet')
+        return v
     
     def get_encoding_information (self, type):
         enc = self.get_named_children ('encoding')
@@ -148,7 +154,7 @@ class Identification (Xml_node):
             if children:
                 return children[0].get_text ()
         else:
-            return ''
+            return None
       
     def get_encoding_software (self):
         return self.get_encoding_information ('software')
@@ -225,13 +231,15 @@ class Attributes (Measure_element):
 
         try:
             mxl = self.get_named_attribute ('time')
-            
-            beats = mxl.get_maybe_exist_named_child ('beats')
-            type = mxl.get_maybe_exist_named_child ('beat-type')
-            return (int (beats.get_text ()),
-                    int (type.get_text ()))
+            if mxl:
+                beats = mxl.get_maybe_exist_named_child ('beats')
+                type = mxl.get_maybe_exist_named_child ('beat-type')
+                return (int (beats.get_text ()),
+                        int (type.get_text ()))
+            else:
+                return (4, 4)
         except KeyError:
-            print 'error: requested time signature, but time sig unknown'
+            sys.stderr.write ('error: requested time signature, but time sig unknown\n')
             return (4, 4)
 
     # returns clef information in the form ("cleftype", position, octave-shift)
@@ -270,7 +278,7 @@ class Note (Measure_element):
         self.instrument_name = ''
         
     def get_duration_log (self):
-        ch = self.get_maybe_exist_typed_child (get_class (u'type'))
+        ch = self.get_maybe_exist_named_child (u'type')
 
         if ch:
             log = ch.get_text ().strip()
@@ -286,7 +294,7 @@ class Note (Measure_element):
                     'breve': -1,
                     'long': -2}.get (log, 0)
         else:
-            sys.stderr.write ("Encountered note without duration (no <type> element): %s\n" % self)
+            self.message ("Encountered note at %s without %s duration (no <type> element):" % (self.start, self.duration) )
             return 0
 
     def get_factor (self):
@@ -320,8 +328,13 @@ class Part_list (Music_xml_node):
         if instrument_name:
             return instrument_name
         else:
-            print "Opps, couldn't find instrument for ID=", id
+            sys.stderr.write ("Opps, couldn't find instrument for ID=%s\n" % id)
             return "Grand Piano"
+
+class Part_group (Music_xml_node):
+    pass
+class Score_part (Music_xml_node):
+    pass
         
 class Measure (Music_xml_node):
     def get_notes (self):
@@ -381,7 +394,7 @@ class Musicxml_voice:
            and e.get_maybe_exist_typed_child (Staff)):
            name = e.get_maybe_exist_typed_child (Staff).get_text ()
 
-           if not self._start_staff:
+           if not self._start_staff and not e.get_maybe_exist_typed_child (Grace):
                self._start_staff = name
            self._staves[name] = True
 
@@ -477,6 +490,16 @@ class Part (Music_xml_node):
                     last_measure_position = measure_position
                     now += dur
                     measure_position += dur
+                elif dur < Rational (0):
+                    # backup element, reset measure position
+                    now += dur
+                    measure_position += dur
+                    if measure_position < 0:
+                        # backup went beyond the measure start => reset to 0
+                        now -= measure_position
+                        measure_position = 0
+                    last_moment = now
+                    last_measure_position = measure_position
                 if n._name == 'note':
                     instrument = n.get_maybe_exist_named_child ('instrument')
                     if instrument:
@@ -497,19 +520,58 @@ class Part (Music_xml_node):
 
                 now = new_now
 
+    # modify attributes so that only those applying to the given staff remain
+    def extract_attributes_for_staff (part, attr, staff):
+        attributes = copy.copy (attr)
+        attributes._children = copy.copy (attr._children)
+        attributes._dict = attr._dict.copy ()
+        for c in attributes._children:
+            if hasattr (c, 'number') and c.number != staff:
+                attributes._children.remove (c)
+        return attributes
+
     def extract_voices (part):
        voices = {}
        measures = part.get_typed_children (Measure)
        elements = []
        for m in measures:
            elements.extend (m.get_all_children ())
+        # make sure we know all voices already so that dynamics, clefs, etc.
+        # can be assigned to the correct voices
+        voice_to_staff_dict = {}
+        for n in elements:
+            voice_id = n.get_maybe_exist_named_child (u'voice')
+            vid = None
+            if voice_id:
+                vid = voice_id.get_text ()
+
+            staff_id = n.get_maybe_exist_named_child (u'staff')
+            sid = None
+            if staff_id:
+                sid = staff_id.get_text ()
+            else:
+                sid = "None"
+            if vid and not voices.has_key (vid):
+                voices[vid] = Musicxml_voice()
+            if vid and sid and not n.get_maybe_exist_typed_child (Grace):
+                if not voice_to_staff_dict.has_key (vid):
+                    voice_to_staff_dict[vid] = sid
+        # invert the voice_to_staff_dict into a staff_to_voice_dict (since we
+        # need to assign staff-assigned objects like clefs, times, etc. to
+        # all the correct voices. This will never work entirely correct due
+        # to staff-switches, but that's the best we can do!
+        staff_to_voice_dict = {}
+        for (v,s) in voice_to_staff_dict.items ():
+            if not staff_to_voice_dict.has_key (s):
+                staff_to_voice_dict[s] = [v]
+            else:
+                staff_to_voice_dict[s].append (v)
+
 
        start_attr = None
        for n in elements:
            voice_id = n.get_maybe_exist_typed_child (get_class ('voice'))
 
-            # TODO: If the first element of a voice is a dynamics entry,
-            #       then voice_id is not yet set! Thus it will currently be ignored
            if not (voice_id or isinstance (n, Attributes) or isinstance (n, Direction) ):
                continue
 
@@ -517,22 +579,42 @@ class Part (Music_xml_node):
                start_attr = n
                continue
 
-           if isinstance (n, Attributes) or isinstance (n, Direction):
-               for v in voices.values ():
-                   v.add_element (n)
-               continue
+            if isinstance (n, Attributes):
+                # assign these only to the voices they really belongs to!
+                for (s, vids) in staff_to_voice_dict.items ():
+                    staff_attributes = part.extract_attributes_for_staff (n, s)
+                    for v in vids:
+                        voices[v].add_element (staff_attributes)
+                continue
+
+            if isinstance (n, Direction):
+                staff_id = n.get_maybe_exist_named_child (u'staff')
+                if staff_id:
+                    staff_id = staff_id.get_text ()
+                if staff_id:
+                    dir_voices = staff_to_voice_dict.get (staff_id, voices.keys ())
+                else:
+                    dir_voices = voices.keys ()
+                for v in dir_voices:
+                    voices[v].add_element (n)
+                continue
 
            id = voice_id.get_text ()
-           if not voices.has_key (id):
-               voices[id] = Musicxml_voice()
-
-           voices[id].add_element (n)
+            if hasattr (n, 'print-object') and getattr (n, 'print-object') == "no":
+                #Skip this note. 
+                pass
+            else:
+                voices[id].add_element (n)
 
        if start_attr:
-           for (k,v) in voices.items ():
-               v.insert (0, start_attr)
+            for (s, vids) in staff_to_voice_dict.items ():
+                staff_attributes = part.extract_attributes_for_staff (start_attr, s)
+                staff_attributes.read_self ()
+                for v in vids:
+                    voices[v].insert (0, staff_attributes)
+                    voices[v]._elements[0].read_self()
 
-       part._voices = voices
+        part._voices = voices
 
     def get_voices (self):
        return self._voices
@@ -612,12 +694,28 @@ class Chord (Music_xml_node):
 class Dot (Music_xml_node):
     pass
 
+# Rests in MusicXML are <note> blocks with a <rest> inside. This class is only
+# for the inner <rest> element, not the whole rest block.
 class Rest (Music_xml_node):
     def __init__ (self):
         Music_xml_node.__init__ (self)
         self._is_whole_measure = False
     def is_whole_measure (self):
         return self._is_whole_measure
+    def get_step (self):
+        ch = self.get_maybe_exist_typed_child (get_class (u'display-step'))
+        if ch:
+            step = ch.get_text ().strip ()
+            return step
+        else:
+            return None
+    def get_octave (self):
+        ch = self.get_maybe_exist_typed_child (get_class (u'display-octave'))
+        if ch:
+            step = ch.get_text ().strip ()
+            return int (step)
+        else:
+            return None
 
 class Type (Music_xml_node):
     pass
@@ -665,10 +763,12 @@ class_dict = {
        'note': Note,
         'octave-shift': Octave_shift,
        'part': Part,
+    'part-group': Part_group,
        'part-list': Part_list,
         'pedal': Pedal,
        'pitch': Pitch,
        'rest': Rest,
+    'score-part': Score_part,
        'slur': Slur,
        'staff': Staff,
         'syllabic': Syllabic,
index 55a313f3ecf1e423cb7c198b73bb02db17e97c5a..1334fbfd857ffb589c66ae5023b099196ad5100b 100644 (file)
@@ -924,65 +924,40 @@ some punctuation.  It doesn't have any letters."
   "Turn @code{text}, which should be a string, to small caps.
 @example
 \\markup \\smallCaps \"Text between double quotes\"
-@end example"
-  (define (make-small-caps-markup chars)
-    (cond ((null? chars)
-          (markup))
-         ((char-whitespace? (car chars))
-          (markup #:fontsize -2 #:simple (string-upcase (list->string (cdr chars)))))
-         (else
-          (markup #:hspace -1
-                  #:fontsize -2 #:simple (string-upcase (list->string chars))))))
-  (define (make-not-small-caps-markup chars)
-    (cond ((null? chars)
-          (markup))
-         ((char-whitespace? (car chars))
-          (markup #:simple (list->string (cdr chars))))
-         (else
-          (markup #:hspace -1
-                  #:simple (list->string chars)))))
-  (define (small-caps-aux done-markups current-chars rest-chars small? after-space?)
-    (cond ((null? rest-chars)
-          ;; the end of the string: build the markup
-          (make-line-markup (reverse! (cons ((if small?
-                                                 make-small-caps-markup
-                                                 make-not-small-caps-markup)
-                                             (reverse! current-chars))
-                                            done-markups))))
-         ((char-whitespace? (car rest-chars))
-          ;; a space char.
-          (small-caps-aux done-markups current-chars (cdr rest-chars) small? #t))
-         ((or (and small? (char-lower-case? (car rest-chars)))
-              (and (not small?) (not (char-lower-case? (car rest-chars)))))
-          ;; same case
-          ;; add the char to the current char list
-          (small-caps-aux done-markups
-                          (cons (car rest-chars)
-                                (if after-space? 
-                                    (cons #\space current-chars)
-                                    current-chars))
-                          (cdr rest-chars) 
-                          small?
-                          #f))
-         (else
-          ;; case change
-          ;; make a markup with current chars, and start a new list with new char
-          (small-caps-aux (cons ((if small?
-                                     make-small-caps-markup
-                                     make-not-small-caps-markup)
-                                 (reverse! current-chars))
-                                done-markups)
-                          (if after-space?
-                              (list (car rest-chars) #\space)
-                              (list (car rest-chars)))
-                          (cdr rest-chars)
-                          (not small?)
-                          #f))))
-  (interpret-markup layout props (small-caps-aux (list) 
-                                                (list) 
-                                                (cons #\space (string->list text))
-                                                #f
-                                                #f)))
+@end example
+
+Note: @code{\\smallCaps} does not support accented characters."
+  (define (char-list->markup chars lower)
+    (let ((final-string (string-upcase (reverse-list->string chars))))
+      (if lower
+         (markup #:fontsize -2 final-string)
+         final-string)))
+  (define (make-small-caps rest-chars currents current-is-lower prev-result)
+    (if (null? rest-chars)
+       (make-concat-markup
+         (reverse! (cons (char-list->markup currents current-is-lower)
+                         prev-result)))
+       (let* ((ch (car rest-chars))
+              (is-lower (char-lower-case? ch)))
+         (if (or (and current-is-lower is-lower)
+                 (and (not current-is-lower) (not is-lower)))
+             (make-small-caps (cdr rest-chars)
+                              (cons ch currents)
+                              is-lower
+                              prev-result)
+             (make-small-caps (cdr rest-chars)
+                              (list ch)
+                              is-lower
+                              (if (null? currents)
+                                  prev-result
+                                  (cons (char-list->markup
+                                           currents current-is-lower)
+                                        prev-result)))))))
+  (interpret-markup layout props
+    (if (string? text)
+       (make-small-caps (string->list text) (list) #f (list))
+       text)))
+
 
 (define-builtin-markup-command (caps layout props arg) (markup?)
   "Emit @var{arg} as small caps."
index c82e9ce5897176b3089349c91d877cdacec839d0..fd13721d9655121362f7dc2361b1c6d9dd84be3c 100644 (file)
@@ -5,6 +5,7 @@ import sys
 import re
 import os
 import string
+import codecs
 from gettext import gettext as _
 
 """
@@ -22,15 +23,18 @@ from rational import Rational
 def progress (str):
     sys.stderr.write (str + '\n')
     sys.stderr.flush ()
-    
+
+def error_message (str):
+    sys.stderr.write (str + '\n')
+    sys.stderr.flush ()
 
 # score information is contained in the <work>, <identification> or <movement-title> tags
 # extract those into a hash, indexed by proper lilypond header attributes
 def extract_score_information (tree):
-    score_information = {}
+    header = musicexp.Header ()
     def set_if_exists (field, value):
         if value:
-            score_information[field] = value
+            header.set_field (field, musicxml.escape_ly_output_string (value))
 
     work = tree.get_maybe_exist_named_child ('work')
     if work:
@@ -56,19 +60,83 @@ def extract_score_information (tree):
         set_if_exists ('encoder', ids.get_encoding_person ())
         set_if_exists ('encodingdescription', ids.get_encoding_description ())
 
-    return score_information
+    return header
+
+
+def extract_score_layout (part_list):
+    layout = musicexp.StaffGroup (None)
+    currentgroups_dict = {}
+    currentgroups = []
+    if not part_list:
+        return layout
+
+    def insert_into_layout (object):
+            if len (currentgroups) > 0:
+                group_to_insert = currentgroups_dict.get (currentgroups [-1], layout)
+            else:
+                group_to_insert = layout
+            group_to_insert.appendStaff (object)
+            return group_to_insert
+
+    def read_score_part (el):
+        if not isinstance (el, musicxml.Score_part):
+            return
+        staff = musicexp.Staff ()
+        staff.id = el.id
+        partname = el.get_maybe_exist_named_child ('part-name')
+        # Finale gives unnamed parts the name "MusicXML Part" automatically!
+        if partname and partname.get_text() != "MusicXML Part":
+            staff.instrument_name = partname.get_text ()
+        if el.get_maybe_exist_named_child ('part-abbreviation'):
+            staff.short_instrument_name = el.get_maybe_exist_named_child ('part-abbreviation').get_text ()
+        # TODO: Read in the MIDI device / instrument
+        return staff
+
+
+    parts_groups = part_list.get_all_children ()
+    # the start/end group tags are not necessarily ordered correctly, so
+    # we can't go through the children sequentially!
+
+    if len (parts_groups) == 1 and isinstance (parts_group[1], musicxml.Score_part):
+        return read_score_part (parts_group[1])
+
+    for el in parts_groups:
+        if isinstance (el, musicxml.Score_part):
+            staff = read_score_part (el)
+            insert_into_layout (staff)
+        elif isinstance (el, musicxml.Part_group):
+            if el.type == "start":
+                group = musicexp.StaffGroup ()
+                staff_group = insert_into_layout (group)
+                # If we're inserting a nested staffgroup, we need to use InnerStaffGroup
+                if staff_group != layout:
+                    group.stafftype = "InnerStaffGroup"
+                if hasattr (el, 'number'):
+                    id = el.number
+                    group.id = id
+                    currentgroups_dict[id] = group
+                    currentgroups.append (id)
+                if el.get_maybe_exist_named_child ('group-name'):
+                    group.instrument_name = el.get_maybe_exist_named_child ('group-name').get_text ()
+                if el.get_maybe_exist_named_child ('group-abbreviation'):
+                    group.short_instrument_name = el.get_maybe_exist_named_child ('group-abbreviation').get_text ()
+                if el.get_maybe_exist_named_child ('group-symbol'):
+                    group.symbol = el.get_maybe_exist_named_child ('group-symbol').get_text ()
+                if el.get_maybe_exist_named_child ('group-barline'):
+                    group.spanbar = el.get_maybe_exist_named_child ('group-barline').get_text ()
+
+            elif el.type == "stop":
+                # end the part-group, i.e. simply remove it from the lists
+                if hasattr (el, 'number'):
+                    pid = el.number
+                elif len (currentgroups) > 0:
+                    pid = el[-1]
+                if pid:
+                    del currentgroups_dict[pid]
+                    currentgroups.remove (pid)
+    return layout
 
 
-def print_ly_information (printer, score_information):
-    printer.dump ('\header {')
-    printer.newline ()
-    for (k, text) in score_information.items ():
-        printer.dump ('%s = %s' % (k, musicxml.escape_ly_output_string (text)))
-        printer.newline ()
-    printer.dump ('}')
-    printer.newline ()
-    printer.newline ()
-    
 
 def musicxml_duration_to_lily (mxl_note):
     d = musicexp.Duration ()
@@ -77,7 +145,10 @@ def musicxml_duration_to_lily (mxl_note):
     d.duration_log = mxl_note.get_duration_log ()
 
     d.dots = len (mxl_note.get_typed_children (musicxml.Dot))
-    d.factor = mxl_note._duration / d.get_length ()
+    # Grace notes by specification have duration 0, so no time modification 
+    # factor is possible. It even messes up the output with *0/1
+    if not mxl_note.get_maybe_exist_typed_child (musicxml.Grace):
+        d.factor = mxl_note._duration / d.get_length ()
 
     return d         
 
@@ -149,7 +220,7 @@ def musicxml_key_to_lily (attributes):
         start_pitch.step = n
         start_pitch.alteration = a
     except  KeyError:
-        print 'unknown mode', mode
+        error_message ('unknown mode %s' % mode)
 
     fifth = musicexp.Pitch()
     fifth.step = 4
@@ -177,8 +248,6 @@ def musicxml_attributes_to_lily (attrs):
     }
     for (k, func) in attr_dispatch.items ():
         children = attrs.get_named_children (k)
-
-        ## ugh: you get clefs spread over staves for piano
         if children:
             elts.append (func (attrs))
     
@@ -214,7 +283,7 @@ def musicxml_spanner_to_lily_event (mxl_event):
     if func:
         ev = func()
     else:
-        print 'unknown span event ', mxl_event
+        error_message ('unknown span event %s' % mxl_event)
 
 
     type = mxl_event.get_type ()
@@ -224,7 +293,7 @@ def musicxml_spanner_to_lily_event (mxl_event):
     if span_direction != None:
         ev.span_direction = span_direction
     else:
-        print 'unknown span type', type, 'for', 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')
@@ -247,72 +316,97 @@ def musicxml_fermata_to_lily_event (mxl_event):
     return ev
 
 def musicxml_tremolo_to_lily_event (mxl_event):
-    if mxl_event.get_name () != "tremolo": 
-        return
     ev = musicexp.TremoloEvent ()
     ev.bars = mxl_event.get_text ()
     return ev
 
 def musicxml_bend_to_lily_event (mxl_event):
-    if mxl_event.get_name () != "bend":
-        return
     ev = musicexp.BendEvent ()
     ev.alter = mxl_event.bend_alter ()
     return ev
 
 
+def musicxml_fingering_event (mxl_event):
+    ev = musicexp.ShortArticulationEvent ()
+    ev.type = mxl_event.get_text ()
+    return ev
+
+def musicxml_accidental_mark (mxl_event):
+    ev = musicexp.MarkupEvent ()
+    contents = { "sharp": "\\sharp",
+      "natural": "\\natural",
+      "flat": "\\flat",
+      "double-sharp": "\\doublesharp",
+      "sharp-sharp": "\\sharp\\sharp",
+      "flat-flat": "\\flat\\flat",
+      "flat-flat": "\\doubleflat",
+      "natural-sharp": "\\natural\\sharp",
+      "natural-flat": "\\natural\\flat",
+      "quarter-flat": "\\semiflat",
+      "quarter-sharp": "\\semisharp",
+      "three-quarters-flat": "\\sesquiflat",
+      "three-quarters-sharp": "\\sesquisharp",
+    }.get (mxl_event.get_text ())
+    if contents:
+        ev.contents = contents
+        return ev
+    else:
+        return None
+
+# translate articulations, ornaments and other notations into ArticulationEvents
+# possible values:
+#   -) string  (ArticulationEvent with that name)
+#   -) function (function(mxl_event) needs to return a full ArticulationEvent-derived object
+#   -) (class, name)  (like string, only that a different class than ArticulationEvent is used)
 # TODO: Some translations are missing!
-short_articulations_dict = {
-  "staccato": ".",
-  "tenuto": "-",
-  "stopped": "+",
-  "staccatissimo": "|",
-  "accent": ">",
-  "strong-accent": "^",
-  #"portato": "_", # does not exist in MusicXML
-    #"fingering": "", # fingering is special cased, as get_text() will be the event's name
-}
-articulations_dict = { 
-    ##### ORNAMENTS
-    "trill-mark": "trill", 
-    "turn": "turn", 
-    #"delayed-turn": "?", 
-    "inverted-turn": "reverseturn", 
-    #"shake": "?", 
-    #"wavy-line": "?", 
-    "mordent": "mordent",
-    "inverted-mordent": "prall",
-    #"schleifer": "?" 
-    ##### TECHNICALS
-    "up-bow": "upbow", 
-    "down-bow": "downbow", 
-    "harmonic": "flageolet", 
-    #"open-string": "", 
-    #"thumb-position": "", 
-    #"pluck": "", 
-    #"double-tongue": "", 
-    #"triple-tongue": "", 
-    #"snap-pizzicato": "", 
-    #"fret": "", 
-    #"string": "", 
-    #"hammer-on": "", 
-    #"pull-off": "", 
-    #"bend": "bendAfter #%s", # bend is special-cased, as we need to process the bend-alter subelement!
-    #"tap": "", 
-    #"heel": "", 
-    #"toe": "", 
-    #"fingernails": ""
-    ##### ARTICULATIONS
-    #"detached-legato": "", 
-    #"spiccato": "", 
-    #"scoop": "", 
-    #"plop": "", 
-    #"doit": "", 
+articulations_dict = {
+    "accent": (musicexp.ShortArticulationEvent, ">"),
+    "accidental-mark": musicxml_accidental_mark,
+    "bend": musicxml_bend_to_lily_event,
+    "breath-mark": (musicexp.NoDirectionArticulationEvent, "breathe"),
+    #"caesura": "caesura",
+    #"delayed-turn": "?",
+    #"detached-legato": "",
+    #"doit": "",
+    #"double-tongue": "",
+    "down-bow": "downbow",
     #"falloff": "",
-    "breath-mark": "breathe", 
-    #"caesura": "caesura", 
-    #"stress": "", 
+    "fingering": musicxml_fingering_event,
+    #"fingernails": "",
+    #"fret": "",
+    #"hammer-on": "",
+    "harmonic": "flageolet",
+    #"heel": "",
+    "inverted-mordent": "prall",
+    "inverted-turn": "reverseturn",
+    "mordent": "mordent",
+    #"open-string": "",
+    #"plop": "",
+    #"pluck": "",
+    #"portato": (musicexp.ShortArticulationEvent, "_"), # does not exist in MusicXML
+    #"pull-off": "",
+    #"schleifer": "?",
+    #"scoop": "",
+    #"shake": "?",
+    #"snap-pizzicato": "",
+    #"spiccato": "",
+    "staccatissimo": (musicexp.ShortArticulationEvent, "|"),
+    "staccato": (musicexp.ShortArticulationEvent, "."),
+    "stopped": (musicexp.ShortArticulationEvent, "+"),
+    #"stress": "",
+    #"string": "",
+    "strong-accent": (musicexp.ShortArticulationEvent, "^"),
+    #"tap": "",
+    "tenuto": (musicexp.ShortArticulationEvent, "-"),
+    #"thumb-position": "",
+    #"toe": "",
+    "turn": "turn",
+    "tremolo": musicxml_tremolo_to_lily_event,
+    "trill-mark": "trill",
+    #"triple-tongue": "",
     #"unstress": ""
+    "up-bow": "upbow",
+    #"wavy-line": "?",
 }
 articulation_spanners = [ "wavy-line" ]
 
@@ -321,26 +415,18 @@ def musicxml_articulation_to_lily_event (mxl_event):
     if mxl_event.get_name () in articulation_spanners:
         return musicxml_spanner_to_lily_event (mxl_event)
 
-    # special case, because of the bend-alter subelement
-    if mxl_event.get_name() == "bend":
-        return musicxml_bend_to_lily_event (mxl_event)
-
-    # If we can write a shorthand, use them!
-    if mxl_event.get_name() == "fingering":
-        ev = musicexp.ShortArticulationEvent ()
-        tp = mxl_event.get_text()
-    # In all other cases, use the dicts to translate the xml tag name to a proper lilypond command
-    elif short_articulations_dict.get (mxl_event.get_name ()):
-        ev = musicexp.ShortArticulationEvent ()
-        tp = short_articulations_dict.get (mxl_event.get_name ())
-    else:
-        ev = musicexp.ArticulationEvent ()
-        tp = articulations_dict.get (mxl_event.get_name ())
-
-    if not tp:
+    tmp_tp = articulations_dict.get (mxl_event.get_name ())
+    if not tmp_tp:
         return
-    
-    ev.type = tp
+
+    if isinstance (tmp_tp, str):
+        ev = musicexp.ArticulationEvent ()
+        ev.type = tmp_tp
+    elif isinstance (tmp_tp, tuple):
+        ev = tmp_tp[0] ()
+        ev.type = tmp_tp[1]
+    else:
+        ev = tmp_tp (mxl_event)
 
     # Some articulations use the type attribute, other the placement...
     dir = None
@@ -348,9 +434,6 @@ def musicxml_articulation_to_lily_event (mxl_event):
         dir = musicxml_direction_to_indicator (mxl_event.type)
     if hasattr (mxl_event, 'placement'):
         dir = musicxml_direction_to_indicator (mxl_event.placement)
-    # \breathe cannot have any direction modifier (^, _, -)!
-    if dir and tp != "breathe":
-        ev.force_direction = dir
     return ev
 
 
@@ -396,7 +479,8 @@ instrument_drumtype_dict = {
     'Side Stick': 'sidestick',
     'Open Triangle': 'opentriangle',
     'Mute Triangle': 'mutetriangle',
-    'Tambourine': 'tambourine'
+    'Tambourine': 'tambourine',
+    'Bass Drum': 'bassdrum',
 }
 
 def musicxml_note_to_lily_main_event (n):
@@ -416,14 +500,19 @@ def musicxml_note_to_lily_main_event (n):
             event.cautionary = acc.editorial
         
     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()
+        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)
         if drum_type:
             event.drum_type = drum_type
         else:
-            n.message ("drum %s type unknow, please add to instrument_drumtype_dict" % n.instrument_name)
+            n.message ("drum %s type unknown, please add to instrument_drumtype_dict" % n.instrument_name)
             event.drum_type = 'acousticsnare'
     
     if not event:
@@ -433,7 +522,7 @@ def musicxml_note_to_lily_main_event (n):
     return event
 
 
-## todo
+## TODO
 class NegativeSkip:
     def __init__ (self, here, dest):
         self.here = here
@@ -459,7 +548,11 @@ class LilyPondVoiceBuilder:
         
     def add_multibar_rest (self, duration):
         self.pending_multibar += duration
-        
+
+    def set_duration (self, duration):
+        self.end_moment = self.begin_moment + duration
+    def current_duration (self):
+        return self.end_moment - self.begin_moment
         
     def add_music (self, music, duration):
         assert isinstance (music, musicexp.Music)
@@ -468,14 +561,21 @@ class LilyPondVoiceBuilder:
 
         self.elements.append (music)
         self.begin_moment = self.end_moment
-        self.end_moment = self.begin_moment + duration 
+        self.set_duration (duration)
         
         # Insert all pending dynamics right after the note/rest:
-        if duration > Rational (0):
+        if isinstance (music, musicexp.EventChord) and self.pending_dynamics:
             for d in self.pending_dynamics:
-                self.elements.append (d)
+                music.append (d)
             self.pending_dynamics = []
 
+    # Insert some music command that does not affect the position in the measure
+    def add_command (self, command):
+        assert isinstance (command, musicexp.Music)
+        if self.pending_multibar > Rational (0):
+            self._insert_multibar ()
+        self.elements.append (command)
+
     def add_dynamics (self, dynamic):
         # store the dynamic item(s) until we encounter the next note/rest:
         self.pending_dynamics.append (dynamic)
@@ -490,7 +590,7 @@ class LilyPondVoiceBuilder:
         diff = moment - current_end
         
         if diff < Rational (0):
-            print 'Negative skip', diff
+            error_message ('Negative skip %s' % diff)
             diff = Rational (0)
 
         if diff > Rational (0):
@@ -521,7 +621,6 @@ class LilyPondVoiceBuilder:
         else:
             self.jumpto (starting_at)
             value = None
-
         return value
         
     def correct_negative_skip (self, goto):
@@ -535,6 +634,9 @@ def musicxml_voice_to_lily_voice (voice):
     modes_found = {}
     lyrics = {}
         
+    # TODO: Make sure that the keys in the dict don't get reordered, since
+    #       we need the correct ordering of the lyrics stanzas! By default,
+    #       a dict will reorder its keys
     for k in voice.get_lyrics_numbers ():
         lyrics[k] = []
 
@@ -549,7 +651,7 @@ def musicxml_voice_to_lily_voice (voice):
                 if a.wait_for_note ():
                     voice_builder.add_dynamics (a)
                 else:
-                    voice_builder.add_music (a, 0)
+                    voice_builder.add_command (a)
             continue
         
         if not n.get_maybe_exist_named_child ('chord'):
@@ -572,7 +674,7 @@ def musicxml_voice_to_lily_voice (voice):
             continue
 
         if not n.__class__.__name__ == 'Note':
-            print 'not a Note or Attributes?', n
+            error_message ('not a Note or Attributes? %s' % n)
             continue
 
         rest = n.get_maybe_exist_typed_child (musicxml.Rest)
@@ -600,7 +702,31 @@ def musicxml_voice_to_lily_voice (voice):
             ev_chord = musicexp.EventChord()
             voice_builder.add_music (ev_chord, n._duration)
 
-        ev_chord.append (main_event)
+        grace = n.get_maybe_exist_typed_child (musicxml.Grace)
+        if grace:
+            grace_chord = None
+            if n.get_maybe_exist_typed_child (musicxml.Chord) and ev_chord.grace_elements:
+                grace_chord = ev_chord.grace_elements.get_last_event_chord ()
+            if not grace_chord:
+                grace_chord = musicexp.EventChord ()
+                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
+            ev_chord.append (main_event)
+        else:
+            ev_chord.append (main_event)
+            # When a note/chord has grace notes (duration==0), the duration of the
+            # event chord is not yet known, but the event chord was already added
+            # with duration 0. The following correct this when we hit the real note!
+            if voice_builder.current_duration () == 0 and n._duration > 0:
+                voice_builder.set_duration (n._duration)
         
         notations = n.get_maybe_exist_typed_child (musicxml.Notations)
         tuplet_event = None
@@ -625,7 +751,7 @@ def musicxml_voice_to_lily_voice (voice):
                 if s.get_type () in ('start','stop')]
             if slurs:
                 if len (slurs) > 1:
-                    print 'more than 1 slur?'
+                    error_message ('more than 1 slur?')
 
                 lily_ev = musicxml_spanner_to_lily_event (slurs[0])
                 ev_chord.append (lily_ev)
@@ -689,19 +815,20 @@ def musicxml_voice_to_lily_voice (voice):
                         ev_chord.append (ev)
 
         # Extract the lyrics
-        note_lyrics_processed = []
-        note_lyrics_elements = n.get_typed_children (musicxml.Lyric)
-        for l in note_lyrics_elements:
-            if l.get_number () < 0:
-                for k in lyrics.keys ():
-                    lyrics[k].append (l.lyric_to_text ())
-                    note_lyrics_processed.append (k)
-            else:
-                lyrics[l.number].append(l.lyric_to_text ())
-                note_lyrics_processed.append (l.number)
-        for lnr in lyrics.keys ():
-            if not lnr in note_lyrics_processed:
-                lyrics[lnr].append ("\skip4")
+        if not rest:
+            note_lyrics_processed = []
+            note_lyrics_elements = n.get_typed_children (musicxml.Lyric)
+            for l in note_lyrics_elements:
+                if l.get_number () < 0:
+                    for k in lyrics.keys ():
+                        lyrics[k].append (l.lyric_to_text ())
+                        note_lyrics_processed.append (k)
+                else:
+                    lyrics[l.number].append(l.lyric_to_text ())
+                    note_lyrics_processed.append (l.number)
+            for lnr in lyrics.keys ():
+                if not lnr in note_lyrics_processed:
+                    lyrics[lnr].append ("\skip4")
 
 
         mxl_beams = [b for b in n.get_named_children ('beam')
@@ -740,7 +867,7 @@ def musicxml_voice_to_lily_voice (voice):
     
     
     if len (modes_found) > 1:
-       print 'Too many modes found', modes_found.keys ()
+       error_message ('Too many modes found %s' % modes_found.keys ())
 
     return_value = seq_music
     for mode in modes_found.keys ():
@@ -771,6 +898,17 @@ def musicxml_pitch_to_lily (mxl_pitch):
     p.octave = mxl_pitch.get_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
+    octave = mxl_rest.get_octave ()
+    if octave and p:
+        p.octave = octave - 4
+    return p
+
 def voices_in_part (part):
     """Return a Name -> Voice dictionary for PART"""
     part.interpret ()
@@ -853,15 +991,15 @@ def print_voice_definitions (printer, part_list, voices):
         part_dict[part.id] = (part, nv_dict)
 
     for part in part_list:
-        (part, nv_dict) = part_dict.get (part.id, (None, {}))
+        (p, nv_dict) = part_dict.get (part.id, (None, {}))
         for (name, ((voice, lyrics), mxlvoice)) in nv_dict.items ():
-            k = music_xml_voice_name_to_lily_name (part, name)
+            k = music_xml_voice_name_to_lily_name (p, name)
             printer.dump ('%s = ' % k)
             voice.print_ly (printer)
             printer.newline()
             
             for l in lyrics.keys ():
-                lname = music_xml_lyrics_name_to_lily_name (part, name, l)
+                lname = music_xml_lyrics_name_to_lily_name (p, name, l)
                 printer.dump ('%s = ' %lname )
                 lyrics[l].print_ly (printer)
                 printer.newline()
@@ -869,75 +1007,56 @@ def print_voice_definitions (printer, part_list, voices):
             
 def uniq_list (l):
     return dict ([(elt,1) for elt in l]).keys ()
-    
-def print_score_setup (printer, part_list, voices):
-    part_dict = dict ([(p.id, p) for p in voices.keys ()]) 
 
-    printer ('<<')
-    printer.newline ()
+# format the information about the staff in the form 
+#     [staffid,
+#         [
+#            [voiceid1, [lyricsid11, lyricsid12,...] ...],
+#            [voiceid2, [lyricsid21, lyricsid22,...] ...],
+#            ...
+#         ]
+#     ]
+# raw_voices is of the form [(voicename, lyrics)*]
+def format_staff_info (part, staff_id, raw_voices):
+    voices = []
+    for (v, lyrics) in raw_voices:
+        voice_name = music_xml_voice_name_to_lily_name (part, v)
+        voice_lyrics = [music_xml_lyrics_name_to_lily_name (part, v, l)
+                   for l in lyrics.keys ()]
+        voices.append ([voice_name, voice_lyrics])
+    return [staff_id, voices]
+
+def update_score_setup (score_structure, part_list, voices):
+    part_dict = dict ([(p.id, p) for p in voices.keys ()])
+    final_part_dict = {}
+
     for part_definition in part_list:
         part_name = part_definition.id
         part = part_dict.get (part_name)
         if not part:
-            print 'unknown part in part-list:', part_name
+            error_message ('unknown part in part-list: %s' % part_name)
             continue
 
-        # TODO: Apparently this is broken! There is always only one staff...
         nv_dict = voices.get (part)
         staves = reduce (lambda x,y: x+ y,
                 [mxlvoice._staves.keys ()
                  for (v, mxlvoice) in nv_dict.values ()],
                 [])
-
+        staves_info = []
         if len (staves) > 1:
+            staves_info = []
             staves = uniq_list (staves)
             staves.sort ()
-            printer ('\\context PianoStaff << ')
-            printer.newline ()
-            
             for s in staves:
-                staff_voices = [(music_xml_voice_name_to_lily_name (part, voice_name), voice_name, v)
-                        for (voice_name, (v, mxlvoice)) in nv_dict.items ()
-                        if mxlvoice._start_staff == s]
-                
-                printer ('\\context Staff = "%s" << ' % s)
-                printer.newline ()
-                for (v, voice_name, (music, lyrics)) in staff_voices:
-                    printer ('\\context Voice = "%s"  \\%s' % (v,v))
-                    printer.newline ()
-                    
-                    # Assign the lyrics to that voice
-                    for l in lyrics.keys ():
-                        ll = music_xml_lyrics_name_to_lily_name (part, voice_name, l)
-                        printer ('\\new Lyrics \\lyricsto "%s" \\%s' % (v, ll))
-                        printer.newline()
-                        printer.newline()
-                    
-                printer ('>>')
-                printer.newline ()
-                
-            printer ('>>')
-            printer.newline ()
-            
+                thisstaff_raw_voices = [(voice_name, lyrics) 
+                    for (voice_name, ((music, lyrics), mxlvoice)) in nv_dict.items ()
+                    if mxlvoice._start_staff == s]
+                staves_info.append (format_staff_info (part, s, thisstaff_raw_voices))
         else:
-            printer ('\\new Staff <<')
-            printer.newline ()
-            for (n,v) in nv_dict.items ():
-                ((music, lyrics), voice) = v
-                nn = music_xml_voice_name_to_lily_name (part, n) 
-                printer ('\\context Voice = "%s"  \\%s' % (nn,nn))
-
-                # Assign the lyrics to that voice
-                for l in lyrics.keys ():
-                    ll = music_xml_lyrics_name_to_lily_name (part, n, l)
-                    printer ('\\new Lyrics \\lyricsto "%s" \\%s' % (nn, ll))
-                    printer.newline()
-
-            printer ('>>')
-            printer.newline ()
-            
-    printer ('>>')
-    printer.newline ()
+            thisstaff_raw_voices = [(voice_name, lyrics) 
+                for (voice_name, ((music, lyrics), mxlvoice)) in nv_dict.items ()]
+            staves_info.append (format_staff_info (part, None, thisstaff_raw_voices))
+        score_structure.setPartInformation (part_name, staves_info)
 
 def print_ly_preamble (printer, filename):
     printer.dump_version ()
@@ -965,16 +1084,17 @@ def convert (filename, options):
     
     tree = read_musicxml (filename, options.use_lxml)
 
-    part_list = []
-    id_instrument_map = {}
-    if tree.get_maybe_exist_typed_child (musicxml.Part_list):
-        mxl_pl = tree.get_maybe_exist_typed_child (musicxml.Part_list)
+    score_structure = None
+    mxl_pl = tree.get_maybe_exist_typed_child (musicxml.Part_list)
+    if mxl_pl:
+        score_structure = extract_score_layout (mxl_pl)
         part_list = mxl_pl.get_named_children ("score-part")
-        
+
     # score information is contained in the <work>, <identification> or <movement-title> tags
     score_information = extract_score_information (tree)
     parts = tree.get_typed_children (musicxml.Part)
     voices = get_all_voices (parts)
+    update_score_setup (score_structure, part_list, voices)
 
     if not options.output_name:
         options.output_name = os.path.basename (filename) 
@@ -988,10 +1108,10 @@ def convert (filename, options):
 
     printer = musicexp.Output_printer()
     progress ("Output to `%s'" % defs_ly_name)
-    printer.set_file (open (defs_ly_name, 'w'))
+    printer.set_file (codecs.open (defs_ly_name, 'wb', encoding='utf-8'))
 
     print_ly_preamble (printer, filename)
-    print_ly_information (printer, score_information)
+    score_information.print_ly (printer)
     print_voice_definitions (printer, part_list, voices)
     
     printer.close ()
@@ -999,10 +1119,10 @@ def convert (filename, options):
     
     progress ("Output to `%s'" % driver_ly_name)
     printer = musicexp.Output_printer()
-    printer.set_file (open (driver_ly_name, 'w'))
+    printer.set_file (codecs.open (driver_ly_name, 'wb', encoding='utf-8'))
     print_ly_preamble (printer, filename)
     printer.dump (r'\include "%s"' % os.path.basename (defs_ly_name))
-    print_score_setup (printer, part_list, voices)
+    score_structure.print_ly (printer)
     printer.newline ()
 
     return voices