|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||MusicXML File Format Family|
MusicXML is an XML-based format for representing Western musical notation with specifications available both as XML document type definitions (DTDs) and, since 2008, 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." The last sentence emphasizes the objective of interoperability, through representation of features found in several applications, rather than an intention for MusicXML to be a superset of specialist features. Consistent with the objective, MusicXML is widely used for interchange between different types of applications, such as scorewriters and music production systems. New features have been added in updates to MusicXML in response to new expectations of users of such 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 formats in the PDF_family.
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. A single XML Schema (score.xsd) within the specification for MusicXML includes both of the top-level document elements. In addition, a MusicXML file with an <opus> root element can be used to combine like scores into a work, for example for movements in a symphony.
The chronological development of MusicXML includes:
See MusicXML Version History for detailed lists of changes between versions. Files complying with specifications for MusicXML 1.0, 1.1, 2.0, and 3.0 are also valid MusicXML 3.1 files.
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 the file extension. This compressed format was introduced with MusicXML 2.0 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 subtype||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.|
|Has subtype||MusicXML_3_0, MusicXML, Version 3.0|
|Has subtype||MusicXML_3_1, MusicXML, Version 3.1|
|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|
|LC preference||For works acquired for its collections, the Library of Congress Recommended Formats Statement, as of April 2019, indicates that MusicXML is a preferred format for Digital Musical Compositions (score based representations).|
|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 made specifications through version 3.0 freely available for use. Since July 2015, the MusicXML specification has been developed and maintained by the W3C Music Notation Community Group. See Licensing and Patents below.|
The specifications for all versions of MusicXML, are available via https://www.musicxml.com/for-developers/ or https://github.com/w3c/musicxml/releases. A single zipped file is available for each version, including all the component DTDs and schema (.xsd) files.
A manual for MusicXML 3.0 is available; this includes a complete tag library based on the W3C XML Schema files. An introduction to MusicXML 3.1 is at http://w3c.github.io/musicxml/ as MusicXML Version 3.1, Final Community Group Report (07 December 2017).
Extensive tutorials on the MusicXML website support the specification.
MusicXML is widely used for interchange between different types of applications, such as scorewriters and music production systems. In February 2019, the Wikipedia page for MusicXML was updated to say that over 240 music notation programs supported MusicXML to some degree, including most scorewriting programs, most music OCR programs, and some music sequencing programs. To quote from MuseScore.org in May 2019: "MusicXML is the universal standard for sheet music. It is the recommended format for sharing sheet music between different scorewriters, including MuseScore, Sibelius, Finale, and more than 100 others." 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." 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.
Software applications that can read or write MusicXML are listed at https://www.musicxml.com/software/. On May 3, 2019, the list had 245 entries. Wikipedia's Comparison of Scorewriters shows that most of the applications listed can read and/or write MusicXML. Not all applications support all features of the format. Hence, round-trip import and export should not be expected in all situations, as explained in a response by Michael Good to the issue 3.0 Standard Confusion? Not bidirectional import vs. export raised in the MusicXML Forum in 2012.
Music in MusicXML is a selected listing of sites from which sheet music can be downloaded in MusicXML or compatible formats.
|Licensing and patents||
The XML-based specifications for versions of MusicXML through 3.0 and associated distributed files can be freely used under a Public License. The license for MusicXML 3.0 from MakeMusic was available from http://www.musicxml.com/for-developers/public-license-3-0/ (as of 2013, link via Internet Archive). This license (or equivalent for earlier versions) is included in the distribution package for MusicXML versions through 3.0. Changes to the distributed schemas, etc. need to be acknowledged. To quote from https://www.musicxml.com/tutorial/faq/ (as of 2013, link via Internet Archive): "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 MusicXML DTD and XSD files for Version 3.1 are freely redistributable under the W3C Community Final Specification Agreement. See W3C Community Final Specification Agreement (FSA) Deed. This agreement incorporates commitments made by participants in the community group, using the W3C Community Contributor License Agreement (CLA).
|Transparency||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>. MusicXML markup can be viewed and edited by a wide-range of generic tools for XML. However, like many other XML-based formats, MusicXML files are typically large and verbose and require domain-specific expertise to interpret. See XML Format Preservation Assessment from the British Library Preservation Team.|
|Self-documentation||The MusicXML DTD and schema include an Identification element, which can contain elements in use in headers in the MuseData format and borrowed from Dublin Core. Explicit elements are Creator, Rights, (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. Identification elements are permitted at both the score and score-part levels.|
|External dependencies||None beyond software that can render MusicXML files for display and editing, for example, music notation (scorewriter) programs. For a discussion of software support needs for MusicXML, see clause 2.4 in the MusicXML Format Preservation Assessment from the British Library Digital Preservation Team.|
|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||MusicXML 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 and the .xml extension was always used for versions though MusicXML 3.0. The .musicxml extension was introduced with MusicXML_3_1 in 2017. In practice, the .xml extension is also still in use. Compressed MusicXML 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.||No magic number is specified in the IANA registration. PRONOM recognizes as MusicXML files that begin with <?xml version="1.0" followed within 256 bytes the string http://www.musicxml.org/dtds/ (from the DOCTYPE declaration). Note that case may not be significant in these strings.|
|Indicator for profile, level, version, etc.||See note.||The version of MusicXML used in a document is found in the version attribute in the root element (<score-partwise>, <score-timewise>, or <opus>). For example, for MusicXML 3.1, the value should be "3.1". A document with no version attribute in the root element is assumed to be in MusicXML version 1.0.|
|XML DOCTYPE declaration||See note.||For MusicXML the DOCTYPE declaration for a document should include the string PUBLIC "-//Recordare//DTD MusicXML followed by the version number. The exact form of the declaration depends on whether the root element is <score-partwise>, <score-timewise>, or <opus>.|
||PRONOM does not distinguish between versions of MusicXML. See http://www.nationalarchives.gov.uk/PRONOM/fmt/896.|
|Wikidata Title ID||Q653301
||Applies to all versions of MusicXML. See https://www.wikidata.org/wiki/Q653301.|
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, Sibelius, 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 MusicXML format was originally developed by Michael Good, principal of Recordare, LLC, with Version 1.0 released in January 2004. Michael Good moved to MakeMusic, Inc. in late 2011, and copyright in the specifications through MusicXML 3.0 was transferred to MakeMusic, Inc. According to a 2015 post from Scoring Notes, MakeMusic and Steinberg transferred development of MusicXML and SMuFL, respectively, to the W3C Music Notation Community Group on July 28, 2015. Michael Good is a co-chair of the group. The version history for MusicXML is documented at https://www.musicxml.com/for-developers/version-history/.