the abc musical notation language
abc is a language designed to notate tunes in an ascii
format. It was designed primarily for
folk and traditional tunes of Western European origin (such as
Irish, English and Scottish) which can be written on one stave in
standard classical notation. However,
it is extendible to many other types of music.
Since its introduction at the end of 1991 it has become very
popular and there now exist several PC and UNIX based tools
which can read abc notation and either process it into staff notation
or play it through the speakers of a computer.
One of the most important aims of abc notation, and perhaps one
that distinguishes it from most, if not all, computer-readable
musical languages is that it can be easily read by humans. In
other words, with a little practice, it is possible to play a
tune directly from the abc notation without having to process and
print it out. Even if this isn't of interest, the resulting
clarity of the notation makes it fairly easy to notate tunes.
In addition, the ability to write music in abc notation means that it can be
easily and portably stored or transported electronically hence
enabling the discussion and dissemination of music via email.
As an example the tune Paddy O'Rafferty would be written out as
T:Paddy O'Rafferty
C:Trad.
M:6/8
K:D
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:|
After processing a typical result might look like this (using abc2mtex):

abc notation - standards, new developments and history
To find out about how to use the notation have a look at the
abc standard V1.6
which describes the (simple) rules of abc
(although note that this was written by Chris Walshaw for abc2mtex and
so doesn't include some of the extensions found in other packages).
A new version of the standard is under discussion by all of the abc tools
developers
and there is also a
short history of abc.
abc-users mail list
... a mailing list intended as a forum for discussing
the abc notation and the software tools to handle abc.
abc software packages
The packages which support abc notation can be found at the following
sites:
-
abc2mtex
at Greenwich, UK; or
abc2mtex
at Ceolas, US
... is the original abc package for converting abc into sheet music.
It is freeware and should
in principal work on any platform (PC, Mac and UNIX). However,
you will also need to install all (or at least a large part)
of the TeX and MusicTeX packages. These too are freeware
but may take considerable efforts to set up (although
they are often available on UNIX systems in educational establishments).
-
abc2ps
... is Michael Methfessel's new package for converting abc into sheet music
which avoids the need to install TeX and MusicTeX. A
Mac version
is now available!
-
abc2win
... is a package by Jim Vint aimed at PC users which
supports the entry of abc notation and viewing
the musical notes onscreen in Microsoft Windows including Windows
3.1, Windows for Workgroups 3.11 and Windows 95. It will read and
update files of abc tunes. Tunes can be played over the PC
speaker as a means of checking the accuracy of the notation.
It is a shareware package so you can use it for free to view and
play music and pay a (small) registration
fee if you wish to print out the music.
-
abc4Mac
A Mac program for abc users from Wil Macaulay incorporating ports of abc2ps
and abcMIDI. Currently in beta test release, version 0.2
-
SET6
... is a package by William Robison specifically
designed for notating Highland Bagpipe music. It has its own input
language but a program to convert abc to this format is supplied.
It can also handle Bagpipe Music Writer files and can output in
a variety of different formats. Executables are freely supplied for
PC and HP/UX users (but not the source code).
-
playabc
... is a program by Don Ward which will play abc files through the speaker of
most UNIX systems.
-
PlayQABC
... is a part of Jim Vint's abc2win package for PC users,
but is also available for free as a standalone to play abc
tunes on any PC/DOS system.
-
AbcPlay
An abc MIDI player for Windows from Bernard Chenery.
-
abcMIDI
A package to convert abc to MIDI and MIDI to abc.
Since most standard music packages support MIDI output, this should make it
easier to generate abc from commercial software. It is available on the
web as C source code.
-
abc MIDIfier
abc MIDIfier is a Windows front-end to
abcMIDI,
James Allwright's MIDI program. Currently in beta release.
-
macabc2midi
... is a preliminary version of James Allwright's
abc2midi,
compiled to run on the macintosh.
-
abcMIDIfier
A Windows utility by Dave Glenn which provides a user-friendly front-end to
James Allwright's abcMIDI package.
-
indexabc
Ever wanted to find the name of a tune ... or remember how the last part
of it goes? If you can remember the first couple of bars, you can
use indexabc to search through all your tune files (or anyone else's
that you've downloaded) to find tunes beginning with that sequence of notes!
In any key!! Also useful for making a customised index of your abc tunes and
sorting it in any one of hundreds of ways.
-
sw2abc
The
Digital Tradition
is a huge song archive in which the tunes for the songs are stored in
SongWright format. Steve Allen's sw2abc is a gawk script that translates
SongWright into abc.
-
NMD2ABC
... a QBASIC program to translate the
Nottingham Music Database
format to abc.
Some recommendations:
- To convert abc to sheet music:
- If you know how to use a C compiler ...
abc2ps
- If you are using a PC ...
abc2win
- If you are using a Mac ...
abc4Mac
- For maximum control of the output, (if you know how to use a C compiler
and have TeX installed) ...
abc2mtex
- To play music on your machine:
abc collections
There are several collections of abc-notated tunes available
on the internet. Have a look at (in no particular order):
Mail me
if you want to add your collection to this list.
(WARNING: over 0.5 Mbyte; soon to be split into alphabetical chunks)
The idea of the web-wide abc index is to collect together a central
list of all abc tune collections on the web. A simple way of using the
index is to search through the tune names using your favourite web
browsers search facility. You can click on the file code to take you
straight to the desired file. Alternatively you can download the
thematic index
and use the tools provided by
indexabc
to search for tunes beginning with a certain sequence of notes.
The file codes I use in the index can be found
here.
I haven't indexed all the internet collections as many are based around
one tune per file (and it would take forever to download them all). If you
want a collection included in the index, just
mail me
the abc file(s) and the URL of where it can be found on the web.
abc international
The multinational abc software conglomerate.
Products shortly to be released from abc international:
- abc2trad
... introduces random gracing, bum notes and dodgy variations.
- replayabc
... plays abc tunes over and over again ad infinitum.
- detune
... takes the output of playabc and plays it slightly sharp or flat of concert pitch.
all of which combine into one mega package:
- abc2session
... splits the output of playabc seven ways, pipes each through abc2trad,
then through replayabc and finally through detune. Optionally adds a
bodhran backing track with random synchronisation.
Out on the shelves as soon as I get my head together:
- abc2newage
... takes any tune in abc notation and plays a piece of music
(always the same piece of music, of course) that sounds
identical whether played forwards or backwards. Optional flags for dijeridoo,
whale song and forest rain. Being developed in collaboration with D. R. Evans.
And for the singers among you:
- abc2finger-in-the-ear
... introduces nazalisation, audience chorus effect and forgets the words half way through the song.
Chris Walshaw
(C.Walshaw@gre.ac.uk)