Excerpt from XSLT 2.0 Programmer's Reference, Third Edition:
A Scenario: Transforming Music
As an indication of how far XML has now penetrated, Robin Cover's index of XML-based application standards at http://xml.coverpages.org/xmlApplications.html
today runs to over 580 entries. (The last one is entitled Mind Reading Markup Language, but as far as I can tell, all the other entries are serious.)
I'll follow just one of these 580 lines, XML and Music, which takes us to http://xml.coverpages.org/xmlMusic.html. On this page we find a list of no less than 17 standards, proposals, or initiatives that use XML for marking up music.
Some of this diversity is unnecessary, and many of these initiatives will bear little fruit. Even the names of the standards are chaotic: there is a Music Markup Language, a MusicML, a MusicXML, and a MusiXML, all of which appear to be quite unrelated. There are at least two really serious contenders: the Music Encoding Initiative (MEI) and the Standard Music Description Language (SMDL). The MEI derives its inspiration from the Text Encoding Initiative, which is widely used by the library community for creating digital text archives, while SMDL is related to the HyTime hypermedia standards and takes into account requirements such as the need to synchronize music with video or with a lighting script.
The diversity of standards is inevitable before the industry can come up with a standard that works for everyone. Without variety, there can be no innovation or experimentation. In fact, the likely outcome is not a single standard, but a collection of three or four different standards that are optimized for different needs. The different notations were invented with different purposes in mind: a markup language used by a publisher for printing sheet music has different requirements from the one designed to let you listen to the music from a browser.
For most of us, music may be fun, a diversion from the world of work. But for others, it is a very serious billion-dollar business. Standards that make information interchange in this business easier have an enormous economic impact. Whether you're interested in the music or the money, we're not dealing here with something that's trivial. So it shouldn't be surprising that so much effort is going into the process of creating standards in this area.
In earlier editions of this book I introduced the idea of using XSLT to transform music as a theoretical possibility, something to make my readers think about the range of possibilities open for the language. Today, it is no longer a theoretical possibility -- people are actually doing it.
With 17 different schemas for music in existence, all with different strengths and weaknesses (and fan clubs), there is a big need to convert information from one of these formats to any of the others. There is also a need to convert information from any of these formats to a printable score or an audible performance of the music, as well as a need to create XML representations of music from non-XML sources such as MIDI files. XSLT has a role to play in all of these conversions.
So you could use XSLT to:
- Convert music from one of these representations to another, for example, from MEI to SMDL.
- Convert music from any of these representations into visual music notation, by generating the XML-based vector graphics format SVG.
- Play the music on a synthesizer, by generating a MIDI (Musical Instrument Digital Interface) file.
- Perform a musical transformation, such as transposing the music into a different key or extracting parts for different instruments or voices.
- Extract the lyrics, into HTML or into a text-only XML document.
- Capture music from non-XML formats and translate it into XML (XSLT 2.0 is especially useful here).
As you can see, XSLT is not just for converting XML documents to HTML.
For some real examples of XSLT stylesheets used to transform music, take a look at a thesis written by Baron Schwartz at the University of Virginia (http://www.cs.virginia.edu/~bps7j/thesis/).