Transcript document
XML Music Notation
Encoding Standards:
MusicXML and MEI
Constantine Zavras
Questions
What is musical notation encoding?
Why is it needed?
Why is an XML standard needed?
Musical Instrument Digital Interface (MIDI)
MIDI
MIDI is a format used for sending and receiving musical event information
Used to display music audibly in a digital format
At the basic level MIDI states:
When a note starts
When a note stops
How loud the note is
The pitch of the note
Limitations
MIDI encodes a single performance
It can’t display visual layouts, it requires a music application
It was not intended as an interchange format, but as a mechanism for sending and receiving
musical event information
MIDI cannot distinguish between the same note such as a C# or Db
This is because it has no concept of notes, every note is an event, and it is either off or on
Current notation programs have to guess at what MIDI is saying
XML can represent a specific note
Older Standards
SMDL - Standard Music Description Language
WEDELMUSIC XML Notation
Enhanced Musical Notation Markup Language (EMNML)
eXtensible Score Language (XScore)
OASIS Discussion List for Music Notation XML TC
Music and Lyrics Markup Language (4ML)
Music Markup Language (MML)
FlowML: A Format for Virtual Orchestras
MusiXML
IMS MUSIC-XML Project
ChordML, Actos, and ChordQL
XChords
Notation Interchange File Format (NIFF)
MusicML
Musical Notation Markup Language (MNML)
MusicXML
Created by Recodare
Goal
To create a file format for musical representation and interchange
between musical applications that would be Internet-viewable and nonbinary
Based off of MuseData and Humdrum
The DTD was developed at the same time as the software
MusicXML has become the commercial replacement for NIFF which
was the XML format that was implemented in musical program such
as Sibelius
Used to augment specialized proprietary formats
MusicXML (cont.)
MusicXML is available under a royalty-free
license modeled on W3C
MusicXML 2.0 is currently in beta test
This
version will expand MusicXML's focus
from being an interchange format to being a
distribution format for digital sheet music
MusicXML Support
Finale
Sibelius
Dolet
SharpEye
Notion
TabEdit
Guitar Pro
Music Encoding Initiative (MEI)
Developed and updated by Perry Roland, a researcher
at the University of Virginia’s Digital Library project.
Goals
Create a framework for the encoding of music data
Enable content-based searching, analysis, visual presentation,
etc.
MEI supports a large array of forms in which music
exists (logical, visual, performance, and analytical).
MEI can ignore information it does not need
Noncommercial
MEI (cont.)
MEI utilizes a number of existing
standards, both XML and not.
The
metadata of the DTD - TEI and Dublin
Core.
Pitch attribute names - Acoustical Society of
America (ASA)
Performance data - MIDI
Basic MEI DTD
<!ELEMENT mei (meihead, work)>
<!ELEMENT meicorpus (meihead, mei+)>
<!ELEMENT meihead (meiid, filedesc, projectdesc?, editorialdecl?, profiledesc?,
revisiondesc?, sourcedesc*)>
<!ELEMENT work (front?, (music|group), back?)>
<!ELEMENT group ((work|group), (work|group)*)>
<!ELEMENT music (mdiv+)>
<!ELEMENT mdiv (score?, parts?)>
<!ELEMENT score (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)*)>
<!ELEMENT parts (part)+>
<!ELEMENT part (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)*)>
<!ELEMENT section (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)* | staff* | app*)>
<!ELEMENT app (rdg, rdg+)>
<!ELEMENT rdg (div*, (section, ending*, div*)* | (measure?,(pb|sb)?)* | staff* | app*)>
<!ELEMENT ending (div*, (section, ending*, div*)* | (measure?,(pb|sb)?)* | staff* |
app*)>
<!ELEMENT measure (((staff* | (beam | beatrpt | btrem | chord | ftrem | note | pad | rest
| space | tuplet)* | layer* | (msrest | msrpt | multirest | multirpt)?)), ossia*, (annot | arpeg
| beam2 | bend | dir | dynam | gliss | hairpin | harm | lyrics | midi | mordent | octave |
pedal | phrase | reh | slur | tempo | tie | trill | turn)*, (curve | line | symbol )*)>
MusicXML Limitations
MusicXML is adequate, not optimal, for
diverse music applications
Problems exist when reading certain
rhythms composed in MusicXML by Finale
and Sibelius, especially with tuplets
Very long files
MEI Limitations
Does not have the backing of a
commercial endeavor.
Not as human readable as MusicXML
MusicXML
- <octave>2</octave>
MEI - <oct =”2”>
Elements vs. Attributes
MusicXML
Elements – Logical Domains
Attributes – Visual and Performance Domains
“Terseness is of minimal importance”
Constantly being updated, elements make the update process
easier
MEI
Attributes – Logical Domains
Elements – Performance Domains
Smaller Files
Attributes can be constrained by type and value, as well as
defaulted values, very useful in music
Schema vs. DTD
Both MusicXML and MEI use DTD’s
MEI has a few competing schema
proposals that are not operable
Hello World in MusicXML and MEI
MusicXML Hello
World
MEI Hello World
MusicXML Example
<measure number="1">
<attributes>
<divisions>24</divisions>
<key>
<fifths>-3</fifths>
<mode>major</mode>
</key>
<time>
<beats>3</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
MusicXML Example (cont.)
<note>
<pitch>
<step>B</step>
<alter>-1</alter>
<octave>4</octave>
</pitch>
<duration>24</duration>
<voice>1</voice>
<type>quarter</type>
<stem>down</stem>
<lyric number="1">
<syllabic>single</syllabic>
<text>Auf</text>
</lyric>
</note>
</measure>
MEI Example
<bar n="1">
<staff id="s1">
<voice id="s1v1">
<note pname="b" acci="f" oct="4" dur="4" />
</voice>
</staff>
</bar>
Examples I Created
Trumpet Score-Part
MusicXML
MEI – Couldn’t get the transformation to
work
The Future
MEI XSL Transformation from MusicXML
MEI
Transformation Sheet 1
MEI Transformation Sheet 2
The Future
Common Western Musical Notation (CWMN)
Music from any time period before the 17th century is impossible to encode with
the standards that exist now. Both MEI and MusicXML have stated that they stay
within the bounds of CWMN in order to not overextend their limits.
May be possible to do this in the future, or develop new standards based on
existing ones to incorporate other forms of notation into XML.
Potential for expansion
Music analysis tools, which MEI has some operability in
Ability to sequence music with no external software beyond a text editor.
Music players written in Flash and Java
Can read MusicXML or MEI and play the result online
Convert to MIDI
Create playlists
Encode in MPEG
Resources
http://xml.coverpages.org/xmlMusic.html
http://www.musicxml.org/
http://www.lib.virginia.edu/digital/resndev/
mei/