I am trying to create a musicXML file with 2 voices:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 4.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="4.0">
<part-list>
<score-part id="P1">
<part-name>Music</part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>1</divisions>
<key>
<fifths>1</fifths>
</key>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
<note>
<voice>1</voice>
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>2</duration>
<type>half</type>
</note>
<note>
<pitch>
<step>G</step>
<alter>0</alter>
<octave>4</octave>
</pitch>
<voice>1</voice>
<duration>2</duration>
<type>half</type>
</note>
<note>
<pitch>
<step>C</step>
<alter>0</alter>
<octave>4</octave>
</pitch>
<voice>2</voice>
<duration>2</duration>
<type>half</type>
</note>
<note>
<pitch>
<step>A</step>
<alter>0</alter>
<octave>3</octave>
</pitch>
<voice>2</voice>
<duration>2</duration>
<type>half</type>
</note>
</measure>
</part>
</score-partwise>
It seems ok to me: the notes are in the same measure. But when I use musicxml2ly
and then lilypond
I get the second voice shifted to the next measurement:
What is wrong?
Every note in musicxml moves the time-pointer forward, so my musicxml represents two voices that follow each other. To make them parallel we need to <backup>
a full measure before the notes of voice 2 to reset the time-pointer to the start of the measure.
<note>
<voice>1</voice>
...
</note>
<backup>
<duration>4</duration>
</backup>
<note>
<voice>2</voice>
...
</note>
https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/backup/