ABC plus

From CCARH Wiki
Revision as of 16:20, 1 December 2010 by Craig (talk | contribs) (created page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The following music is a fairly complex example of ABC Plus musical data. Compare a graphical version of the original edition (edited by Paul Dukas and published in 1911):

Here is graphical notation resulting from sending the data found below into the program abcm2ps:

Note that dynamics were not encoded in the example (and therefore were not printed in the above PDF file). ABC plus allows for up to two voices on a staff (original ABC format only allowed for one voice on a staff).

As a comparison, here is the same music entered into a general-purpose music notation editor which allows more control over layout (such as stem direction and slur placement):

The ABC data starts with a header:

X: 1
T: Piano Sonata no. 1 in F minor, mvmt. 1
C: Ludwig van Beethoven
%%abc-version 2.0
%%gracespace 0 6 6
%%notespacingfactor 2
%%scale 0.7
%%continueall 1
%%barnumbers 0
L: 1/4
M: 2/2
Q: "Allegro" 1/2=120
%%staves {1 2}
V: 1 clef=treble
V: 2 clef=bass
K: Ab

Traditional ABC header entries start with a single capital letter followed by a colon. ABC plus extensions are listed as ABC comments which start with the % symbol.


Header
marker
Meaning
X Start of music
T Title
C Composer
L Basic rhythmic unit
M Meter
Q Tempo marking
V Voice information
K (Initial) Key signature

Following the header is the musical data. In this case each line represents one measure of music for a particular staff in the score. The left- and right-hand staves are interleaved, with [V:1] being the top staff in the system and [V:2] being the bottom staff.

Here is the pick-up measure and first full measure of the piece:

[V:1] .C | 
[V:2] z | 
[V:1] .F.A.c.f [I:setbarnb 2]| 
[V:2] z4 | 

The line:

  [V:1] .C |

contains a staccato note on middle C. The period before the "C" represent the staccato, and the upper-case C represent middle C. The z in the second line is a quarter-note rest.

The line:

  [V:1] .F.A.c.f [I:setbarnb 2]| 

Contains four quarter notes on pitches F3 A3 C4 and F4, all of which have staccatos. The string [I:setbarnb 2] is an embedded header entry which causes the next barline to be labeled as measure 2 (because the first measure is a pickup and should be labeled as measure 0). The fourth line above (z4) is a whole-note rest.

Look at the automatically generated notation output for the following data to see what the codes mean in terms of notation.


X: 1
T: Piano Sonata no. 1 in F minor, mvmt. 1
C: Ludwig van Beethoven
%%abc-version 2.0
%%gracespace 0 6 6
%%notespacingfactor 2
%%scale 0.7
%%continueall 1
%%barnumbers 0
L: 1/4
M: 2/2
Q: "Allegro" 1/2=120
%%staves {1 2}
V: 1 clef=treble
V: 2 clef=bass
K: Ab
[V:1] .C | 
[V:2] z | 
[V:1] .F.A.c.f [I:setbarnb 2]| 
[V:2] z4 | 
[V:1] (a3/(3g//f//=e//.f)z | 
[V:2] z[F,A,C][F,A,C][F,A,C] | 
[V:1] .G.c.=e.g | 
[V:2] [=E,G,B,C]zz2 | 
[V:1] (b3/(3a//g//f//.g)z | 
[V:2] z[=E,G,B,C][E,G,B,C][E,G,B,C] | 
[V:1] {/c}(a3/(3g//f//=e//.f)z | 
[V:2] z[F,A,C][F,A,C][F,A,C] | 
[V:1] {/c}(b3/(3a//g//f//.g)z | 
[V:2] z[G,B,=E][G,B,E][G,B,E] | 
[V:1] !arpeggio![c2f2a2c'2](b/a/g/f/) | 
[V:2] z[A,CF]z[B,DG] | 
[V:1] {=e/f/g/}(fe)!fermata!zz | 
[V:2] z[CG]!fermata!z.G,, | 
[V:1] z4 | 
[V:2] .C,._E,.G,.C | 
[V:1] z4 | 
[V:2] (E3/(3=D//C//=B,//.C).C | 
[V:1] zz/ (3(e//_d//c//.d).d & A4- | 
[V:2] [C4F4] | 
[V:1] d4- & A3/(3(B//A//G//).A.A | 
[V:2] [B,4F4] | 
[V:1] d3/(3(e//d//c//.d).d & G4 | 
[V:2] [B,4E4] | 
[V:1] zz/ (3(d//c//=B//.c).c & A4 | 
[V:2] [A,4E4] | 
[V:1] (cB2A) & F4 | 
[V:2] D2=D2 | 
[V:1] .G(ed)c- | 
[V:2] Ezz([CE] | 
[V:1] (cB2A | 
[V:2] [D2F2])[=D2F2] | 
[V:1] G)([Ee][_D_d][Cc])- | 
[V:2] Ezz([C,E,] | 
[V:1] ([Cc][B,2B2][A,A] | 
[V:2] [D,2F,2])[=D,2F,2] | 
[V:1] [G,G])zz(_f | 
[V:2] E,/E/E,/E/ E,/E/E,/E/ | 
[V:1] edBG) | 
[V:2] E,/E/E,/E/ E,/E/E,/E/ | 
[V:1] (_F>E.A)(_f | 
[V:2] (D2C)x & E,E,E,/E/E,/E/ | 
[V:1] edBG) | 
[V:2] E,/E/E,/E/ E,/E/E,/E/ | 
[V:1] (_F>E.A)(_f | 
[V:2] (D2C)x & E,E,E,/E/E,/E/ | 
[V:1] edBG) | 
[V:2] E,/E/E,/E/ D/E/D/E/ | 
[V:1] z/ (G/B/A/) z/ (=A/c/B/) | 
[V:2] C/E/C/E/ G,/E/G,/E/ | 
[V:1] z/ (=B/d/c/) z/ (=d/a/d/) | 
[V:2] A,/E/A,/E/ F,/=D/A,/D/ | 
[V:1] ezz/ (=d/a/d/) | 
[V:2] E,/E/G,/E/ F,/=D/A,/D/ | 
[V:1] ezz/ (g/_f'/g/) | 
[V:2] E,/E/G,/E/ _D,/B,/_F,/B,/ | 
[V:1] azz/ (g/_f'/g/) | 
[V:2] C,/A,/E,/A,/ D,/B,/_F,/B,/ | 
[V:1] z/ (g/b/a/) z/ (=a/c'/b/) | 
[V:2] C,/A,/E,/A,/ G,,/G,/E,/G,/ | 
[V:1] z/ (=b/d'/c'/) z/ (c'/e'/d'/) | 
[V:2] A,,/A,/E,/A,/ B,,/B,/E,/B,/ | 
[V:1] z/ (=d'/f'/e'/ _d'/c'/b/a/ | 
[V:2] C,E,2A, | 
[V:1] g/f/e/d/ c/B/A/G/) | 
[V:2] D,F,2B, | 
[V:1] (F/E/=D/E/ D/E/D/E/ | 
[V:2] E,A,2C | 
[V:1] =D/E/F/E/ D/E/F/E/) | 
[V:2] (_DB,G,D,) | 
[V:1] z/ (a/f'/e'/ d'/c'/b/a/ | 
[V:2] C,,E,,2A,, | 
[V:1] g/f/e/d/ c/B/A/G/ | 
[V:2] D,,F,,2B,, | 
[V:1] F/E/D/C/[K:clef=bass] B,/A,/G,/F,/ | 
[V:2] E,,A,,2C, | 
[V:1] E,/F,/G,/A,/ B,/C/D/B,/ | 
[V:2] (D,B,,G,,E,,) | 
[V:1] A,)[K:clef=treble]z{/=D}(_c3/B/) | 
[V:2] A,,A,z.[=D,F,A,_C] | 
[V:1] A2(G3/e/) | 
[V:2] z.[E,A,=C]z.[E,B,D] | 
[V:1] (eA){/=D}(_c3/B/) | 
[V:2] z.[A,C]z.[=D,F,A,_C] | 
[V:1] A2(G3/e/) | 
[V:2] z.[E,A,=C]z.[E,B,D] | 
[V:1] (eA){/=d}(_c'3/b/) | 
[V:2] z.[A,C][K:clef=treble]z.[=DFA_c] | 
[V:1] a2(g3/e'/) | 
[V:2] z.[EA=c]z.[EBd] | 
[V:1] [d4g4e'4] | 
[V:2] [A,4B,4D4E4G4] | 
[V:1] [cea]zz :|]|:  
[V:2] [A,CEA]zz :|]|:  
[V:1] .E | 
[V:2] [K:clef=bass]z | 
[V:1] .A.c.e.a [I:setbarnb 50]| 
[V:2] z4 | 
[V:1] (c'3/(3b//a//g//.a)z | 
[V:2] z[A,CE][A,CE][A,CE] | 
[V:1] {/d}(d'3/(3c'//b//=a//.b)z | 
[V:2] z[G,B,DE][G,B,DE][G,B,DE] | 
[V:1] .B.d.g.b | 
[V:2] z4 | 
[V:1] {/d}(d'3/(3c'//b//=a//.b)z | 
[V:2] z[G,B,D=E][G,B,DE][G,B,DE] | 
[V:1] {/d}(d'3/(3c'//b//=a//.b)z | 
[V:2] z[_G,B,D=E][G,B,DE][G,B,DE] | 
[V:1] =azz(_g | 
[V:2] F,/F/F,/F/ F,/F/F,/F/ | 
[V:1] fec=A) | 
[V:2] F,/F/F,/F/ F,/F/F,/F/ | 
[V:1] (_G>F.B)(_g | 
[V:2] (E2D)z & F,F,F,/F/F,/F/ | 
[V:1] fec=A) | 
[V:2] F,/F/F,/F/ F,/F/F,/F/ | 
[V:1] (_G>F.B)(_g | 
[V:2] (E2D)z & F,F,F,/F/F,/F/ | 
[V:1] fec=A) | 
[V:2] F,/F/F,/F/ E/F/E/F/ | 
[V:1] z/ (=A/c/B/) z/ (B/d/c/) | 
[V:2] D/F/D/F/ C/F/C/F/ | 
[V:1] z/ (c/e/d/) z/ (=B/=d/c/) | 
[V:2] B,/F/B,/F/ A,/^F/A,/F/ | 
[V:1] =Bzz(a | 
[V:2] G,/G/G,/G/ G,/G/G,/G/ | 
[V:1] gf=d=B) | 
[V:2] G,/G/G,/G/ G,/G/G,/G/ | 
[V:1] (A>G.c)(a | 
[V:2] (F2E)x & G,G,G,/G/G,/G/ | 
[V:1] gf=d=B) | 
[V:2] G,/G/G,/G/ G,/G/G,/G/ | 
[V:1] (A>G.c)F/=D/ | 
[V:2] (F2E)(A, & G,G,G,x | 
[V:1] F/=D/F/D/ F/D/F/D/ | 
[V:2] G,F,=D,=B,,) | 
[V:1] z(=Bc)z & F/=D/F/D/ E/C/E/C/ | 
[V:2] (A,,>G,,.C,)(_G, | 
[V:1] z4 & E/C/E/C/ E/C/E/C/ | 
[V:2] F,E,C,=A,,) | 
[V:1] z(=AB)z & E/C/E/C/ D/B,/D/B,/ | 
[V:2] (_G,,>F,,.B,,)(_F, | 
[V:1] z4 & D/B,/D/B,/ D/B,/D/B,/ | 
[V:2] E,D,B,,G,,) | 
[V:1] z2G2 & D/B,/D/B,/ D/B,/D/B,/ | 
[V:2] (_F,,E,,2)E,- | 
[V:1] z2A2 & C/A,/E/A,/ E/A,/E/A,/ | 
[V:2] E,C,2C,,- | 
[V:1] z2F2 & D/A,/D/A,/ D/A,/D/A,/ | 
[V:2] C,,D,,2D,- | 
[V:1] z2G2 & D/G,/D/G,/ D/G,/D/G,/ | 
[V:2] D,B,,2B,,,- | 
[V:1] z2=E2 & C/G,/C/G,/ C/G,/C/G,/ | 
[V:2] B,,,C,,2C,- | 
[V:1] z2F2 & A,/F,/C/F,/ C/F,/C/F,/ | 
[V:2] C,A,,2A,,, | 
[V:1] z2F2 & D/F,/D/F,/ D/F,/D/F,/ | 
[V:2] z(B,,,2B,,) | 
[V:1] =D/F,/[A,/D/F/]F,/ [A,/D/F/]F,/[A,/D/F/]F,/ | 
[V:2] z(=B,,,2=B,,) | 
[V:1] [G,C=E]zz(c | 
[V:2] C,,/C,/=E,/C,/ E,/C,/E,/C,/ | 
[V:1] .A)zz(f | 
[V:2] F,/C,/F,/C,/ F,/C,/A,/C,/ | 
[V:1] .=e)zz(c' | 
[V:2] G,/C,/G,/C,/ G,/C,/B,/C,/ | 
[V:1] .f)z([f2f'2] | 
[V:2] A,/C,/C/C,/ =B,/C,/=D/C,/ | 
[V:1] [=e=e'])zz(!trill!c{=Bc} | 
[V:2] C/C,/=E,/C,/ E,/C,/E,/C,/ | 
[V:1] .A).Az(!trill!f{=ef} | 
[V:2] F,/C,/F,/C,/ F,/C,/A,/C,/ | 
[V:1] .=e).ez(!trill!c'{=bc'} | 
[V:2] G,/C,/G,/C,/ G,/C,/B,/C,/ | 
[V:1] .f).fz([ff'] | 
[V:2] A,/C,/C/C,/ =B,/C,/=D/C,/ | 
[V:1] .[=e=e']).[ee']z([_d_d'] | 
[V:2] C/C,/C/C,/ B,/C,/B,/C,/ | 
[V:1] .[cc']).[cc']z([ff'] | 
[V:2] A,/C,/C/C,/ =B,/C,/=D/C,/ | 
[V:1] .[=e=e']).[ee']z([dd'] | 
[V:2] C/C,/C/C,/ _B,/C,/B,/C,/ | 
[V:1] .[cc']).[cc']z([ff'] | 
[V:2] A,/C,/C/C,/ =B,/C,/=D/C,/ | 
[V:1] .[=e=e'])zz2 | 
[V:2] (.C.C.C.C) | 
[V:1] z4 | 
[V:2] (.C.C.C.C) | 
[V:1] zz/ (3(A//_G//F//.G)z | 
[V:2] (.[CD].[CD].[CD].[CD]) | 
[V:1] zz/ (3(e'//d'//c'//.d')z | 
[V:2] (.[B,D].[B,D].[B,D].[B,D]) | 
[V:1] zz/ (3(F//=E//=D//.E)z | 
[V:2] (.[B,C].[B,C].[B,C].[B,C]) | 
[V:1] zz/ (3(d'//c'//=b//.c')z | 
[V:2] (.[A,C].[A,C].[A,C].[A,C]) | 
[V:1] zz/ (3(E//=D//C//.D)z | 
[V:2] (.[A,B,].[A,B,].[A,B,].[A,B,]) | 
[V:1] zz/ (3(c'//b//=a//z.b) | 
[V:2] (.[G,B,=E].[G,B,E].[G,B,E].[G,B,E]) | 
[V:1] .F.A.c.f | 
[V:2] [F,A,C]zz2 | 
[V:1] (a3/(3g//f//=e//.f)z | 
[V:2] z[F,A,C][F,A,C][F,A,C] | 
[V:1] .G.c.=e.g | 
[V:2] [=E,G,B,C]zz2 | 
[V:1] (b3/(3a//g//f//.g)z | 
[V:2] z[=E,G,B,C][E,G,B,C][E,G,B,C] | 
[V:1] {/c}(a3/(3g//f//=e//.f)z | 
[V:2] [F,2A,2C2]z2 | 
[V:1] {/c}(b3/(3a//g//f//.g)z | 
[V:2] [G,2B,2=E2]z2 | 
[V:1] !arpeggio![c2f2a2c'2](b/a/g/f/) | 
[V:2] [A,CF]z[B,DG]z | 
[V:1] {=e/f/g/}(f=e)!fermata!zz | 
[V:2] [CG]z!fermata!z.C, | 
[V:1] z4 | 
[V:2] .F,.A,.C.F[K:clef=treble] | 
[V:1] z4 | 
[V:2] (A3/(3G//F//=E//).F.F | 
[V:1] (b3/(3a//_g//f//.g).g | 
[V:2] [F4_G4] | 
[V:1] _g4- & zz/ (3_d//c//=B//.c.c | 
[V:2] [E4_G4] | 
[V:1] g3/(3(_g//f//=e//.f).f & c4- | 
[V:2] [E4=A4] | 
[V:1] f4 & c3/(3c//B//=A//.B.B | 
[V:2] [D4F4] | 
[V:1] zz/ (3(g//f//=e//)(fg & =B4 | 
[V:2] (F3=E) & =D4- | 
[V:1] a=ef=B) | 
[V:2] (FGAF) & D4 | 
[V:1] (c=efg | 
[V:2] (=EGFE & C4- | 
[V:1] a=ef=B | 
[V:2] FBAF)[K:clef=bass] & C2_D2 | 
[V:1] [=Ec])zz(d | 
[V:2] C,/C/C,/C/ C,/C/C,/C/ | 
[V:1] cBG=E) | 
[V:2] C,/C/C,/C/ C,/C/C,/C/ | 
[V:1] (D>C.F)(d' | 
[V:2] (B,2A,)z & C,C,C,/C/C,/C/ | 
[V:1] c'bg=e) | 
[V:2] C,/C/C,/C/ C,/C/C,/C/ | 
[V:1] (d>c.f)(d' | 
[V:2] (B,2A,)z & C,C,C,/C/C,/C/ | 
[V:1] c'bg=e) | 
[V:2] C,/C/C,/C/ B,/C/B,/C/ | 
[V:1] z/ (=e/g/f/) z/ (f/a/g/) | 
[V:2] A,/F/C/F/ G,/=E/B,/E/ | 
[V:1] z/ (g/b/a/) z/ (=b/f'/b/) | 
[V:2] F,/C/A,/C/ D,/=B,/F,/B,/ | 
[V:1] c'zz/ (=b/f'/b/) | 
[V:2] C,/C/=E,/C/ D,/=B,/F,/B,/ | 
[V:1] c'zz/ (=e/d'/e/) | 
[V:2] C,/C/=E,/C/ _B,,/G,/D,/G,/ | 
[V:1] fzz/ (=e/d'/e/) | 
[V:2] A,,/F,/C,/F,/ B,,/G,/D,/G,/ | 
[V:1] z/ (=e/g/f/) z/ (f/a/g/) | 
[V:2] A,,/F,/C,/F,/ =E,,/=E,/C,/E,/ | 
[V:1] z/ (g/b/a/) z/ (=a/c'/b/) | 
[V:2] F,,/F,/C,/F,/ G,,/G,/C,/G,/ | 
[V:1] z/ (c'/f'/e'/ d'/c'/b/a/ | 
[V:2] A,,C,2F, | 
[V:1] g/f/e/d/ c/B/A/G/) | 
[V:2] B,,D,2G, | 
[V:1] (F/=E/D/C/ =B,/C/B,/C/ | 
[V:2] C,F,2A, | 
[V:1] =B,/C/D/C/ B,/C/D/C/) | 
[V:2] (B,G,=E,B,,) | 
[V:1] z/ (c'/f'/e'/ d'/c'/b/a/ | 
[V:2] A,,C,2F, | 
[V:1] g/f/e/d/ c/B/A/G/ | 
[V:2] B,,D,2G, | 
[V:1] F/=E/D/C/ =B,/C/B,/C/) | 
[V:2] C,F,2A, | 
[V:1] (=B,/C/D/C/ C/_B,/A,/G,/ | 
[V:2] zC,,C,,C,, | 
[V:1] F,)z{/=B,}(A3/G/ | 
[V:2] F,,F,z.[D,F,A,=B,] | 
[V:1] F2)(=E3/c/) | 
[V:2] z.[C,F,A,C]z.[C,G,_B,] | 
[V:1] (cF){/=B,}(A3/G/ | 
[V:2] z.[F,A,]z.[D,F,A,=B,] | 
[V:1] F2)(=E3/c/) | 
[V:2] z.[C,F,A,C]z.[C,G,_B,] | 
[V:1] (cF){/B}(a3/g/ | 
[V:2] z.[F,A,][K:clef=treble]z.[DFA=B] | 
[V:1] f2)(=e3/c'/) | 
[V:2] z.[CFAc]z[K:clef=bass].[B,CG] | 
[V:1] ([c4_e4c'4] | 
[V:2] ([=A,4C4F4] | 
[V:1] [Bdf])zzz/ [B/d/b/] | 
[V:2] [B,DF])zzz/ [B,/D/F/] | 
[V:1] ([B4d4b4] | 
[V:2] ([G,4B,4E4] | 
[V:1] [Ace])zz.[Aca] | 
[V:2] [A,CE])zz.[F,D] | 
[V:1] .[GBd].[GBg].[FAc].[FAf] | 
[V:2] .[G,D].[=E,C].[F,C].[D,D] | 
[V:1] .[FGdf]z.[=EGBc=e]z | 
[V:2] .[B,,D,G,B,]z.[C,=E,G,C]z | 
[V:1] .[FAcf]zz :|]  
[V:2] .[F,,A,,C,F,]zz :|]