abcMIDI

Maintainer: Seymour Shlien

Download the latest abcMIDI

Go to James Allwright's original abcMIDI page.

abcMIDI is a package of programs developed by James Allwright for processing ABC music notation files. It consists of several programs: abc2midi, abc2abc, yaps, and midi2abc.

abc2midi is probably the most advanced program for creating MIDI files from ABC files. It contains special features, such as handling multivoiced files, expanding guitar chords into bass chordal accompaniment, transposing individual voices, and adding percussion accompaniment. All the MIDI files on Aubrey Jaffer's web site were created from ABC files using this program.

abc2abc is a useful utility for reformating ABC files, checking the syntax, transposing to another key, extracting particular voice lines, updating the chords or slur notation and for other functions.

yaps converts an ABC music file into a PostScript file containing the common music notation. The source code in this program is not a clone of abc2ps (the original ABC to PostScript conversion application) and takes an independent approach.

All three of these programs share a single parser (parseabc.c) so that they interpret the ABC file in a uniform way. This is useful in tracking problems. If you cannot tell what is going wrong by listening to the MIDI file, you may have more success looking at the PostScript file produced by yaps.

Midi2abc is another useful program included with this package. It produces an ABC file from a MIDI file. In some circumstances the resulting ABC file is not particularly easy to read, but it is a fairly accurate representation of the MIDI file. This program is also useful for debugging abc2midi when the output file does not sound quite right (which may happen with multivoiced ABC files).

All of these programs run with a command line interface, however there are a few packages which act as a front end to these programs and provide a graphical user interface (eg. runabc.tcl found at this website).

James Allwright has stopped development and maintenance of this software and has tranferred this task to me (seymour dot shlien at crc dot ca). My main goals are to fix any bugs, improve the documentation, make the code as compatible as possible with the existing database of ABC files and finally track the evolving ABC standard. (The last two items may sometimes be in conflict.) Since abc2mps is becoming the main standard for creating PostScript files from ABC files, less effort will be devoted to supporting the yaps software. (I will fix problems where yaps crashes with a segmentation error, but I will not try to bring it to the same level as abcm2ps.)

I am rather cautious about introducing new features that address a select community of users. Though it may be easy to implement the new feature in one program, a lot more work may be involved to make these features work with all the other functions (e.g. transposing software in abc2abc, multivoiced files, bass chordal accompaniment, etc.). The software is already complex enough for my taste.