The abcMIDI package contains the following :
You can find more information about these programs in
the README file for
the first three programs (which also tells you the latest
version numbers) and yaps.txt.
See abcguide.txt for how to
write abc for abc2midi and demo.abc for
some example abc tunes. abc2midi can be used to generate karaoke
The abc homepage
is the place to start if you want to know what abc notation is and
what other programs use it.
- abc2midi - a program to convert abc notation to MIDI files.
- midi2abc - a program to produce crude abc from a MIDI file.
- abc2abc - a utility to do transposition, error checking and
re-formatting on an abc file.
- yaps - (NEW) utility to convert abc to PostScript based on
Michael Methfessel's PostScript library for abc2ps.
Seymour Shlien has recently taken over as maintainer of abcMIDI. His latest
version of the code may be found
Windows executables and here
for Windows and Linux RPMs. This site will continue to archive the
last release by the previous maintainer (James Allwright).
These programs are distributed under the GNU Public Licence and are
available in a range of formats (Beware! The versions here are not the
latest ones maintained by Seymour Shlien):
For the benefit of novice computer users who can use Windows, but don't
know how to use DOS, I have written some elementary
- C source code in a gzipped tarfile.
- C source code in
- DOS executables in zip format compiled
DJGPP. To run these
under DOS you will need a DPMI
server. If you are running under Windows, you should already have a
- DOS executables in zip format compiled using
PCC. Unfortunately I cannot find a current link for this compiler.
Download this is you have a 286 or older.
The version compiled with DJGPP is recommended as it can handle much
larger abc tunes. DPMI stands for Dos Protected Mode
Interface. Processors from the Intel 386 onwards support protected
mode. The DPMI server is an executable which needs to be in your
path for programs compiled with DJGPP to run.
You can also download a zip file containing
man pages for the programs and a detailed description of the abc2midi
Thanks to Anselm Lingnau, Christoph Dalitz and Seymour Shlien for
sending me these.
abc Tune Collections
Here is my own collection of tunes in abc format :
A much larger collection available at this site is the
abc version of Nottingham Music Database.
See the abc homepage
for the comprehensive list of tune collections.
- A small collection of abc tunes
- A zip file containing the tunes in MIDI
To hear the output of abc2midi, you will need a MIDI player. If you want
to use the abc w: format (still experimental), you should make sure that
it is karaoke-aware.
You can find MIDI players and other software at
MIDIplay player program
If you have a PC without a soundcard, you can still play MIDI files
player program which uses the PC's internal speaker and understands
karaoke MIDI files.
What is abc notation ?
Briefly, a way of using ascii characters to write down what you would
see written on a music stave. The official definition of abc notation is
Walshaw's description of the abc Notation System 1.6.
I have written a
Guide to writing abc for abc2midi.
For further information, you could try looking in
repository of abc-related documents.
Users of abc2midi often use an abc to PostScript converter to
produce printed notation from their abc. If you don't like yaps,
you might want to try
To make use of these programs, you will probably need to install
Ghostscript and GSView.
Notes on the code
The code has been written in C and compiled with DJGPP and PCC for
the PC. It has been reported to compile correctly on a range of different
Unix systems, and it should be a simple matter to compile and run the code
on any system with a make utility and a good C compiler. If you want to
try changing the code, you can read my reflections
on developing abcMIDI.
There is a change list for the code. You may
wish to consult this to see if a problem you have with the code has
been fixed by a later version.
Please note that I (James Allwright) am no longer actively supporting
this code. If you run into
problems, you may be able to get help from the abcusers mailing
list or Seymour
Shlien who has volunteered to provide some support for the code.
In case you should want to write your own abc utility based on my
abc parser, or add your own commands to abc2midi, the source code
contains notes about the parser code.
Graphical Interfaces for use with abc2midi
Ports to other Operating Systems
Some of these links are no longer valid, but I don't have the correct
For general information about using abc on Linux, you might like to consult
my abc on Linux page (still in draft form).
The abcMIDI package is written by James Allwright (J.R.Allwright@westminster.ac.uk).
The MIDI handling part of the package is based around the
public domain MIDI file utilities written by Tim Thompson and
This page last updated on 16th Feb 2003.