Features of abcm2ps 5.9.0 (J.F. Moine, September 2008)
abcm2ps tries to follow the ABC standard version 2.0:
Here are listed only the differences from the draft IV (14/8/2003)
of this standard.
Features not implemented.
- The fields %%abc-xxx (except %%abc-version) are ignored.
- The following decorations are not implemented:
- 'U' fields cannot contain guitar chord nor annotations.
- +none+ and +nil+ in 'U' fields do not work.
- The values assigned by the 'U' field are always global (they
are not restored at end of tune).
- The operator '&' does not work in 'w' and 's' fields.
Features that work differently.
- The X header field may be omitted in tunebooks in which case
a tune starts on a T header field.
- The T header field may be omitted (when 'X' is present).
- There is no notion of 'file header': any valid ABC field
found outside the tunes is considered as global, and applies
to the remaining tunes.
- When the %%abc-version is less than '2.0', a backslash as the
last character of a line means 'concatenate the next line of the
same type to this one'.
This works only for music lines and 'd', 's' and 'w' fields.
In a music line, this prevents line breaking.
w:bla bla bla\
%%vocalfont Times-Roman 14
w:bla bla bla bla
gf|e2dc B2A2|B2G2 E2D2|.G2.G2 GABc|d4 B2
w: Sa-ys my au-l' wan to your aul' wan\
Will~ye come to the Wa-x-ies dar-gle?
does not work.
- In a tune body, the lines beginning with a letter in range A-G
or a-g and immediately followed by a colon are interpreted as
- When the %%abc-version is less than '2.0', the field 'A' is
'Area', and not 'Author of lyrics'. It is displayed only when
'infoline' is set.
- In 'K' fields, the list of accidentals may be 'none' (for
- When a 'K' or 'M' field is found inside a tune, in the first
voice, alone in a line (not enclosed by '[' and ']') and when
the voice is empty, it is applied to all voices.
- Some bar lines are drawn as defined (ex: ':|:'), some other
ones are expanded, as '|::' to '[|::'.
- '@' in annotations must be followed by the <x> and <y> offsets
of the text from the note position (in points). The <x> and <y>
values are separated by a comma, and <y> may be followed by a
space (usefull if the text begins with a digit, a dot or the
letters 'E' or 'e' - see sample3.abc for an example).
- Grace notes may appear before any symbol and may contain
chords. Their note lengths are handled. The unit note length
is not tied to L: (or M:). Instead, for compatibility, it is:
- a quaver for a single note and
a semi-quaver for many notes in standard tunes,
- a demi-semi-quaver in bagpipe tunes.
Grace notes greater than crotchets are drawn as crotchets.
- Tuplets values may be greater than 9.
- Tuplets may be nested.
- When 'clef=' is present, the clef name may be a note with its
pitch. The note may be only 'G' (treble clef), 'C' (alto clef)
or 'F' (bass clef). The pitch gives the note on the clef line.
The two following definitions are equivalent:
K: bass middle=d
- The 'P' information field inside a tune and alone in a line
(not enclosed by '[' and ']') is set in the first voice,
without changing the current voice.
- The special character sequences depend on the encoding.
Only ISO-Latin 1 to 6 are supported. The encoding is
defined by '-L' or %%encoding.
- The font change ($n in strings) does not work in all cases.
ABC Stylesheet specification.
- The star ('*' = floating voice) is not treated in '%%score'.
- '%%staves' coexists with '%%score'.
The differences in '%%staves' are:
- measure bars are drawn between staves when there is
no '|' between the voice names (this feature is inverted
- A floating voice may be only the second one in a
3 voices brace.
- Some formatting directives are not implemented, and some new
ones are defined. See the file 'format.txt' for details.
- Lines starting with '\' (back-slash) are ignored (abc2mtex
- The field 'M' may specify more complex meters with a
combination of digits, parenthesis, slashes and blanks.
It may also specify ancient meters as 'M:2' or 'M:3',
and also 'M:o' (perfect minor), 'M:o.' (perfect major),
'M:c' (imperfect minor) and 'M:c.' (imperfect major).
An explicit measure duration may be specified putting its
value after an '=' sign (ex: 'M:C|=2/1').
- The field 'Q' may contain text that is written before and/or
after the tempo definition.
The tempo value may be any string.
The tempo value may be a note lenth (as '1/4').
The beat and tempo may be omitted.
There may be up to 4 beats. Ex:
Q: "string before" 1/4 3/8 1/4 3/8=40-50 "string after"
- The field 'd' is the same as 's' (symbol line).
- Microtone pitches are indicated by a fraction after an
accidental, as "^3/4c". When omitted, the numerator defaults
to 1 and the denominator to 2 ("^/c" is the same as "^1/2c").
The numerator and denominator cannot be greater than 256.
Support exists for 1/2 and 3/2 sharps and flats. For other
values, PostScript functions must be defined (by %%postscript).
The name of such a function is:
- <accidental_type> is "sh" (sharp) or "ft" (flat)
(may be also "nt", "dsh" or "dft" !)
- <micro_value> is computed from the fraction as:
( <numerator> - 1 ) * 256 + <denominator> - 1
- A note length starting with '0' (zero') indicates a stemless
black note (the note length must be a crotchet).
- A space ('y') may be followed by a width in points.
The default width is 20 pts.
- '' is the same as '[|]' (invisible bar).
- ':' (colon alone) is the same as '.|' (dotted bar).
- Repeat bars may contain a set of digits, '-' (hyphen),
',' (comma) or '.' (dot), or even a free string. Ex:
|: ... [1,3 ... :|2,4-6 ... :|["last time" ...
(note that a '[' is needed before the string - this one may
- ']' indicates the explicit end of a repeat section.
It may be used as an invisible bar.
- There may be slurs from notes to grace notes and reverse.
- Opening slurs may be followed by "'" or "," to force their
direction (above or below).
- The tie character ("-") may be followed by "'" or "," to force
the tie direction (above or below).
- The following decorations are added:
+beamon+ do not break beaming (on a measure bar)
+beambr1+ and +beambr2+
let only 1 or 2 beams from the previous note
+gmark+ grace mark
+invisible+ prevent a note to be displayed
+rbstop+ stop here the current repeat bracket
+trem1+ .. +trem4+
tremolo (on the second of a couple of notes
- see sample4.abc for example)
+xstem+ draw a stem up to the note on the previous
!+! same as +plus+
+/+ .. +///+ tremolo on one note
- There may be decorations on notes inside chords.
Such decorations cannot be standard ones, they must be
defined by %%deco and %%postscript (there is no control).
- There may be decorations on grace notes.
- Multiple lines of guitar chord / annotation may also be
indicated by '\n' or ';'. In this case, the next lines are of
the same type (gchord or annotation).
The 3 next notations are equivalent:
"_ann1" "_ann2" "G3" "4" G
"_ann1;ann2" "G3;4" G
"_ann1\nann2" "G3\n4" G
(annotation on 2 lines and guitar chord on 2 lines)
The two next notations are NOT equivalent:
(in the 1st line, 'G' is a guitar chord, in the 2nd one,
it is the 2nd line of the annotation)
A new annotation type may be indicated after the new line as:
- Annotations may contain '\#', '\b' and '\=' to display
- Strings with ISO latin encoding may contain '\201', '\202', '\203',
'\204' and '\205' to display accidentals.
- 'clef=P' is the same as 'perc'.
- When the clef name is 'perc' (or 'P'), accidentals change the
note head glyph. By default, sharp notes are drawn as a 'x'
and flat notes as a circled 'x'. This behaviour may be changed
overloading the PostScript functions 'pshhd' and 'pfthd', or
defining 'pnthd' (natural), 'pdshhd' (double sharp) and
'pdfthd' (double flat).
- When no clef is specified, clef changes are automatically
inserted when needed ('bass' or 'treble').
- The clef name may be enclosed by double quotes in which case
it is the name of a PostScript function which will draw the
clef. This function arguments are the x and y offsets.
- 'stem=auto' and 'gstem=auto' in a V field re-enables the
automatic computation of the direction of the stems (default
- 'gstem=up' or 'gstem=down' in a V field forces the direction
of the stems of the grace notes.
- 'gchord=up' (default) or 'gchord=down' in a V field forces the
display of guitar chords above or below the staff.
- 'dyn=up', 'dyn=down' or 'dyn=auto' in a V field forces the
place of the dynamic marks (above or below the staff -
default is 'auto').
- 'lyrics=up', 'lyrics=down' or 'lyrics=auto' in a V field forces
the place of the lyrics (above or below the staff - default
- 'stafflines=<value>' in a V field sets the number of lines
of the associated staff. The default value is '5'.
- 'staffscale=<value>' in a V field sets the scale of the
associated staff. The default value is '1'.
- 'merge' in a V field makes the voice to go on the same staff
as the previous voice (BarFly compatibility).
- The BarFly voice switch in tune ('V:x <notes>', i.e.
voice + notes on the same line) may work.
- The operator '(&...&...&)' permits voice overlay on many
measures. See sample3.abc for example.
Deprecated ABC syntax.
- The deprecated ABC syntax is supported.