ABC Music Notation: Intro

by John Chambers
(Back to main text)


In 1993, Chris Walshaw introduced a simple plain-text music notation, together with the abc2mtex program that translated it to the input format that the MusicTeX and TeX programs use. The result was some very nice "sheet music". Soon after, Michael Methfessel started writing a standalone program, abc2ps, which converts ABC to PostScript without requiring a complex package like TeX. Then James Allwright followed with abcMIDI, which converted back and forth between ABC and MIDI notation. Other programs soon appeared for Macintosh and DOS/Windows users.

Chris and most of the early users were folk musicians, and ABC has so far been used mostly to transcribe folk melodies. Slowly features have been added to support new sorts of musical notation. But all along the primary benefits of ABC have been maintained: It is a notation that is easy to type on an ordinary keyboard. The files are small, and can be sent via email or downloaded from web sites very quickly. If properly formatted, ABC notation can be very readable. And it's easy to write code in most common programming languages to parse ABC and do things with it.

There is now a rather large and growing population of software that understands ABC. Some of the commercial music packages now accept ABC as input and will produce it as output. This is not without a lot of grumbling over ABC's missing features. But it's the same phenomenon as the debate about fancy word processors versus plain text. ABC has the typical advantages of plain text: It's easy to read and type on any computer. It can be sent anywhere via email. It is very compact, making for small files and fast downloads. But it lacks most of the fancy features of the more advanced notation systems.

Another dichotomy that is useful in appreciating ABC's role is the difference between "markup" and "formatting" notation. ABC is primarily a "markup" system. It identifies the parts of the music, and provides a way of giving information about the music. But it intentionally includes little information about formatting or other interpretation. This is left for other add-on notation to handle. This has helped in the spread of ABC, because with most other kinds of music software, it can be very difficult to write your own program to extract information like title, author, rhythm, and so on. But with ABC, it's easy, and a number of ABC indexing schemes have appeared.

For a current list of software and other ABC pointers, see Chris' abc home page.

For a simple example of what ABC looks like, here is Chris' transcription of a well-known Irish jig:
T:Paddy O'Rafferty
dff cee|def gfe|dff cee|dfe dBA|dff cee|def gfe|faf gfe|1 dfe dBA:|2 dfe dcB||
~A3 B3|gfe fdB|AFA B2c|dfe dcB|~A3 ~B3|efe efg|faf gfe|1 dfe dcB:|2 dfe dBA||
fAA eAA|def gfe|fAA eAA|dfe dBA|fAA eAA|def gfe|faf gfe|dfe dBA:|
Here is what it looks like after processing by abc2mtex and conversion to GIF:
PaddyORafferty GIF from abc2mtex

Here is what it looks like after processing by abc2ps and conversion to PNG:
PaddyORafferty PNG from abc2ps

Here is a third version, from Barfly:
PaddyORafferty GIF from Barfly

Here is what it looks like after processing by abc2ps and conversion to EPS:
PaddyORafferty EPS from abc2ps
(Does your browser display that one?)

You can see that there are some stylistic differences, but all of them produce nice-looking music. The PostScript output looks even nicer than GIF or PNG files ever can, and can also be input to many document preparation programs. Unfortunately, few if any browsers will display PS or EPS directly. If they did, EPS could be used for the images in this document, and they'd be of much higher quality.

So now let's go on to how ABC notation works. The next chapter explains the structure of an ABC "tune".

(Back to main text)

Copyright 2001, 2002 by John Chambers