
I have created this description of abc notation for those who  do
not  want to (or cannot) use the package abc2mtex but who wish to
understand the notation. It has been generated semi-automatically
from  the  abc2mtex usrguide (because I was fed up with having to
update two separate descriptions of the notation)  and  so  occa-
sionally  refers to other parts of the package. In particular, it
mentions the document `index.tex', a guide to using abc2mtex  for
archiving   and   indexing   tunes,  and  to  the  example  files
Xenglish.abc, Xstrspys.abc and  Xreels.abc.  It  also  refers  to
playabc,  a  separate  package  for playing abc tunes through the
speaker of various machines. It is best read in conjunction  with
an introduction to abc notation available by anonymous ftp from
        celtic.stanford.edu/pub/tunes/abc2mtex/INTRO.txt

or, if you have WWW access,
        http://celtic.stanford.edu/pub/tunes/abc2mtex/INTRO.html

Note that if you are intending to use  the  notation  solely  for
transcribing  tunes,  you  can  ignore most of description of the
information fields as all you really need are the  T  (title),  M
(meter),  K (key), and possibly L (default note length) fields. I
have included a full description however, for those who  wish  to
understand tunes transcribed by users of the package.

Finally, the notation can easily be  expanded  to  include  other
musical symbols. Please mail me with any suggestions.

        Chris Walshaw
        C.Walshaw@gre.ac.uk

-----------------------------------------------------------------

	The abc Notation System
	^^^^^^^^^^^^^^^^^^^^^^^

Each tune consists of a header and a body. The header,  which  is
composed  of information fields, should start with an `X' (refer-
ence number) field followed by a `T' (title) field  and  is  ter-
minated  by  a `K' (key) field. The body of the tune in abc nota-
tion should follow immediately after. Tunes are  separated  by  a
blank line.

  Information fields

The information fields are used to notate  things  such  as  com-
poser,  meter,  etc.   in fact anything that isn't music. Most of
the information fields are for use within a tune  header  but  in
addition  some  may be used in the tune body, or elsewhere in the
tune file. Those which are allowed elsewhere can be used  to  set
up a default for the whole or part of a file. For example, in ex-
actly the same way that tunebooks are  organised,  a  file  might
start  with  `M:6/8'  and `R:Double jigs', followed by some jigs,
followed by `M:4/4' and `R:Reels', followed by some reels.  Tunes
within  each  section  then  inherit the `M:' and `R:' fields au-
tomatically, although  they  can  be  overridden  inside  a  tune
header.

