Transmission of melodies over the WWW

The complexity of most folk melodies is such that the entirety of the musical notation can be expressed by a few hundred bytes of information. However, when converted to a digital sound file most folk melodies require a few hundred kilobytes of information. This expansion factor of 1000 makes it much more reasonable to ship a machine-readable description of the tune than to ship a machine-playable audio file over the network. This is especially true to low-bandwidth sites such as PCs at home using modems.

abc: a folk tune notation system

A format known as abc was developed by Chris Walshaw. The input format is extremely simple and can be typed in directly from sheet music by anyone with rudimentary musical literacy. This format was originally designed to be used as input to a C program abc2mtex which produces TeX output. The result is beautifully typeset folk tunes. An example of the typesetting can be seen in this gif file.

playabc: a sound player which reads abc format

Shortly after abc2mtex appeared, Don Ward (don@careful.co.uk) created another program which can take the input format for the typesetter and produce sound files suitable for playback on most computers. This C program is playabc, and it uses yacc and lex to build the parser. All of the tools necessary to build this program are also available for Unix, DOS, and Mac computers. The source code for playabc can be found as a compressed tar file at Stanford

abc for any CPU/OS

abc appears to have become the most common format for electronic interchange of folk music. It is routinely included in e-mail and USENET postings. A cadre of developers have ported or created abc applications to typeset and play music on any platform, and there are even abc/MIDI converters. Chris Walshaw is maintaining an index of all these applications.

abc and WWW: teaching your WWW browser to recognize abc

The beauty of all this technology is that it is possible to define the abc format as a new Metamail (MIME) datatype. Tunes can then be automatically encoded into email messages and played for the recipient. WWW browsers such as Mosaic can use these MIME definitions to play and/or typeset tunes which are archived on the WWW merely by following a hyperlink. Here's how I did it.

Here is a library of more than 100 morris tunes in abc format which is tailored for WWW browsers.

Actually, this gets kindof scary when you think about it. While constructing this page I clicked on one of the archived abc files that Chris Walshaw uses as examples, and my home machine started making music. That's exactly what I wanted it to do, but I'm still not used to it.

Other protocols?

As can be seen by my library of more than 50 morris tunes the abc format does a great job of encoding simple melodies. However, there are other protocols for encoding music into plaintext which are better suited to multi-part score. Whichever one ends up being used on the WWW will have to be one whose specification is publicly available. A good reference on the possibilities is the FAQ on Music Notation Programs which is posted to the USENET monthly.

The first notation system in use on the Morris Dancing Discussin List was POM. Leeds University has numerous references which are relevant to electronic music, especially to the MIT Media Lab's Csound format. (Csound looks like a good contender for a universal WWW music format.) However, as of 1995 the FAQ on musical notation programs announces a new format called NIF which promises to solve everyone's computer music notation problems. Also see the Computer Music Journal archives from MIT Press. Neil Jennings <100040.471@CompuServe.COM> has a program called HARMONY with notation copied from the ACCU music system; he has a library of morris music, but it is only available on Compuserve.

Steve Putz, the creator of the original WWW interface for the Digital Tradition Folk Song Database, notes that MIDI may become the WWW standard as software interpreters for MIDI become commonplace. (But now there is a abc/MIDI converter). He has some documents about Csound format, the origin of the SongWright format, and a converter from SongWright to Csound. I have a (buggy but mostly effective) gawk script that translates SongWright to Chris Walshaw's abc format.

I would be happy to hear about other possible protocols.

Back to the WWW Morris Music page.


Steve Allen <sla@ucolick.org>