@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},
@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
Rune Zedeler
Maximilian Albert
Milan Zamazal
-
+Reinhold Kainhofer - musicxml2ly development
TRANSLATORS
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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
+Staff
+Name</part-name>
+ <part-abbreviation>St.
+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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
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 ();
}
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
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 = #'()
. 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.
# 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"
#: 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
#: 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"
#: 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
#: 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."
#: 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
#: 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."
#: 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"
#: 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
#: 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 ... "
"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."
#: 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
#, 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
#: 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"
#: 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"
#. 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.
#: 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
#: 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
#: 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"
#: 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"
#. (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
#: 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"
#: 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"
#: 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
#: 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
"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
"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]"
"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"
#: 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.
#: 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)"
#: 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"
"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 ""
#: 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"
#: 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
#, 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
#: 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
#: 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
#: 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"
#: 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
#: 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"
#: 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
#: 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: "
#: 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
#: 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"
#: 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"
#: 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
#: backend-library.scm:128
#, scheme-format
msgid "Converting to ~a..."
-msgstr "Conversion à « ~a »..."
+msgstr "Conversion à ~a..."
#: backend-library.scm:166
#, scheme-format
#: 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?"
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"
#: 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..."
#: 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"
#: 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
#: 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
#. 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
#: 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
-# 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"
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 ""
"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 ""
"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 ""
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 ""
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"
"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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "placing below"
msgstr ""
-#: note-collision.cc:464
+#: note-collision.cc:463
msgid "ignoring too many clashing note columns"
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?"
msgid "cannot end slur"
msgstr ""
-#: slur.cc:355
+#: slur.cc:359
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
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 ""
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 ""
msgid "unterminated text spanner"
msgstr ""
-#: tie-engraver.cc:267
+#: tie-engraver.cc:262
msgid "lonely tie"
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 -b 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"
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 ""
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 ""
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 ""
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)
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):
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()
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:
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:
pass
class SpanEvent (Event):
- def __init__(self):
+ def __init__ (self):
Event.__init__ (self)
self.span_direction = 0 # start/stop
self.line_type = 'solid'
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
% 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):
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
+# -*- 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
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):
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]
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')
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')
if children:
return children[0].get_text ()
else:
- return ''
+ return None
def get_encoding_software (self):
return self.get_encoding_information ('software')
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)
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()
'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):
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):
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
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:
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
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
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
'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,
"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."
import re
import os
import string
+import codecs
from gettext import gettext as _
"""
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:
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 ()
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
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
}
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))
if func:
ev = func()
else:
- print 'unknown span event ', mxl_event
+ error_message ('unknown span event %s' % mxl_event)
type = mxl_event.get_type ()
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')
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" ]
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
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
'Side Stick': 'sidestick',
'Open Triangle': 'opentriangle',
'Mute Triangle': 'mutetriangle',
- 'Tambourine': 'tambourine'
+ 'Tambourine': 'tambourine',
+ 'Bass Drum': 'bassdrum',
}
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:
return event
-## todo
+## TODO
class NegativeSkip:
def __init__ (self, here, dest):
self.here = here
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)
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)
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):
else:
self.jumpto (starting_at)
value = None
-
return value
def correct_negative_skip (self, goto):
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] = []
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'):
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)
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
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)
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')
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 ():
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 ()
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()
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 ()
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)
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 ()
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