There have been many music software packages marketed in recent years. Some of them can do marvelous things. But all have had some major problems: They are proprietary products that typically run on only on one machine. You can't email the files to friends unless they have the same kind of computer with the same software. If there's something wrong, you just have to wait for them to fix it.
The abc software, in contrast, uses ASCII source files that can be emailed with no known problems. The files are small, making for fast network access. The software runs on every common computer, and is mostly free, or nearly so. If you have ideas for improvements, and you have a C compiler, you can get the source and make improvements (and then share them with the rest of us).
The abc home page is at http://abcnotation.com/. You'll find pointers to the source, as well as binaries for your Mac or W95 machine. You'll also find pointers to a growing list of abc musical archives.
Yep, there's a mailing list for abc users: https://groups.yahoo.com/neo/groups/abcusers/info.
The only fixed rule is the following order:
Other header lines may be in any order between the T: and K: lines.
Some software will accept either X: or T: as the start of a tune,
and not require both. But it's a good idea to include both, so
that your abc will work everywhere.
The P: lines are a semi-exception: You often see P: after the K: line. Such a P: line is technically outside the header, in the body of the music. The conventional use of P: inside the headers is to state the order of parts, as in P:AABBACCA. You would then use P:A before the first line of music (after K:) to label the A part. A later P:B would label the B part, and so on.
The E: K: L: M: P: Q: T: V: W: w: lines may also occur within the tune, as well as in the header. Some recent software encourages using [...] around such commands, and they can then be placed anywhere within the tune, not just at the start of a new line. Thus [K:Gm] may be used to change the key signature to G minor in the middle of a line. Some abc software might not recognize this syntax yet.
By the L: header line. L:1/8 means that a note without a length is an eighth note (semiquaver).
If you want to omit the L: line, the rules are: The time signature is converted to its decimal value. If the value is 0.75 or higher, the default is L:1/8. If the value is less than 0.75, the default is L:1/16.
You might consider not asking this question at all, and including a L: line in every tune. That way, there will be no surprises.
Yes, though some programs may not handle it correctly. The notation is a time signature line of M:none, which should suppress the time signature and any checking.
Yes, they do. The rule is the same as for standard music notation: An accidental applies to that note (in any octave) for the rest of the measure, unless cancelled by another accidental. However, there are two qualifications:
Proper support for words is new as of early 1997, and may not work yet with all programs. (It may be a while before abcMIDI supports them. ;-) There is also some experimenting going on with variants on the notation, so some of this may change in the future (but probably not by much).
There are two different sorts of word lines: w: and W: lines.
Here are the special characters:
Here's an example with lyrics below the notes, and an English translation below the music. And here's what it looks like as a gif file.
By a blank line. This means that you shouldn't put blank lines within a tune, as they will truncate the tune. You can use "nearly blank" lines that consists of just a '%' or '\'.
Currently, abc2ps puts chord symbols above the music, and abc2mtex puts them below. The music publishing industry is evenly divided as to which is "correct". Eventually, there may be options telling the abc programs which you prefer.
This is an area of future development. ABC currently has no standard way of including such directions. Many people have (mis)used the quoted "guitar chord" notation for this purpose. The problem with this is that when ABC is tranposed, "da Capo al fine" becomes "eb Dbpo bl gind" for Bb instruments. Stay tuned ...
This is an area of future development. Many unix-like systems, including recent linux or freebsd systems, have ghostview and the GNU graphics tools. Look around for things with "pbm" or "png" in their names. If you have these, you probably have everything you need, though they might not be easy to use at first. Here are a few perl scripts that use them:
With ghostview, you can use abc2ps to get a postscript file, and then convert it to gif with the command:
gs -q -DNOPAUSE -sDEVICE=ppmraw -r${resolution} -sOutputFile="|pnmcrop|ppmtogif -interlace >xx.gif" -- xx.epsA value 100 for ${resolution} seems to give a reasonable result on at least some screens; you may want to experiment a bit. Here's a perl script that can do it for you.
We can thank Richard Robinson <richard@beulah.demon.co.uk> for this one.
Macintosh users can get ghostscript for the Mac, and you might also check out the Acrobat Reader.
Sometimes spaces and newlines are significant; sometimes not. Here are some guidelines:
(This reminds me: The statement above that there are no known email problems with abc was actually a small lie. There is one known problem. Some email packages like to truncate text to 72 or 80 columns by inserting newlines. This can cause very strange effects in abc files, especially when the newline is in the middle of an ornament. It's hard to believe that the punch-card mind is still with us, when there no longer seem to be any 80-column devices on the market. We should probably just hunt down the programmers who write things like this, and shoot them on the spot. It'd probably qualify as justifiable homicide. Unfortunately, we can't afford the time, since we are too busy hunting down the turkeys who brought us the year 2000 problems, and shooting them. ;-)
The first answer, which you will hear from many experience musicians, is "Don't." The more experienced musicians usuallly want just the tune, thank you, with maybe a few subtle clues as to what to ornament. For them, ~D suffices to say "ornament a D however you feel like at the moment."
But you may want to write out suggestions for those who aren't as intimitely familiar with the style. The main technique that abc provides is the {x} notation. Thus you could write out an ornamented G in several ways:
This doesn't seem to be well standardized right now.
With abc2ps, the default is that all music lines but the last are aligned on the right; the last is its "natural" width. The "-g shrink" suppresses this alignment, and gives a jagged right margin. However, a final '*' on a line causes that one line to be stretched to the right margin. Got all that?
abc2win offers a way to do this in the Page Layout Settings. Select "Tune Space and Layout" and then turn on the checkbox labelled "Justify Last Line." (quote from Jim Vint)
This is a recent addition to the standard, as of early 1996, and not many programs handle it properly yet. The notation now allows for explicit accidentals in a K: signature line, in addition to the tonic and mode. Thus [K:Dm_e^f] would represent D hijaz/freygish, with a key signature of _B_e^f. (You might also use [K:D_B^f] for the rarer form with ^c throughout.)
Programs known (not) to handle explicit key signatures:
If you are using Netscape, and have perl, abc2ps and ghostview (that is, you are probably a Unix user ;-), then you might be interested in my Helper and abc2gv scripts, which team up to implement a browser "helper" app that can be used to automate display of abc files. If installed correctly, with a .helpers file in your home directory, you can click on a link to a .abc file and a couple of seconds later a window will pop up with the music displayed. This works well with single-tune files; it becomes rather slow and unweildy when you try to access some of the huge single-file abc collections on the net.
Also, this scheme doesn't seem to work with Mosaic or lynx (though their docs say it should), and MSIE is a complete unknown to me. Maybe someone else can send me further information about other browsers.
Ultimately, what is needed to do this correctly is to establish an official abc MIME type, and pressure all suppliers of web software to include it. This is in the works; the type will probably be "text/vnd.abc".
For "pure" abc files, it should be ".abc". Some software makes this difficult, and wants you to use things like ".txt". Try not to let this happen, as abc software might not recognize it.
Some people put abc files on the web with ".html" as a suffix. This is a very bad idea. There are things in abc that look like html, and the result is lost notes. Consider the measure
Yes. Here are some. If you decide to tackle the job, let me know.
This is definitely an area for further development. Some partial answers:
The abc2mtex package has the ability to find tunes in arbitrary keys and do "approximate" matches. You don't have to install the full mtex package to use the search features.
See JC's tune finder for a way to locate ABC files based on (partial) title matches.
This is handled by the Q: header line, which has several formats: