abcMIDI package

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 for some example abc tunes. abc2midi can be used to generate karaoke files. The abc homepage is the place to start if you want to know what abc notation is and what other programs use it.
Seymour Shlien has recently taken over as maintainer of abcMIDI. His latest version of the code may be found here for 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):

  1. C source code in a gzipped tarfile.
  2. C source code in zip format.
  3. DOS executables in zip format compiled using DJGPP. To run these under DOS you will need a DPMI server. If you are running under Windows, you should already have a DPMI server.
  4. 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.
For the benefit of novice computer users who can use Windows, but don't know how to use DOS, I have written some elementary Installation instructions.

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 code. 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 :
  1. A small collection of abc tunes
  2. A zip file containing the tunes in MIDI 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.

MIDI players

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 Harmony-Central.

MIDIplay player program

If you have a PC without a soundcard, you can still play MIDI files with the midiplay MIDI 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 Chris 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 John Chamber's 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 abc2ps, abcm2ps, jaabc2ps or abctab2ps . 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 URLs. 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 ( The MIDI handling part of the package is based around the 'midifilelib' public domain MIDI file utilities written by Tim Thompson and Michael Czeiszperger. This page last updated on 16th Feb 2003.