|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||MusicXML, Version 3|
MusicXML is an XML-based format for representing Western musical notation with specifications available both as XML DTDs and in W3C's XML Schema Language. To quote from the DTDs, "The MusicXML format is designed to represent musical scores, specifically common western musical notation from the 17th century onwards. It is designed as an interchange format for notation, analysis, retrieval, and performance applications. Therefore it is intended to be sufficient, not optimal, for these applications." Consistent with the objective, MusicXML is widely used for interchange between different types of applications, such as scorewriters and music production systems. The design of MusicXML was based on formats for music notation developed before XML was available and also draws on basic features of MIDI sequence data while expressing them in explicit and human-readable elements. MusicXML represents the semantics of the underlying musical data. MusicXML can carry enough information to produce a printed score, but the format does not represent printed pages directly, in contrast to PDF.
MusicXML can represent scores either partwise (measures/bars within parts) or timewise (parts within measures). XSLT stylesheets that transform a partwise score to a timewise score or vice versa are distributed with the specification. MusicXML has two different top-level DTDs, each with its own root element. In the partwise DTD, the root element is <score-partwise> and the part (for a particular instrument) is primary, with measures contained within each part. In the timewise DTD, the root element is <score-timewise> and the measure is primary, with musical parts for different instruments contained within each measure. The XML Schema (.xsd) specification for MusicXML includes both of the top-level document elements. In addition, a MusicXML file with an <opus> root element is used to combine like scores into a work, for example for movements in a symphony.
Since MusicXML files are often large in comparison to the native binary formats used by score-writing software, they are often distributed as ZIP files, using Deflate compression and .mxl as file extension. See ZIP_PK for information about ZIP in general.
|Production phase||Typically an exchange (middle-state) format. MusicXML files can be used to derive display files via applications that support composition or utilities to view or print scores.|
|Relationship to other formats|
|Defined via||XML_DTD, XML Document Type Definition|
|Defined via||XML_Schema_1_0, W3C XML Schema Language|
|Has earlier version||Versions 1 and 2 of MusicXML, not described separately on this website. Scores compliant with versions 1 and 2 are also valid version 3 files.|
|Affinity to||In addition to the straightforward XML version, a compressed form of MusicXML has been defined, based on the ZIP format, and using the .mxl file extension. Compressed MusicXML is not currently described separately on this website.|
|LC experience or existing holdings|
|Disclosure||Fully, openly documented through XML document type definitions (DTDs) and a specification in the W3C XML Schema language. Originally developed by Michael Good of Recordare LLC. Recordare was acquired by MakeMusic, Inc., in late 2011. Make Music makes the specification available under a Public License.|
The specification for MusicXML , Version 3 and for previous versions are available from http://www.musicxml.com/for-developers
Extensive tutorials on the MusicXML website support the specification.
To quote from MuseScore.org in October 2012: "MusicXML is the universal standard for sheet music and can be used by most of the currently available scorewriters including Sibelius, Finale, and more than 100 others. It is the recommended format for sharing your sheet music between different scorewriters." Similarly the Music Notation Project, with an interest in alternative notations for music, particularly those that might be easier to learn than the traditional "diatonic" staff, states in relation to its open source software strategy, "There has finally emerged a successful standard interchange file format for music notation called MusicXML. MusicXML files can be read or written by a large number of music applications that run on a wide variety of computer platforms, including the two most popular commercial music notation applications, Finale and Sibelius." The free Dolet plugins for Finale and Sibelius extend built-in MusicXML capabilities for faster and higher quality transfers between the two applications, including batch conversion to MusicXML.
MusicXML.com lists software that can read or write MusicXML at http://www.musicxml.com/software. Another list of applications supporting MusicXML is at http://www.music-notation.info/en/formats/MusicXML.html. In August 2012, the Wikipedia page for MusicXML stated that over 160 music notation programs supported MusicXML to some degree, including most scorewriting programs, most music OCR programs, and some music sequencing programs.
An open source software library in C++ has been developed for version 2 of MusicXML. As of October 2012, the project appears to be dormant.
|Licensing and patents||
The XML-based specifications for MusicXML and associated distributed files can be freely used under a Public License. Changes to the distributed schemas, etc. need to be acknowledged. To quote from http://www.musicxml.com/tutorial/faq/: "The MusicXML DTDs and XSDs are available under a royalty-free license from MakeMusic. This license is modeled on those from the World Wide Web Consortium (W3C). If you follow the terms of the license, you do not need to pay anyone to use MusicXML in your products or research. MakeMusic has no patents issued or pending for the MusicXML DTDs and XSDs."
The formal license is available from http://www.musicxml.com/for-developers/
|Transparency||Very transparent to a human reader or with a text editor. Comprised entirely of XML with element names consisting of familar musical terms, such as <note>, <duration>, and <pitch>.|
|Self-documentation||The MusicXML DTD and schema include an identification section, with elements in use in headers in the MuseData format and borrowing from Dublin Core. Explicit elements are Creator, Rights, Encoding (with several sub-elements), Source, Relation (optionally used to describe words, arrangement, etc.). A Miscellaneous element can hold any other descriptive metadata that applies to the score as a whole. In addition, the contents of the <credit> element contains text used to display or print credit information on a score, including identification of title, sub-title, composer, arranger, etc.|
|Technical protection considerations||The MusicXML specification includes no internal support for encryption or other technical protection.|
|Normal rendering||Although not strictly a format for text, formats for notated music share distinctions in functionality that are common with text. A MusicXML instance can be used to display a score that can be viewed and printed. Words (such as lyrics and credits) can be searched by text-indexing software.|
|Integrity of document structure||MusicXML represents the semantic structure of a score: key; measures (bars); notes with pitch and duration; musical parts for different instruments; lyrics/words, etc.|
|Integrity of layout and display||Music XML does not specify a precise layout with page-breaks, etc. It does represent layout semantics that are important to the display of scores, such as: whether directions should go above or below a staff; spacing for staves; and scaling of features relative to a single measure that can be adjusted to fit a particular pagesize.|
|Support for mathematics, formulae, etc.||Musical scores do not include mathematical or chemical formulae. Hence this functionality factor is not relevant for music notation formats.|
|Functionality beyond normal rendering||MusicXML is designed to represent the semantics of music notation and characteristics for its display and performance.|
||An uncompressed MusicXML file is an XML file. Compressed Music XML files use the .mxl extension.|
|Internet Media Type||application/vnd.recordare.musicxml+xml
||See IANA registration for uncompressed MusicXML. For compressed MusicXML files, the media type application/vnd.recordare.musicxml is used.|
|Magic numbers||See note.||None specified in IANA registration.|
MusicXML was designed for sharing sheet music files between applications, and for archiving them for use in the future. MusicXML complements the native file formats used by Finale and other music composition programs, which are designed for rapid, interactive use. The design of MusicXML was based on two earlier academic music formats for music notation, MuseData and Humdrum, and has deliberate commonalities with MIDI where appropriate. A useful comparison of music notation formats is Music File Formats and Project XEMO, a Master's thesis by Stuart Cunningham.
The format was developed by Recordare, LLC and copyright in the specifications is now owned by MakeMusic. Michael Good, who developed MusicXML as the principal of Recordare, moved to MakeMusic in late 2011 and remains responsible for the format and associated documentation. The version history for MusicXML is at http://www.musicxml.com/for-developers/version-history/.