ABC Music Notation: Voices

by John Chambers
(Back to main text)


ABC is somewhat biased towards a "voice", that is, a sequence of notes for an instrument that produces one note at a time. There is work underway to design a multi-voice facility for ABC, so that choral, orchestra and band scores can be represented easily. This is currently under active development, and is rather preliminary. Different ABC software currently implements different portions of this.

Phil Taylor has written a summary of voice features in various ABC programs:

The most general syntax so far defines a voice with a header line of the form:

V: label par1=value1 par2=value2 ...
Such lines should appear within the header of the tune. Within the music portion, you would use only:
You may also use
[V:label] music ...
This is convenient because it lets you put the music on the same line.

Currently, there is disagreement on what the label may be. Some programs only allow numbers (and may insist that they be consecutive). Other programs allow any single word, such as V:Soprano or V:Cello. Most of the examples so far use only numbers.

There are a number of parameters that may be used in the definition of a voice. Here are some of the parameters defined so far:

param short example description
name nm nm="Violin I" This sets the long version of the voice name, to be written before the staves at the start of a piece. If the string contains \\, this is interpreted as a line break and the pieces are writen above each other.
sname snm snm="Vl. I" Short version of the name, written before subsequent staves.
clef cl clef=bass Chooses the clef (treble, alto, or bass). It can also be bass+8 and so on.
staves stv stv=2 This is the number of staves (starting from the current one) to connect by tall vertical bar lines.
brace brc brace=2 This is the number of staves (starting from the current one) to be grouped together with a brace. When this option is used, the name defined in the same V: line is written at the center of the brace.
bracket brk brk=4 The number of staves to be grouped together by a bracket. This option does not change the way in which the names are written.
space spc spc=40 This defines or modifies the vertical space between this staff and the one below it. The space can be given in pt (default) or with a unit in the form 1cm or 0.4in. Furthermore: if a + or - sign comes after the start of the number, the value is an increment to be added to or subtracted from the default setting.
gchords gch gch=0 This controls whether any guitar chords embedded in the current voice are actually written. True/false are specified as for the %% formats.
stems stm stems=up This says that stems for this voice's notes should all go in the same direction, which may be "up" or "down". The default is to let the program draw stems as it wishes, including the possibility that notes will be joined on a single stem.


Here is the first page of a Bach trio sonata:

T: Sonata I
C: J.S. Bach
M: C
L: 1/8
V:1 clef=treble name="Violino I"      sname="Vl. I"
V:2 clef=treble name="Violino II"     sname="Vl. II"  space=+10
V:3 clef=bass   name="Violoncello\\<Vla. da Gamba>" sname="Vc."
[V:1]  g8-|gf/e/ {e}f>g (a/f/d/f/) (A//=B//A//B//TB3//A///B///)|
[V:2] z8 | z8 |
[V:3] z cec gGBG | Aa- a/_b/a/g/ f3 g/f/ |
[V:1] c/gf/ E/ed/ c/c'b/ A/ag/ | ^f/e/d- d/(c/B/A/) G/(e/c/e/) Aa| d2-d/g/_b/a/ a3 g/=f/|
[V:2] c8- | cB/A/ {A}B>c (e/c/A/c/) (E//^F//E//F//TF3//E///F///) | G/(D/G/A/) _B/G/g/e/ ^cA d2-|
[V:3] edcB AG^FE | D^FGg c3d/c/| _BG g2-gf/e/ f>g|
[V:1] Te/>d/e- e/(a/f/d/) TB/>A/B- B/(A//B//c/)d/| TG/>F/G- G/(c/A/F/) DTd/>c/ d/g/B/d/|Tc/>B/c2 B A/ag/ fA|
[V:2] dT=c/>=B/ c>f d>e AF-| FTE/>D/ Ec'/-a/ Tf/>e/f- f/d/g/f/ | Te/>d/e/g/- g/fe/ d^c d/FE/|
[V:3] aA a2-a^g a>b| c'c c'2-c'b/>a/ b2-| b>e ag fed=c-|
[V:1] G/gf/ E/ed/ c/c'b/ A/ag/|^f/a/g/f/ g2-g>e' f2-|f/e^d/ e2-e>c' =d2-|
[V:2] DG, G/gf/ E/ed/ =c/c'B/|ad'- d'/c'/d'/e'/ Ta/>g/a- a/c'/b/^f/|(g//a//g//a//Ta3//g///a///) b/a/b/c'/ T^f/>g/f- f/a/g/d/|
[V:3] cB/G/ cC zgac- |cb/>a/ b>c' d'c'd'd| e^fga babB|
Q:"Alla breve"
[V:1] [L:1/4] c4|B4|_B4|A2zd|=BGc2-|cd/e/ f/a/g/f/|e/d/c2B|e3^f|gG/A/Bc|
[V:2] [L:1/4] zC/D/EF|GDG2-|GF/E/DE|FCF2-|FE/D/EF/G/|AFDB|cgG2-|GA/B/ c/e/d/c/|Bd2e|
[V:3] [L:1/4] z4|z4|z4|z4|z4|z4|z4|z4|g4|

Here's how that comes out in standard music notation:
Score of Bach Trie Sonata

(Back to main text)

Copyright 2001, 2002 by John Chambers