Changes - abc2ps - A powerful sheet setting tool using the simple abc notation | |
git clone git://vernunftzentrum.de/abc2ps.git | |
Log | |
Files | |
Refs | |
--- | |
Changes (19904B) | |
--- | |
1 | |
2 17.03.99 Experimentally changed parsing so that the end of the header | |
3 comes at the first music or V: line. | |
4 | |
5 Note: according to the abc specs, the header ends with the K: l… | |
6 However, nobody seems aware of this. For multistave music it is | |
7 important exactly where the header ends, because info fields | |
8 in the body of the music (outside the header) only operate on | |
9 the current voice. Info fields in the header operate on all | |
10 the voices. | |
11 | |
12 16.03.99 Fixed various reported bugs. | |
13 | |
14 25.01.99 Support fermata over a rest. | |
15 | |
16 ----- Version 1.3.3 ----- | |
17 | |
18 | |
19 10.12.98 New flag: -I writes the contents and page numbers to file Ind.p… | |
20 | |
21 | |
22 08.12.98 Fixed bug: transposing was wrong for clef changes. | |
23 | |
24 | |
25 ----- Version 1.3.2 ----- | |
26 | |
27 10.08.98 Added new codes for accents (cf. sample.abc): | |
28 k: Accent which looks like > | |
29 K: Accent which looks like an upside-down V. | |
30 | |
31 | |
32 05.08.98 Added bar numbering and bar labels. | |
33 | |
34 Bar numbers: | |
35 to switch on bar numbering, use flag -k | |
36 where: -k 1 numbers every bar | |
37 -k 5 numbers every fifth bar, etc. | |
38 -k 0 numbers the first bar in every staff. | |
39 or, use the equivalent pseudocomment %%barnumbers <number>. | |
40 (Note: -k was used because it sounds a bit like "count".) | |
41 | |
42 The program counts through the bars automatically, trying | |
43 to do the right thing at first and second endings. Namely: | |
44 it remembers the bar number at the start of the first ending, | |
45 then resets to that value at the start of the second ending. | |
46 So, if there is a tune with 2x8 measures with first and second | |
47 endings after the first 8 bars, we still end up with 16 bars | |
48 in total. | |
49 Within one tune, bar numbers are counted through over parts | |
50 boundaries. However, if a T: title appears inside a tune, | |
51 the bar number is reset to 1. You can use an empty T: | |
52 line to reset the bar number without actually writing a title. | |
53 | |
54 | |
55 Bar labels: | |
56 this is intended for large letters A, B, C... | |
57 to mark specific points in the music. They are coded by | |
58 using a syntax similar to guitarchords, but placed before | |
59 a bar line instead of a note or rest, e.g.: | |
60 | abcd "A"| ABCD | | |
61 places the letter A over the second bar line. | |
62 Just in case somebody wants a label on the first bar | |
63 (which is often not preceded by a bar line), a new | |
64 symbol [|] was introduced for an "invisible" bar line. | |
65 | |
66 | |
67 Fonts for bar numbers and bar labels: | |
68 These can be set in the usual way with the two pseudocomments | |
69 %%barnumberfont and %%barlabelfont. | |
70 | |
71 In printed music, the bar numbers are often made more visible | |
72 by putting a box around them. This is now also possible. | |
73 In fact, a box can be put around most bits of text by | |
74 adding the word "box" to the font specification, e.g.: | |
75 | |
76 %%barnumberfont Times-Italic 11 box | |
77 | |
78 This can be done for the title, guitarchords, vocals, etc. | |
79 To switch on the box without changing the font style and/or siz… | |
80 the character * can be used, as in: | |
81 | |
82 %%titlefont * * box | |
83 | |
84 | |
85 A reminder: to see all the style specifications use 'abc2ps -H' | |
86 (for the standard format) or 'abc2ps -PH' (pretty2 format). | |
87 This gives a list suitable for placing in a .fmt file. | |
88 To modify settings for a single tune only, place the | |
89 pseudocomments after the 'T:' lines and before the 'K:' line | |
90 in the tune header. | |
91 | |
92 | |
93 Examples: look at celloprelude.abc for examples of bar numbers | |
94 and bar labels. Try 'abc2ps -maxv 8 -k0 bran5' or | |
95 'abc2ps -k0 bach' to see bar numbers at the start of | |
96 the line, as is often used for scores. | |
97 | |
98 | |
99 | |
100 20.07.98 Fixed bug overwriting when lvoiceid too short. | |
101 | |
102 ----- Version 1.3.1 ----- | |
103 | |
104 12.07.98 A number of enhancements to format multi-stave music nicely. | |
105 For examples, see files trio.abc bran5.abc voices.abc bach.abc. | |
106 | |
107 In detail: indentation of the first staff, labels for voices, | |
108 braces and brackets to group voices, and some additional | |
109 parameters in the V: line to control the output. | |
110 | |
111 As before, the syntax of the V: line is | |
112 | |
113 V: <label> <par1>=<value1> <par2>=<value2> ... | |
114 | |
115 where <label> is used to switch to the voice in later V: lines. | |
116 Each <par>=<value> pair sets one parameter for the current voic… | |
117 There are now alternate short version of the parameter names. | |
118 | |
119 | |
120 List of the parameters allowed in a V: line: | |
121 | |
122 parm short example and description | |
123 ---------------------------------------- | |
124 | |
125 name nm nm=Violin I" | |
126 This sets the long version of the voice name, to… | |
127 written before the staves at the start of a piec… | |
128 If the string contains \\, this is interpreted | |
129 as a line break and the pieces are writen above | |
130 each other. | |
131 | |
132 sname snm snm="Vl. I" | |
133 Short version of the name, written before | |
134 subsequent staves. | |
135 | |
136 clef cl clef=bass | |
137 Chooses the clef (treble, alto, or bass). | |
138 It can also be bass+8 and so on. | |
139 | |
140 staves stv stv=2 | |
141 This is the number of staves (starting from the | |
142 current one) to connect by tall vertical bar lin… | |
143 | |
144 brace brc brace=2 | |
145 This is the number of staves (starting from the | |
146 current one) to be grouped together with a brace. | |
147 When this option is used, the name defined in the | |
148 same V: line is written at the center of the bra… | |
149 | |
150 bracket brk brk=4 | |
151 The number of staves to be grouped together by | |
152 a bracket. This option does not change the way | |
153 in which the names are written. | |
154 | |
155 space spc spc=40 | |
156 This defines or modifies the vertical space betw… | |
157 this staff and the one below it. The space can be | |
158 given in pt (default) or with a unit in the form | |
159 1cm or 0.4in. Furthermore: if a + or - sign | |
160 comes after the start of the number, the value | |
161 is an increment to be added to or subtracted | |
162 from the default setting. | |
163 | |
164 gchords gch gch=0 | |
165 This controls whether any guitar chords | |
166 embedded in the current voice are actually writt… | |
167 True/false are specified as for the %% formats. | |
168 | |
169 stems stm stems=up | |
170 This is parsed but not yet used in the program. | |
171 | |
172 | |
173 New format directives: | |
174 | |
175 %%voicefont font to write voice names with | |
176 | |
177 %%indent <dim> amount to indent the first staff. | |
178 Indentation is done at the start of | |
179 the piece and after a T: field, but not | |
180 after a P: field. | |
181 | |
182 Note: the margin still refers to the left edge of the staff. | |
183 Therefore, parameters %%leftmargin %%staffwidth %%indent | |
184 should be adjusted to leave room for the voice names. | |
185 | |
186 | |
187 New command-line flag: | |
188 | |
189 The -V flag was redefined to select voices for output. | |
190 The old function ("show version") was integrated into -h. | |
191 The format is as in this example: | |
192 | |
193 abc2ps -o input.abc -V 1-2,4 | |
194 | |
195 This will generate output only for the specified voices. | |
196 Specifically, a single voice can be extracted. | |
197 | |
198 | |
199 Other changes: | |
200 | |
201 For a rest which fills out a complete measure, the symbol | |
202 for a full rest is drawn in the center of the bar, independe… | |
203 of the the time signature. | |
204 | |
205 Added K for strong emphasis decoration (upside-down V). | |
206 | |
207 | |
208 | |
209 | |
210 31.05.98 L: after header but before first voice now sets default length | |
211 for first voice, named "1". | |
212 | |
213 12.05.98 Tab interpreted as space in music lines. | |
214 | |
215 01.04.98 Fixed Q:C=xxx for multi-stave version. | |
216 | |
217 19.03.98 Run-time allocation for symbols and voices. | |
218 | |
219 | |
220 ----- Version 1.3.0 ----- | |
221 | |
222 03.03.98 Multi-stave music added. | |
223 | |
224 To switch to a different voice, use a line starting with 'V:'. | |
225 An example for the most general form supported now is: | |
226 V:2 name="Clarinet 2" short="Cl.2" clef=treble stems=down | |
227 Note that the "2" is a treated as a string, so any single-word | |
228 identifier can be used instead. Later in the tune, | |
229 switch to the voice using only | |
230 V:2 | |
231 The various settings (key, default length, etc) are | |
232 maintained for each voice separately. | |
233 | |
234 Guitar chords, first and second endings, and line breaks are | |
235 taken from the top voice only. Vocals can be set under each | |
236 voice separately. | |
237 | |
238 To format the output, two %% format directives were added | |
239 which determine the staff spacing: %%systaffsep %%systemsep. | |
240 | |
241 It turned out that the note spacing should be slightly | |
242 different for multi-stave music. Namely, it is often a good | |
243 idea to space the notes somewhat more strictly according | |
244 to their duration than in single-stave music. There is now | |
245 a new parameter called "strictness" which the user can use | |
246 to adjust this. For strictness=1, the spacings for notes | |
247 with short durations is reasonably strictly proportional to | |
248 their duration. For strictness=0, they are spaced about | |
249 equally. Good defaults are strictness=0.5 for single-stave | |
250 music and strictness=0.8 for multistave music. | |
251 These parameters can be changed with the -X flag or | |
252 with %% statements in the abc file or in a .fmt file. | |
253 When using -X, a flag such as -X 0.6 will change both | |
254 values. To change them separately, use something like | |
255 -X 0.3,0.7 on the command line. | |
256 | |
257 As usual, %% directives can be inspected with abc -H | |
258 and help about flags is obtained with abc -h. | |
259 | |
260 Files voices.abc and bach.abc have examples for multistave | |
261 music. | |
262 | |
263 01.03.98 Changed -d flag to accept incremental changes such as -d-5 | |
264 or -d+5. | |
265 | |
266 28.12.97 Transposing added. Also double sharp and double flat symbols. | |
267 To transpose: use flag -t in two possible ways. | |
268 (1) Specify the new root explicitly using the form | |
269 -t XX where XX is the new root note. For example: | |
270 -t C or -t Bb or -t C# | |
271 This shifts either up or down, depending on which shift is | |
272 smaller. To force up or down direction, use prefixes ^_ eg. | |
273 -t ^C or -t _C | |
274 (2) Specify the number of halftones to shift by in the form | |
275 -t nn where nn is the number of halftones. | |
276 For negative shift, use either a sticky argument | |
277 such as -t-2 or prefix with underscore, eg -t _2. | |
278 | |
279 In any case: the program first decides how many halftones | |
280 to shift the pitches by. This number is kept fixed throughout | |
281 the whole tune. In this way, key changes within the tune | |
282 are treated properly. | |
283 | |
284 To obain information about the transposing process, set the | |
285 verbosity to 3 or 4 (ie: -v 3 or -v 4). | |
286 | |
287 | |
288 24.12.97 Shift up guitar chords over n-plet brackets. | |
289 | |
290 15.12.97 Some modifications to extent of 1st and 2nd endings. | |
291 | |
292 29.11.97 Q: field now prints out tempo denotations. | |
293 General form is Q: w1 w2 w3.. where each word is either | |
294 a string in double quotes such as "Andante" or "Bossa Nova" | |
295 or a tempo denotation such as C or C=120 or 120. | |
296 Strings are printed directly, denotations are translated | |
297 to the form note=100. Font is in new format field "tempofont". | |
298 | |
299 29.11.97 Guitar chords positioned a bit more nicely (centered, | |
300 except if especially wide). | |
301 | |
302 29.11.97 Added blank-delimited +8 and -8 as extensions to key specifier. | |
303 Function: write all notes higher or lower by one octave. | |
304 | |
305 02.11.97 Words for vocals now centered under each note, looks nicer. | |
306 Changed left/right spacings to get better positioning for | |
307 single note in a bar. | |
308 | |
309 ----- Version 1.2.5 ----- | |
310 | |
311 05.10.97 Added page numbers for flag -N. | |
312 | |
313 05.10.97 Support for all modes (Wil Macaulay) | |
314 | |
315 07.08.97 Added "x" for rests which are invisible. | |
316 | |
317 14.07.97 Slurs and ties within chords improved, for example: | |
318 [(a(b] [c)d)] slurs a to c, b to d | |
319 [a-b] [ac] ties a to a | |
320 | |
321 14.07.97 Grace notes can be before or after guitar chord: | |
322 "A"{A}Bc and {A}"A"Bc both work. | |
323 | |
324 06.05.97 Fixed bug which sometimes put stems onto whole notes. | |
325 | |
326 06.03.97 Begintext lines can start with %%, to permit usage | |
327 in header fields and avoid conflict with other programs. | |
328 | |
329 17.02.97 Made txt array global.. avoid stack problems on Mac. | |
330 Added extra buffer flush at file end. | |
331 | |
332 15.02.97 C (alto) clef added, invoke with "K: alto" | |
333 | |
334 10.02.97 Now \- in vocals for '-' without breaking the word. | |
335 Changed to work even if no 'T:' field. | |
336 Fixed bug: did not print 'O:' if no 'C:'. | |
337 | |
338 09.02.97 Added "%%titlecaps" format statement. | |
339 | |
340 07.02.97 Introduced decoration T for "tr" above a note. | |
341 | |
342 ----- Version 1.2.4b ----- | |
343 | |
344 06.02.97 New: text, page formats, pseudocomments, bass clef. | |
345 | |
346 02.02.97 In-line escape sequences now also [..] | |
347 | |
348 23.01.97 removed "or:" from subtitles. | |
349 | |
350 | |
351 ----- Version 1.2.3-x1 ----- | |
352 | |
353 26.11 Added aligned vocals under the staff. Example: | |
354 BA |: "Gm"G2AB|"C7"cd2e|"F"f2fe|"Dm"dA2d| | |
355 w: Close your eyes and I'll kiss you, to-mor-row I'll miss you; re- | |
356 "Bb"d2dc|"Gm"B2GF|"Eb"G4-|G2 z2| | |
357 w:mem-ber I'll al-ways be true._ | |
358 Syntax: | |
359 Words are given in line starting as w: under music line. | |
360 Words are aligned one-by-one with the notes. | |
361 * skips one note. | |
362 | tabs forward to next bar line. | |
363 Hyphenations make two syllables, with "-" between them. | |
364 Underscore draws horizontal line from last word to note. | |
365 Blanks can be dropped around special chars (* | - _ ). | |
366 | |
367 19.11 Added bagpipe mode for K:HP. | |
368 Added landscape orientation for flag -l. | |
369 | |
370 05.11 Put in some first pseudocomments to format output: | |
371 %%sep - writes a standard separator | |
372 %%sep topspace botspace len - custom separator | |
373 %%newpage - force page break | |
374 %%text This is a line.. - write a line of text | |
375 %%vskip xx - add vertical space in cm | |
376 | |
377 06.10 Added 32nd and 64th rests, 64th notes. | |
378 Accidentals and grace notes more spaced when room. | |
379 Correct treatment of slurs at 1st, 2nd endings. | |
380 | |
381 ----- Version 1.2.2 ----- | |
382 | |
383 22.09 Words like "aza" now under one beam with rest under it. | |
384 Output "Origin" field in parens together with composer. | |
385 Added ties between chords. | |
386 | |
387 20.09 Keysigs such as "3+4/8" "78/8" "7 8/8" allowed. | |
388 Slopes of beams tuned a bit. | |
389 Fixed bug in position of tilde over stem. | |
390 Choose same stem directions on neighbors where reasonable. | |
391 | |
392 15.09 Small random horizontal shift of notes improve readability, | |
393 see RANFAC. Adjust internote spacing according to jump in pitch. | |
394 | |
395 05.08 Consistent handling for word breaks at end of input line. | |
396 | |
397 | |
398 ----- Version 1.2.1 ----- | |
399 | |
400 28.07 Added W: for words of song. | |
401 Include notes, discography, transcription in output for -n. | |
402 Removed bug: ninf=0 messed up usage "abc2ps -h". | |
403 | |
404 26.07 Fixed: swallowed meter change sometimes. | |
405 | |
406 21.07 Correct handling of last line of file even if not terminated | |
407 by a newline character. | |
408 Some fine-tuning for beam position when more than one beam. | |
409 For staff middle, use stem direction from previous note. | |
410 | |
411 18.07 More tolerant of misuse of guitar chords to write general stuff | |
412 above staff; now OK if "...." is alone on a line. | |
413 Minibug in syms.h: 'staff' left junk on PS stack. | |
414 | |
415 17.07 For -c mode: don't complain about underfull; don't stretch | |
416 last staff much when underfull (new parameter BETA_C). | |
417 | |
418 16.07 Fixed obscure bug.. after overfull, sometimes took duration for | |
419 chord from wrong note, because heads were sorted by pitch. | |
420 Also: use shrinkage from previous staff for undefull last staff. | |
421 | |
422 15.07 Move slide further away for notes with accidentals. | |
423 | |
424 09.07 Selectors before first file also valid; apply to first file. | |
425 Took out atof & atoi calls; main now returns int; changed | |
426 function names def_HD,def_Hd,def_hd. | |
427 | |
428 | |
429 ----- Version 1.2 ----- | |
430 | |
431 06.07 New flag -O to set output file. | |
432 | |
433 26.06 Added general n-plet syntax "(p:q:r". | |
434 | |
435 10.06 Slurs fatter in middle. | |
436 Hold (fermata) added code=H. | |
437 Changed code for bar to M (em-phasis). | |
438 Added up and down bow u,v. | |
439 | |
440 09.06 Thick-thin, thin thick bars now [| and |]. | |
441 Ties a-b-c now done correctly. | |
442 Carryover slurs at start and end of line. | |
443 | |
444 08.06 Flat beams shifted to consistent positions relative to staff. | |
445 | |
446 07.06 Set beta0 to avoid infinite stretching. | |
447 Redid key changes.. mcl.abc Cm-> C was wrong. | |
448 Fiddled some with slurs. | |
449 | |
450 05.06 Fixed: accidental was too close on full note. | |
451 | |
452 03.06 fix up n-plet cases: (1) on beam with other notes, | |
453 (2) draw bracket if not on same beam. | |
454 | |
455 03.06 New flag -E to make EPS files eps001.ps, eps002.ps ... | |
456 | |
457 02.05 Guitar chord can be put anywhere before note. | |
458 Changed note placement for single note in bar. | |
459 | |
460 30.04 Mutiple decorations permitted on one note. | |
461 Bar for broad emphasis added, code is R. | |
462 | |
463 29.04 Unions: chord with two identical notes like [CC] | |
464 | |
465 29.04 Slide added, code is J. | |
466 | |
467 26.04 Output buffer takes care of page breaks. | |
468 | |
469 ----- Version 1.2x ----- | |
470 | |
471 [v1.2-x7] | |
472 | |
473 11.04 Output to <file>.ps possible; set OUTPUTFILE in abc2ps.c | |
474 | |
475 [v1.2-x6] | |
476 | |
477 28.03 Can do normal or pretty output, depending on flag -p. | |
478 Layout parameters bundled as macros in main. | |
479 | |
480 [v1.2-x5] | |
481 | |
482 21.03 Changed roll symbol some more. | |
483 Put extra \n at end of Out.ps. | |
484 | |
485 [v1.2-x4] | |
486 | |
487 17.03 Fixed nasty bug for selection by xref; now ok on NeXT. | |
488 Changed roll symbol. | |
489 | |
490 [v1.2-x3] | |
491 | |
492 14.03 Added roll sign as optional way to draw ~. | |
493 Changed program to avoid all 'gcc -Wall' warnings. | |
494 | |
495 10.03 Fixed wrong dimension for line in do_index (macro BSIZE) | |
496 | |
497 08.03 Took out '#copies..' in PS file. | |
498 Added -m flag to set margin. | |
499 | |
500 06.03 Added flag -i and interactive mode. | |
501 Fixed bug in beams, which wrote funny numbers over some beams. | |
502 Added "newpage" as option for E: field. | |
503 | |
504 04.03 Added -f flag to permit different selectors for different files. | |
505 | |
506 Changed meter change within tune: for change at start of line, | |
507 generally writes the symbol (even if the meter did not change), | |
508 but not if the meter change was used only to set the default | |
509 length with 'l' or 's'. | |
510 | |
511 Removed math calls: cos(phi) and sin(phi) defined explicitly | |
512 in syms.h, also removed sqrt for beam test in music.h. | |
513 Advantage: now compiles without -lm flag. | |
514 (Note: '#include <math.h>' still needed for atof ??) | |
515 | |
516 | |
517 ----- Version 1.1 ----- | |
518 | |
519 24.02 Changed to multiple input files, added -e flag to identify | |
520 selectors in argument list. | |
521 | |
522 14.02 Outputs "book" field also for -n flag. | |
523 Chord font changed to Helvetica 12. | |
524 | |
525 | |
526 |