[MusicXML import] [1.2] Notes are interpreted as rests, wrong lengths, strange results

• Mar 5, 2012 - 10:53
S2 - Critical

I come from Sibelius7. I created a score in Sibelius without any specials. only changes to inputs are enharmonic changes.
After exporting with MusicXML and import in MuseScore release version, the results are strange, wrong and not editable.
Trying out nightly build crash immediately with opening xml.

I attached the XML so you can test it by yourself.


Title [MusicXML import] Notes are interpreted as rests, wrong lengths, strange results [MusicXML import] [1.2] Notes are interpreted as rests, wrong lengths, strange results

The reason this file does not import correctly into MuseScore is that it uses voice 1 for both the voice in staff 1 and the voice in staff 2, which MuseScore does not expect and/or support. To show this, I have changed the voice number for the staff 2 voice from 1 to 9 for the first two measures. The resulting file imports correctly, it is attached (note: first two measures only !).

It is my understanding of the MusicXML file format that using the same voice number for two overlapping voices is not allowed. I may be wrong on this, as the description is a bit vague.

Unfortunately, both Finale Notepad and Sibelius import the file without problems.

Problem also occurs with the current branch. Set to critical as the inability to import Sibelius files that our competition handles OK is not good.

I don't have an obvious solution yet.

Attachment Size
Keith_Jarret_M1_2_fixed.xml 11.19 KB

Thanks for the tip. I will assign the voices in lower staff to another voice and try again.

From musical perspective though it is correct to use same voice. As you see in first bars, it is one voice using the complete range, and instead doing this in one stuff with changing clefs it's used very often this way for better readability.

Thanks for pointing that out, I hadn't realized actually there is only one (musical) voice. That, of course, is completely logical, legal in MusicXML and can be done in MuseScore (see attached example).

Note, though, that your original MusicXML file contains not one but two voices: one in each staff. Both are called "voice 1" in the MusicXML file, which causes the MuseScore import problem.

I would really like to know in more detail how Sibelius assigns voices in the MusicXML file. As I am unable to use Sibelius myself for generating example files, could you perhaps generate a few simple example files and attach these ? I am specifically interested in multi-staff music with more than one voice used in both staves, preferably using the same voice numbers in both staves. I would also need screenshots (to verify the result in MuseScore) and a description of how the voices were numbered in Sibelius,

This would hopefully enable me to fix this issue in MuseScore on short notice.

Thanks for your help, Leon.

Hi Leon,

normally voices are used to seperate voices in one staff (system). So if you have one system with multiple voices, you need to assign voices by yourself. So the program is able to make rests and notes at the same time.

With multi-systems you have these voices for each system. This is for example with piano using 2 systems, or any arrangement using more systems.

Each systems can contain voices 1,2,3,4 etc. so the numbers can repeat many times in bars.

I will attach some examples at the WE as i'm now short of time.

Find attach an simple example of piano music and SATB.

As far as I know Finale and others, including MuseScore export 2 staves instrument like piano with a number of voices for the two staves. So for a simple piano score with only one voice in each staff, they will export the G staff notes with voice=1 and the F staff notes with voice=5 or voice=2. So you can't have the same voice number in "part" or an "instrument"

On the other hand, Sibelius choose to index the voice numbers per staff and not per part. So in the same case, you'll have voice=1 of the G staff and voice=1 in the F clef. Of course, MusicXML spec says nothing about this, and so exporter should be robust...

For the reference, this issue is close to #11675: Crash opening MusicXML from Finale

Attachment Size
TestCaseVoice.zip 14.81 KB

Thanks to the replies above I think I understand what the problem is and how to fix it. Am working on the fix, but this will take a few days. Indeed it looks like import of multi-staff parts from Sibelius 7 files is completely broken. This is, IMHO, totally unacceptable for MuseScore 1.2.

Status update: I am now able to reliably detect this issue. Am working on a structural solution, expect to be able to commit the fix later this weekend.