MusicXML
lastmod 2023-04-26created 2020-05-2069 edits
MusicXML is an open format for notating sheet music in XML. Developed by Recordare, version 1.0 was released in January 2004, followed by version 1.1 in May 2005 and version 2.0 in June 2007. The extension used to be .xmz, but with development at the W3C it changed to .mxl (or .musicxml).
Many programs support this format, and many conversion plugins have been developed, so most existing music programs can import and export it.
Categories
- MusicXML:Tutorial
- Music
- Musical form
- Sound
- Standard Music Font Layout (SMuFL)
- Music Encoding Initiative (MEI)
- Beats Per Minute (BPM)
- Musical note
- Note value
- List of musical symbols
- Musical Instrument Digital Interface (MIDI)
- Standard MIDI File
Music notation
- GUIDO music notation (Guido; GUIDO)
- LilyPond - music notation for everyone - includes a link to a WikiDocs book
- Notation Interchange File Format (NIFF)
Simple Type
Elements
See MusicXML:Element for details.
Complex Type
Samples
- MusicXML:Airplane - Tteotda Tteotda Bihaenggi (the Korean children's song "Airplane, Airplane, Up It Flies")
Scripts
- MusicXML:Scripts:Mxl2Svg - a Python script that converts mxl -> guido -> svg.
File formats
- .mxl
- A compressed MusicXML file.
-
.musicxml - Used as the extension for uncompressed files.
Terms
See Music#Terms.
MXL Format
This file format is used for compressed MusicXML. Since it is the zip file format, you can extract it by changing the extension to .zip.
This file is in a format similar to JAR.
The META-INF/container.xml file looks like this:
<?xml version="1.0" encoding="UTF-8">
<container>
<rootfiles>
<rootfile full-path="elite.xml"
media-type="application/vnd.recordare.musicxml+xml"/>
<rootfile full-path="elite.pdf"
media-type="application/pdf"/>
</rootfiles>
</container>
Libraries
- The MusicXML Library (libmusicxml)
- http://libmusicxml.sourceforge.net/
- https://github.com/grame-cncm/libmusicxml
- MusicXml.NET (Archived)
- Quick C# parser for MusicXML
- https://github.com/vdaron/MusicXml.Net
- MusicXmlSchema (sightreader/musicxml-schemas)
- https://github.com/sightreader/musicxml-schemas
- MusicXML 2.0, 3.0, 3.1 XSD to C# autogenerated schemas with some documentation and pascal-cased names.
- Dependency: XmlSchemaClassGenerator
- Manufaktura Controls (Manufaktura.Controls, Manufaktura, ManufakturaLibraries)
- Bitbucket - ManufakturaLibraries
- http://musicengravingcontrols.com/en-US/Home/
- https://www.codeproject.com/Articles/1252423/Music-Notation-in-NET
Softwares
- Software - MusicXML software list
- Frescobaldi
- MakeMusic!
- Sibelius - 4 and later.
- Finale (2008 and later)
- Encore 5
- capella Media Producer
- NOTION
- Harmony Assistant
- Guitar Pro
- Cubase
- MuseScore, (libmscore)
Example
Notating the note C (do) in C major looks like this.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 2.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.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>
See also
- Music
- XML
- GUIDO music notation (Guido)
- VexFlow - JavaScript Music Notation and Guitar Tablature
- Musical notation
- Beats Per Minute (BPM)
Favorite site
- Wikipedia (en) MusicXML
- Music in MusicXML
- MusicXML Documentation
- Github - MusicXML specification
- [Recommended] MusicXML: Making a basic score - BGSMM 1
- A basic guide to music notation ( Music Notation Basic Guide ) - Lesson 47 :: The Note Music Story 2
Documentation
- [Recommended] MusicXML Documentation (click
MusicXML Reference > Score Schema (XSD) > Elementsto see detailed descriptions of the XSD elements) - w3.org - MusicXML 4.0
Official Tutorials
References
- Beats Per Minute
- GUIDO music notation
- Guidolib
- Libmusicxml
- LilyPond
- Manufaktura Controls
- MuseScore
- Music
- Musical notation
- Musicxml-schemas
- MusicXml.NET
- MusicXML:Airplane
- MusicXML:ComplexType:time
- MusicXML:Element
- MusicXML:Element:accidental
- MusicXML:Element:chord
- MusicXML:Element:clef
- MusicXML:Element:cue
- MusicXML:Element:line
- MusicXML:Element:measure
- MusicXML:Element:millimeters
- MusicXML:Element:note
- MusicXML:Element:page-layout
- MusicXML:Element:rest
- MusicXML:Element:scaling
- MusicXML:Element:score-partwise
- MusicXML:Element:staff-layout
- MusicXML:Element:system-layout
- MusicXML:Element:tenths
- MusicXML:Scripts:Mxl2Svg
- MusicXML:SimpleType:tenths
- Programming
- Python
- Scorewriter
- Sibelius
- Standard Music Font Layout
- Verovio
- XmlSchemaClassGenerator
- Zipgrep