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>