Do we need the ‘new’ abc music notation standard?

Although I use abc music notation quite a lot, I haven’t looked at the specification for a while. I’ve always prefered to use the old 1.6 standard. To me, the main advantage of abc is the simple syntax to transcribe melodies, sometimes with chords or lyrics. There’s a trend going on to expand abc to a complete music description language for complicated multivoice music. However, the thousands of abc tunes online are mostly simple melodies. For music typesetting there are much better solutions, like Lilypond. The Lilypond syntax is more complicated than plain abc, but writing multivoice scores in abc is not much easier.

Since I’m working on new abc software I’ve had a look at the specification. The latest version is 2.1. Of course the 1.6 specification is a little informal. There have been many additions to abc 1.6 and the new standard is an effort to standardize these extensions. Unfortunately they’ve also deprecated part of the older abc files, so most of the abc music online does not conform to abc 2.1. New abc 2.1 files should start with a file format  identification ‘%abc’ or ‘%abc-2.1’. A quick google search shows that after almost two years there are only three files using the ‘%abc’ identifier and a handful of tunes using the ‘%abc-2.1’ version. So who’s using the new specification?

To keep things simple I think I’m going to stick with abc 1.6 and add my own extensions for everything that isn’t covered by 1.6.

4 thoughts on “Do we need the ‘new’ abc music notation standard?

  1. Hi Simon,

    I do a lot of transcribing of both simple melody line only and more complex three to eight part music for ensembles and some of the additions made in the latest standard are very useful. Fortunately most of the things that have been deprecated from the standard are still happily accepted by all of the ABC software I’ve seen so there will be no problem with you continuing to write your files to 1.6.

    I transcribe for the Village Music Project and we are obliged to adopt 2.1 (aka ABC Plus) in order to transcribe pieces in old manuscripts with more than one part. That’s an interesting point you make about the %%abc2.1 at the beginning of a file, I don’t use that but it’s quite possible that this is picked up at the proof reading stage and corrected, I’ll enquire!


    • Hi Pete,

      Thanks for your comments. Of course the extensions can be useful, but we already had extended abc software like abcm2ps before the new standard. I would still prefer a simpler standard, perhaps a more formal version of 1.6. By incorporating the extensions into the standard, abc is turning into a complex language, and loosing its simplicity. This simplicity is what I liked about abc. It’s interesting that you mention the identifier. Apparently the 2.1 standard is adopted (at least by the VMP), and yet there are still hardly any files online containing the required header. What’s the point of having a standard with so many rules that people don’t follow them?

  2. Having looked into the %abc identifier issue I have found out that there are more files around than you think that have this in the file header. ABC Explorer which is my software of choice inserts this every time it creates a new file so everything I’ve ever done complies. Looking at Chris Partington’s (VMP) Bits and Bobs page – all the files he links to have this in the header too.

    Older VMP files won’t because they were written before the 2.1 standard was released and this will also contain deprecated things like ! as a hard line return. If there is any reason for these files to be opened they are then edited and updated to the new standard but it doesn’t happen as a matter of course.


    • Thanks, I’ve found the headers. I’m not sure why google doesn’t detect them. I don’t know whether ABC Explorer checks for correct syntax or just pastes the header. So far I still haven’t found more than a couple of abc-tunes with the %abc-2.1 header. Most files just use the simpler %abc header (without version number). As far as I know this identifier was only introduced in 2.1 (it’s not in the 2.0 draft), and yet these files don’t seem to follow the 2.1 rules. I guess it’s just non-2.1 files with the identifier pasted by ABC Explorer. For example the VMP uses the %abc header in some files (suggesting at least 2.1), and yet uses the deprecated ! marker. So the %abc identifier without version number is just a result of the editor, not a sign of following the new standard.

Leave a Reply

Your email address will not be published. Required fields are marked *