Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Transforming XML Into Music Notation Baron Schwartz, Computer Science Perry Roland, Digital Library Worthy Martin, Compute...
Overview <ul><li>Project Motivation </li></ul><ul><li>MEI and Research Objectives </li></ul><ul><li>XML and XSLT </li></ul...
Motivation <ul><li>There is no good, universal way to encode musical data in a computer file </li></ul><ul><ul><li>There a...
MEI and This Project <ul><li>MEI – the Music Encoding Initiative </li></ul><ul><ul><li>An XML file format by Perry Roland ...
Transformation <ul><li>I used XSLT to transform the files </li></ul><ul><li>Typesetting music is complicated, so I used Mu...
XML <staff> </staff> <chord> </chord> <note></note> <note></note> <note></note> <staff> <chord> <note> <note> <note>
XSLT <xsl:stylesheet> <xsl:template match=“chord”> …  do something … </xsl:template> <xsl:template match=“staff”> …  do so...
XSLT XSLT Processor <staff> <chord> <note> <note> <note> <xsl:stylesheet> <xsl:template> <xsl:template>
Sample File Fragments 1: 4c; 4e; 2g; bar Mup <bar n=&quot;2&quot;> <staff def=&quot;_s1&quot;> <note dur=&quot;4&quot; pna...
 
 
 
Results and Conclusions <ul><li>MEI can represent notation </li></ul><ul><li>MEI is probably useful for other purposes </l...
Are there any other formats? <ul><li>MIDI </li></ul><ul><ul><li>Commonly used, but very limited </li></ul></ul><ul><li>Mus...
What about MIDI? <ul><li>MIDI encodes a single performance </li></ul><ul><li>MIDI can’t tell a D-flat from a C-sharp </li>...
What Are the Requirements? <ul><li>Comprehensive </li></ul><ul><li>Declarative </li></ul><ul><li>Explicit </li></ul><ul><l...
What Uses Exist? <ul><li>Notation (most important) </li></ul><ul><li>Interchange & Transmission </li></ul><ul><li>Analysis...
Other Work <ul><li>Changes to the MEI format </li></ul><ul><ul><li>Representing information atomically </li></ul></ul><ul>...
Upcoming SlideShare
Loading in …5
×

Music and XML again

1,119 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Music and XML again

  1. 1. Transforming XML Into Music Notation Baron Schwartz, Computer Science Perry Roland, Digital Library Worthy Martin, Computer Science
  2. 2. Overview <ul><li>Project Motivation </li></ul><ul><li>MEI and Research Objectives </li></ul><ul><li>XML and XSLT </li></ul><ul><li>A Sample Transformation </li></ul><ul><li>Results and Conclusions </li></ul>
  3. 3. Motivation <ul><li>There is no good, universal way to encode musical data in a computer file </li></ul><ul><ul><li>There are dozens of good ones for specific purposes </li></ul></ul><ul><ul><li>There are many uses: analysis, printing, and bibliography to name a few </li></ul></ul><ul><ul><li>Commercially important: $711 million/yr industry </li></ul></ul><ul><li>There is a huge amount of material </li></ul><ul><ul><li>UVA Library has 65,000+ scores and books </li></ul></ul><ul><ul><li>RISM project identified 1.5 million works – 50 years ago! </li></ul></ul>
  4. 4. MEI and This Project <ul><li>MEI – the Music Encoding Initiative </li></ul><ul><ul><li>An XML file format by Perry Roland </li></ul></ul><ul><ul><li>Designed to enable storing and retrieving musical information </li></ul></ul><ul><ul><li>Not an audio file format – “music” is an abstract concept </li></ul></ul><ul><li>My job: prove the MEI concept </li></ul><ul><ul><li>Transform MEI-encoded music into notation </li></ul></ul>
  5. 5. Transformation <ul><li>I used XSLT to transform the files </li></ul><ul><li>Typesetting music is complicated, so I used Mup as an intermediate format </li></ul>MEI File XSLT Script XSLT Processor Notation Mup Mup File
  6. 6. XML <staff> </staff> <chord> </chord> <note></note> <note></note> <note></note> <staff> <chord> <note> <note> <note>
  7. 7. XSLT <xsl:stylesheet> <xsl:template match=“chord”> … do something … </xsl:template> <xsl:template match=“staff”> … do something … </xsl:template> <xsl:template match=“note”> … do something … </xsl:template> </xsl:template>
  8. 8. XSLT XSLT Processor <staff> <chord> <note> <note> <note> <xsl:stylesheet> <xsl:template> <xsl:template>
  9. 9. Sample File Fragments 1: 4c; 4e; 2g; bar Mup <bar n=&quot;2&quot;> <staff def=&quot;_s1&quot;> <note dur=&quot;4&quot; pname=&quot;c&quot; /> <note dur=&quot;4&quot; pname=&quot;e&quot; /> <note dur=&quot;2&quot; pname=&quot;g&quot; /> </staff> </bar> MEI
  10. 13. Results and Conclusions <ul><li>MEI can represent notation </li></ul><ul><li>MEI is probably useful for other purposes </li></ul><ul><li>Future work </li></ul><ul><ul><li>More transformations </li></ul></ul><ul><ul><li>Native file format </li></ul></ul>
  11. 14. Are there any other formats? <ul><li>MIDI </li></ul><ul><ul><li>Commonly used, but very limited </li></ul></ul><ul><li>MusicXML </li></ul><ul><ul><li>Commercially motivated </li></ul></ul><ul><ul><li>Explicitly designed for interchange </li></ul></ul><ul><ul><li>Some serious design mistakes </li></ul></ul>
  12. 15. What about MIDI? <ul><li>MIDI encodes a single performance </li></ul><ul><li>MIDI can’t tell a D-flat from a C-sharp </li></ul><ul><li>MIDI can’t store complicated information, such as visual layout </li></ul>
  13. 16. What Are the Requirements? <ul><li>Comprehensive </li></ul><ul><li>Declarative </li></ul><ul><li>Explicit </li></ul><ul><li>Interpreted </li></ul><ul><li>Hierarchical </li></ul><ul><li>Formal </li></ul><ul><li>Flexible </li></ul><ul><li>Extensible </li></ul>
  14. 17. What Uses Exist? <ul><li>Notation (most important) </li></ul><ul><li>Interchange & Transmission </li></ul><ul><li>Analysis </li></ul><ul><li>Preservation </li></ul><ul><li>Historical Works </li></ul><ul><li>E-Texts for Digital Libraries </li></ul><ul><li>Searching and Cataloguing/Bibliographies </li></ul><ul><li>Automatic Performance </li></ul>
  15. 18. Other Work <ul><li>Changes to the MEI format </li></ul><ul><ul><li>Representing information atomically </li></ul></ul><ul><li>Suggestions to preserve MEI’s flexibility </li></ul><ul><ul><li>A rendering model </li></ul></ul><ul><ul><li>A definition for auxiliary languages </li></ul></ul><ul><ul><li>A stylesheet namespace model </li></ul></ul>

×