Crashes when importing Music XML from Sibelius

• Dec 30, 2015 - 15:12

I have instant crashes whenever I attempt to import the attached Music XML file, originally created from Sibelius.

The crash occurs regardless of whether MS is (1) already open & stable with some other tab already open or, (2) MS is open but "empty" (i.e no current tab) or (3) if the file is opened from a file manager by File - Open with - MuseScore.

The crash occurs with both my Linux version and my Windows 10 version of MuseScore

On Linux I have MuseScore 2.0.2 build 3543170 QT version 5.3.0 on Kubuntu 14.04 (Trusty) LTS
On Win 10 I have MS 2.0.2 build f51dc11, QT version 5.4.2
On Win 10 I run Sibelius 7 - First ver 7.1.3
Win 10 itself is running in Virtual Box Version 5.0.12 r104815

If I run Sibelius -> midi file -> MuseScore, then the score opens in MS without crashing

If I make a Music XML score with MuseScore, then that file opens & operates without problems, as one would hope.

I have read some of these forums, the on-line help pages and the very nice book. The forums mention XML import crashes a while back but I didn't see any obvious "fix". There were comments about some libraries being too out of date in the older Ubuntu versions but that doesn't help much. The other documentation gives good coverage of XML use but again doesn't help with this fault condition. I didn't see any mention of a maximum xml file size but wonder if that might be part of the problem.

For the moment I can use midi to work round the problem but a real fix or any better advice would be very wecome.

Regards,

JohnC

Attachment Size
tal-lam4.xml 1.55 MB

Comments

Crashes with the latest nightly too, c012358

Stacl trace:
0 Ms::ticks_measure sig.cpp 37 0x8a7054
1 Ms::TimeSigMap::normalize sig.cpp 95 0x8a72ef
2 Ms::TimeSigMap::add sig.cpp 59 0x8a7146
3 Ms::MusicXMLParserPass2::time importmxmlpass2.cpp 3619 0x44f693
4 Ms::MusicXMLParserPass2::attributes importmxmlpass2.cpp 2161 0x446241
5 Ms::MusicXMLParserPass2::measure importmxmlpass2.cpp 2032 0x44541f
6 Ms::MusicXMLParserPass2::part importmxmlpass2.cpp 1734 0x44415f
7 Ms::MusicXMLParserPass2::scorePartwise importmxmlpass2.cpp 1643 0x443a56
8 Ms::MusicXMLParserPass2::parse importmxmlpass2.cpp 1612 0x443892
9 Ms::MusicXMLParserPass2::parse importmxmlpass2.cpp 1593 0x4437e8
10 Ms::importMusicXMLfromBuffer importmxml.cpp 50 0x42cd5f
11 Ms::doValidateAndImport importxml.cpp 235 0x5f100c
12 Ms::importMusicXml importxml.cpp 265 0x5f128f
13 Ms::readScore file.cpp 2075 0x598525
14 Ms::MuseScore::readScore file.cpp 328 0x589b7e
15 Ms::MuseScore::dropEvent musescore.cpp 1558 0x487217
16 ZN7QWidget5eventEP6QEvent 0x61e0bc22
17 ?? 0xc0

Right before that it prints:

Debug: illegal signature 0/0 (...\MuseScore\libmscore\sig.cpp:56, void Ms::TimeSigMap::add(int, const Ms::Fraction&))

So a division by zero

The file contains unexpected characters in some of the time signatures (in hex EF 80 B4, U+F034, which is in the Unicode private use area, still have to check if that is legal or not). As a workaround, I have replaced those with "2"s (as the other time signatures are 2/2), which results in the attached file. This does import without errors.

Out of curiosity, what does Sibelius display for the time signatures ? Was a Sibelius-specific font used to create the time signatures ?

Attachment Size
tal-lam4-fixed.xml 1.55 MB

Thanks for your replies.
The corrected xml file is indeed corrected and runs nicely.
Inspecting the bad version with a text editor, I also see the out of range text characters which seem to be causing the problem. Here also - on removal, problem fixed.

I have re-created the xml file several times with my version of Sibelius and the same error is always present. I will later explore this further with variations of the Sibelius file. e.g change, delete or re-write the offending time bars & see if the xml error persists. I may take it up also with the Sibelius support.

Sibelius will read both it's original .sib file and the faulty xml file displaying them identically on screen. I cannot see anything particularly odd about the time sig displayed in the offending bars. See attached screen shot for this.

I wonder if there is any sort of Xml check program that one might use to find this type of error - apart from the notation program itself, that is .

Re Sibelius fonts : checking my Win 10 system, Sibelius appears to have installed and be using a family of music fonts called Opus. Here's the list ...

C:\Windows\Fonts>ls opus*
OPUSCSC_.ttf OpusChordsSansCondensedStd.otf
OPUSCS__.ttf OpusChordsSansStd.otf
OPUSC___.TTF OpusChordsStd.otf
OPUSFBE_.ttf OpusFiguredBassExtrasStd.otf
OPUSFB__.ttf OpusFiguredBassStd.otf
OPUSFS__.ttf OpusFunctionSymbolsStd.otf
OPUSM___.ttf OpusMetronomeStd.otf
OPUSNN__.ttf OpusNoteNamesStd.otf
OPUSO___.ttf OpusOrnamentsStd.otf
OPUSPC__.TTF OpusPercussionStd.otf
OPUSP___.TTF OpusPlainChordsStd.otf
OPUSROMC.ttf OpusRomanChordsStd.otf
OPUSSE__.ttf OpusSpecialExtraStd.otf
OPUSS___.TTF OpusSpecialStd.otf
OPUSTEXT.TTF OpusStd.otf
OPUS____.TTF OpusTextStd.otf
OpusBigTimeStd.otf

Windows font viewer shows these to be mostly the sort of music stuff one might expect.

Again, thanks for the prompt and helpful replies. I can get done my immediate tasks and see what else I can discover on the Sibelius side.

May the new year be kind.

Regards,

JohnC

Attachment Size
LamentationSelection_029.png 143.13 KB

In reply to by TudorChoristers

With respect to checking the XML file, the best you can do is XML schema validation against the XML schema definition for MusicXML as published by MakeMusic. MuseScore already does this, but as both the "beats" and "beat-type" are defined as type="xs:string", this issue is not caught.

My guess would be that Sibelius probably uses a special font for some of the symbols in some time signatures and exports the character used instead of the number of beats. If this is correct, I would consider it a Sibelius bug, as it would require knowledge of the font used to interpret the MusicXML file correctly.

With respect to MuseScore crashing, even if the time signature contains unexpected data, that should not happen. Submitted issue #92306: [MusicXML] Crash when importing time signature containing Unicode private use characters

In reply to by Leon Vinken

Thank you for your commitment to making MuseScore such a high quality piece of software. It shouldn't crash just because it receives an unexpected input, I agree. It's good that MuseScore sets high standards for itself.

A bit more follow up on the Sibelius side. If I use Sibelius to rewrite the time sig of the first bar, then the bad characters no longer appear in the Sibelius xml. So the problem is solvable without having to hand edit the xml. I shall watch out for time sigs in the future.

Just for the record (!), I didn't create the original, problematic Sibelius file. It came from the cpdl collection on the net. (www.cpdl.org) Sibelius itself had no problems with it. Anything that was supposed to work did so without any problems. It just passed the problem on as bad xml.

Do you still have an unanswered question? Please log in first to post your question.