By far the best way to find out how to use the fields is to  look
at  the  example files (in particular `Xenglish.abc') and try out
some examples. Thus rather than describing them in  detail,  they
are  summarised  in  the  following  table. The second, third and
fourth columns specify respectively how the field should be  used
in  the  header and whether it may used in tune body or elsewhere
in the file. Certain fields do not affect the typeset  music  but
are  there for other reasons, and the fifth column reflects this;
index fields only affect the index (see  `index.tex')  while  ar-
chive  fields  do not affect the output at all, but are just pro-
vided to put in information that one might find in, say,  a  con-
ventional tunebook.

Field name            header   tune elsewhere Used by Examples and notes
^^^^^^^^^^            ^^^^^^   ^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^
A:area                optional                        A:Donegal, A:Bampton
B:book                optional      yes       archive B:O'Neills
C:composer            optional                        C:Trad.
D:discography         optional                archive D:Chieftans IV
E:elemskip            optional yes                    see Line Breaking
F:file name                         yes               see index.tex
G:group               optional      yes       archive G:flute
H:history             optional      yes       archive H:This tune said to ...
I:information         optional      yes       playabc
K:key                 last     yes                    K:G, K:Dm, K:AMix
L:default note length optional yes                    L:1/4, L:1/8
M:meter               optional yes  yes               M:3/4, M:4/4
N:notes               optional                        N:see also O'Neills - 234
O:origin              optional      yes       index   O:I, O:Irish, O:English
P:parts               optional yes                    P:ABAC, P:A, P:B
Q:tempo               optional yes                    Q:200, Q:C2=200
R:rhythm              optional      yes       index   R:R, R:reel
S:source              optional                        S:collected in Brittany
T:title               second   yes                    T:Paddy O'Rafferty
W:words               no       yes                    W:Hey, the dusty miller
X:reference number    first                           X:1, X:2
Z:transcription note  optional                        Z:from photocopy


Some additional notes on certain of the fields:-

`T' - tune title. Some tunes have more than one title and so this
field  can  be used more than once per tune - the first time will
generate the title whilst subsequent usage will generate the  al-
ternatives  in  small  print.   The  `T:'  field can also be used
within a tune to name parts of a tune - in this  case  it  should
come before any key or meter changes.

`K' - key; apart from  major  and  minor  keys,  e.g.   `K:D'  or
`K:Am',  mixolydian  and dorian modes can also be specified with,
for example `K:AMix' or `K:EDor'. In addition, there are two keys
specifically for notating highland bagpipe tunes.  `K:HP' doesn't
put a key signature on the music, as is  common  with  many  tune
books of this music, while `K:Hp' marks the stave with F sharp, C
sharp and G natural (although not with MusiXTeX).  Both force all
the beams and staffs to go downwards.

`L' - default note length; i.e. `L:1/4' - crotchet (or 1/4 note),
`L:1/8'  -  quaver, `L:1/16' - semi-quaver, `L:1/32' - demi-semi-
quaver. The default note length is also set automatically by  the
meter field `M:' (see below).

`M' - meter; apart from  the  normal  meters,  e.g.   `M:6/8'  or
`M:4/4',  the  symbols  `M:C' and `M:C|' give common time and cut
time respectively.

`P' - parts; can be used in the header  to  state  the  order  in
which the tune parts are played, i.e.  `P:ABABCDCD', and then in-
side the tune to mark each part, i.e.  `P:A' or `P:B'.

`Q' - tempo; can be used to specify the notes  per  minute,  e.g.
`Q:200' or `Q:C=200' is 200 default note lengths per minute. Oth-
er note lengths can be used,  e.g.  `Q:C3=60';  this  means  that
there are 60 notes of length 3 per minute (it is exactly the same
as `Q:C=180'). The alternative formulation  is  required  if  the
number after the equals sign is larger than 255. An absolute tem-
po may also be set, e.g. `Q:1/8=120' sets the tempo to 120 quaver
(1/8th  note) beats per minute - irrespective of the default note
length. The tempo may also be changed relative  to  the  previous
tempo;  `Q:n_2=n_1'  means that, from now on, a note value of n_2
occupies the same time as a note value  of  n_1  did  before  the
change  in  tempo. Both n_1 and n_2 must be prefixed by the pitch
value C (which is ignored) to distinguish them from  the  earlier
examples. For example, `Q:C4=C6' slows down the tempo by a factor
of 3/2; a note of length 4 takes exactly the same time as  did  a
note  of length 6 previously (and a note of length 6 therefore is
one and a half times longer than it was  previously).   When  the
meter  changes from 4/4 (8 default notes per bar) to 6/8 (six de-
fault notes per bar) a tempo change of  `Q:C3=C4'  is  needed  to
keep the number of bars per minute the same, i.e. to maintain the
pulse of the music.

`G' - group; to group together tunes for indexing purposes.

`H' - history; can be used for multi-line stories/anecdotes,  all
of which will be ignored until the next field occurs.


  abc tune notation

The following letters are used to represent notes:-

                                                     d'
                                               -c'- ----
                                            b
                                       -a- --- ---- ----
                                      g
------------------------------------f-------------------
                                  e
--------------------------------d-----------------------
                              c
----------------------------B---------------------------
                          A
------------------------G-------------------------------
                      F
--------------------E-----------------------------------
                  D
---- ---- ---- -C-
           B,
---- -A,-
 G,


and by extension, the notes `C,', `D,', `E,', `F,', `a'' and `b''
are available. They can be modified in length (see below).

  Rests

Rests are generated with a `z' and can be modified in  length  in
exactly the same way as notes can (see below).

  Note lengths

Each meter automatically sets a default note length and a  single
letter  in  the  range  `A-G', `a-g' will generate a note of this
length. For example, in 3/4 the default note length is  a  quaver
(1/8  note)  and so the input `DEF' represents 3 quavers. The de-
fault note length can be calculated by computing the meter  as  a
decimal;  if  it  is  less than 0.75 the default is a semi-quaver
(1/16 note), otherwise it is a quaver (1/8  note).  For  example,
2/4 = 0.5, so the default note length is a semi-quaver, while 4/4
= 1.0 or 6/8 = 0.75, so the default is a quaver. Common time  and
cut time (`M:C' and `M:C|') have a quaver as default.

