Prefer Clarity over Concision

MusicXML takes section 1.1 of the XML specification seriously when it says that “Terseness of XML markup is of minimal importance.” Names are fully spelled out. Musical data is represented using elements, while metadata such as formatting and performance information is represented using attributes (Harold, 2004). The clarity and flexibility of structure provided by multiple elements generally outweighs the benefit of a smaller XML file using attributes.

As MusicXML has evolved from version 1.0 to the current work on version 1.2, the importance of these decisions has become greater over time. There are always some cases where the element/attribute or data/metadata choice is unclear. I have never regretted choosing elements over attributes. It is the rare cases where attributes were ill-advisedly chosen over elements that have tended to cause problems during the growth and evolution of the format.

Roland’s MEI format takes nearly the opposite approach, leading to a more concise encoding that is harder for software developers to work with. MusicXML’s octave element corresponds to MEI’s oct attribute; MusicXML’s duration element corresponds to MEI’s dur attribute. Data for duration and octave is carried over contextually in MEI rather than being spelled out explicitly in each note as in MusicXML. MEI-specific terms like pname and meiform show up in the simplest MEI examples. MusicXML files are longer than the corresponding MEI files, but they are more structured, complete, easier to understand without reading documentation, and easier for music application developers to work with.


This website uses cookies to improve your experience. By viewing or browsing our site, you are agreeing to our use of cookies. More Information