13.12.99 Fixed slurs/ties into first and second endings. ----- Version 1.4.0 (experimental) ----- 06.12.99 added audio playback. Chords, grace notes, multiple voices, and repeats work. Note decorations are ignored. Usage: Flag -a instructs to write audio file Abc.au together with the usual postscript output. It is not possible to get the audio file without the postscript. The output is in Sun/Next audio format, as indicated by the extension au. The au file can then be played using something like "audiotool" or "soundtool" on a Sun, or by catting it to /dev/audio, say on Linux. Doubleclicking in Windoze probably also works, depending on the specific operating system. Flag -a implies -o. The tempo can be set with flag -Q and defaults to 120 quarter-beats per minute. There are some different "sounds", oriented somewhat towards specific musical instruments, as far as this can be done with simple means. These are selected with flag -q (for "quality"). Thus: abc2ps -o infile - makes Postscript only, as usual. abc2ps -o infile -a - makes both Abc.au and Postscript abc2ps -a infile - same as above abc2ps -a infile -Q 160 - does the same with tempo Q=160 abc2ps -a infile -q135 - uses audio quality 1,3,5 for the first, second, and third voice, respectively. Alternatively, pseudocomments can be used in the abc input file or in a .fmt file, for example: %%playtempo 160 %%auquality 135 To see the parameters whcih determine the audio output, set the verbosity to 5 or higher (ie. use -v5). To compile: you can use the supplied audio functions in sox.h (taken from playabc) or (on a Sun) use the system library. Edit Makefile to set CC, CFLAGS, and LDFLAGS appropriately then type make. The waveforms are generated on the fly, which is a bit slower than writing Postscript only. Sine wave samples are significantly faster to generate than triangle or sawtooth waves. Currently the sound qualities are somewhat along these lines (but please don't take this too seriously!): 1 piano 2 accordeon 3 flute 4 cembalo 5 organ 6 guitar, or bass, or something else plucked. 08.07.99 Improvements by Christoph Dalitz: o Source spread over several source files. Makefile added. o cap_str (util.c): system call toupper used, so that umlauts are translated as well (depends on locale) o isdigit (util.c): removed (are already in ctype.h) o isblank (util.c): replaced with isblankstr (confusion with isblank in ctype.h) o def_staff (syms.c): linewidth increased (0.6 instead of 0.5) o new clef "treble8" (modern tenor clef) ----- Version 1.3.2 ----- 10.08.98 Added new codes for accents (cf. sample.abc): k: Accent which looks like > K: Accent which looks like an upside-down V. 05.08.98 Added bar numbering and bar labels. Bar numbers: to switch on bar numbering, use flag -k where: -k 1 numbers every bar -k 5 numbers every fifth bar, etc. -k 0 numbers the first bar in every staff. or, use the equivalent pseudocomment %%barnumbers . (Note: -k was used because it sounds a bit like "count".) The program counts through the bars automatically, trying to do the right thing at first and second endings. Namely: it remembers the bar number at the start of the first ending, then resets to that value at the start of the second ending. So, if there is a tune with 2x8 measures with first and second endings after the first 8 bars, we still end up with 16 bars in total. Within one tune, bar numbers are counted through over parts boundaries. However, if a T: title appears inside a tune, the bar number is reset to 1. You can use an empty T: line to reset the bar number without actually writing a title. Bar labels: this is intended for large letters A, B, C... to mark specific points in the music. They are coded by using a syntax similar to guitarchords, but placed before a bar line instead of a note or rest, e.g.: | abcd "A"| ABCD | places the letter A over the second bar line. Just in case somebody wants a label on the first bar (which is often not preceded by a bar line), a new symbol [|] was introduced for an "invisible" bar line. Fonts for bar numbers and bar labels: These can be set in the usual way with the two pseudocomments %%barnumberfont and %%barlabelfont. In printed music, the bar numbers are often made more visible by putting a box around them. This is now also possible. In fact, a box can be put around most bits of text by adding the word "box" to the font specification, e.g.: %%barnumberfont Times-Italic 11 box This can be done for the title, guitarchords, vocals, etc. To switch on the box without changing the font style and/or size, the character * can be used, as in: %%titlefont * * box A reminder: to see all the style specifications use 'abc2ps -H' (for the standard format) or 'abc2ps -PH' (pretty2 format). This gives a list suitable for placing in a .fmt file. To modify settings for a single tune only, place the pseudocomments after the 'T:' lines and before the 'K:' line in the tune header. Examples: look at celloprelude.abc for examples of bar numbers and bar labels. Try 'abc2ps -maxv 8 -k0 bran5' or 'abc2ps -k0 bach' to see bar numbers at the start of the line, as is often used for scores. 20.07.98 Fixed bug overwriting when lvoiceid too short. ----- Version 1.3.1 ----- 12.07.98 A number of enhancements to format multi-stave music nicely. For examples, see files trio.abc bran5.abc voices.abc bach.abc. In detail: indentation of the first staff, labels for voices, braces and brackets to group voices, and some additional parameters in the V: line to control the output. As before, the syntax of the V: line is V: