Introduction
Introduction Statistics Contact Development Disclaimer Help
New.Features - abc2ps - A powerful sheet setting tool using the simple abc nota…
git clone git://vernunftzentrum.de/abc2ps.git
Log
Files
Refs
---
New.Features (13234B)
---
1
2 New features in abc2ps 1.3.1 (M. Methfessel, July 1998)
3 =======================================================
4
5 The program now supports multi-stave output and has been improved
6 in various other ways. Please look at Changes for more information.
7
8
9 New features in abc2ps 1.2.4 (M. Methfessel, Feb. 1997)
10 =======================================================
11
12
13 Please also have a look at file newfeatures.abc, which
14 demonstrates many of these points.
15
16
17 ----- Bass clef -----
18
19 The bass clef is selected by appending the word "bass" to the
20 key specification. eg. "K:G bass". Notes are then drawn so
21 "C" is below the staff and "c" is in the third space from the top,
22 which is a downward shift by one line relative to the treble clef.
23
24 For in-line clef changes, use an in-line specification such as
25 [K:G bass] (was formerly \K:G bass\; this still supported).
26 If the key itself does not change, it is enough to write
27 [K:bass] and similarily [K:treble].
28
29 Added: [K:alto] makes the alto (viola or C) clef.
30
31
32 ----- Vocals -----
33
34 Aligned lyrics under the staff are specified using a line directly
35 below the staff, starting with "w:". For example:
36
37 edc2 edc2 |
38 w: Three blind mice, three blind mice
39
40 Each blank-delimited word in the "w:" line is associated with
41 one note, in sequence. The following special symbols are available
42 to modify this behaviour:
43
44 * skips one note
45 - split a word into two syllables, associated with two notes,
46 with '-' drawn between them
47 | tabs forward to the next bar line.
48 ~ is drawn as a space, but contracts words to be written under
49 one note. That is, "hey~ho" gives two words under one note.
50 _ draws a thin "underscore" from the previous note to this one.
51
52 For more than one line of lyrics, just use several w: lines.
53 To draw a '-' without breaking the word there, escape it as "\-".
54
55 Note that \\ in the abc music line now defines a staff break. This is
56 useful when typesetting vocals, because it is tedious to split
57 the line explicitly when shifting a staff break about when there
58 are lines with vocals.
59
60 If a word starts with a digit, this is interpreted as numbering of a
61 stanza and is pushed forward a bit. In other words, use something like
62 w: 1.~~Three blind mice
63 to put a number before "Three".
64
65
66 ----- Writing text between the music -----
67
68 This can be done using pseudocomments in three ways. First:
69
70 %%text This is a line of text.
71
72 writes one line into the output. Second,
73
74 %%center This is another line of text.
75
76 again writes one line, but centers it. Finally,
77
78 %%begintext
79 %%First line of text
80 %%Second line
81 %%And yet another line.
82 %%endtext
83
84 will write a block of several lines. To avoid conflict with other
85 programs, the text lines themselves are (optionally) prefaced with %%.
86
87 Statement "%%begintext" can be given a parameter to determine
88 how the output is done, namely:
89
90 %%begintext obeylines keeps lines as they are (default)
91 %%begintext ragged puts in own linebreaks to fill the line
92 %%begintext align puts in own breaks and aligns right margin
93 %%begintext skip skips the whole block, no output.
94
95 For "ragged" and "align", the program has to estimate the number of
96 lines needed in the current font, since the typesetting is done
97 using the PostScript "widthshow" operator by the printer.
98 The estimate should be reasonably reliable for Times-Roman, but might
99 be more dodgy for some other fonts. Also, note that the Ghostview fonts
100 can be quite different than the fonts used by the printer.
101 Strangely, a 13pt font can be smaller than a 12pt font.
102
103 An empty line in a block ends a paragraph (see parskipfac below).
104 In any case, \\ can be used in a line of text to add line breaks.
105 Thus, two centered lines results from this:
106 %%center First line\\second line
107
108 As with the other pseudocomments (described below), the text is
109 associated with a specific tune if it is within that tune's block.
110 In that case, it will only be printed if that tune is selected.
111 If the text is outside all tune blocks, it will always be printed.
112 The exception is if -E is used to to make a separate EPS file for
113 each tune. In this case all text outside the blocks is ignored.
114
115 The font for text output is determined as described below.
116
117
118 ----- Other pseudocomments which do something -----
119
120 %%sep - draws a short centered line as a separator
121
122 %%sep h1 h2 len - draws a separator of length len with space
123 h1 above, space h2 below.
124
125 %%vskip h - adds vertical space of height h
126
127
128 %%newpage - writes a page break
129
130
131 Dimensions can be given in cm, in, or pt, where pt is the default.
132 Examples: "%%sep 1cm 1cm 4cm" or "vskip 1.5cm".
133
134
135 ----- Output formating -----
136
137 The user can now tailor the appearance of the output page.
138 This is done by setting formating parameters, for example:
139
140 pageheight 29cm % height of page
141 staffwidth 5in % width of staff
142 leftmargin 1.8cm % left margin
143 titlefont Times-Roman 14 % the font for the title
144 titlespace 1cm % vertical space before the title
145 scale 0.9 % size of musical symbols
146 staffsep 60pt % space between staves
147
148 Use abc2ps -H to see the current values of these parameters.
149
150 To specify the parameters, there are four levels:
151
152 1. By default, a predefined set called "standard" is used.
153 With flag -p, an alternative "pretty" set is taken.
154 With flag -P, a third set "pretty2" is used.
155 Users are encouraged to make their own choices for these styles
156 and change the program accordingly (see routines
157 set_standard_format, set_pretty_format, set_pretty2_format
158 in file format.h).
159
160 2. Commands to set the parameters can be grouped into a file
161 with extension "fmt", which can then be selected by flag -F.
162 For example: there should be a file landscape.fmt in the
163 distribution. This changes the page orientation to landscape
164 and sets the page height and width accordingly, and also changes
165 the title style a bit. To output file scotland.abc in landscape,
166 the command is
167 abc2ps scotland.abc -F landscape -o
168
169 3. An abc file can contain pseudocomments (%%..) such as:
170 %%staffwidth 16cm
171 %%titlespace 1.4cm
172 Depending on the position, the changes to the style parameters
173 are either global for the rest of the file, or local to a single
174 tune. The change is global if the line is outside any tune block
175 (where a tune block starts with "X:" and ends with a blank line).
176 If the pseudocomment is within such a block, the parameter change
177 is only applied for this tune.
178 Note that the program cannot determine if a tune is selected
179 before it knows the title, so such a local pseudocomment should
180 come after the "T:" line.
181
182 4. Some of the command-line flags change the style parameters, eg:
183 -s 0.9 (sets symbol scale)
184 -m 2cm (sets left margin) etc.
185 Type "abc2ps -h" for a list of flags.
186
187 The priorities are in the sequence given above. That is, the ".fmt"
188 file overrides the predefined format, pseudocomments overide that,
189 and a command-line flag overrides everything else.
190
191
192 Some more details:
193
194 1. Format files are searched in the current directory. In abc2ps.c,
195 the line "#define DEFAULT_FDIR .." can be used to set a default
196 directory which is searched whenever a fmt file is not local.
197 Flag -D can also be used to specify this default directory.
198 (The idea is, even if a PC user only has the executable available,
199 he could make something like an alias to get his standard
200 fmt directory into the path.)
201
202 2. To see the settings for all the parameters, use flag -H.
203 When used in conjunction with other flags such as -p, -P, or -F,
204 the corresponding parameters are shown. If you redirect the
205 output to a file and edit out the header line, you immediately
206 have a prototype fmt file which specifies all the parameters.
207
208 3. Dimensions can be specified either as pt, cm, or in. Default is pt.
209 So, "%%staffwidth 20" will lead to very short lines!
210
211 4. Pseudocomments which are not recognized are ignored silently.
212 The idea is that other program can define their own.
213 It also means that when things frustratingly don't seem to work,
214 the reason might be a spelling mistake.
215
216 5. Because ISO fonts are needed for special characters and
217 accents, all fonts must be known when the header of the PS file
218 is written. The program tries to be as clever as it can
219 about this, but a font might be undefined if it is invoked
220 for the first time further down in a file. For this reason,
221 a line like this can be put into the fmt file:
222
223 font Palatino-Bold
224
225 or alternatively at the top of the abc file:
226
227 %%font Palatino-Bold
228
229 Either of these will define the corresponding ISO font in the header.
230 To make things even easier, the program always looks for a file
231 "fonts.fmt" and loads it if it exists. So, the often-used fonts
232 can be defined there once and for all.
233
234 6. The default page dimensions are set by defines in abc2ps.c
235 and then used in format.h to intialize the predefined formats.
236 Change these if the standard paper will not be Din A4.
237 The relevant lines in abc2ps.c are these:
238
239 #define PAGEHEIGHT 29.7 /* basic page dimensions in cm.. */
240 #define LEFTMARGIN 1.8 /* .. used in all default formats */
241 #define STAFFWIDTH 17.4
242
243 7. A line consisting of the word "end" in a fmt file skips the
244 rest of the file.
245
246
247 ----- List of format parameters -----
248
249 Parameters without explanation are deemed obvious.
250
251 pageheight
252 staffwidth
253 topmargin
254 botmargin
255 leftmargin
256 topspace vertical space at the top of a tune.
257 titlespace space before the title.
258
259 Note: Usually, one sees only the sum of these two.
260 However, if text is written preceeding a tune, it
261 will come after "topspace" and before "titlespace".
262
263 subtitlespace space before the subtitle.
264 composerspace space before the composer.
265 musicspace space between the composer and the music.
266 partsspace space ("up") between the "parts" and the music.
267 vocalspace space above a line of vocals.
268 wordsspace space aboove the words at the end of a tune.
269 textspace space above the text such as history (flag -n).
270
271 Note: these spaces count to the top of a line of text.
272 That is, the relevant text size (eg. "12pt") is added.
273
274 staffsep separation between staves. One-half of this
275 distance is added above and below each staff.
276 scale symbol size; eg. 1.0 is used in the "pretty" output.
277 maxshrink how much to compress horizontally when staff breaks
278 are chosen automatically. Between 0 and 1.
279
280 titlefont Font for title, ie: Times-Roman 14
281 subtitlefont
282 composerfont
283 partsfont
284 vocalfont for vocals under a staff (w: field)
285 gchordfont for guitar chords
286 textfont for text under the tune, or between tunes
287 wordsfont for words under the tune (W: field)
288 lineskipfac dimensionless factor for spacing between lines of text:
289 1.0 gives single-space output, 2.0 double etc.
290 parskipfac similar factor for space after a paragraph of text.
291 barsperstaff same as flag -B
292 landscape (logical) landscape orientation if true
293 titleleft (logical) title flushed left if true.
294 titlecaps (logical) title in capital letters
295 musiconly (logical) no vocals if true (equivalent to flag -M)
296 stretchstaff (logical) stretches underfull staves across page
297 stretchlast (logical) stretches last staff if underfull.
298 writehistory (logical) writes notes, history etc if true;
299 continueall (logical) continue all lines if true (same as -c).
300 breakall (logical) break at all line ends (same as -b).
301 oneperpage (logical) each tune on separate page (same as -1)
302 withxrefs (logical) print out X: xref number in title (same as -x…
303
304 Logicals can be specified as follows;
305 One of: 1 yes true gives true
306 One of: 0 no false gives false.
307 If nothing is specified, this is equivalent to true.
308
309
310 ----- Summary of tune layout -----
311
312 To summarize: the layout of a tune is done as follows.
313 Starting from the current position on the page,
314
315 First write the header:
316 go down by topspace, write text if any is specified;
317 go down by titlespace, write the main title;
318 for each subtitle, go down subtitlespace and write it;
319 go down composerspace, write the composer lines;
320 go down musicspace and go up by partsspace, write the parts.
321
322 Next, starting from musicspace below the composer:
323 For each staff:
324 go down by staffsep/2;
325 write the staff;
326 for vocals, go down by vocalspace and write them;
327 go down another staffsep/2.
328 Note that everything here (including the spaces and fonts)
329 are scaled by "scale".
330
331 Finally:
332 if words are included, go down wordsspace and write them;
333 if history/notes are included, go down textspace and write them.
334 Hereby lineskip and parskip given by "lineskipfac" and "parskipfac".
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.