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