The abc system of music notation was introduced by Chris Walshaw in 1993. In essence, the notes of the scale are denoted by the upper and lower case letters a-g.. Middle C is denoted C. The C above middle C is denoted c. A trailing apostrophe raises the pitch one octave; a trailing comma lowers it one octave. A note is represented in a manner similar to the C below it. For example, the notes on the lines and spaces of the treble clef are EFGABcde while the notes on the open strings of a guitar in standard tuning are E,A,DGBe where the commas are not separators but indicate the octave below middle C. The courses of the mandolin are G,DAe. Naturals, sharps, and flats are denoted by placing a =, ^, or _ before a note. Thus, =D is D natural, ^f is f sharp, and _E, is E, flat. However, sharps and flats are also implied by key signatures. In the key of G, for example, f denotes f sharp.
A wide range of music in abc notation--public domain fiddle tunes, in particular--is available on the World Wide Web. See, for example, http://www.gre.ac.uk/~c.walshaw/abc/#collections. John Chambers has established a highly effective index and engine for finding particular tunes. Elizabeth Scarlett's ABCTools can be used to change a tune's key or default note length.
In the mid-1990s Michael Methfessel wrote the program abc2ps to create PostScript files from abc files so that tunes notated in the abc system could be printed in standard musical notation. PostScript files can be printed not only on PostScript-capable printers, but also on a wide variety of non-PostScript printers by using freeware versions of GhostScript and GhostView. Aladdin Enterprises offers an easy-to-use Windows version of GhostScript with a Free Public License that can be downloaded from the GhostScript freeware site. (The current version of GhostView explicitly states it may be used without charge for noncommercial purposes. However, every time an unregistered copy starts, it displays a panel urging registration for those who might wish to offer financial support. The panel cannot be bypassed without registrating no matter how many times it is viewed. The user must interact with the program by clicking on the panel to proceed. Earlier versions of GhostView, such as 2.9, have no nag. They may be found through a web search for gsv29w32. [Version 7 of GhostScript has now been released. It is not compatible with versions of GhostView earlier than 4.0. If you wish to use an earlier version of GhostView, you will have to use version 6.x of GhostScript, as well.]
In 1999, Christoph Dalitz released the program abctab2ps. It extended the abc system of notation and the abc2ps program to offer support for guitar and lute tablature. It is an extension of abc2ps that should behave just like abc2ps when no tablature is is present. The current abctab2ps version 0.7 is built on abc2ps version 1.3.3. While abctab2ps provides support for tablature, it does not generate tablature notation from standard abc music notation.
m2g is a freeware DOS utility for IBM-compatible computers that adds abc guitar tablature notation to a file of abc music notation. The results are automatically fed to abctab2ps to generate a PostScript file of standard music and tab. m2g assumes abctab2ps has been installed in a directory that appears in the computer's path statement. If this is unclear or you do not wish to change your path statement, you may instead place m2g in the same directory as abctab2ps and run m2g from there. m2g can be run in a DOS window under Windows.
The syntax is
m2g filename [options]
The qualifier .abc is automatically added to the input filename if no qualifier is given. The output filename is given the basename of the input file and the qualifier .PS.
Options must be separated by one or more spaces. There are no tags such as -t or -s. They are identified from content since they have no values in common.
Missing or limited features:
This is a work in progress. At the moment, m2g handles a single melody line well and I've had some luck with chords. I'm hoping Christoph Dalitz will build the functionality directly into abctab2ps and make m2g obsolete. However, I've seen other areas where small programs continue to be useful for much longer than anyone would expect. In the meantime, it seems silly for me to combine the two programs. I'd rather take advantage of Christoph's continuing development of abctab2ps by keeping m2g as an addon.
This is illustrated by an example in 3/4 time, using a quarter note as the basic unit. The notation e>fg denotes a dotted quarter note (the e) followed by an eighth note (the f) followed by a quarter note (the g). It is equivalent to e3/2 f1/2 g1. abctab2ps demands that a length indicator follow the abbreviation in the tab lines of input. At the moment, the tab input created by m2g does not place the proper length marker over the note following the length abbreviation. In the example, a quarter note length mark will not be placed over the g.
For the moment, there are two ways to work around it. The first, and easier, is to place a length indicator in the original abc file, for example, e>fg1. The other is to use m2g's debug option to save the intermediate abctab2ps input file, TEMP.ABC. The length indicator can be added to TEMP.ABC and the altered file can be fed directly into abctab2ps.