MusicXML is an XML-based music interchange language.1 It is intended to represent common western musical notation from the seventeenth century onwards, including both classical and popular music. The language is designed to be extensible to future coverage of early music and less standard notation needs of twentieth and twenty-first century scores. (Non-western musical notations would probably be best represented through a separate XML language.)

MusicXML is intended to support interchange between musical notation, performance, analysis, and retrieval applications. It is therefore designed to be sufficient, not optimal, for these applications. MusicXML is not intended to supersede other formats that are optimized for specific musical applications, but to support sharing of musical data between applications. The development goal is to support interchange with any musical program for western notation with a published computer data format.

The current MusicXML converter software runs on Windows. As of October 2000, it reads from:

  • MuseData format
  • Finale‘s Enigma Transportable File (ETF) format (Coda 1998)
  • NIFF format

The current MusicXML software writes to:

  • MuseData format
  • Standard MIDI Files in Format 1 (MIDI 1997)
  • The Sibelius 1.3 and Finale 2001 notation applications

MusicXML software currently provides complete coverage for both reading and writing MuseData files, and partial coverage of the other formats and applications. The NIFF, ETF, and MIDI converters use XML versions of these formats as intermediate data structures.

MusicXML adapts the MuseData and Humdrum formats to XML, adding features needed to cover more of music usage from the mid-nineteenth century to the present time.2 These were chosen as starting points because they are two of the most powerful languages currently available for musical analysis and interchange. One of Humdrum’s important features is its explicitly two-dimensional representation of music by part and by time. A hierarchical representation like XML cannot directly support this type of lattice structure, but automatic conversion between these two orderings is an adequate alternative. MusicXML uses Extensible Style Sheet Transformations (XSLT) programs to convert between two hierarchical representations: a part-wise score where measures are nested within parts, and a time-wise score where parts are nested within measures.


1An abstract of this paper was presented as a poster session at the International Symposium on Music Information Retrieval MusicIR (October 2000).

2I wish to thank Eleanor Selfridge-Field, Walter B. Hewlett, Barry Vercoe, and David Huron for their advice, encouragement, and prior work in musical score representation.


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