ABC in general

If you want to know more about ABC, some good starting points would be :-
  • Chris Walshaw's ABC Pages, which includes a huge list of links to relevant software, a good list of other tune collections, and much more. Chris was the original inventor of ABC.
  • John Chambers' ABC Tune Finder The tunes' search engine. If you're looking for notation of a particular tune, this is where to look. His ABC Music Page is another collection of useful pointers.
  • Steve Mansfield's ABC Tutorial, and more.
  • Guido Gonzato's ABC Plus project - links and documentation. His "Making Music with ABC 2" is the best single piece of documentation that I know of, highly recommended. It mainly refers to abcm2ps, but much of what it says is applicable to the other ABC programs too. Here, for convenience, is a local copy (version February 2017).
  • the ABC standards. I mention these mainly for interest and information. This site aims to accept the ABC that people have actually written and given to it; and, so far, very little of this shows much awareness of these standards. Since much of the site's work is done using external programs anyway, it supports the standards to the extent that those programs do.

the Programs

The work of producing useful output is done by various 3rd-party programs. The programs this site uses are :-

abc2midi - Generates midi a file for 1 tune.
abcguide.txt is a description of how abc2midi interprets ABC. This includes various 'directives' (magic words) that you can include in the text to control the midi output in various ways.

abcm2ps - a typesetter; turns ABC into images of standard 5-line notation. abcm2ps is the site default for rendering tunes. This also accepts various 'directives' to control the formatting of the notation. These are described here, and here are the site's default values. Here are the author's comments on its features.

abc2mtex - Another typesetter, based on TeX, and capable of much more sophisticated typesetting than abcm2ps, if only you can understand TeX well enough to persuade it to do so. This is the original implementation, ABC according to its inventor, the program that made ABC into a Thing. It is also, by now, very old, and hasn't kept up with subsequent developments, with the result that it's likely to have problems with most of the ABC here. which was written in other variants; it'll render properly or not depending on the content of the tune. Also, I haven't been able to persuade it to render in landscape mode yet. This is probably only of interest to people who have a particular need for it and, hopefully, know what they're doing.
abc.txt is a plain text description of ABC as understood by abc2mtex, and is an expanded postscript version of the same.

LaTeX - Another typesetter, even more so then TeX. This is not ABC-related, and can only be used on documents. I'm hoping that if you want to use this you'll know where to find documentation ...

Program Configuration

This is done via the 'Tune' and 'Document' tabs of the
Preferences form.

Rendering - You can choose which of the typesetters to use, either on a per-tune basis in the 'edit' page, or a default.

abcm2ps and abc2midi - if either of these is called on a tune, the 'abcm2ps_header' is included in front of it. If abcm2ps is called on a document it will be included once, at the top of the file.

abc2mtex - the orginal distribution's 'header.tex' is available to be edited, as 'abc2mtex_header'.

LaTeX preamble - 'latex_header' will be included at the start of each document.
There are also LaTeX templates to format both a full tune and a leadin , the first few bars of a tune.

Character Encodings

I've never wanted this site to be limited to tunes with titles that can be written in western European alphabets - therefore this site uses the Unicode utf8 encoding throughout. You can write your ABC tune titles and other text in the alphabet of your choice and they should display properly in the website text without any problem. The images of the notation, and PDF downloads, are rendered using 3rd-part software (see above) - its preferred typesetter, abcm2ps, can deal with this, so if you stick to using that for your rendering there should be no problem. The situation is not so clear as regards the other typesetters (abc2mtex and LaTeX). I'm not expert enough in either of these to know what to do about this so all I can say is, you have access to the headers ...

Historically, ABC has not supported utf8, its default character set was specified as latin1. If you want to use ABC from this site in a program that doesn't support utf8, go to the Preferences page and untick the "Encode ABC as utf8" box; abc downloads will then be backwards-compatible. If this output contains characters that don't have a latin1 encoding, the site will try to find whatever ISO8859 set is appropriate and use that - this will be marked with an "%%abc-charset [character set]" (as per various specs) and an "%%encoding [number]" line (for older versions of abcm2ps). If it can't do this it'll give up and provide utf8 for you to sort out yourself.

In practice, most people ignored the spec and wrote whatever worked on their machine, with the result that the vast bulk of ABC was written using microsoft's codepage 1252, and I think the site accepts this and deals with it right. It also understands the "%%abc-charset" and "%%encoding" lines. ABC written for abc2mtex, on the other hand, uses the TeX 'escape sequences - \"a for ä, and so on. I don't make any attempt to translate these, you see them as you wrote them.

If accented characters in the web pages display wrongly, check that your browser is set to use Unicode utf8.

<<< Introduction          ^^^ Index ^^^          This site's ABC >>>