An Introduction to MusicXML


Published on

A very brief intro to the basics of MusicXML

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

An Introduction to MusicXML

  1. 1. Dr David Parsons David Parsons - May 31st 2013
  2. 2.  MusicXML files are the standard format for sharing interactive sheet music  More than 160 applications include MusicXML support ◦ Including Cubase, Sibelius and Myriad David Parsons - May 31st 2013
  3. 3.  “I feel that MIDI is an outdated standard for music education. I believe that MusicXML is the proper standard for music education …import/export with notation accuracy is a world of hurt with MIDI and much improved with MusicXML”  Christopher J. Russell, Ph.D. - Technology in Music Education Blog, May 2012 David Parsons - May 31st 2013
  4. 4.  XML ◦ eXtensible Markup Langauge  XML is ◦ Semi-structured ◦ Self describing ◦ Fundamental to the web, web services, RSS feeds etc. ◦ Provides a common way for any two applications to communicate with one another  XML is a meta language – you can create your own languages from it David Parsons - May 31st 2013
  5. 5.  Elements and attributes  What do you notice about this data structure? <element1> <element2 attribute1=“value”> some data </element2> <element3> some more data </element3> </element1> David Parsons - May 31st 2013
  6. 6.  Why can‟t I just use MIDI? ◦ Musical scores need to know about keys ◦ MIDI doesn‟t know if your note is an A# or a B♭ ◦ MIDI doesn‟t know about much beyond the notes themselves  You can create a MIDI file from MusicXML, or a notation file David Parsons - May 31st 2013
  7. 7.  What do you need to specify if you want to represent a note like this middle C semibreve? David Parsons - May 31st 2013
  8. 8.  MusicXML includes „note‟ elements  Nested elements inside this specify the pitch and the length of the note <note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>4</duration> <type>whole</type> </note> David Parsons - May 31st 2013
  9. 9. the key the clef  The key is defined using the circle of fifths ◦ Zero+major is C Major  The clef has a sign, and the stave line it appears on <key> <fifths>0</fifths> <mode>major</mode> </key> <clef> <sign>G</sign> <line>2</line> </clef> David Parsons - May 31st 2013
  10. 10.  4/4 time?  Easy enough David Parsons - May 31st 2013 <time> <beats>4</beats> <beat-type>4</beat-type> </time>
  11. 11.  These are typically used for metadata ◦ Not the actual music data, but things that tell us about it  Here‟s an example: ◦ Each musical part is given a unique id  so we can refer to it from other elements ◦ Each measure needs a number  we are in the first measure of the first part David Parsons - May 31st 2013 <part id="P1"> <measure number="1">
  12. 12.  Including stuff we haven‟t talked about  Just for one note, right?  Sure, but you don‟t do this stuff by hand  Software reads and/or writes MusicXML <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" ""> <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> David Parsons - May 31st 2013
  13. 13.  Here‟s our file in Myriad Melody Player  We can see it, and hear it David Parsons - May 31st 2013
  14. 14.  Understand how different applications communicate musical data  Use MusicXML to transfer data between them  Write software that can generate MusicXML ◦ so you music can be scored ◦ e.g. write a mobile composition app that streams MusicXML to the cloud)  Write software that can read MusicXML ◦ so you can present it how you like ◦ e.g. create sound driven animations in HTML 5 David Parsons - May 31st 2013
  15. 15.  You could utilise any or all of the following…  Technologies for processing XML ◦ XPath / XSLT / XQuery ◦ SAX (serial access) parsers ◦ DOM (document object model) parsers  XML data Streams ◦ File streaming ◦ Web services  Tools that understand MusicXML ◦ e.g. Java Music Specification Language David Parsons - May 31st 2013