MusicXML Import

Hi Daniel; Thanks for taking the time to respond to the level of interest in Dorico.

I’d like to know, how extensive is the support for importing MusicXML? I know there’s no simple way to measure this, but Lilypond’s test suite might be a good place to start.

What I’m hoping for is a very thorough implementation so as to avoid the cumbersome workarounds required for the problems of partial implementation in the competition, for example, lack of support for lines (trill, gliss. etc.), stem direction, etc.


Our basic approach to MusicXML import is to focus on the semantic data represented in the files, rather than to focus on the layout information. We don’t currently import things like page size, staff size, margins, or other things defined in the appearance element. We import the coarse formatting information for things like slur, tuplet, and dynamics placement (e.g. above or below the staff), stem direction, and the like.

But both because the fine-grained layout information is difficult to interpret in MusicXML files (because different applications export it with different assumptions about what it means) and because we have spent so much time and energy on making Dorico’s default behaviours so sophisticated, we choose to use MusicXML as a repository for semantic musical data, such that essentially importing a MusicXML file is akin to having input that music from scratch yourself directly into Dorico.

If you have completely finished projects in other applications where you have spent time fine-tuning the layout of the score and the parts, and have made many edits to the graphical appearance of the score, I would not recommend bringing that project into Dorico with the expectation that you should be able to pick up where you left off without doing any of that work again. But if you have projects in progress for which you have not yet e.g. done any fine layout work, then that would be a good candidate to bring into Dorico to finish off.

Hi Daniel:

Quick follow up question: that should work well if e.g. you sketch something quickly in StaffPad (with the pen and Surface Pro), without bothering about layout, and then import it into Dorico for further engraving etc., no?


Yes, that’s the kind of idea, Peter.

The “Lilypond tests” are apparently the same test suite as is described here (and that PDF also contains a readable account of the features and limitations of MusicXML, for those interested).

Unless these tests have been “officially” adopted by the MusicXML project, I think it is a serious omission that they haven’t published their own comprehensive set of test files with the corresponding music notation. The documentation of anything as complex as MusicXML will inevitably contain some missing, ambiguous, and/or inconsistent information.

Daniel, thanks for you reply. As my application aims to algorithmically produce completely print-ready scores, Dorico might not be a good fit. I’ll have to investigate it when it’s ready. Presumably there will be a trial version?

Rob, thanks for the link to that MusicXML paper. I wasn’t aware that “Lilypond’s” test suite had a history. The paper is well written and brings up some interesting points about MusicXML and its relation to Lilypond.

I quickly scanned the MusicXML paper but could not see anything about what I have some slight worries about, namely info texts. I have a lot of sketches and half done music where I have info text about what it is, the thoughts behind, how to proceed etc and I wonder, will I lose that info when I migrate via MusicXML?

In general text can be exported in MusicXML files by way of the words element, but such text doesn’t have any specific semantic purpose or classification within MusicXML. Dorico tries to parse the content of the words elements in MusicXML files to try to determine whether they represent dynamics, tempo markings, playing techniques, and so on. If they don’t match any of those specific semantic types, then in theory the text should be imported as a kind of plain text event.

Thanks Daniel, I just saw your reply but I don’t quite understand it. Do you think what I have written in the “Other information:” field on the info page in Sibelius 7 will travel along into the MusicXML file and if so, will I find it in the Dorico file after import?

I don’t believe things written in the “Other information” field in Score Info will be exported in MusicXML files, at least using the built-in MusicXML export in Sibelius 7. It’s possible that the Dolet plug-in will export it, but I’m not sure.

@bengtberger: putting together a small batch-processing ManuScript plug-in that writes your “Other Information” text into a generic text object should be trivial.

This old blog post (by Daniel!) lists all the wildcard variables.

Just create a text item containing $MoreInfo\ to get the text from the Score Info field onto a page of the actual score, and MusicXML should then export it like any other text.

Thank you Daniel, Rob and Alexander.
So I gather, I can’t do a batch thing when the time comes, I’ll have to check each score and hope that Alexander writes a plug-in or that the Dolet plug-in will tcb. That and keeping all the old Sib scores for safety will give me a busy Christmas I’m sure. <:-)

I’m running into a bit of a bug. When trying to import a MusicXML file exported from Notion, the progress dialog appears, but nothing happens. When I click cancel, Dorico is basically crashed. The program remains open, but nothing works. I have to force quit the program.

I’m able to import XML files from other programs, so it’s obviously something Notion is doing when writing the file. But the other programs can import the file.

If you attach the file here, we can take a look and figure out why Dorico is choking on it.

Sorry, how. The forum only allows me to attach graphic files.

zip the dorico file, it works.

This isn’t the only file I tried. The problem exists with all xml files exported from Notion. (6.93 KB)

Thanks, George. We’ll take a look and see what we can figure out.

Hi, I’m following up on Daniel’s comment about the words element in MusicXML. I have the following direction in one my my files:

sing: always gliss-up

That’s text attached to a note which I really would like to see rendered in the score. At the moment Dorico is ignoring it. Does anyone know how to get Dorico to render it? Perhaps by encoding the direction into some other tag?

Best, Michael