XML import into Dorico SOLVED (user error)

I just spent the last fours hours trying to import a Wind Band Suite I wrote about ten years ago in Sibelius 5 imported to Dorico.

I exported the whole piece from Sibelius and at first it seemed as if the import had been successful. I then noticed transposing instruments were not displaying correctly and set about creating new players in Dorico and copying and pasting the data to the new players. This seemed to work ok, until I noticed that there were inconsistencies at places where key signatures change. I also tried to split the file into three movements and although it looked like it did it, when I came back to try and open the Dorico file it said ‘error opening file’ and just hung.

Am I expecting too much from XML and should I just bite the bullet and input the lot again from scratch?

Should I export each part separately as an XML file and create a new Dorico file and import each one separately?

As it is, I think the file Dorico valiantly tried to create is probably full of errors, hence the spinning ball and error messages.

I’m tempted to start again…

Any thoughts?

Dear althemusicwizard,

I know I tried to import with xml recently (a large file). Although it seemed to hang at “40%” during the import process, I gave it time and it came through with flying colors. But I know that there can be issues with xml that may cause problems, so YMMV. I wonder if anyone out there could explain the different ways/approaches to importing full scores vs. separate files. It seems if you try separate, you will get a different flow created for each separate xml file, or perhaps I am misunderstanding how to do this.

Also - it would be invaluable if there is a way to somehow have a clean-up process that would force an xml file to be 100% compatible with Dorico. This may mean that some information is lost, but at least things that CAN be interpreted correctly will be, and things that could muck things up would be stripped out. Is there such a thing? Or is there a way to easily alter the xml file to make it more happily received by Dorico? Anyone out there with more experience care to chime in? Thanks.

“Interpreting things correctly” and “stripping out incorrect parts” should be relatively easy, unless the XML syntax itself is broken (e.g. the start and end tags for the data items are missing, or not correctly nested inside each other, or the data compression is too broken to make sense).

But that is only the “easy” part of the problem. If the item was supposed to take up some rhythmic space in the score and it is invalid in some way, you don’t know how long it was supposed to be, so you might end up with everything from that point on aligned differently on different staffs, repeat endings in the wrong place, overfull or underfull bars of music, etc.

Writing the code to parse any “complex” input, there used to be a rule of thumb that 10% of the code handles the correct input, and the other 90% attempts to recover from errors - and nowadays, the 10% can often be generated automatically direct from the input specification, so it takes “no time at all” to write. Of course you still have to write the code which does something with the correct input, but that is usually conceptually fairly simple if the app already has another way to input the data, for example the user interface. But the 90% that handles the errors requires a lot of thought, as well as a lot of hand-written code that isn’t used anywhere else in the app - not to mention translating all the error messages into all the languages the app supports, etc.

The same also applies to testing the error handling - usually, you need many more test cases for bad input than for good, because there are an (almost) infinite number of ways to make mistakes!

So I achieved a workaround…only to realise that one of the computers I was working on wasn’t on 1.1…GRRRRR!

So after updating things are much better.

I created a new Dorico project with the same players as the original Sibelius score. I then made the new Dorico project have three flows for the different movements. Put in the various start time sigs & key sigs of each mvt into each flow. I then selected the XML import file that Dorico had created and selected the highest instruments 1st note and the lowest instruments last note of the first mvt. With the notes highlighted, I copied and pasted the note data into the newly created Dorico project by selecting the highest instrument’s bar and pasting. Doing this each for the three mvts. produced a much better result which still needing tidying up (there are numerous time sig changes and tempi changes) but with another three hours work, I’ve got a score that now plays back in Dorico and now needs probably another few hours to smarten it all up.

Overall, I don’t know how long it would have taken me to input all this again from scratch (days, I think), so I’m well pleased.