StaffPad (XML) -> Dorico - How to improve import quality?

Hi All,

So, I personally really enjoy writing/sketching in StaffPad, I don’t really know why exactly, but that’s another topic.

I’m having some issues with the XML output producing very poor results when opened in Dorico. The way it is imported is a bit better in Finale.

Issues on import include:

  • Incorrect accidentals
  • Diatonic passages ending up being displayed being shifted with double sharps (This one doesn’t happen in Finale 26)
  • Piano parts ending up with all sorts of cross-staff notation going on wherever there are different voices used.
  • Clef changes being missed/ignored/confused etc, notes ending up transposed because a clef was missed etc

Screenshots attached for reference.

Overall, it means that cleaning up a even a short cello and piano piece after sketching in StaffPad is actually pretty awful to the point of it being easier to re-enter it from scratch.

A real hotmess, unfortunately!

I appreciate that much of this is likely to do with how StaffPad is generating the MusicXML file and not a Dorico problem.

My question is: Does anyone know a way to improve/minimise these issues? If so, please let me know - Please and thank you!

Threads Woven Together.xml (511.8 KB)

For comparison, here is how the first page looks when your XML file was imported into MuseScore 4.
All of the MIDI import options in Dorico Preferences were unchecked.

1 Like

The biggest mystery to me is where all the double-flat re-spelling of notes is coming from… They’re not in the original!

I have never used StaffPad, so this is a bit of a guess.
Are there any options or settings in StaffPad which affect what is included/excluded/displayed/not displayed, etc., when exporting to XML?
Also, does StaffPad export to MIDI? If so, it might be worth trying that to see if the results are any better.

1 Like

I don’t think StaffPad gives you any under-the-hood options for Xml settings. I’ve sent an email to their support there as well but I think it’s going to be one of those ‘it’s just how it is’ sort of things.

So far, the best option has been using OCR with SmartScore , which does seem to capture things a lot more accurately. But I only have the trial version so I can’t actually export/import the resulting MusicXML file to see what happens when loaded into Dorico etc.
Given the XML is the intermediary between the OCR software and Dorico (or whatever notation program), I could buy it, and then run into the same issues when it acutally gets opened in the notation software.


It looks like StaffPad can export to MIDI.
Here is a screenshot from the StaffPad website.

= = = = = = = = = = = = = = = = = = = = = = = = =

Have a look at this “massaged” version of your file.
I imported the XML file into Dorico 5.
If you open it in Dorico 4, you will get some error messages which you can safely ignore.

Based on the first page from StaffPad, I fixed up the first 12 bars or so. A number of notes had been not recognized properly and were at the wrong pitch about an octave and a half too high, probably because of their proximity to the ever-changing clefs in the left hand of the piano.
After that, I made some (hopefully educated) guesses as to what was intended.
These included Write > Respell Notes Automatically, and the occasional manual respelling, some flipping of notes to untangle two voices in the same register, and the resetting of the 4 flats key signature.
There will be many instances of notes being in the wrong voice, including some cross-staff notes. Turning on View > Note And Rest Colors > Voice Colors will be a great help in re-allocating notes if you need to.

But basically I left most things alone as I really had no idea as to whether the key signature stayed the same, how you wanted notes spelled enharmonically, etc.
I hope that the attached file can assist you. It’s not a long piece, but is sufficiently complex that I would not want to re-enter everything manually.
ThrdsWvnnTgthr_Massaged.dorico (1.5 MB)

1 Like

Thanks for this. It still sounds like a lot of fiddling just to get it back to the original condition which is the annoying part. Am also thinking about how these problems are likely to scale over a larger ensemble/longer duration to the point of meaning spending more time getting it in shape in Dorico than I’m spending sketching these things in the first place.

I’ll try midi when I get home and see what it does - I just assumed it was unlikely to be any better but maybe it’ll at least have the right notes and registers… Possibly the voices will be separated and thus easier to recombine cleanly without having to deal with undoing all the introduced cross-staff stuff.

That said, the two main issues causing the most problems are really the change of clef not being registered, and issues with voices/layers ending up as cross-staff notation attached to a different staff. The former I could fix easily enough by just erasing clef changes in StaffPad before exporting, which I assume would fix that problem.

The cross-staff issues I’m less sure about a good work around there. Possibly just avoid using voices/layers and add a new stave for each voice instead, and then recombine them after import. That’d hopefully solve most of the issues there.

Respell notes automatically does seem to mostly fix the random use of double flats. Except the F Double Flat becomes and Eb when there was no Eb in the orignal, so that one (and Cbb) I’d have to watch out for everytime. Still don’t know why there being spelled as double flats at all but what can you do I guess?

Was the "massaged"file helpful at all?

Yes! It was - thank you :slight_smile:
Unfortunately, I can’t reasonably ask you to clean my files up for me everytime though!

No, that’s understood.
I was asking in case I ever have to do the same thing for myself and have to decide whether to spend the time and effort needed to fix up a messy import or just re-input the notes manually.

1 Like

How long did it take to do those 12 bars out of curiosity?

A little under 5 minutes., which involved moving and/or adding clefs, re-pitching notes and removing one tie which was imported as a laissez vibrer tie.

I find that by working on a relatively small file which has become mangled one way or another, it can give me an idea of how much sweat might be involved if I ever have to resuscitate a much larger file.

1 Like

What was your process for sorting out all the voices? Just highlight and shift+V on each bar?

I didn’t actually do much voice sorting at all. After turning on View > Note And Rest Colors > Voice Colors I saw that the import had created quite a few voices, and promptly decided not to get involved. What I did do though, was in bars 30 to 33 in the right hand of the piano. I flipped the minim C’s, and also the overlapping quavers and triplet semiquavers in the right hand. The quickest way, rather than trying to select the noteheads, was to click on the beam (which selects all the notes on that beam) and press F. I just kept experimenting until the entangled notes looked reasonably decipherable. I think I also re-spelled some of the LH notes in bar 45.

The xml file clearly shows (for the bass note double flat in bar 3):

So I don’t think you can blame Dorico.

Ahh! I thought you had fixed all the voices. I thought voice colours would be a global setting rather than a file-specific setting, so when I opened and looked at your file after turning it on, I thought the voices had all been re-allocated.

Not blaming Dorico for it, I just don’t understand why it would end up that way. None of those notes are double flats in StaffPad. The first section is entirely in F Major, as you can see in the staffpad screenshot. Almost certainly a StaffPad thing, I’m just here to try and work out a solution rather than to blame Dorico for it.

Interestingly, it doesn’t import that way in Finale 26. (See the other screenshot). So Finale is obviously doing some ‘cleaning’ on import?

Yet Staffpad encoded them as double flats!

(You can fix it in Dorico with automatic respell…

Yet Staffpad encoded them as double flats!

That’s what weird! I can’t think of any reason why it would get encoded that way. What possible reason could there be for it to encode an F as a a Dbb?

With respell, it gets ‘fixed’, but is still wrong (D instead of an F and wrong octave) because the clef has been missed, assumedly on export. But that’s a different issue.

The joys of being a composer!

As an experiment, try importing that XML file (which was exported from StaffPad) back into StaffPad and see what StaffPad makes of it.

I vaguely recall that about three decades ago there was a fault in a short-lived version of one of the major desktop publishing / graphic design applications (not sure if it was Photoshop, Illustrator, etc.) in which it could not open files saved by itself. That, in turn, reminded me of a humorous fake advertisement making fun of super-whizz-bang computer specifications, one of which was write-only memory - think about it!

1 Like