MusicXML export creates bogus output for stem offset

• Jan 25, 2019 - 14:00
Reported version
3.0
Priority
P0 - Critical
Type
Functional
Frequency
Many
Severity
S2 - Critical
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
Tags

Export File as Compressed XML File to run on Sibellius, shows error while trying to open with Sibellius and for the other the file was only partially view-able.

Kindly advise next course of


Comments

Status needs info active

That mxl file is invalid:
Fatal error: line 52462 column 10 Unexpected ' '.

loading it (in MuseScore) regardless claims it to be corrupt:
Measure 1, staff 25 incomplete. Expected: 1/8; Found: 0/1
Measure 2, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 3, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 4, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 5, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 6, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 7, staff 25 incomplete. Expected: 4/8; Found: 0/1
Measure 8, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 9, staff 25 incomplete. Expected: 4/8; Found: 0/1
Measure 10, staff 25 incomplete. Expected: 5/8; Found: 0/1
Measure 11, staff 25 incomplete. Expected: 4/8; Found: 0/1
Measure 12, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 13, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 14, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 15, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 16, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 17, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 18, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 19, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 20, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 21, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 22, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 23, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 24, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 25, staff 25 incomplete. Expected: 2/4; Found: 0/1
Measure 26, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 27, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 28, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 29, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 30, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 31, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 32, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 33, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 34, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 35, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 36, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 37, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 38, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 39, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 40, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 41, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 42, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 43, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 44, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 45, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 46, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 47, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 48, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 49, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 50, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 51, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 52, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 53, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 54, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 55, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 56, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 57, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 58, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 59, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 60, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 61, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 62, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 63, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 64, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 65, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 66, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 66, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 67, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 67, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 68, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 68, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 69, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 69, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 70, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 70, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 71, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 71, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 72, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 72, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 73, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 73, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 74, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 74, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 75, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 75, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 76, staff 24 incomplete. Expected: 3/4; Found: 0/1
Measure 76, staff 25 incomplete. Expected: 3/4; Found: 0/1
Measure 77, staff 24 incomplete. Expected: 4/4; Found: 0/1
Measure 77, staff 25 incomplete. Expected: 4/4; Found: 0/1
Measure 78, staff 24 incomplete. Expected: 4/4; Found: 0/1
Measure 78, staff 25 incomplete. Expected: 4/4; Found: 0/1
Measure 79, staff 24 incomplete. Expected: 4/4; Found: 0/1
Measure 79, staff 25 incomplete. Expected: 4/4; Found: 0/1
Measure 80, staff 24 incomplete. Expected: 4/4; Found: 0/1
Measure 80, staff 25 incomplete. Expected: 4/4; Found: 0/1

So indeed MuseScore musicxml export seems to be at fault here

Using the current master (ec75e63 of Apr 20):

the attached .mxl file
- is correctly diagnosed as invalid due to the "stem" issue reported by Jojo (which is present in the file only once)
- does not load (it aborts due to a failed assertion "_e.isEndElement() && _e.name() == "note"" at importmxmlpass1.cpp line 2618)

Status active fixed

Indeed the bracket in measure 65 was causing the incorrect export. The current master does not suffer from this issue anymore, the bracket is exported to and imported from MusicMXL correctly. Setting the status to fixed, even though I haven't identified the commit that fixed it.

Note that there is no "stem" issue, apparently an error in the MusicXML exporter generated incorrect XML for a middle note in a bracketed chord: an unnamed element containing only attributes.

Also note that this "unnamed element" issue causes the abort, as it leads to the MusicXML importer getting out of sync with respect to the XML tokens in the input stream. In theory this could be fixed, but a complete solution would require changing all MusicXML parsing routines dealing with tokens. For an issue that occurs only with a kind of invalid MusicXML that is unlikely to be encountered again, I doubt making a fix is worthwhile.