Closed craigsapp closed 1 year ago
This is a music21 bug (written up in music21 issue # 1335) for which I have proposed PR # 1336. Please track this bug there. Thank you for the report!
I am re-opening this. I am working on a music21 fix (that's the right place for it, in music21's MusicXML writer), but I can work around this in converter21 as well (for music21 v7), so I'll keep this issue open for that work.
music21 v8 (currently in alpha) fixes this. Keeping this open to work around it in converter21.
music21 v8 shipped a few months back, and this is completely fixed there.
The voice/staff assignments for the Humdrum-to-MusicXML converter needs to be adjusted to allow import into Dorico. Otherwise, the voice/staff system being used is non-standard, although Musescore can understand it. The problem is that the voice numbers should be unique and not repeated for each staff in a multi-staff part. The traditional way of doing this in Finale export is to assign voices 1-4 to staff 1, and voices 5-8 to staff 2. In other words, the first voice on staff 2 is voice 5 (where you are reusing voice 1 on staff 2 as a different voice than voice 1 on staff 1).
For this Humdrum data:
The expected rendering is:
https://verovio.humdrum.org?t=KiprZXJuCSoqa2VybgoqY2xlZkY0CSpjbGVmRzIKPTEJPTEKNEMJNGNjCjRECTRkZAo0RQk0ZWUKNEYJNGZmCj0JPQoqLQkqLQo=
Here is the current MusicXML conversion:
Click to view MusicXML conversion of above Humdrum data.
```xmlRendering in Musescore is mostly correct:
although there is a problem with one staff having a final barline and the other a single barline (they should both be single barlines).
Click to view MusicXML data from Musescore
```xmlMusescore likes to assign 4 voices to each staff, with staff 1 containing voices 1-4, and staff 2 with voices 5 -8 (This is similar to Finale). So the best situation would be to start with voice 5 as the first voice on a second staff of a two-staff part, rather than calling it voice 1 on staff 2.
In Dorico, there is a significant rendering problem:
Dorico prioritizes the
<voice>
element over the<staff>
, and it is seeing two notes for the same voice at the same time, so it is merging them into a chord as illustrated above. Here is the same music entered by hand in Dorico:Click to view MusicXML export from Dorico
```xmlDorico is creating a voice 1 on staff 1 and voice 2 on staff 2 when it exports to MusicXML.
Here is the Musescore MusicXML export loaded into Dorico, which renders as expected: