Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
   Process this	file with rst2man from python-docutils
   to generate a nroff manual page

=======	abcm2ps	=======

--------------------------------------------------  translate ABC
music	    notation	   to	    PostScript	     or	      SVG
--------------------------------------------------

SYNOPSIS ========

  ``abcm2ps`` [global_options] ABC_file	[file_options] ...

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  mul-
tiple keyboards	and a pedal-board. The program has since been ex-
tended	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	=======

The list of the	command	line options may be known running::

   abcm2ps -h

The options may	be grouped when	they have no  argument,	 but  the
last one (ex: ``-lnGI20``).

The options may	be disabled when starting with '+' or ending with
'-' (ex: ``+MT1`` is the same as ``-MT1-``).

The  general output format is the last found in	the command line.
It may be:

-E    for Encapsulated PostScript, one file per	tune

-g    for SVG, one file	per tune

-v    for SVG, one file	per page

-X    for XHTML+SVG

-z    for (X)HTML+SVG with (X)HTML+ABC input

(see below for more information)

List of	the options -------------------

-
   Read	the abc	file from stdin.

--<format> <value>
   Set the <format> parameter to <value>.

   This	has the	same effect as a format	parameter
   directly in the source file.

-a <float>
   Maximal horizontal compression when staff breaks are
   chosen automatically. Must be a float between 0 and 1.

   This	correspond to the ``%%maxshrink``
   formatting parameter	(default: 0.65).

-A
   This	option inserts reference elements in the PostScript
   or SVG output.

-B <int>, +B
   Try to typeset <int>	bars on	each staff line.

   This	corresponds to the ``%%barsperstaff`` formatting  parame-
ter.

-b <int>
   Start measure numbering at <int>.

   This	 corresponds to	the ``%%measurefirst`` formatting parame-
ter.

-c, +c
   The continuation symbol is implicitly appended to each
   music line. This amounts to automatic line breaking.

   This	corresponds to the ``%%continueall``  formatting  parame-
ter.

-D <dir>
    Search the format files in the directory <dir>.

-d <unit>
   Set the vertical interstaff space to	<unit>.

   This	corresponds to the ``%%staffsep`` formatting parameter
   (default: 46pt).

-E
   Produce EPS output instead of simple	PS.

   In this mode, each tune goes	to a different file which
   name	is "<name>nnn.eps" or "<title>.eps" (see option	'-O')

	- 'nnn'	is a sequence number incremented at each tune

   Output to stdout is forbidden.

   EPS files are normally embedded into	Postscript documents,
   but they may	be a way to generate graphical images. For
   example, using GhostScript::

	abcm2ps	voices -Ee7
	gs  -sDEVICE=pngmono  -r80  -g590x174		  -dBATCH
-dNOPAUSE	     -sOutputFile=quitolis.png Out001.eps

   e values for	-g are the values of the bounding box in
   the .eps, multiplied	by (80 / 72), where 80 is the value
   for -r, and 72 is the default resolution)

-e [ <tune index list> ] [ <regular expression>	]
   Select which	tunes from an ABC file to print.

   <tune index list> is	either a comma-separated list of tune
   numbers (as per the ``X:`` header), or a regular expression
   which will be matched against the tune headers as a whole.
   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.

   This	corresponds to the ``%%select``	formatting parameter.

-F <file>, +F
    Read the format (or	PostScript) file <file>.

    When omitted, the default type of a	format file is '.fmt'.

    In the form	'+F', the default format file ('default.fmt')  is
not
    read.

-f
   Enable flat beams (useful for bagpipe tunes).

   This	corresponds to the ``%%flatbeams`` formatting parameter.

-G, +G
   Omit	slurs on grace notes.

   This	corresponds to the ``%%graceslurs`` formatting parameter.

-g
    Produce SVG	output instead of EPS.

    In this mode each tune goes	to a different file which name
    is 'Outnnn.svg' (see option	'-O').

    If the output is stdout (option '-O-'), all	the SVG	images
    are	output without XML header.

-H
    Display the	current	format values.

-h
   Quick help, equivalent to "abcm2ps" without any arguments.

   This	also shows the default settings	for some parameters.

-I <unit>
   Indent the first line of the	tune by	<unit> (default: 0).

   This	corresponds to the ``%%indent``	formatting parameter.

-i, +i
    Insert  a red cercle around	the errors in the PostScript out-
put.

-j <int>[b], +j
   Output a measure number every <int> measures.

   If <int> 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).

   This	corresponds to the ``%%measurenb`` formatting parameter.

-k <int>
   Set the size	of the PostScript output buffer	in Kibytes.

   Setting this	value to a higher value	permits	the
   generation  of  big	tunes with -E or -g. The default value is
64.

-l, +l
   Generate landscape output.

   This	corresponds to the ``%%landscape`` formatting parameter.

-M, +M
   Suppress lyrics.

   See the ``%%writefields w`` formatting parameter.

-m <unit>
   Set the left	margin to <unit> (default: 1.8cm).

   This	corresponds to the ``%%leftmargin`` formatting parameter.

-N <int>, +N
   Number the pages.

   <int> indicates the mode:

      0
	 no page numbers
      1
	 at top	left
      2
	 at top	right
      3
	 at top	left on	even pages, top	right on odd pages
      4
	 at top	right on even pages, top left on odd pages

   For compatibility with previous versions, '+N' is the same as
   '-N0', and '-N' is the same as '-N2'.

   If a	header is defined ("%%header"),	this option is ignored.