Notes of differing lengths can be obtained by  simply  putting  a
multiplier  after the letter. Thus in 2/4, `A' or `A1' is a semi-
quaver (1/16th note), `A2' a quaver (1/8th note), `A3'  a  dotted
quaver,  `A4'  a  crotchet  (1/4th note), `A6' a dotted crotchet,
`A7' a double dotted crotchet, `A8' a minim (1/2 note),  `A12'  a
dotted  minim, `A14' a double dotted minim, `A15' a triple dotted
minim and so on, whilst in 3/4, `A' is a quaver, `A2' a crotchet,
`A3' a dotted crotchet, `A4' a minim, ...

To get shorter notes, either divide them - e.g. in 3/4, `A/2'  is
a  semi-quaver  (1/16  note),  `A/4'  is a demi-semi-quaver (1/32
note) - or change the default note length with  the  `L:'  field.
Alternatively,  if  the  music  has  a broken rhythm, e.g. dotted
quaver/semi-quaver pairs, use broken rhythm markers (see  below).
Note that `A/' is shorthand for `A/2'.

abc2mtex versions prior to 1.2 did not have the  `L:'  field  and
used `s' and `l' modifiers on the meter to respectively double or
half the default note lengths. For example, `M:2/4s' has a quaver
as  the  default  note  length, while `M:4/4l' has a semi-quaver.
This notation is still supported but discouraged.

  Broken Rhythms

A common occurrence in traditional music is the use of  a  dotted
or broken rhythm. For example, hornpipes, strathspeys and certain
morris jigs all have dotted quavers followed by  semi-quavers  as
well  as  vice-versa  in the case of strathspeys. To support this
abc notation uses a `>' to mean `the previous note is dotted, the
next  note  halved' and `<' to mean `the previous note is halved,
the next dotted'. Thus the following  lines  all  mean  the  same
thing (the third version is recommended):

 L:1/16
 a3b cd3 a2b2c2d2

 L:1/8
 a3/2b/2 c/2d3/2 abcd

 L:1/8
 a>b c<d abcd

As a logical extension, `>>' means that the first note is  double
dotted  and  the  second quartered and `>>>' means that the first
note is triple dotted and the length of  the  second  divided  by
eight. Similarly for `<<' and `<<<'.

  Duplets, Triplets, Quadruplets, etc.

