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.