I had been firmly in the pro-!foo! camp until I read Phil Taylor's message. Having digested that information, I agree that it would be a bad idea to break compatibility with abc2win files.
On the other hand, I still think that the lack of a way to represent dynamics and certain other commonly-used symbols is ABC's biggest handicap. The other problem, though, is that there aren't very many symbols left to use. As far as I can tell, comma (,), backtick (`), asterisk (*), dollar sign ($), ampersand (&), J and Y are the only symbols besides exclamation point (!) that haven't already been "officially" allocated to something. Phil Taylor writes: > By comparison, writing the word !fermata! in the music makes the line > eight characters longer than it need be, and makes the abc harder to > read because it breaks up the flow. This is already the case with > guitar chords - they make the abc much harder to read because they > add lots of extraneous symbols to the line of music. I want to limit > what goes into a line of abc to the important stuff; notes, times, > bar lines etc which is what you want to read, and compress the other > less-important stuff into single characters which have less impact > on the readability. There are a lot more symbols left than single characters available to represent them, so I think it would be difficult to supply as many symbols as would be needed with single characters. (Defining a single-character macro is certainly one way to get around this, but that's a separate discussion.) On the other hand, I argee that shorter definitions for dynamics and other commonly-used symbols would be useful. So I'll pull something out of my posterior region for the list to shoot down. In the following example, I'm proposing & to be a delimiter for "the following characters up to the next white space represent a symbol". Whether the actual delimiter should be & or something else is a point for discussion. I'm also envisioning that the symbols associated with a particular note (e.g., to be placed over or under the note head) should, in general, affect the following note. This could also be argued, though I think it makes more sense to put the symbol on the stack and pop it off in the function that displays the note. If the symbol were to be applied to the previous note, you'd have to put every note on the stack, check for the presence of one of these symbols, and then call the function that displays the note, which would be slower. Anyway, in order to give the list something concrete to argue about, here's a table of my proposed delimiters for symbols that one might want to use in music, intended as a workable replacement for the !foo! construct. I've gotten most of these from the !foo! symbols at http://www.gre.ac.uk/~c.walshaw/abc/abc-draft.txt , but have added a few others that I run across from time to time. Note that most of these are & plus one or two characters, in the interest of brevity. Symbols not associated with a note: &% % sign (repeat previous bar) &%2, &%3, etc. % sign across 2 (or more) bars (repeat previous 2 or more bars) &, comma (a pause in the music) &= "railroad tracks" (a break in the music) &' breath mark (apostrophe) &c coda symbol (a ring with a cross in it) &| phrase mark (vertical line in upper part of staff) &|l long phrase mark (extending 3/4 of way to bottom of staff) &|m medium phrase mark (extending to middle of staff) &|s short phrase mark (same as &p) &cue[ beginning of cue (display notes within this delimiter as small notes on the staff, with rests below) &cue] end of cue Symbols associated with a note: &+ left-hand pizzicato mark &+s snap-pizzicato (or "Bartok" pizzicato) &- tenuto mark (dash) &0 through &9 display the number over/under the note head (e.g., for fingerings). Multiple fingerings (for chords) displayed from top to bottom. &> accent mark &th thumb symbol (for cello thumb position) &^ strong accent (a dark ^ over a note) &g glissando from the following note to the one after it &g[ glissando starting with this note &g] glissando ending with this note (some pieces indicate when specific pitches in the middle of the glissando should be played, so we need a mechanism to represent it) &h fermata (hold) &hi inverted fermata &m mordent &ml lower mordent &mu upper mordent &o circle above/below note (indicating harmonic or open string) &ped pedal symbol (for piano music) &r wavy line before note, indicating that chord is to be rolled &ri roll mark (arc) used in Irish music &ss segno (2 ornate s-like symbols separated by a diagonal line) &tr "tr" trill mark &v staccatissimo mark (small vertical filled-in wedge) &~ a ~ turn mark Dynamics (these should appear below the staff, directly under the note where they start): &<[ beginning of "<" crescendo mark &<] end of "<" crescendo mark &>[ beginning of ">" dimenuendo mark &>] end of ">" dimenuendo mark &ffff fortissississimo &fff fortississimo &ff fortissimo &f forte &mf mezzo-piano &mp mezzo-forte &p piano &pp pianissimo &ppp pianississimo &pppp pianissississimo &n "n." ("niente" dynamic) &sffff subito fortissississimo &sfff subito fortississimo &sff subito fortissimo &sf subito forte &smf subito mezzo-piano &smp subito mezzo-forte &sp subito piano &spp subito pianissimo &sppp subito pianississimo &spppp subito pianissississimo &sfz sforzando &rf rinforzando Arbitrary Strings &"string" display arbitrary string, e.g., &"D.C. al fine" (use default location) &^"string" display arbitrary string above the staff &_"string" display arbitrary string below the staff &>"string" display abritrary string to the right of the note &<"string" display arbitrary string to the left of the note Thoughts? Jeff To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html
