Am 28.09.2012 um 12:09 schrieb pls:

> A <note>-element containing a <chord/>- and a <staff>-element but no 
> <voice>-element causes an additional empty staff above the defined one.
> 
> Tiny example:
> <missing_voice-element_in_a_chorded_note_leads_to_empty_second_staff.xml>
> 
> (unwanted) result: 
> <missing_voice-element_in_a_chorded_note_leads_to_empty_second_staff.png>
> 
> The wrong MusicXML-markup was caused by Sibelius 7.0.0.
> 
> In this case musicxml2ly puts the chorded note without a <voice>-element in 
> an own voice (PartPOneVoiceNone) instead of placing the notes in a chord 
> construct (< a' c''>1) in the same voice. She also surrounds the \context 
> Staff block by an additional \new Staff block which causes the additional 
> staff.

> 
> musicxml2ly should be taught to be tolerant and automatically assign notes 
> containing <chord/>-elements to the voice of the first note of the chord. 
> (This first note does not contain a <chord/>-element.)


Hm, the above obviously seems to tell only half the story: Without a 
<staff>-element the .xml-file does NOT cause an additional empty staff above 
the normal one even though two voices are exported and the \context Staff block 
is surrounded by a \new Staff block. So this means that I have to correct 
myself. There are two issues involved here:

1) if an .xml file contains only <staff> elements with value "1" (i.e. 
<staff>1</staff>) musicxml2ly erroneously thinks that there are several staves. 
The result is:

\new Staff <<
            \context Staff ="1" << 
                \context Voice = "PartPOneVoiceOne" { \voiceOne 
\PartPOneVoiceOne }
                \context Voice = "PartPOneVoiceNone" { \voiceTwo 
\PartPOneVoiceNone }
                >>
            >>

This leads to a second unwanted empty staff.

Without any <staff> element in the .xml file the result is:

\new Staff <<
            \context Staff << 
                \context Voice = "PartPOneVoiceOne" { \voiceOne 
\PartPOneVoiceOne }
                \context Voice = "PartPOneVoiceNone" { \voiceTwo 
\PartPOneVoiceNone }
                >>
            >>

and there is NO unwanted additional staff!

In this case musicxml2ly should be taught to ignore the element value if there 
is only one staff.

2) if a <note> element contains a <chord/> element but no <voice> element 
musicxml2ly puts the chorded note without a <voice>-element in an own voice 
(PartPOneVoiceNone) instead of placing the notes in a chord construct (< a' 
c''>1) in the same voice.

In this case musicxml2ly should be taught to be tolerant and automatically 
assign notes containing <chord/>-elements to the voice of the first note of the 
chord. (In MusicXML the first note of a chord does not contain a 
<chord/>-element.)

hth
patrick


_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to