Critique - Erroneous MusicXML crashes Dorico 5, but not 4

Why is it that a musicxml file (exported by Finale, so it is to be expected that there are many errors) can be opened in Dorico 4 where a warning message will pop up when errors are recognised, but Dorico 5 simply crashes?

That’s a rhetorical question, of course, of a paying customer, who wonders, why such a thing happens. Please fix it and make it work like Dorico 4, when it comes to error detection! Thank you!

AFAIK the only change to xml import is the addition of fermatas. So if the file opens in D4 but not D5, that is likely to be the problem.

Thanks for responding, @Janus ! But it is not a question about what the latest addition to the XML ex-/import is, but the fact that Dorico 5 crashes, while Dorico 4 doesn’t.
This is a bug report (and a complaint) asking the Dorico team to fix that (and hopefully implement better testing).

I just imported a fairly involved Finale .mxl export into Dorico 5 as well as Finale .xml and .musicxml exports, so Dorico 5 is not generally adverse to doing so.

Clearly, if you are not able to, it is worth the Dorico Team’s efforts to determine why, but this does not seem to be a general problem for Dorico 5 to handle.

Here is the gist:

Dorico 4: warning message when a problem occurs
Dorico 5: crashes

Not sure why you try to defend something that clearly got worse, @Derrek.

If it were me, I’d try to find out what in my Finale file was causing the problem. If nothing else, it would allow me to point the cause out to the Dorico Team. But your reaction appears to be different. Perhaps the Qt upgrade has changed things.

If you can zip up an XML that exhibits this difference between 4 and 5, and post it here, that would give the devs something useful to try to pin down the problem.

2 Likes

This is not the point, the xml doesn’t make any difference, when Dorico 4 is able to catch the error(s), but Dorico 5 isn’t. The problem lies in Dorico 5’s code.

If they can’t reproduce it in-house, they can’t fix it. Send it to Daniel directly if you aren’t comfortable posting it here, but they’ll need something where D5 crashes and D4 doesn’t if it’s going to get fixed.

2 Likes

And BTW: When Dorico crashes, there is a dialog that asks whether the error should be sent to Steinberg or not. Of course it has been sent already.

It would be really helpful to us to have a MusicXML file that causes Dorico 5 to crash, so that we can tell what problem is actually going on. Submitting the crash reports to us does help, of course, because we can see what the software was doing at the time of the crash, but providing a file that allows us to reproduce the problem is even more helpful, and should allow us to fix the problem directly. One of the hardest things about fixing bugs is being able to reproduce them in the first place, and crash dumps do not allow us to directly reproduce a bug.

That’s why our standard advice here has always been to provide files that allow us to reproduce the problem. You can be indignant about it if you want, but it’s more useful to everybody – including ultimately to you – to try to help us solve problems.

5 Likes

I’m not much of a programmer, but I assume there is a test suite running during dev. And in prod Dorico seems to have a try-catch mechanism of some kind. From what I see in the error message in Dorico 4, every error has a number. But it seems there is no “unknown” error catch, which usually helps catching and logging an error while keeping a program from crashing.

I really do not see what difference it makes to send some xml file, that Dorico 4 can open, but Dorico 5 cannot. Logically, this is not a “feature” of the xml file, but a programming error, that was introduced with Dorico 5. I mean – why can Dorico 4 catch the error (be it unknown or not) but Dorico 5 can’t? This has nothing to do with musicxml in my opinion.

However, I will send you a file via mail, if you really mean it helps, even though my guts tell me that the dev team will think the same way.

But I am happy to be corrected, if my mind works too simple and I am overseeing something crucial here. Would love to know what that could be…

i generally try to avoid speculating about things I don’t know much about, and find it to be quite a good way to get along with other people without rubbing them up the wrong way.

I look forward to receiving a MusicXML file that will allow me to reproduce this problem. Thanks!

2 Likes

I wish to migrate from MuseScore to Dorico, so I am auditioning the free iOS version. But my attempts to import musicxml files all result in a dialogue box saying “error opening file.” Shall I upload one of those ill-fated files here?

Welcome to the forum, @jeffrysteele. Yes, please do provide one of your problem files.

I think you should. That way the Team can see if files that cause difficulty have something in common that trips up the software.

1 Like

BWV_1009_8-str_gtr.xml (1.7 MB)

This one just opened but, unlike the mxl versions I tried, the dialogue box said “xml validation failed” and only the first 16 measures were imported.

@jeffrysteele - I tried importing your xml file into Dorico 4, Dorico 5, MuseScore 4 and Sibelius.

Dorico 4 and Dorico 5 both gave the same error messages:

MusicXML validation failed

When I clicked on Show Details…

ERROR - Element ‘other-notation’: This element is not expected.
At line 3517 of /Users/steven/Desktop/BWV_1009_8-str_gtr.xml

15 bars were imported

Sibelius Ultimate (the latest version) reported:

This is not a MusicXML file and cannot be loaded: Element other-notation is not defined in this scope.

It tried to import anyway, but nothing had happened after about 5 minutes so I cancelled.

MuseScore 4 reported:

File /Users/steven/Desktop/BWV_1009_8-str_gtr.xml is not a valid MusicXML file

Do you want to try to load this file anyway?

When I clicked on Show Details…

Fatal error: line 3517, column 65: Element other-notation is not defined in this scope.

When I clicked on Yes:

It imported 108 bars of music.
I then exported it as MusicXML.
(I have zipped it here as the forum would not accept it with its original file type)

BWV_1009_8-str_gtr (from MS4).musicxml.zip (58.8 KB)

This file (once it was unzipped) imported into Dorico without any problems.

In your original MusicXML file, all the occurrences of other-notation look like:


or

I don’t know if simply editing out those lines (8 in total) will fix the problem without introducing others, but in the MusicXML file exported from MuseScore 4 those lines are not present.

EDIT:
Here is your original file with those “other-notation” lines edited out.
It imported into Dorico without giving any error messages.
It is possible that anything related to the strings referenced, such as fingering, might be affected.
BWV_1009_8-str_gtr edited.xml (1.7 MB)

I wonder if those notations from Finale are left hand position offsets for TAB notation.