-n, +n
   Include notes and history from ABC tune ``N:`` fields.

   See the ``%%writehistory N``	formatting parameter.

-O [ <directory> ] [ <name> ], +O
   Define the output file directory and/or name.

   The directory must end with the directory separator
   ('/'	for unix/windows, '\' for mac).

   By default, the output file goes to the current directory
   with	the name:

      'Out.ps' for PS,

      'Outnnn.eps' for EPS (see	option '-E'),

      'Outnnn.svg' for SVG (see	options	'-g' and '-v') or

      'Out.xhtml' for XHTML+SVG	(see options '-X' and '-z').

   'nnn' is a sequence number.

   When	<name> is present, it is the name of the file, or it
   replaces "Out" in the file name.

   If <name> is	'=', it	is replaced by the name	of the ABC
   source file (not for	'-z').

   If <name> is	'-', the result	is  output  to	stdout	(not  for
EPS).
   '+O'	 resets	 the  output file directory and	name to	their de-
faults.

-p
   Bagpipe format.

   When	present, format	output for bagpipe regardless of key.

-q
   Quiet mode.

   When	present, only the errors are shown.

-s <float>
   Set the page	scale factor to	<float>. Note that the header
   and footer are not scaled (default: 0.75).

   This	corresponds to the ``%%scale`` formatting parameter.

-S
   Secure mode.

   When	present, file inclusion	(%%format and  %%EPS)  and  Post-
Script
   injection (%%beginps	and %%postscript) are disabled.

-T <int> [ <voice> ], +T [ <int> [<voice> ] ]
   Activate or deactivate tablature drawing.

   - <int> is the tablature number as defined in ``%%tablature``.
      There may	be only	8 different tablatures.

   -  <voice> is the voice name, full name or subname as found in
V:.
      When absent, apply to all	voices.

   Up to 4 such	commands may be	defined.

      Ex: '-T1flute +T2'

-V
   Show	the version number.

-v
   Produce SVG output instead of simple	PS.

   In this mode	each page goes to a different file which name
   is 'Outnnn.svg' (see	option '-O').

-w <unit>
   Adjust the right margin such	that the staff width
   is <unit> (default: none).

   This	corresponds to the ``%%staffwidth`` formatting parameter.

-X
   Produce XML+SVG output instead of simple PS.

   The default file name is 'Out.xhtml'	(see option '-O').

-x, +x
   Include the ``X:`` tune number in the title.

   This	corresponds to the ``%%writefields``  formatting  parame-
ter.

-z
   Produce SVG images from ABC embedded	in markup language files
   (HTML, XHTML..).

   The	source	file is	copied to the output file and the ABC se-
quences
   are converted to SVG	images.
   The ABC sequences start by either ``%abc..``	or ``X:..``
   and stop on the first markup	tag (``<..``).

   The generation creates one image per	block, i.e. a music line
   or a	text block. For	a same rendering as the	other SVG genera-
tion
   (-g,	-v or -X), don't forget	to set the line	 space	to  null,
for
   example enclosing the ABC sequences by::

      <div style="line-height:0"> .. </div>

   There can be	only one output	file.

   Note	that the default output	file is	'Out.xhtml', so, don't
   forget to change the	file type if you generate HTML (.html)
   or XML (.xml) files.

   See "sample8.html" for a source example.

-0, +0
   Split tunes across page breaks if necessary.

   This	corresponds to the ``%%splittune`` formatting parameter.

-1, +1
   Output one tune per page.

   This	corresponds to the ``%%oneperpage`` formatting parameter.

ADDITIONAL FEATURES ===================

Clefs
   Clefs can be	given in ``K:``	and ``V:`` headers.
   The full syntax is::

      clef=<type><line>[+8|-8]

   "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.

   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.  (de-
fault: 5)

   * "staffscale="<value>

      Sets  the	 scale of the associated staff up to 3.	(default:
1)

   All other definitions are ignored.

Definition of the staff	system
   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 occurs in the ABC
   draft 2.0 standard and is similar to
   the ``%%staves`` specification described
   above. 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 "-," / "-'" 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``.

EPS inclusion
   EPS files may be included inside tunes using	the
   pseudo-comment ``%%EPS <file>``.

SEE ALSO ========

A brief	introduction referencing  further  documentation  is  in-
stalled	in <docdir>/abcm2ps/README.md.

The ABC	music notation is at http://abcnotation.com/.

Especially, you	may find a discussion of differences with the ABC
standard  at http://moinejf.free.fr/abcm2ps-doc/features.html and
a list of formatting options  at  http://moinejf.free.fr/abcm2ps-
doc/.

AUTHOR ======

``abcm2ps``	was	written	    by	   Jean-Franois	    Moine
<http://moinejf.free.fr/> starting  from  ``abc2ps``  by  Michael
Methfessel.

Parts  of  this	manual have been written by Anselm Lingnau <ling-
nau@debian.org>	for the	``Debian`` system.

Permission is granted to copy, distribute and/or modify	this doc-
ument as long as its origin is not misrepresented.


Want to link to this manual page? Use this URL:
<
https://man.freebsd.org/cgi/man.cgi?query=abcm2ps&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help