Proposed extensions of clef notations for abc

This page presents the distillation of discussions on extending the abc syntax to accommodate clefs other than the treble clef. There are also some ruminatios of my own on how abc might be extended to handle multi-staff music such as that for piano.

This is neither definitive nor complete

Because of a topic that came up on 1997-11-28 in the abc mailing lists I have placed this document on the WWW before finishing my efforts. It is guaranteed to continue to evolve even in the absence of feedback from the net.

By no means do I assert that this is the only way that abc might represent this music, nor do I assert that this is the best way. It is merely a possible way.

Traditional staff notation of pitch (TeX), (dvi), (GIF)

For reference I include a depiction of the tradional staff notation of pitch which served as the inspiration of the abc notation system. See the GIF linked in the heading of this paragraph.

For the sake of audio output, composition, and simplicity, there is no reason not simply to use the original abc notation for all pitches available on a piano. All abc audio output programs should support arbitrary octave shifts using commas and apostrophes.

On the other hand, if a particular clef is needed, or if the music is intended for an instrument which transposes between the written and played pitch (as more than half of all orchestral instruments do), or if a particular typeset layout of notes on staves with ledger lines is required, the original abc notation does not suffice.

Clefs for single staff music (TeX), (dvi), (GIF)

Discussions on how to extend abc to clefs other than treble began on the abc mailing lists in 1997-02. The discussions resulted in the pronouncement that the simplest ASCII notation was preserved if the pitch denoted ``c'' were always the C pitch closest to the center of the clef, or equivalently, if the pitch denoted ``C'' were always the C pitch just below the staff lines. This schematic is depicted in the GIF linked in the heading of this paragraph.

Using these staff notations it should be possible to transcribe music from any single-staff instrument. Those instruments whose parts sometimes switch from one clef to another can also be handled using the clef notation described in Henrik Norbeck's BNF of proposed abc syntax.

Although this proposal adds some complexity to the abc syntax, it is in keeping with the philosophy of abc as the simplest ASCII text representation of music. However, it is important to note that these proposed definitions for the clefs mean that abc pitch letters would not correspond to absolute pitches. There is some dissension in the abc community over this issue. In some sense it is a question of whether abc is aimed at encoding and outputting typeset score or audio signals. This issue needs to be resolved by the abc community before the language standard can evolve beyond the treble clef.

When resolving the above issue it must be noted that more than half of all instruments are transposing. This raises the question of whether pitches in abc should be notated as written or as played, and this applies even to instruments which use the treble clef. It might be a good idea to conduct a survey of sight-reading musicians to determine the answer. My own impression is that abc should be notated as written, and that explicit instructions for the amount of transposition should be included for audio playback applications.

Clefs for multi-staff music (TeX), (dvi), (GIF)

Basically, the idea is that the lower staff uses uppercase, and the upper staff uses lowercase. In addition to the information in the GIF, I propose that rests on the lower staff be denoted ``Z'' and that rests on the upper staff be denoted ``z''.

There are several instruments which are fundamentally different from others. These include the piano, celesta, harpsichord, harp, and organ. Such instruments have a pitch range which covers a large number of octaves, and they have the ability to play most or all of these pitches simultaneously.

Music for these instruments is traditionally set on the ``grand staff''. Usually this consists of two adjacent staves with the lower one being bass clef and the upper one being treble clef. However there are numerous exceptions to this where both staves are treble, both are bass, or one or both staves are offset by one (or two) octaves from default. And it is extremely common to see ledger lines which permit one staff to hold notes which would more naturally fall on the other.

When notating music for such instruments in abc it is certainly simplest to use two separate staves whenever possible. However, there are numerous musical idioms which cannot be expressed by voices on separate staves. Follow this link for some examples whic motivated the development of this clef notation.


For the sake of playback applications there is no reason not simply to use the original treble clef notation of abc. Typesetting using extended octaves of the original notation is also perfectly acceptable so long as particular usage of ledger lines is not needed, but for instruments which use only the bass clef such notation requires excessive use of commas.

Similarly, for the case of composition of orchestral score it might prove easiest to work in the original treble clef notation. Later the parts for each instrument could be transposed to the proper clef and offset for typesetting.

I find that one of the biggest drawbacks of the current BNF proposal for including clef information in voices is that it permits each voice assigned to a given staff to give a redundant, and therefore contradictory, specification of the clef currently in use. I would heartily endorse a change in the specification of clefs which removed this redundancy. On the other hand, a good typesetting program would presumably check and warn about contradictions, and the redundant information does make individual voices easier to sight read.

More information on abc

Chris Walshaw created abc and maintains the principal WWW page. The abc language is a registered MIME type.
Steve Allen <>

Initial deployment: 1997-11-28
Most recent update: 1997-12-02