MusicXML DTD Hits 1.0; Browser Support Next?
base_chakra writes "Two years since its initial release, the MusicXML music notation document type has finally reached v1.0. MusicXML is an (you guessed it) XML-based musical score format developed by Recordare LLC, and derived from the MuseData and Humdrum projects. Although MusicXML was quickly adopted by virtually every major music notation software products available, a standard non-binary format for rendering music notation on the web is something that's still sorely needed. Despite its unfortunate limitations, will MusicXML eventually become the de facto means of rendering music notation online, or will it fall into obscurity like so many document types?"
There already is a fairly widespread musical notation format in use on the web. It's called ABC. There's even a Sourceforge site for it.
That said, ABC isn't perfect - it's evolved in many ambiguous and incompatible ways over the years, making it difficult to code a common parser. MusicXML might be better suited for that job, or for professional use.
For casual use, though, ABC is tough to beat.
I don't know what kind of audience would really care about music notation, but I know there are a bunch of us guitar-wanna-bes who frequent good ol' ASCII-art notation sites for our favorite songs, which are obviously lacking in detail. And word can spread quickly if people are notating using this format and recommending a proper browser to view them with.
Here's hoping...
There is a clear need for a better way to share music notation. At wikipedia, there has never been a consensus so TeX generated by Lilypond or something similar is used. That works poorly, because it is hard to integrate with CGI, and without integration only users who have Lilypond themselves can contribute.
Same set of problems at composerplanet.com, though they are still getting their site together and haven't chosen a strategy. Looks like .PNG and .JPG images will be the de facto standard. Ick.
Lilypond is free, and runs on Linux, but is unlikely to become much of an interchange standard because the UI isn't accessible to the vast majority of musicians, who are as a rule not experts on writing something according to a context-free grammar. Besides, Lilypond is best for typesetting-quality layout, at which it does indeed excel.
Whatever the solution becomes, the ability to share scores with ease will touch off another wave of handwringing among sheet music publishers. I just yesterday received a book with all of Scott Joplin's piano music in it -- all written before 1915 -- and guess what? It says right on the front page that it is against the law to copy them! So far, most musicians don't know any better, but if MusicXML comes to pass, that may all change.
MIDI
Whlie it's nice to have XML-based information transfer, sometimes it isn't really the best and is incredibly big for what it does. For live music playing, the simplicity of MIDI is a much better substitute for transcribing music into a 'non-binary' format.
Oh, it works with lots of electronic musical devices too - er... most of them in fact!
I took a look at some of the spec and some of the samples, and you're totally right. There's a lot that can be done here to reduce the complexity of the markup. It seems like they did everything they could to specify every detail of every note every time that note was needed.
In addition, breaking some of the information out of *this* spec into another namespace (like all of the MIDI-related stuff), as well as using existing namespaces like RDF for meta-data, would go far into simplifying some of this.
Maybe version 2 will address some of this complexity.
I've been working on LilyPond for the past eight years, and we're now finally reaching a stage where the output can be taken seriously. I estimate that it took over 4 man-years of work to develop the current source code (60k lines of C++, 10k Scheme, and 10k python). Of all that source, less than 10 % is concerned with the file format, and they form the easy bits. When it comes to notation, file formats are not the problem.
If you want to read more in-depth information on notation vs. music representation , I recommend to read the essay at lilypond.org.
Regarding buzzword compliancy: have a look at our XML format, but like I said: the format is besides the point. Han-Wen (LilyPond author)
Han-Wen Nienhuys -- LilyPond
Go to the site and check it out.
Here is a description:
MusicScript is an open-source music scripting language for linux. It is capable of creating complete songs from a script, using drum machines, synthesizers, samplers, and many effects. MusicScript was created by David Piott as an alternative to the limits of real-time music programs. With MusicScript, there can be an infinite amout of loops, tracks, samples, effects, etc. You create the song as a script file, which MusicScript will interpret and turn into a wav file Its a very basic program but it gets the job done and is very easy to learn. We also got this to compile in fink and work perfectly in OSX. So now we use it in Linux and OSX
MusicXML does not really go past very basic score representations. Most modern (i.e. > 20th century) notations are not possible. Its like saving a complex MS word document in .txt format, its mostly useless.
Mozilla does not support XML for musicians
Status Whiteboard: BLOCKED: needs a spec, a comprehensive test suite, and a reason to implement it
Well, we have a spec now at least. Unfortunately, this bug is dependent on bug 39965 (Layout should permit pluggable support for new frame types), which is currently not assigned to any developer.
You wouldn't use a font. Many Music fonts (and math fonts) draw the same character once in each position; each in it's own glyph. With SVG, you simply draw a note:
/> />
<g name="wholeNote">
<circle cx="0" cy="0" r="40" class="wholeNote"/>
</g>
And draw that same note as many times as needed. No need to make a separate glyph for C and D note:
<use xlink:href="#wholeNote" x="580" y="450"
<use xlink:href="#wholeNote" x="560" y="490"
Space may be an issue, but MusicXML isn't exactly light-weight. An SVG conversion might even be a bit smaller than the original file. Either way, a full composition would be a huge download (even in its original MusicXML format).
The real problems with an SVG or PDF implementation would be details like wrapping lines. I also question, in retrospect, if XSLT would be too much of a pain in the ass. Maybe a Ruby script would do a better job.
It will do for music what CSS & XHTML with metatags do for printed text...Right now sheet music is still the standard for music notation...it's not couducive to archiving or sharing [sans simply scanning the paper copy] Imagine having the musical equivelant of Google where you can find a song by just a few notes...MusicXML allows you to develop that!
Once those tools are set we can take on plays, speech, and eventually source code too! This is one of the first really original uses of XML...what it was created to do!
I will add my voice to the chorus - MIDI is it and this is a solution in search of problem that it will not find. As for the problem of MIDI not being able to record a live performance and produce sheet music - who cares? After working with MIDI for over ten years, the only problem is that it cannot keep up with the nances of a great electric guitarist (SUPRISE - it was a keyboard language!) and only 16 programs and 128 voices. Both can be solved with an upgrade.
But none of this really matters to web pages! The latest Quicktime synth is awesome if programmer correctly but like most MIDI synths these days, it is in desparate need of some nice expressive electric guitar sounds. Let the engineering go where it is needed, PLEASE!!
And hey - whatever happened to MPEG-7 Structure Audio anyway???