Earlier quoted context omitted.
This is a common complaint, and it's something we're trying to remedy with MNX: https://w3c.github.io/mnx/docs/ Music notation is incredibly complex, and there are many places things can go wrong. There's a wide spectrum of error situations, such as: * The exporting application "thinks" about notation in a different way than the importing application (i.e., it has a different mental model). * MusicXML provides multip…
> MusicXML provides multiple ways of encoding the same musical concept, and some applications don't take the effort to check for all possible scenarios. This sounded interesting, so I went to the webpage, and found this point specifically called out: > It prioritizes interchange, meaning: it can be generated unambiguously, it can be parsed unambiguously, it favors one-and-only-one way to express concepts, and multipl…
Just to give you a quick response: look into MusicXML's concept of a "cursor". Parsing a MusicXML document requires you to keep an internal state of a "position", which increments for every note (well, careful, not every note -- not the ones that contain a "chord" subelement!) and can be explicitly moved via the "backup" and "forward" elements: https://w3c.github.io/musicxml/musicxml-reference/elements/f...
For music with multiple voices, this gets easy to mess up. It's also prone to fractional errors in music with tuplets, because sometimes software chooses to use MusicXML position numbers that aren't evenly divisible into the rhythms used in a particular piece of music. That can result in a situation where the MusicXML cursor gets to a state that doesn't actually align with any of the music.