MusicXML
MusicXML is an open, XML-based music notation file format.
It was developed by Recordare LLC, deriving several key concepts from existing academic formats (such as Walter Hewlett's MuseData and David Huron's Humdrum). It is designed for the interchange of scores, particularly between different scorewriters.
Version 1.0 was released in January 2004. Version 1.1 was released in May 2005 with improved formatting support. Version 2.0 was released in June 2007 and included a standard compressed format. All of these versions were defined by a series of document type definitions (DTDs). An XML Schema Definition (XSD) implementation of Version 2.0 was released in September 2008. Version 3.0 was released in August 2011 with improved virtual instrument support, in both DTD and XSD versions.
As of February 2012, MusicXML is supported to varying degrees by over 150 notation programs. These programs include:
- Most scorewriting programs, including Finale and Sibelius.
- Most Music OCR programs, including SmartScore and PhotoScore.
- Some music sequencer programs, including Cubase and SONAR.
- Free software such as MuseScore and Rosegarden.
The MusicXML DTDs and XSDs are each freely redistributable under the MusicXML Public License.
Example
Like all XML-based formats, MusicXML is easy for automated tools to parse and manipulate. Though it is possible to create MusicXML by hand, interactive score writing programs like Finale and MuseScore greatly simplify the reading, writing, and modifying of MusicXML files.
The following example is a score consisting of a single whole note middle C in the key of C major.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 3.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="3.0">
<part-list>
<score-part id="P1">
<part-name>Music</part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>1</divisions>
<key>
<fifths>0</fifths>
</key>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<type>whole</type>
</note>
</measure>
</part>
</score-partwise>
The output in standard musical notation looks like this: File:MusicXML Cnatural.png
The textual representation listed above is verbose; MusicXML v2.0 addresses this by adding a compressed zip format with a .mxl suffix that can make files roughly 20 times smaller than their uncompressed version.[1]
See also
- List of document markup languages
- Comparison of document markup languages
- Notation Interchange File Format (NIFF)
- Wikifonia, a MusicXML repository
External links
- MusicXML homepage
- MusicXML software list
- MusicXML DTD index
- MusicXML XSD index
- MusicXML Public License
- Scores in MusicXML