Entered voices don't match outputted voices don't match in musicxml file
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
No
Workaround
Yes
Project
- Create a score and label each voice, 1-4 (see attached voices-in-ui.png)
- Export as musicxml (see attached tester.musicxml)
- Examine the file and note that the recorded voices don't likely match the labels
- Note that there are voices 5, 7 and 8 in the musicxml, which is the bug :)
I am working on some music analysis and it is very important that the voices match what I specify in musicxml. I spent ages marking the voices in Bach's Goldberg Variations and when I analyze the score using music21 I have to remap the voices, which is rather error prone and generally annoying :)
Thanks for the great tool!
More version info: OS: macOS 10.16, Arch.: x86_64, MuseScore version (64-bit): 3.6.2.548020600, revision: 3224f34
Attachment | Size |
---|---|
tester.musicxml | 4.39 KB |
voices-in-ui.png | 34.12 KB |
Comments
Relates to #270643: [EPIC] MusicXML import/export issues
It seems you have a two-staff part, using voices 1 and 2 of part 1, and 3 and 4 of part 2 and expect the voice numbers in MusicXML to be 1, 2, 3 and 4. Please confirm or deny to verify my assumption.
Note that your picture shows five voices instead of four. Reason for this is that MuseScore's design (at least up to version 3.x) requires the first voice in each staff.
Also note that in MusicXML voices are strings defined per part (with no restrictions besides uniqueness), while in MuseScore voices are fixed at numbers 1 to 4 per staff.
If MuseScore were to export voices 3 and 4 of staff 2 as voice 3 and 4 in MusicXML, it would have to verify voices 3 and 4 of staff are empty and it would have know to voice 1 of staff 2 is a special case. Obviously, such an algorithm has never been implemented as it implements a rather unusual requirement.
See https://musescore.org/en/handbook/3/voices which pretty clearly states that you should start entering notes to voice 1 in every staff.
Which at least should be the workaround here. Swap voice 1 and 3, swap voice 2 and 4, remove the rests in voice 3 and 4.
Or enter the music using voice 1 and 2 from the start, in every staff
Ahh, I see. Thanks for passing along the documentation about voices. Maybe what I am looking for isn't really a thing in Musescore. I guess I am looking for more the notion of soprano, alto, tenor and bass. It doesn't matter the staff, the bass line is the bass line and same with the other voices. My goal is to be able to color musical lines throughout a piece (specifically some Bach) and the voices will often move between staves. So sounding like that's not a real possibility with Musescore right now?
MuseScore will always number voices created in staff 2 as voice 5, 6, 7 and 8, with voice 5 required. There is no way around that except changing MuseScore. As a workaround you could use cross-staff notation (see https://musescore.org/en/handbook/3/cross-staff-notation): create voice 3 and 4 in staff 1 and move them to staff 2. This results in voice 3 and 4 on staff 2. See attached example.
Thanks for the info! Musescore somehow is persisting the Voices and so it must be in the musicxml or xml somewhere, right? When I say Voices I mean what I specified by clicking 1, 2, 3 or 4 in the UI. I have looked through the file and sure can't see where it is :)
See https://www.w3.org/2021/06/musicxml40/musicxml-reference/examples/voice…