mirror of
https://github.com/sshlien/abcmidi.git
synced 2025-12-06 15:05:07 +00:00
212 lines
8.6 KiB
Plaintext
212 lines
8.6 KiB
Plaintext
|
|
YAPS - an abc to PostScript Converter
|
|
|
|
YAPS is Yet Another abc to PostScript converter.
|
|
|
|
The original converter was Michael Methfessel's abc2ps program. Another
|
|
converter is abcm2ps, based on the abc2ps code. YAPS uses the library
|
|
of PostScript routines from abc2ps, but the parser and other C code does
|
|
not come from abc2ps.
|
|
|
|
What is PostScript ?
|
|
--------------------
|
|
This program is intended for converting an abc tune to high quality
|
|
printed output. If yaps created an image file in, say, GIF
|
|
or PNG format it would have to decide how many pixels wide and how
|
|
many pixels high the final image would be. When the image was printed
|
|
on a printer capable of much higher resolution, you would be able to
|
|
see that the image was built up of lower resolution pixels. PostScript
|
|
gets round this limitation by storing the image as a description of
|
|
all the objects that will appear on the page. These descriptions are
|
|
converted to pixels at the last moment, when the resolution of the
|
|
printer is known. This way, you can make full use of the resolution
|
|
available.
|
|
|
|
If you are lucky, you may have a PostScript printer, in which case
|
|
you can send the output of yaps directly to the printer. If not,
|
|
there are PostScript interpreter programs available, which will
|
|
turn a PostScript image into other image formats. A popular freely
|
|
available PostScript interpreter is called GhostScript. Another
|
|
freely available program, GSView, provides a graphical interface
|
|
to GhostScript and lets you view images on-screen.
|
|
|
|
For a full description of the PostScript language, see "PostScript
|
|
Language Reference (third edition)" by Adobe Systems Inc.
|
|
|
|
----------------------------------------------------------------
|
|
Executing yaps with no filename will give the yaps version and the
|
|
following message:
|
|
|
|
Usage: yaps <abc file> [<options>]
|
|
possible options are -
|
|
-d : debug - display data structure
|
|
-e <list> : draw tunes with reference numbers in list
|
|
list is comma-separated and may contain ranges
|
|
but no spaces e.g. 1,3,7-20
|
|
-E : generate Encapsulated PostScript
|
|
-l : landscape mode
|
|
-M XXXxYYY : set margin sizes in points
|
|
28.3 points = 1cm, 72 points = 1 inch
|
|
-N : add page numbering
|
|
-k [NN] : number every bar or every NN th bar
|
|
-o <filename> : specify output file
|
|
-P ss : paper size; 0 is A4, 1 is US Letter
|
|
or XXXxYYY to set size in points
|
|
-s XX : scaling factor (default is 0.7)
|
|
-V : separate voices in multi-voice tune
|
|
-x : print tune number in X: field
|
|
Takes an abc music file and converts it to PostScript.
|
|
If no output filename is given, then by default it is
|
|
the input filename but with extension .ps .
|
|
|
|
YAPS features
|
|
-------------
|
|
|
|
1. Uses the abc2midi parsing code, so hopefully compatibility with
|
|
abc2midi will be good.
|
|
|
|
2. Measures the width of lyric text for lyric typesetting.
|
|
|
|
3. Uses dynamically extensible data structures in most places, so
|
|
you should not be restricted by compiled-in limits.
|
|
|
|
4. Multiple voices drawn with notes played at the same time aligned.
|
|
|
|
5. Supports special characters using ISO latin 1 font. Special
|
|
characters are created with a TeX-like code e.g. \'E or a 3 digit octal
|
|
code e.g. \315 .
|
|
|
|
6. Supports the following clefs : baritone, tenor, alto, mezzo, soprano,
|
|
treble, bass. Recommended use is
|
|
|
|
I:clef=bass
|
|
|
|
To make it easier to enter tunes in clefs othan than treble clef,
|
|
yaps supports I:octave=-1 to indicate than a C in the tune represents
|
|
the note one octave below the pitch defined in the abc standard. These
|
|
may be combined in one I: statement e.g.
|
|
|
|
I:clef=bass octave=-2
|
|
|
|
You can also use clefs that are one, two or three octaves higher or
|
|
lower than normal using e.g. treble-8, treble+15, treble-22. The clef is
|
|
drawn with a small 8, 15 or 22 above or below the clef symbol. The clef=
|
|
and octave= commands may also go in the K: field e.g.
|
|
|
|
K:G clef=bass-8 octave=-3
|
|
|
|
Note that there is an incompatibility between the behaviour of yaps and
|
|
the behaviour of abc2ps 1.3.3. abc2ps 1.3.3 does not support the
|
|
I:octave=N command, but selecting certain clefs causes it to automatically
|
|
transpose by several octaves. You can produce abc that works for both by
|
|
following the clef change with an I:octave=N command to do the transpose
|
|
that abc2ps does automatically.
|
|
|
|
7. Produces boxed part labels.
|
|
|
|
8. Supports the segno symbol with !segno! and coda with !coda! . Other
|
|
musical instructions such as !fine! and !D.C.! come out as text.
|
|
|
|
9. Supports the U: field for abbreviating symbols to single characters.
|
|
e.g.
|
|
|
|
U:S = !segno!
|
|
|
|
allows S to be used to produce the segno symbol. Currently this only
|
|
allows new symbols to be defined and does not allow the existing
|
|
pre-defined symbols M,L,R,H and T to be altered.
|
|
|
|
10. Supports the following abc2ps extensions to abc :
|
|
|
|
%%newpage - start a new page,
|
|
%%vskip N - adds vertical space of N points. If N is followed by
|
|
'cm' or 'in' the units are taken as centimetres or inches
|
|
instead of points e.g. 4cm.
|
|
%%text - print text
|
|
%%centre (or %%center for Americans) - print centred text.
|
|
|
|
If %%text or %%centre appear in the header, the text appears above the
|
|
tune.
|
|
|
|
%%staffsep SIZE - set vertical blank space between 2 consecutive music
|
|
staves.
|
|
%%titleleft N - select title placed to the left or centred. N = 1 places
|
|
the title on the left while N = 0 centres it.
|
|
%%titlecaps - title is displayed in upper case (capital) letters.
|
|
%%textfont NAME SIZE - select font called NAME and point size SIZE for
|
|
text produced by %%text or %%centre. If only NAME is given, the font
|
|
stays the same size. Likewise, if '-' is given as the NAME, only the
|
|
font size changes.
|
|
|
|
%%titlefont NAME SIZE - select font for title.
|
|
%%subtitlefont NAME SIZE - select font for titles after the first title.
|
|
%%composerfont NAME SIZE - select font for words in C: and O: fields and
|
|
part specifier (P: in header).
|
|
%%wordsfont NAME SIZE - select font for words in W: fields.
|
|
%%partsfont NAME SIZE - select font for boxed parts and !instruction! .
|
|
%%vocalfont NAME SIZE - select font for words in w: fields.
|
|
%%gchordfont NAME SIZE - select font for guitar chords in the music.
|
|
(It is advisable not to change the font name for the last two, since
|
|
the program calculates the width of strings using default fonts)
|
|
|
|
%%titlespace, %%subtitlespace, %%textspace, %%composerspace, %%wordsspace,
|
|
%%partsspace, %%vocalspace and %%gchordspace determine the amount of
|
|
space left above the relevant type of text. Each of these should be
|
|
followed by a size in points or value in centrimetres or inches.
|
|
|
|
e.g. %%composerfont 3
|
|
%%titlefont 2cm
|
|
|
|
11. Supports placing of accompaniment chords either above or below the
|
|
stave.
|
|
|
|
%%chordsabove - places accompaniment chords above the stave (default).
|
|
%%chordsbelow - places accompaniment chords below the stave.
|
|
|
|
12. Supports optional text enclosed in quotes before and after the
|
|
tempo specification in the Q: field. This extension comes from abc2ps.
|
|
|
|
13. Allows highlighting notes by switching output from black to
|
|
red and vice-versa using the !red! and !black! instructions.
|
|
|
|
Known bugs and Limitations
|
|
--------------------------
|
|
1. Overfull lines of music are not split over multiple lines.
|
|
|
|
WARNING - the -s option is now used for scaling. Selecting separate
|
|
printing of each voice (which previously used -s) is now done with -V.
|
|
|
|
YAPS is still under development and missing a number of features. However,
|
|
it should produce acceptable output most of the time. You may want to try
|
|
abc2ps or abcm2ps if you find that YAPS will not do what you want.
|
|
|
|
Viewing PostScript Files from DOS
|
|
---------------------------------
|
|
Here is how I arranged things so that I can view PostScript from DOS :
|
|
|
|
1. Install Ghostscript 5.10 (compiled to run under DOS). This is not
|
|
totally straightforward; you have to install the fonts separately and
|
|
then set the environment variable GS_LIB to a path containing the
|
|
GhostScript initialization files and the fonts.
|
|
2. Install Pictview, a free image viewer.
|
|
3. Create a small batch file ps.bat containing the following line:
|
|
|
|
c:\gs5.10\gs386 -r120 -sOutputFile=out.tif -sDEVICE=tiffg3 -sPAPERSIZE=a4 -dNOPAUSE -dBATCH %1
|
|
|
|
When you run this, it creates a TIFF file out.tif containing all
|
|
pages in compressed format.
|
|
|
|
The following commands will show you the dots for an abc file:
|
|
|
|
yaps demo.abc
|
|
ps demo.ps
|
|
pictview out.tif
|
|
|
|
|
|
Copyright (c) James Allwright 1999
|
|
(parts of the code Copyright Michael Methfessel).
|
|
This code may be freely re-distributed under the terms of the
|
|
GNU public license. You are encouraged to modify and redistribute it,
|
|
provided this copyright notice is retained.
|
|
|