This came up recently as I was looking to lay out some sheet music with the software available on Debian. I started with "abc" because... I happened to have remembered it existed. Spent a few hours learning to use it while writing up the music I wanted... The syntax kind of sucks (can't space out the notes so they're legible, etc.), it's pretty arcane and there's apparently no simple way to transpose a section with "8va" notation such that it'll actually work with the various tools...
Mind you, I wasn't planning to actually write any MusicXML in a text editor - I know that's not what it's for. But working with ABC kind of established my mindset as, out of curiosity, I went to see what MusicXML was like...
On the MusicXML FAQ they say in no uncertain terms that they believe in the XML principle that "terseness is not valuable" and that it's better to strive for clarity... But it seems like they've failed to grasp the value of brevity.
Too brief: IDNU. TL;DR NWIM? LOL
Too verbose:
Spoiler:
Just about right: If you take "verbosity" too far, you generate a "wall of text". The "clarity" of your information is lost because you weren't brief enough.
As a basic example, here's ABC notation for a C-major chord one octave down, and one half the unit note length:
- Code: Select all
[A,B,C,]/2
Now, in MusicXML:
- Code: Select all
<note>
<pitch>
<step>C</step>
<octave>3</octave>
</pitch>
<duration>12</duration>
<type>eighth</type>
</note>
<note>
<chord />
<pitch>
<step>E</step>
<octave>3</octave>
</pitch>
<duration>12</duration>
<type>eighth</type>
</note>
<note>
<chord />
<pitch>
<step>G</step>
<octave>3</octave>
</pitch>
<duration>12</duration>
<type>eighth</type>
</note>
It's not all bad, it seems like a very versatile, full-featured format. But I have to believe they could have made better decisions about how to represent a sequence of notes. Think about how many notes are in a typical piece of music, then multiply that by eight lines of text each. I'll grant that it is pretty easy to look at the file in a text editor and figure out how the file structure works - but one could read the documentation, too, and learn the same thing. Or, if the file syntax has the right balance between brevity and flexibility, one could still just look at the file and figure it out.
For instance, let's suppose the format used MusicXML style representation of the notes, but provided a compact syntax for a sequence of notes:
- Code: Select all
(C3-12 E3-12 G3-12)
I think someone could look at that and figure out that "C" is the note, "3" is the octave, and "12" is the duration without straining their brain too much. In the context of XML representation of music, to provide everything MusicXML does, something like that would still have to be contained within XML tags delineating the song, the individual measure, and providing modifiers on individual sets of notes. But pretty much any time you have a musical note, you need those three pieces of information: pitch with octave, and duration. So why be that verbose?
End of rant. (EOR)
