> And, oh yes, let's start discussing something really simple. We all > need some discussing practice before we try to handle the big stuff.
Okay: tempi in words. It ought to be possible to write Q:allegro in a tune header or [Q:allegro] in a tune body, and optionally define outside the tune (earlier in the same file or maybe in a separate settings file) what "allegro" might mean in numerical terms, with a line like this: Q:allegro 1/4=120 I suggest that in addition, a tune header might contain mixed tempo specifications, so that when the line Q:allegro 1/4=120 occurs in a tune header or [Q:allegro 1/4=120] in a tune body, both the word and the number are displayed/printed and that number is used by player programs. Where there is no number in the header, you would expect only "allegro" to appear in the staff notation, regardless of whether it was numerically defined elsewhere. Further: it should be possible to define tempi in ranges, like Q:allegro 1/4=120-128 Staff notation programs should print this range if it appears in a tune header; player programs should use a value from that range (how it is to be chosen is outside the scope of the specification). Yes, this requires that programs scan an entire tune file to find these definitions. I can't imagine there being any file big enough or any computer slow enough for that to matter. (How long would it take a state-of-the-art personal machine like a fast Mac with Altivec, using an efficient matching algorithm, to scan the entire world-wide ABC corpus for lines like the above, once it was all in-core? A lot less than a second, I suspect). In BNF: number ::= numeral* textchar ::= alphabetic | space | "" tempolabel ::= alphabetic tempolabel ::= alphabetic [textchar* | alphabetic] tempoLHS ::= number "/" number range ::= number "-" number tempoRHS ::= number | range tempospec ::= tempoLHS "=" tempoRHS tempo ::= "Q" ":" tempolabel tempo ::= "Q" ":" tempospec tempo ::= "Q" ":" tempolabel tempospec which rules out tempo labels like "presto as defined by Quantz in 1750" because of the date but should be general enough to be useful. I don't think there is any point in extending the old "Q:120" style of tempo specification in this direction. It was a bad idea in the first place and it needs to go. Let's not do anything that might encourage people to still use it in more elaborated contexts. =================== <http://www.purr.demon.co.uk/jack/> =================== To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html