230 likes | 602 Views
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
E N D
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 non-binary • 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/