Author Topic: ABC is a format designed to notate music using plain text  (Read 1517 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4259
ABC is a format designed to notate music using plain text
« on: February 08, 2010, 10:08:01 PM »
ABC is a format designed to notate music using plain text

The ABC Music project

ABC, developed by Chris Walshaw, is a format designed to notate music using plain text. It was originally designed for folk tunes of Western European origin which can be written on one staff, but has since been extended to support the notation of complete, classical music scores.

Since its introduction at the end of 1991, ABC has become very popular. Programs on many operating systems use ABC as an input and/or output format. There are programs which produce printed sheet music or allow for computer performances, search in tune databases, or that analyze tunes in some way.

The aim of this project is to promote the ABC language by maintaining the ABC standard and a set of software and source code that manipulate and present music written in ABC.

On this site, you can find among others:

The ABC standard (maintainer: Irwin Oppenheim)

resources: ABC resources on the web
abcMIDI (maintainer: Seymour Shlien): It contains among other things a tool for creating MIDI output, and a tool for transposing tunes.
iabc (maintainer: Aaron Newman): a graphical, interactive, and cross-platform ABC editor
jcabc2ps (maintainer: John Chambers): an ABC to PostScript convertor
The Nottingham Music Database (maintainer: James Allwright): an ABC version of this tune collection

You can download files, access the CVS repository, use the bug reporting system, etc. from the Project Summary Page.

The ABC Music project is grateful to Bert Van Vreckem for designing and maintaining this website.

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.