These can be simply coded with the notation `(2ab' for a  duplet,
`(3abc'  for  a triplet or `(4abcd' for a quadruplet, etc., up to
`(9'. The musical meanings are (so I'm told):


 `(2' 2 notes in the time of 3
 `(3' 3 notes in the time of 2
 `(4' 4 notes in the time of 3
 `(5' 5 notes in the time of n
 `(6' 6 notes in the time of 2
 `(7' 7 notes in the time of n
 `(8' 8 notes in the time of 3
 `(9' 9 notes in the time of n

If the time signature is compound (3/8, 6/8, 9/8, 3/4, etc.) then
n is three, otherwise n is two.

  Beams

To group notes together under one beam they should be grouped to-
gether  without spaces in the tune file. Thus in 2/4, `A2BC' will
produce a quaver followed by  two  semi-quavers  under  one  beam
whilst  `A2  B C' will produce the same notes separated. The beam
slopes and the choice of upper or lower staffs are generated  au-
tomatically.

  Repeat/bar symbols

The symbols `|', `||', `:|', `|:' and `::' generate a  bar  line,
double  bar,  left repeat, right repeat and left and right repeat
respectively.


  First and Second Repeats

First and second repeats can be generated with the  symbols  `|1'
and  `:|2',  e.g.  `faf gfe|1 dfe dBA:|2 dfe dcB||'. The previous
notation `[1' and `[2' is still supported but  produces  slightly
different  output. N.B. With regard to spaces `| [1' is legal, `|
1' is not.

  Accidentals

The symbols `^', `=' and `_' are used (before a note) to generate
respectively a sharp, natural or flat.

  Changing key, meter, and default note length mid-tune

To change key, meter, or default note length, simply put in a new
line with a `K:', `M:' or `L:', field, e.g.
 ed|cecA B2ed|cAcA E2ed|cecA B2ed|c2A2 A2:|
 K:G
 AB|cdec BcdB|ABAF GFE2|cdec BcdB|c2A2 A2:|

To do this without generating a new line of music, put a  `\'  at
the end of the first line, i.e.
 E2E EFE|E2E EFG|\
 M:9/8
 A2G F2E D2||

  Ties and Slurs

You can tie two notes together either across or within a bar with
a  `-'  symbol, e.g. `abc-|cba' or `abc-cba'.  More general slurs
can now be put in and are started and terminated with an `S'  be-
fore  the relevant note.  Thus `SDEFSG' puts a slur over the four
notes `DEFG'.

  Gracings

With regard to gracings, I fall in the  Irish  music  camp  which
says that you transcribe gracings as little as possible and leave
it up to the players to make their own interpretation.  Thus  the
only  gracing  I  tend to use is to put a tie/slur marker under a
note which will generally mean a roll, cran or staccato  triplet.
This is achieved by putting a `~' before the note.

However, to explicitly write out every grace note, just put  them
in  curly  braces, `{}'. For example, a taorluath on the Highland
pipes would be written `{GdGe}'. The tune `Athol Brose'  (in  the
file  `Xstrspys.abc')  has  an  example  of complex Highland pipe
gracing in all its glory.

  Accents

Staccato marks (a small dot above or below the note head) can  be
generated  by  a  dot before the note, i.e. a staccato triplet is
written as `(3.a.b.c' .

For fiddlers, the letters `U' and `V' can be used to  denote  up-
bow and down-bow, e.g. `VaUbVa' .

  Chords

Chords (i.e. more than one note head on a  single  stem)  can  be
coded with `+' signs around the notes, e.g. `+CEGc+' produces the
chord  of  c  major.  They  can  be  grouped   in   beams,   e.g.
`+d2f2++ce++df+', but note the use of two `+' symbols, one to end
the first chord and one to start the second. Note that  the  code
which  handles this part of the output is a bit sensitive and you
may need to fiddle around a bit with the order of  the  notes  in
the chord to get it looking right. See the tune `Kitchen Girl' in
the file `Xreels.abc' for a simple example.

  Guitar Chords

Guitar chords can be put in under the melody  line  by  enclosing
the chord in inverted commas `"', e.g. `"Am7"A2D2' . See the tune
`William and Nancy' in `Xenglish.abc' for an example.

  Order of Symbols

The order of symbols for one note  is  `<guitar  chords>',  `<ac-
cents>'  (e.g.  roll,  staccato marker or up/downbow), `<acciden-
tal>', `<note>', `<octave>', `<note  length>',  i.e.  `~^c'3'  or
even `"Gm7"V.=G,2'.

  Comments

A `%' symbol will cause the remainder of any input line to be ig-
nored. The file `Xenglish.abc' contains plenty of examples.

  Introducing New Notation

It is, of course, much easier to devise new notation than  it  is
to  implement  its  translation into MusicTeX. To facilitate this
process, the letters `H-R,T,W-Z' inclusive have been set aside to
allow users to introduce their own additional symbols safe in the
knowledge that they will be ignored by abc2mtex. One such example
is `J' to denote sliding up to a note.

  Line Breaking and Justification

Generally one line of abc  notation  will  produce  one  line  of
music,  although  if  the music is too long it will overflow onto
the next line. This can look very effective, but it can also com-
pletely  ruin  ties  across bar lines, for example. You can coun-
teract this by changing either the  internote  spacing  with  the
`E:'  field  or  break the line of abc notation. If, however, you
wish to use two lines of input to  generate  one  line  of  music
(see, for example, the `Untitled Reel' in `Xreels.abc') then sim-
ply put a `\' at the end of the first line.  This is also  useful
for changing meter or key in the middle of a line of music.

By default, lines of music  are  left-justified  but  not  right-
justified. To overcome this, a `*' at the end of each line of abc
notation will force a right-justified line-break. For  the  final
line  of  a tune put two `*'s (so as to not generate a new line).
Be warned, however, that if a line is not very long or has  over-
flowed  to become two lines, this can look very ugly as the notes
spread themselves out along the line. It can also give ugly  out-
put other people using the abc file who may have different layout
parameters.

  Internote spacings

The internote spacing is set by the information field `E'. As the
format is set up now, I use `E:8' and `E:7' to squeeze long tunes
up a bit and `E:10' and above  to  stretch  short  tunes.   Using
`E:6' really looks too cramped to my eye.

  TeX Input

If there is a line in a tune file beginning with a `\', it is put
directly into the output file (`music.tex').





























































