Title: MusicXML
1MusicXML
Music 253 / CS 275A Stanford University Winter
2005 Craig Stuart Sapp
2Purpose
- Primary function of MusicXML is data
interchange between programs
- Designed for encoding common-practice western
music notation.
3Predecessor Data Formats
not designed as a notation interchange format.
http//www.musitek.com/midiedition.html
- Originally the only way out of Finales
proprietary format.
http//www.music-notation.info/en/compmus/notation
formats.htmlNIFF
- Available in Sibelius and Lime Notation Programs
see http//www.visiv.co.uk/niff.htm
4MusicXML Development
- Integration of MuseData format with Finale
Typesetting Program
We have tried to learn from the mistakes of past
music notation interchange efforts by 1) basing
the format on the two strongest academic formats
available, MuseData and Humdrum, and 2) testing
the format by writing usable software from the
beginning of the development process.
http//recordare.com/xml.html
- June 2001 Alpha version of MusicXML 0.3
available - March 2002 First commercial release of MusicXML
0.6 (Import plugin comes with Finale 2003) - Jan 2004 MusicXML 1.0 released
- Currently MusicXML 2.0 under development
5Dolet plugin for Finale
6XML Tree Structure
Shorthands
lttag/gt lttaggtlt/taggt
lttag keyvalue/gt
attributes
analogous to
lttaggt ltkeygtvaluelt/keygt lt/taggt
An Introduction to XML file structure
http//www.people.virginia.edu/pdr4h/xmlresources
/XMLstepbystep.pdf
7MusicXML Structure
ltscore-partwisegt ltidentificationgt...lt/identi
ficationgt ltpart-listgt...lt/part-listgt
ltpart idp1gt ltmeasure number1gt
ltattributesgt...lt/attributesgt
ltnotegt...lt/notegt
ltnotegt...lt/notegt
ltnotegt...lt/notegt
ltnotegt...lt/notegt lt/measuregt
ltmeasure number2gt
ltnotegt...lt/notegt
ltnotegt...lt/notegt lt/measuregt
lt/partgt ltpart idP2gt...lt/partgt lt/score-pa
rtwisegt
- partwise score most common
- each part listed serially
- part consists of measures
- measures contain (1) ltnotegts (items with
duration) and - (2) ltattributegts (items without duration such as
clef, time signature, key signature, etc.) - (3) ltdirectiongts (dynamics)
- (4) ltsound/gt (tempo)
8Note Element
ltnotegt ltpitchgt
ltstepgtClt/stepgt
ltoctavegt5lt/octavegt lt/pitchgt
ltdurationgt1lt/durationgt ltvoicegt1lt/voicegt
lttypegt16thlt/typegt
ltstemgtdownlt/stemgt ltnotationsgt
ltarticulationsgt
ltstaccato placement"above"/gt
lt/articulationsgt lt/notationsgt lt/notegt
logical duration
graphical duration
see http//recordare.com/xml/musicxml-index.html
9MuseData vs. MusicXML
- MusicXMLs basic structure is a
key-parameterized version of MuseData.
MuseData note record
ltnotegt ltpitchgt
ltstepgtClt/stepgt
ltoctavegt5lt/octavegt lt/pitchgt
ltdurationgt1lt/durationgt ltvoicegt1lt/voicegt
lttypegt16thlt/typegt
ltstemgtdownlt/stemgt ltnotationsgt
ltarticulationsgt
ltstaccato placement"above"/gt
lt/articulationsgt lt/notationsgt lt/notegt
10Causality
- MusicXML is not a causal encoding format
ltbackupgt and ltforwardgt commands are used to
encode single parts with multiple staves or
multiple voices.
Examples of causal music formats MIDI
(partwise encoding) Humdrum (scorewise
encoding)
11Other XML-Based Music Formats
see http//xml.coverpages.org/xmlMusic.html