ABC Music Notation: Features

by John Chambers
(Back to main text)

There is a basic set of notation that is supported by most ABC software. In addition, a lot of programs have extensions to support various extensions or "features" that their authors have found useful. Some of these are under active discussion in the abcusers mailing list and may some day become an official part of the language.

This is a table of some of ABC's features versus software packages, showing which features are supported by which packages. Here's what the cells' contents mean:

(blank)
not known.
No
The package doesn't support this feature.
Yes
The package supports this feature.
If you know information that's missing or incorrect here, send me mail.

Voices
program abc2mtex abc2ps abc2win abc4Mac abc2midi abcmus AbcPlay BarFly Muse YAPS Skink
variant mm jc ja jm
Voices
V: voice lines   Y Y Y Y             Yes    
V: name=   Y Y Y Y                  
V: clef=   Y Y Y Y           Y      
Annotations
!text!   N Y   Y                    
"^text"   N Y Y N                    
"24"|   Y Y ? Y                  
"B"|   Y Y Y Y                  
x invisible rest   Y Y Y Y                  
y unplayed rest   Y Y Y Y                  
Ornaments
J slide   Y Y ? Y       Y          
H fermata   Y Y ? Y                  
M emphasis   Y Y ? Y                  
R roll   Y Y ? Y                  
u up-bow   Y Y ? Y                  
v down-bow   Y Y ? Y                  
Lyrics
w: lyrics   Y Y Y Y                  
Keys
K:Dphr^F   N Y N N No   Yes Yes   Yes      
K:Dphr ^F   N N N N No                
Meter
M:none   N Y N ?   No       Yes Yes Yes Yes
M:23/44   Y Y Y Y                  
M:2+3/4   Y Y Y Y                  
M:2/4,3/4   N N N N                  
Endings
:|3,4     Y         Yes       Yes    
|:: ... ::|     Y   N                  
________                            
Output
PostScript out Yes Y Y Y Y               Yes  
Sound out                   Yes Yes      
MIDI out               Yes     Yes      
AIFF out                     Yes      
variant mm jc ja jm
program abc2mtex abc2ps abc2win abc4Mac abc2midi abcmus AbcPlay BarFly Muse YAPS Skink


Descriptions of Features


Explicit key signatures

At present this is only known to be fully implemented in jcabc2ps. It allows the usual K:<tonic><mode> to be followed by a list of accidentals which are added to the key signature. Just K: is allowed, and specifies a tonic center and explicit list of accidentals, with "major" not assumed.


Global accidentals


Free Meter

This indicates free-meter music. No time signature should be drawn, and no checking of measure length should be done.


Multiple time signatures

Some kinds of music use measures of several different lengths. The southern German "zwiefacher" is an example. This extension allows for multiple meters as in M:2/4,3/4. Such time signatures should all be displayed at the usual place on the staff, and measure checking should accept all of them as valid.

(Is this fully implemented anywhere?)

Some programs accept bogus notation such as M:23/44 This is to be discouraged, as it confuses software that tries to understand and use it.

Some programs accept notation like M:2+3/4. This is not properly a multiple time signature. Rather, it means M:5/4, with the added information that beats are grouped 2+3 rather than 3+2 within each measure.


x: invisible rest

This is a rest that isn't shown but is played. It is mostly useful in multi-voice music, to cut down on the clutter of many rests. If software extracts a voice from a score, it might be a good idea to have an option to convert x rests to z rests.


y: invisible and unplayed rest

This is a "rest" that takes space on the screen or paper, but is ignored otherwise. Players should ignore it entirely. This is only marginally a "rest", of course; it could be better described as a thin spacer.


Lyrics under the notes (w: lines)


Annotations: !Text!

Some programs implement a form of annotations that use !...! instead of misusing the "chord" notation. Generally, the contents of a !...! annotation must be one of a list of standard musical terms. Display programs may just display the text above or below the staff. For some annotations, music display programs should draw the corresponding musical symbol. Some symbols that have been suggested are:

!D.C.!the letters D.C. (meaning da coda)
!D.S.!the letters D.S. (meaning da segno)
!accent!> mark
!breath!a breath mark (apostrophe-like) after note
!coda!a ring with a cross in it
!crescendo(!start of a < crescendo mark
!crescendo)!end of a < crescendo mark, placed after the last note
!diminuendo(!start of a > diminuendo mark
!diminuendo)!end of a > diminuendo mark, placed after the last note
!downbow!downbow: squared n mark
!emphasis!same as !accent!
!f!
!fermata!fermata or hold (arc above dot)
!ff!
!fff!
!ffff!
!fine!the word fine
!invertedfermata!upside down fermata
!longphrase!same, but extending 3/4 of the way down
!lowermordent!short /|/|/ squiggle with a vertical line through it
!mediumphrase!same, but extending down to the centre line
!mf!
!mordent!same as !lowermordent!
!open!small circle above note indicating open string or harmonic
!p!
!pp!
!ppp!
!pppp! dynamics marks
!pralltriller!same as !uppermordent!
!repeatbar!repeat previous whole bar, a % symbol
!repeatbar2!repeat previous 2 whole bars, a % symbol with a 2 adjacent this can be extended to an arbitrary number of bars
!roll!a roll mark (arc) as used in Irish music
!segno!2 ornate s-like symbols separated by a diagonal line
!sfz!
!shortphrase!vertical line on the upper part of the staff
!snap!snap-pizzicato mark, visually similar to !thumb!
!tenuto!horizontal line to indicate holding note for full duration
!thumb!cello thumb symbol
!trill!"tr" (trill mark)
!turn!a ~ turn mark
!upbow!upbow, V mark
!uppermordent!short /|/|/ squiggle
!wedge!small filled-in wedge mark
!+!left-hand pizzicato, or rasp for French horns
!0!-!5! fingerings


Annotations: Quoted Text

This is not part of the standard yet, but is implemented by a few ABC tools. In the past, a lot of ABC has mis-used the "text" chord notation to place arbitrary text above or below the staff. The proposed extension uses:

"^text"
is placed above the staff.
"_text"
is placed below the staff.
The idea is that the ^ and _ characters tell the software that this is not the name of a chord, but just plain text. The initial flag character will be stripped off, and the text displayed above or below the staff, hopefully in a position that doesn't clash with other symbols. We expect that eventually the common musical terms may be recognized and interpreted by player programs.
Repeats


Alternate Endings


Bar numbers


Bar Labels


PostSscript out

PostScript is the language accepted by most laser printers, and can produce very good-looking printed music.


Sound out

This means that the program plays the music using the computer's sound card.


MIDI out

MIDI is the Musical Instrument Digital Interface, the most widely-used encoding scheme used by electronic musical instruments.


AIFF out


Multiple Voices


(Back to main text)

Copyright 2001, 2002 by John Chambers