NAME¶
abcm2ps — translate ABC music notation to PostScript (or SVG)
SYNOPSIS¶
abcm2ps [
options] [
abc-file [file-options]] [...]
abcm2ps [
-h]
DESCRIPTION¶
abcm2ps translates tunes written in the ABC music notation format to
customary sheet music scores in PostScript or SVG. It is based on
abc2ps 1.2.5 and was developed mainly to print Baroque organ scores
that have independent voices played on multiple keyboards and a pedal-board.
The program has since been extended to support various other notation
conventions in use for sheet music.
Options given immediately after the command name apply to the run as a whole;
options given after an ABC file name apply to that file.
Formatting parameters can also be set in `format files' and in the ABC files
themselves.
OPTIONS¶
Options may be grouped if they have no arguments; the last option in a group may
have an argument.
Where appropriate, starting an option (group) with
+, or finishing it
with
-, disables the option(s).
- --parameter value
- Set formatting parameter parameter to
value. Values established in this way will override values given in
format files, and be implicitly locked. See below for a list of
formatting parameters.
- -a a
- Maximal horizontal compression when staff breaks are chosen
automatically. Must be between 0 and 1 (default: 0.65) See the
maxshrink parameter below.
- -A
- This option (`annotate') inserts reference elements into
the PostScript or SVG output.
- -B b
- Try to typeset b bars on each staff line. See the
barsperstaff formatting parameter below.
- -b b
- Start measure numbering at b. See the
measurefirst formatting parameter below.
- -c
- The continuation symbol is implicitly appended to each
music line. This amounts to automatic line breaking. See the
continueall formatting parameter below.
- -D directory
- Search format files in directory.
- -d length
- Set the minimum vertical interstaff space to length
(default: 46pt). See the staffsep formatting parameter below.
- -E
- Output is generated in EPS format, one file per page.
-
- In this mode, each tune is written to a separate numbered
file unless the -O is given; output cannot be directed to standard
output.
-
- EPS files are useful for embedding into PostScript
documents, but can also be used to generate images in (pixel-oriented)
graphics formats via GhostScript.
- -e list
- Select which tunes from an ABC file to print. list
is a comma-separated list of tune numbers (as per the `X:' header). The
-e option must occur after an ABC file name and applies to that
file. Ranges of tune numbers may be specified like t1-t2;
t2 may be omitted which means `all remaining tunes until the end of
file'. Note that filtering may cause problems, e.g., with global
(non-tune) definitions in the ABC file.
- -F file
- Read the format file file. If file does not
have a suffix, .fmt is implied.
- +F
- Do not read the default format file.
- -f
- Enable flat beams in bagpipe tunes. See the
flatbeamsformatting parameter below.
- -G
- Omit slurs on grace notes. See the graceslurs
formatting parameter below.
- -g
- Produce SVG output instead of EPS. In this mode, each tune
goes to a separate numbered output file unless the -O is specified.
If output is directed to standard output ( -O-), all SVG images are
output without an XML header.
- -H
- Display the current values of the formatting
parameters.
- -h
- Display program usage hints and quit.
- -i
- Display red circles around errors in PostScript output
- -I length
- Indent the first line of the tune by length
(default: 0). See the indent formatting parameter below.
- -jb[b]
- Output a measure number every b measures. If
b is 0, the measure number appears at the left of each staff. The
trailing b causes a box to be drawn around each measure number
(default: no measure numbering).
-
- See the measurenb formatting parameter below.
- -l
- Generate landscape output. See the landscape
formatting parameter below.
- -M
- Suppress end-of-tune lyrics. See the writefields w
parameter below.
- -m length
- Set the left margin to length (default: 1.8cm). See
the leftmargin formatting parameter below.
- -N[mode]
- Number pages according to the mode:
- 0
- no page numbers
- 1
- page numbers at top left of page
- 2
- page numbers at top right of page
- 3
- page numbers at top left of even-numbered pages, top right
of odd-numbered pages
- 4
- page numbers at top right of even-numbered pages, top left
of odd-numbered pages
-
- For compatibility, -N is equivalent to -N2
(default: -N0).
-
- If a header is defined using the header formatting
parameter, this option is ignored.
- +N
- Equivalent to -N0 (no page numbering).
- -n
- Include notes and history from ABC tune `N:' fields. See
the writefields formatting parameter below.
- -O [directory][name]
- Define the output file directory and/or name. By default,
the output goes to the current directory, and the file name is `Out.ps'
for PostScript output, `Out nnn.eps' for EPS output (see
-E), `Out nnn.svg' for SVG output (see options -g
and -v), or `Out.xhtml' for XHTML+SVG (see -X).
-
- When name is present, it replaces `Out' in the
output file name. If name is =, it is replaced by the name
of the ABC source file.
-
- If name is - and standard PostScript or
embeddable SVG output is selected, the output will be sent to standard
output.
- +O
- Revert to the default output directory and file name.
- -q
- Quiet mode; display only error messages.
- -s scale
- Set the page scale factor to scale. Note that the
header and footer are not scaled (default: 0.75).
-
- See the scale formatting parameter below.
- -S
- Secure mode; disables file inclusion via %%format
and %%EPS and disallows direct PostScript injection via
%%beginps and %%postscript.
- -Tn[voice],
+Tn[voice]
- Activate (or deactivate) tabulature drawing. n is
the tabulature number as defined in %%tabulature (up to a maximum
of 8 tabulatures), and voice is the voice name, full name or
subname as found in V:. When this is absent, the option applies to
all voices. Up to 4 such options may be given. See also
format.txt.
- -u
- Use implicit decorations as in abc2ps (default:
off). See the abc2pscompat formatting parameter below.
- -V
- Output version number and quit.
- -v
- Produce SVG output instead of PostScript. In this mode each
page goes to a different numbered file. Output to standard output is
disallowed.
- -w length
- Adjust the right margin such that the staff width is
length (default: none).
-
- See the staffwidth formatting parameter below.
- -x
- Include the `X:' tune number in the title. See the
writefields formatting parameter below.
- -X
- Produce XML+SVG output instead of PostScript. See -O
for output file naming.
- -0
- Split tunes across page breaks if necessary. See the
splittune formatting parameter below.
- -1
- Output one tune per page. See the oneperpage
formatting parameter below.
The following formatting parameters can be used in format files. They can also
occur in ABC files when they are preceded by
%%, or on the command line
(using a double dash to introduce them).
Parameters specified on the command line or within an ABC file override
definitions of the same parameter in a format file.
If the
lock keyword is specified at the end of a parameter list, the
value cannot be changed later unless the later definition also uses
lock. There is an implicit
lock at the end of any parameter
specified on the command line.
Abcm2ps distinguishes between "global" and "local" parameter
settings. Global settings can be established through the use of format files,
or by specifying formatting parameters outside of tunes, i.e., at the
beginning of a file before the first tune's `X:' or `T:' line, or after the
blank line at the end of a tune before the next tune's `X:' or `T:' line.
Local settings can be specified inside a tune, and will revert to the current
global setting at the end of the tune. Do also note that the result of setting
some parameters depends on where they occur in the source file, i.e., setting
topmargin within a tune applies only to the second and subsequent pages
of that tune, not the first page, since when the local
topmargin
setting is seen, output of the tune has already started.
- abc2pscompat boolean
- If true, set M as the +tenuto+ decoration and
do a pitch translation if the notes are too high for a bass clef. Also, an
octave translation is applied to bass and alto parts (default: 0; command
line: -u)
- alignbars int
- Align the bars of the next int lines of music. This
works only when the music contains only one voice (no V: or
%%staves) (default: 0).
- aligncomposer int
- Define where to display the composer field. A negative
value displays it flush-left, a value of zero centered, and a positive
value flush-right (default: 1).
- annotationfont font [encoding]
size
- Set the annotation font to font with size
size (default: Helvetica 12)
- autoclef boolean
- Adjust the clefs when they are not defined in `K:' or `V:'
lines (default: 1).
- barnumbers int
- Synonym for measurenb.
- barsperstaff int
- Try to typeset with int bars per line (default: 0;
command line: -B, +b)
- beginps
- Start a sequence of PostScript code lines extending until
the next endps line. This parameter may only occur within ABC and
format files, not on the command line.
-
- Each line between beginps and endps is
included in the PostScript output file. The material may not exceed 128
KiB in size.
-
- When the output format is SVG, the PostScript code is
executed by the small built-in PostScript interpreter. Sequences which
cannot be executed (like font redefinitions) must be made conditional
based on the svg symbol:
/svg where {pop} {PostScript code that abcm2ps cannot execute} ifelse
- beginsvg
- Start a sequence of SVG code lines extending until the next
endsvg line. This parameter may only occur within ABC and format
files, not on the command line.
-
- Each line between beginsvg and endsvg is
included in the SVG output file. This makes it possible to add CSS to the
generated SVG files. The parameter is ignored if SVG generation has
already started (i.e., after the first K: information field.)
- bgcolor colour
- Define the background colour of SVG images. This parameter
is only used when the output is pure SVG (options -g and
-v).
-
- The colour may be a colour name ( white) or
an RGB colour in hexadecimal notation ( #faf0e6).
- botmargin length
- Set the bottom margin to length (default: 1cm)
- breakoneoln boolean
- If this is set, on finding an end-of-line (eoln), pretend
that there was a space before the next note or rest. This prevents a beam
to be continued between two input lines (default: 1).
- bstemdown boolean
- If this is set, the stem of the note on the middle of the
staff extends downwards. Otherwise it extends up or down depending on the
preceding note (default: 0).
- comball boolean
- If this is set together with combinevoices, voice
combination takes place in all cases. Otherwise, notes which are too close
together in pitch (i.e., a second interval, in unison, or inverted) are
not combined.
- combinevoices boolean
- If this is set, simultaneous notes of the same duration
belonging to voices on the same staff are combined into chords. (default:
0).
- composerfont font [encoding]
size
- Set the `composer' font to font with size
size (default: Times-Italic 14)
- composerspace length
- Set the vertical space before the composer name to
length (Default: 0.2cm)
- contbarnb boolean
- If this is not set, the bar numbers of second repeats are
set to those of the corresponding first repeats. If this is set, all bars
are numbered sequentially (default: 0).
- continueall boolean
- If this is set to true, ignore the line breaks in a tune
(default: 0; command line: -c, +c)
-
- This parameter is deprecated in favour of linebreak
<none>.
- dateformat format
- Format for date and time output. The admissible values of
this parameter are described in the documentation for the strftime(3) C
library function. Note that percent signs need to be escaped (default:
"b e, Y H:M")
- deco name c_func ps_func
h wl wr [str]
- Define a decoration. This is an experimental feature which
is subject to change in future releases and requires good knowledge of the
internals of abcm2ps. See the files format.txt and deco.abc
for details.
- decoration character
- Define the decoration separator. It may be set to either
! (the default) or + (for compatibility with the ABC 2.0
standard).
- dynalign boolean
- When set, horizontally align dynamic marks (default:
1)
- dynamic position
- Set the position of dynamic marks (`crescendo',
`diminuendo') in relation to the staff. The position may be 0 (or
auto) for automatic positioning depending on the presence and
position of lyrics, 1 or above to place them above the staff, or 2
or below to place them below the staff.
-
- If this parameter occurs outside a tune or inside a tune
header, it applies to all voices. If it occurs inside a tune body, it
applies to the current voice only.
-
- This parameter may also be set using the dyn= key of
the V: information field.
- encoding enc
- Define the character encoding of subsequent ABC strings.
This parameter is the same as abc-charset. The recognised charset
encodings and associated integer values are: us-ascii or
utf-8 (0); iso-8859-1 or latin1 (1);
iso-8859-2 or latin2 (2); iso-8859-3 or
latin3 (3); iso-8859-4 or latin4 (4);
iso-8859-9 or latin5 (5 or 9); iso-8859-10 or
latin6 (6 or 10). The value native means that special
characters are directly accessed from PostScript code.
- flatbeams boolean
- Draw flat beams (default: 0; command line: -f).
- font font [[encoding]
scale]
- Define a font and its encoding. Use this parameter when you
want to refer to specific fonts in ABC files/tunes. It must occur before
any PostScript output is written, generally in a format file.
-
- encoding defaults to the encoding set up by the
encoding parameter.
-
- scale is the width factor to apply to the
Times-Roman character width. It is needed to adjust the string width in
case computation with the default widths gives erroneous values; if
strings clash, set scale to a value less than 1.0, if there is too
much space, set it to a value greater than 1.0.
- footer text
- Define the text printed at the bottom of every page. There
may be one or two lines. When there are two lines, these must be separated
by the characters `\n' (not a real newline). Each of the lines consists of
three areas, left, center and right, which are separated by tabs (real
tabs, not '\t') and may be empty - if the left area is empty, the
text must be double-quoted.
-
- If the footer begins with `-', it will not be printed on
the first page of the document.
-
- The `$' character introduces variable expansion:
- $d
- The date and time of last modification of the current ABC
input file
- $D
- The current date and time
- $F
- The current input file name
- $Ix
- The value of header x of the tune
- $P
- The current page number
- $P0
- The current pagenumber (when even)
- $P1
- The current pagenumber (when odd)
- $T
- The current tune title
- $V
- `abcm2ps-' followed by the program's version number
-
- For example, the command line option -N3 is
equivalent to `%%header "$P0 $P1"' (note the two tabs).
(Default: none)
- footerfont font [encoding]
size
- Set the footer font to font with size size
(default: Times-Roman 12)
-
- Note that the footer is not scaled.
- format filename
- Read the format (or PostScript) file filename
(default: none; command line: -F).
- gchord position
- Set the position of guitar chords in relation to the staff.
position may be: 0 or auto for automatic positioning
(usually above the staff), 1 or above for positioning above the
staff, or 2 or below for positioning below the staff.
-
- If this parameter occurs outside a tune or inside a tune
header, it applies to all voices. If it occurs inside a tune body, it
applies to the current voice only.
-
- This parameter may also be set using the gchord= key
of the V: information field.
- gchordbox boolean
- Draw a box around guitar chords. Can be set to `true' using
`%%gchordfont' below. (Default: 0)
- gchordfont font [encoding] size
[box]
- Set the guitar chord font to font with size
size. If box is specified, draw a box around guitar chords
(default: Helvetica 12, no box)
- graceslurs boolean
- Draw slurs on grace notes if true (default: 1; command
line: -G, +G)
- gracespace float float
float
- Define the space before, between, and after the grace notes
(default: 6.5 8.0 12.0)
- header text
- Define the text printed at the top of every page. See the
footer parameter above for the syntax (default: none)
- headerfont font [encoding]
size
- Set the header font to font with size size
(default: Times-Roman 12)
- historyfont font [encoding]
size
- Set the font for history entries to font with size
size (default: Times-Roman 16)
- hyphencont boolean
- If an under-staff lyrics line ends with a hyphen, put
another hyphen at the beginning of the next line (default:0)
- indent length
- Indent the first line of a tune by length
(default:0; command line: -I)
- infofont font [encoding]
size
- Set the information line font to font with size
size (default: Times-Italic 14)
- infoline boolean
- Display the rhythm (`R:') and the area (`A:') of the tune
on a single `information line' before the first music line (default:
0)
- infoname letter tag
- Define the headers to be printed after a tune when
writehistory is set. The tag is printed before the actual
header value. By default, this outputs the R, B, S, D, N, Z, and H
headers, with tags `Rhythm:', `Book:', `Source:', `Discography:',
`Notes:', `Transcription:', and `History:', respectively.
- infospace length
- Set the vertical space before the information line to
length (default: 0).
- landscape boolean
- Set page orientation to landscape if true (default: 0;
command line: -l, +l).
- leftmargin length
- Set the left margin to length (default: 1.8cm;
command line: -m)
- linebreak separators
- Define the character(s) for breaking music lines.
separators is a blank-separated list of none, one, or more of:
>EOL< (system end-of-line character, the default),
$, !, or >none<.
-
- For compatibility, when >EOL< is in the
list, the ! character also causes a line break if it does not look
like it is introducing a decoration.
-
- The value >none< must be the only value in the
list. In this case, the program computes the line breaks by itself. The
same behaviour occurs if the separators list is empty. This
replaces the former continueall 1 parameter.
- lineskipfac float
- Set the factor for spacing between lines of text to
float times the font size (default: 1.1)
- linewarn boolean
- If set, outputs a warning when there are too few or too
many elements in a music line (default: 1)
- maxshrink float
- Set how much the output may be compressed horizontally when
staff breaks are chosen automatically. float must be between 0 and
1 (default: 0.65; command line: -a)
- maxstaffsep length
- Set the maximum vertical inter-staff space to length
(default: 2000pt)
- maxsysstaffsep length
- Set the maximum vertical system inter-staff space to
length (default: 2000pt)
-
- When this parameter occurs on the global level or in the
tune header, it applies to all staves. Otherwise it defines the maximum
vertical offset of the next staff.
- measurebox boolean
- Draw a box around the measure numbers if true (default: 0;
command line: -j or -k).
- measurefirst int
- Start measure numbering of the tune at int. This
parameter is obsolete and should be replaced with %%setbarnb
(outside the tune body)
- measurefont font [encoding]
size [box]
- Set the font for measure numbers to font at size
size. If [box] is specified, draw a box around the measure number
(default: Times-Italic 14, no box).
- measurenb int
- Draw a measure number every int bars. If int
is 0, the measure number appears at the left end of each staff. If
int is -1, no measure numbers are displayed at all (default: -1;
command line: -j or -k).
- musiconly boolean
- If true, no lyrics are output (default: 0; command line:
-M, +M)
- musicspace length
- Set the vertical space before the first staff of a tune to
length (default: 0.2cm)
- notespacingfactor float
- Set the note spacing factor to float. This value is
used to compute the natural space notes take up. The base space of the
crotchet (quarter note) is always 40pt. When the duration of a note type
is twice that of another note type, the space it takes up is multiplied by
this factor.
-
- The default value increases the note space by a factor of 2
when the corresponding note's value increases by a factor of 4. That is,
the space of a semibreve is 80pt and that of a semiquaver is 20pt.
-
- Setting this value to 1 sets all note spaces to 40pt
(default: 1.414).
- oneperpage boolean
- If true, output one tune per page; if false, multiple tunes
are output per page if there is sufficient room (default: 0; command line:
-1, +1).
- ornament position
- Set the position of ornaments (like mordent, trill, ...) in
relation to the staff. position may be: 0 or auto (default)
for automatic positioning (usually above the staff), 1 or above for
positioning above the staff, or 2 or below for positioning below
the staff.
-
- If this parameter occurs outside a tune or inside a tune
header, it applies to all voices. If it occurs inside a tune body, it
applies to the current voice only.
- pageheight length
- Set the page height to length (default:
hardcoded)
- pagewidth length
- Set the page width to length (default:
hardcoded)
- parskipfac float
- Set the factor for spacing between text paragraphs to
float (default: 0.4)
- partsbox boolean
- Draw a box around the part names if true (default: 0)
- partsfont font [encoding] size
[box]
- Set the font for part names to font with size
size. If box is specified, draw a box around the part
names. (default: Times-Roman 15)
- partsspace length
- Set the vertical space before a new part to length
(default: 0.3cm).
- pdfmark mode
- If mode is different from 0, output PostScript marks
to generate a PDF index after translation to PDF.
-
- If mode is greater than 1, generate marks for titles
and subtitles; if mode equals 1, generate marks for main titles
only (default: 0).
- postscript text
- Define a postscript sequence to be included in the header
of the output file. This formatting parameter may be used to override any
postscript function or to define new functions for use in deco. It
should be processed before any output occurs, that is, in a format file or
at the beginning of the first ABC file.
- repeatfont font [encoding]
size
- Set the font for repeat bracket numbers/texts to
font at size size.
- rightmargin length
- Set the right margin to length (default: 1.8cm)
- scale float
- Set the global page scale factor to float. This does
not apply to headers and footers (default: 0.75; command line:
-s).
- setdefl boolean
- When true, output some indications about the note/chord
and/or decorations for purposes of customisation. These indications are
stored in the PostScript variable defl. Note: This is a
potential compatibility problem. The parameter was introduced in version
4.9.4. (default: 0)
- setfont-1 font [encoding]
size
- setfont-2 font [encoding]
size
- setfont-3 font [encoding]
size
- setfont-4 font [encoding]
size
- Set up alternate fonts for strings. In most strings, you
can switch to one of the alternate fonts using $1..$4;
$0 switches back to the default value for that string. (default:
Times-Roman 0)
- shiftunisson boolean
- Usually in multi-voice tunes, when two voices are in unison
there is often only one note head. If this flag is set, two note heades
are output (one is shifted) if one is a minim (half note) and the other a
crotchet (quarter note) or shorter, i.e., a "black" note, or if
one note is dotted and the other is not. The parameter is really spelled
"shiftunisson" (default: 0).
- slurheight float
- Set the slur height factor to float (default:
1.0).
- splittune boolean
- If false, a tune is output on a new page if it doesn't fit
on the one currently being output. If true, a tune may be split across
page breaks (default: 0).
- squarebreve boolean
- If true, display breve notes in a square shape (default:
0)
- staffnonote boolean
- If false, staves not containing notes are suppressed. This
includes staves that only contain visible rests (default: 1)
- staffsep length
- Set the vertical inter-staff space to a minimum of
length (default: 46pt; command line: -d)
- staffwidth length
- Set the right margin such that the staff width is
length (default: none - but see paperwidth and
rightmargin).
- stemheight float
- Set the stem height to float (default: 20.0)
- straightflags boolean
- If true, use straight flags on stems (mostly useful for
bagpipe tunes (default: 0)
- stretchlast boolean
- If true, stretch the last staff of a tune to fill the whole
line even though it may be underfull (default: 0)
- stretchstaff boolean
- If true, stretch all underfull staves to fill the whole
line (default: 1)
- subtitlefont font [encoding]
size
- Set the font for subtitles (second and subsequent `T:'
headers in a tune) to font with size size (default:
Times-Roman 16)
- subtitlespace length
- Set the vertical space before subtitles (second and
subsequent `T:' headers in a tune) to length (default: 0.1cm).
- sysstaffsep length
- Set the minimum distance between staves in a system to
length (default: 36pt).
-
- This parameter applies to all staves if it occurs on the
global level or within the tune header. Otherwise, it defines the minimum
distance to the next staff.
- tempofont font [encoding]
size
- Set the font for tempo (metronome) indications to
font with size size (default: Times-Bold 15)
- textfont font [encoding]
size
- Set the text font to font with size size
(default: Times-Roman 16)
- textoption option
- Set the default text option to option. This option
is used for text between %%begintext and %%endtext,
%%text, and %%EPS. option may be a keyword; see
begintext for values.
-
- When option is skip, no text (nor EPS) is
output.
- textspace length
- Set the vertical space before text blocks to length
(default: 0.5cm).
- timewarn boolean
- If true, a cautionary time signature is added to the end of
the line before if a time signature change occurs at the beginning of a
line of music (default: 0).
- titlecaps boolean
- If true, output the tune title in uppercase letters
(default: 0)
- titlefont font [encoding]
size
- Set the title font to font with size size
(default: Times-Roman 20)
- titleformat text
- Defines the format of the tune title. This format overrides
the standard way the tune title is displayed. text is a sequence of
letters, numbers, commas, plus and minus signs.
-
- A letter stands for an ABC header (reasonable values
include A, B, C, D, H, N, O, P, R, S, T, X, and Z, but any letter may
occur) and can optionally be followed by a number. This number may be 0
(to center the header), 1 (to display it flush-right), or -1 or - (to
display it flush-left); if no number is given the default is 0.
-
- A plus sign may appear between two fields, in which case
these fields are concatenated (this only works if they are of the same
type and alignment).
-
- A comma starts a new `box' below the previous one. In each
box, the fields are placed in their respective alignment zones.
-
- Unrecognized characters will be ignored.
-
- As an example, `%%titleformat R-1 P-1 Q-1 T C1 O1, T + T
N1' will display two stacked boxes. The first box contains the rhythm,
part, and tempo on the left, the first (main) title in the centre, and the
composer and origin on the right. The second box (below the first) will
contain the concatenated subtitles (if any) in the centre and any notes on
the right.
- titleleft boolean
- If true, output the tune title flush left (instead of
centered) (default: 0)
- titlespace length
- Set the vertical space before the tune title to
length (default: 0.2cm).
- titletrim boolean
- If true, if the last word of a title starts with a capital
letter and is preceded by a comma and a space, this word is moved to the
beginning of the title. For example, T:College Hornpipe, The is
printed as The College Hornpipe (default: 1).
- topmargin length
- Set the top margin to length (default: 1cm)
- topspace length
- Set the vertical space at the top of a tune to
length (default: 0.8cm)
- transpose int [#|b]
- Transpose the music by int (a signed number)
halftones for display.
-
- If this parameter appears on the global level or inside a
tune header, it applies to all voices. If it appears inside a tune body,
it applies to the current voice only.
-
- If a # or b is present, the new key
signature(s) will have sharps or flats in case of enharmonic keys.
-
- Note that textual guitar chords will not be
transposed.
- tuplets when what
value
- Define how to draw tuplets. The when parameter can
be 0 (to decide automatically whether to draw a slur or bracket
over the tuplet), 1 (to never draw one) or 2 (to always draw
one). The what parameter defines what to draw: 0 means a
bracket, 1 a slur; 2 extends beams across rests (does not
work yet). The value parameter defines how to annotate the tuplet:
0 means to write a simple number ( p), 1 writes
nothing, and 2 writes a ratio ( p:q).
- vocal position
- Set the position of lyrics in relation to the staff.
position may be: 0 or auto (default) for automatic
positioning (usually above the staff), 1 or above for positioning
above the staff, or 2 or below for positioning below the
staff.
-
- If this parameter occurs outside a tune or inside a tune
header, it applies to all voices. If it occurs inside a tune body, it
applies to the current voice only.
- vocalabove boolean
- If true, output lyrics above the staff (instead of below
it) (default: 0)
- vocalfont font [encoding]
size
- Set the font for lyrics inside a tune to font with
size size (default: Times-Bold 13)
- vocalspace length
- Set the vertical space between a staff and its lyrics to
length (default: 23pt)
- voicefont font [encoding]
size
- Set the font for voice names (default: Times-Bold 13).
- volume position
- Set the position of volume indications ( !p!,
!fff!, ...) in relation to the staff.
-
- position may be: 0 or auto (default) for
automatic positioning (usually below the staff), 1 or above for
positioning above the staff, or 2 or below for positioning below
the staff.
-
- If this parameter occurs outside a tune or inside a tune
header, it applies to all voices. If it occurs inside a tune body, it
applies to the current voice only.
- wordsfont font [encoding]
size
- Set the font for lyrics at the end of a tune to font
with size size (default: Times-Roman 16)
- wordsspace length
- Set the vertical space before the end-of-tune lyrics to
length (default: 0.5cm)
- writefields list boolean
- Determines which ABC information will be output.
list is a list of ABC header letters. boolean determines
whether that header will be output or not. (default: COPQTWw 1;
command line: -M, -x)
The following formatting parameters can only occur inside tunes and not in a
format file:
- %%begintext [mode]
- Start printing a free-form text. The text to be printed
appears on the subsequent lines of the the input file up to a line
containing %%endtext. The text lines may start with %%.
-
- The parameter may be:
- obeylines
- Line breaks in the input file are kept (default)
- align or justify
- Lines are justified
- ragged or fill
- Line breaks are ignored but output is left-justified
- center
- Lines are centered
- skip
- The text lines are not printed at all
-
- If mode is omitted, it defaults to the current value
of %%textoption.
-
- Inside the text, an empty line starts a new paragraph. Page
breaks cannot occur in the middle of a paragraph.
- %%center text
- Print one line of centered text
- %%EPS filename
- Include filename as an EPS file
-
- The file content is aligned to the left or right or
centered according to the current value of %%textoption.
- %%endtext
- Finish a block of free text started by
%%begintext
- %%multicol command
- Define multicolumn printing. command may be:
- start
- Save the current vertical position and left and right
margins. These margins may then be changed to print music or text.
- new
- Reset the vertical position to the place of the previous
start and restore the left and right margins. These can then be
changed again to display another column.
- end
- Restore the left and right margins and skip down the page
to a `safe place'.
-
- This command may also be used to group some tunes and text
on the same page.
- %%newpage [int]
- Start a new page, restarting page numbering from int
if applicable.
- %%repbra int
- Repetition brackets are normally displayed as written in a
voice. %%repbra 0 suppresses them for the current voice.
- %%repeat [n [k]]
- Replace a sequence of notes by one or many repeat marks.
When placed after a bar line, n indicates the number of measures to
be repeated, either 1 or 2. If n is 1, k gives the number of
repetitions of the preceding measure. If n is 2, k is not
used. When placed after a note or rest, n gives the number of notes
and rests to be repeated, and k gives the number of repeats. When
omitted, n and k default to 1.
- %%score definition
- See below.
- %%sep [h1 h2
length]
- Print a separator (line) of length length with
vertical space h1 above and h2 below (defaults: h1
and h2: 0.5cm; length: 3cm)
- %%setbarnb int
- Set the number of the next measure to int. When not
inside a tune body, this is equivalent to %%measurefirst.
-
- If the option appears at the beginning of the tune (after
K:), the second measure will have the new number.
- %%staff [+|-]
num
- Put the following material on staff num (or the
num-th previous or next staff if a sign is given). This will lead,
e.g., to beams between notes in different staves. Useful for keyboard
music; see, for example, sample4.abc.
- %%staffbreak length [f]
- Leave a space of length in the current staff. If
length is greater than 0.5cm, the left side of the staff (system)
is redrawn. In a multi-voice tune, a staff break must be specified in each
voice.
-
- If the f is not given, the staff break is removed if
it occurs at the start or the end of a line.
- %%staves definition
- See below.
- %%tablature arguments
- Define a tablature for the current voice. See
format.txt for the details.
- %%text text
- Output a single line of text.
- %%vskip length
- Leave vertical space of height length. length
may be negative, in which case the following material is moved closer to
that above.
ADDITIONAL FEATURES¶
Clefs¶
Clefs can be given in
K: and
V: headers. The full syntax is
[ clef=]type[line][+8|-8] [middle=pitch]
The `
clef=' can be omitted when the
type is a clef name.
type denotes the clef type. It may be:
- A note pitch (G, C, or F)
- The pitch indicates which clef is meant: G is the
treble clef, C the alto clef and F the bass clef. It also
gives the name of the note that appears on the clef's line.
- A clef name
- The available clef names are treble (clef gives the
pitch for G), alto or tenor (C), and
bass ( F)
- perc or P
- In percussion mode, accidentals change the glyphs used for
note heads. By default, sharp notes are drawn as `x' and flat notes as
circled `x'. This may be changed by redefining the PostScript functions
pshhd and pflhd.
- none
- No clef will be displayed.
The
line gives the number of the line within the staff that the base clef
will be written on. The default values are 2 for the treble clef, 3 for the
alto clef, and 4 for the tenor and bass clefs.
The
+8 and
-8 options draw an 8 above or below the staff,
respectively. `
middle=pitch' (or `
m=pitch', for
short) is an alternative way of defining the line number of the clef: The
pitch indicates what note will be displayed on the middle line of the
staff.
When no clef is specified, clef changes between
bass and
treble
will be inserted automatically.
Multi-voice typesetting¶
Multiple voices may be defined within the header or the tune using
V:name definition ...
where
name is a word consisting of letters and digits only (like
violin1). In the tune body, the following notes refer to this voice
until another
V: is encountered. A
definition can be one of:
- clef=...
- See above
- name=name or nm=name
- The name will be displayed at the beginning of the
first staff. It can contain \n sequences which will force line
breaks. If it contains whitespace it must be double-quoted.
- subname=name or snm=name
- The name will be displayed at the beginning of all
staves except for the first. It can contain \n sequences which will
force line breaks. If it contains whitespace it must be
double-quoted.
- merge
- The voice goes on the same staff as the previous
voice.
- up or down
- Forces the direction of the stems for the voice.
- dyn=up or dyn=down or dyn=auto
- Forces positioning of dynamic marks (above or below the
staff) or reverts to automatic positioning (the default)
- gstem=up or gstem=down or
gstem=auto
- Forces the direction of the stems of grace notes (always up
or always down) or reverts to automatic positioning (the default)
- stem=auto
- Reverts to automatic positioning of note stems (up or down)
(the default)
- lyrics=up or lyrics=down or
lyrics=auto
- Places lyrics above or below the staff or reverts to
automatic positioning (the default)
- gchord=up or gchord=down
- Places guitar chords above (the default) or below the
staff.
- stafflines=value
- Sets the number of lines on the staff in question.
(default: 5)
- staffscale=value
- Sets the scale of the associated staff up to 3. (default:
1) All other definitions are ignored.
By default, each voice goes on its own staff. The `%%staves
definition'
pseudo-comment can be used to control staff assignment. The
definition
consists of voice names (from
V:) and pairs of parentheses, braces or
brackets.
- •
- When a voice name is not within a pair of special
characters, it goes on a separate staff.
- •
- For voice names enclosed in brackets, a bracket is
displayed at the beginning of each line that joins the staves of the
voices in question.
- •
- For voice names enclosed in braces, all the voices go on
two staves (keyboard score). There can be at most four voices between a
single pair of braces.
- •
- For voice names enclosed in parentheses, all the voices
appear on a single staff.
The `
|' character prevents measure bars from being drawn between two
staves.
If `%%staves' occurs in a tune, all the voices not mentioned will not be output
at all.
The %%score directive¶
The
%%score directive occurs in the ABC draft 2.0 standard and is similar
to the
%%staves specification described earlier. The rules are:
- •
- Voice names within parentheses form a "voice
group" and go on a single staff. A voice name that is not within
parentheses forms its own voice group and goes on a staff by itself.
- •
- Voice groups within braces form a "voice block"
and are preceded by a big brace in the output. This is especially useful
for keyboard music.
- •
- Voice groups or voice blocks within brackets form a
"voice block" and will be preceded by a big bracket in the
output.
- •
- If a `|' character occurs between two voice groups
or voice blocks, the bar lines in all of the associated staves will be
continuous.
- •
- A single voice surrounded by two voice groups can be
preceded by an asterisk to make it into a `floating' voice. This means
that, for each note of the voice, a separate decision is made whether it
is printed on the preceding or the following voice group's staff.
- •
- Voices that appear in the tune body but not in the
%%score directive will not be output at all. If there is no
%%score directive, each voice will be output on its own
staff.
- •
- A %%score directive inside a tune resets the
mechanism so voices can be removed or added.
Voice overlay¶
You can add notes to a staff without introducing a complete extra voice by using
the ampersand (
&). A single measure can be split into two voices
like
|F2A2Bc&F2c2bc|
The
(&...&...&) construction allows splitting multiple
measures:
|!f!(&GG<G|GG F=E| E2 E(_D/E)|_D D C D |C4- |C
&DC<C|CC_D C|=B,2_B,B, |_A,A,(G,/A,/)B,|F,4-|F,)zzD=E|
A double ampersand (
&&) will allow overlaying more than two
lines of music but this feature has not yet been implemented.
Lyrics¶
Aligned lyrics under a staff are written as a
w: line directly below the
staff line. For example:
edc2 edc2|
w:Three blind mice, three blind mice
Each word in the
w: line (delimited by blanks) is associated with one
note, in sequence. The following special symbols modify this behaviour:
- *
- Skips one note.
- -
- Splits a word into two syllables which are associated with
two adjacent notes. A `-' is drawn between them.
- |
- Advances to the next bar line
- ~
- Is output as a space, but unites two words so they appear
under a single note.
- _
- Draws a thin underscore from the previous note to the
next.
To include more than one line of lyrics, use multiple
w: lines. To
include hyphens without splitting a word over multiple notes, use
-.
If a word starts with a digit, this is interpreted as a stanza number and
outdented a bit to the left.
Slurs and ties¶
The direction of slurs and ties may be controlled using the
(, and
(', and
-, and
-', constructions.
Microtone pitches¶
Microtone pitches are indicated by a fraction after an accidental, as in
3/4c. When omitted, the numerator defaultes to 1 and the denominator to
2 (so
/c is the same as
1/2c). The numerator and
denominator values may not exceed 256. There is built-in support for
quarter-tone accidentals (1/2 and 3/2 sharps and flats); for other values,
rendering functions must be defined using
%%postscript (see
features.txt).
EPS inclusion¶
EPS files may be included inside tunes using the pseudo-comment `%%EPS
file'.
SEE ALSO¶
The original documentation can be found in files
features.txt,
format.txt, and
options.txt, which on a Debian system are in
/usr/share/doc/abcm2ps.
AUTHOR¶
This manual page was written by Anselm Lingnau <lingnau@debian.org> for
the
Debian system (but may be used by others). Permission is granted to
copy, distribute and/or modify this document as long as its origin is not
misrepresented.