MusicXML Coding/Research

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
Posts: 136

Post by revilo2 »

Maybe until you can open them in Synthesia you can open them in Musescore or something like that and compare them to the pdf...
Posts: 42

Post by JimNYC »

Nicholas wrote: 05-19-21 9:57 pm
JimNYC wrote: 05-10-21 2:12 pmInterestingly, they require uploading both a midi and MusicXML file for their upload process...
Hmm, that makes me worry about just how "compatible" the MIDI-Compatible Part of MusicXML actually is. :grimace:

Although, requiring both makes me wonder how they synchronize the files exactly. Outside of being exported side-by-side through the same app, one after the other, it seems like it'd be really easy to have small differences between the two that would be challenging to reconcile.
JimNYC wrote: 05-18-21 3:46 pmThe "Guide To What Is And Is Not Supported In Uploads" section is interesting...
That is a helpful list, if it only helps to inform which things might be trickier than others. (I have already spent some anxiety over how repeats should be handled!)

To be sure, Synthesia will have a similar list when all is said and done. If the tiny fraction of Behind Bars that is actually about general+piano notation is any indication, then the dozen chapters about harp, percussion, and all the other specialty notations are going to remain completely unsupported.
I gather they use the Midi for the actual sound generation and MusicXML for the notation display, and it's sort of implied that the 2 are generated from the same source notation software to stay in synch (they mention MuseScore, Finale and Sibelius as being supported). For whatever reason, they don't do the internal conversion from MusicXML to Midi for their output routines. Maybe it was just setup as Midi already (like Synthesia) and they decided to not deal with it since any notation software already can, shifting the burden to the user preparing the file rather than them doing an internal reworking/conversion.

I only pointed that out, as if the same approach could be used initially to shortcut the path to better notation display, then I think users would be willing to create 2 versions of the same file (MusicXML and Midi) for importing as is, but resulting in better sheet music rendering.
Posts: 13171

Post by Nicholas »

I suppose if Synthesia could assume that they were back-to-back exports from the same source, correlating them could afford to be a lot more brittle (by simply punting and saying "not close enough!" instead of handling the dozens of corner cases I'm imagining that might crop up).

My real fear is that MusicXML is lacking something that MIDI provides. There are a lot of expression-related messages (pitch bend, mod wheel, after-touch, RPN, NRPN, all the CC's, etc.) that sheet music isn't the best at capturing, so I wonder if MusicXML can't encode it? The design idea for MIDI was to include everything you need to reproduce a recording. Perhaps each side is missing something from the other and you don't get to have your cake and eat it too unless you've got MIDI+MusicXML? :grimace:

For the usual kind of flat, robotic sounding MIDI files out in the wild, there wouldn't be much difference and you could probably get by with just MusicXML. But for those rich, nuanced files made by competent musicians using all the capabilities of an advanced piece of software, it might require both. (I'm going to learn the answer whether I want to or not here in just a couple dozen task list lines.) :lol:
Posts: 42

Post by JimNYC »

I'm not sure there is overlap in the use cases you describe -- MusicXML files are going to come from notation software (MuseScore, Finale, etc.) and are disassociated with playback MIDI versions of the same songs -- I don't think anything captures actual play directly into MusicXML. Maybe I'm confused about how you are going to handle MIDI-only files going forward, but wouldn't those still be supported?

I've now used Piano Marvel in conjunction with MuseScore to edit, upload & import various classical pieces. It works very well for rendering the sheet music and playing/learning a piece solely from that render. There is virtually no need for printed copies of the piece to read side by side.
Posts: 13171

Post by Nicholas »

JimNYC wrote: 05-27-21 6:45 amMaybe I'm confused about how you are going to handle MIDI-only files going forward, but wouldn't those still be supported?
Yes, MIDI files will still be supported. I was just hoping to get the best of both worlds with just a single file format. Only having a MIDI file today compromises the sheet music. And it may be that only having MusicXML will (potentially) compromise the nuance available to the performance.

I was only lamenting it because adding a "MIDI+MusicXML" feature is more work! :D
User avatar
Posts: 1904

Post by jimhenry »

Another thing that will probably mean more work at some point is MIDI 2.0. I don't think they have gotten to the point of coming up with a file format that supports 2.0 yet. But when they do, it will support even more nuance than 1.0. And then there will be the question of whether MusicXML will be upgraded to track what MIDI 2.0 is doing.

You could make the decision that Synthesia will not support performance capabilities beyond MIDI 1.0, of course. Then you might not have to do anything more than add the capability of reading MIDI 2.0 files and devices and translating the input to MIDI 1.0. Or maybe you'll get lucky and the platforms will provide the 1.0 <--> 2.0 translations.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
Posts: 13171

Post by Nicholas »

I've peeked at MIDI 2.0 a little more than MusicXML and it seems to have been designed pretty cleverly with the ability to fall back to 1.0 automatically. If the device/app that the 2.0 thing is trying to talk to doesn't respond correctly to a sort of secret handshake, it silently switches back to 1.0. (And Apple's MIDI API already asks the app which of the two protocols it wants.) So the on-the-wire stuff is essentially a solved problem already, at least as long as I decide to defer the "upgrade" to 2.0.

You're right about some hypothetical MIDI 2.0 file format. I haven't heard/seen anything about that yet, though.
Post Reply