Laurie Griffiths <[EMAIL PROTECTED]> writes: > > Q:1/4=120 note="Pretty quickly" % [2] explicit tempo with advisory note > > OK acceptable but not my preference. "note" is a keyword that I scan for > (no problem). The use of quotes immediately brings up the question of "what > if the string is to contain a quote?" An escape mechanism is needed such as > using \" to represent a quote (and therefore \\ to represent \ too). That > has been argued before and not everyone liked it. It's at best a necessary > evil, if it can be avoided altogether then it should be.
Yes, but we will need *some* delimiter (the same problem occurs elsewhere in ABC, and we should be consistent), and any character at all can occur in a tune title, so an escape mechanism would be necessary in any case. Quotes are, at least, well entrenched in the delimiter role. It would be possible to take an idea from XML and allow either `key="..."' or `key='...'', where the `'' could occur inside `"..."' and the `"' inside `'...'' (got that?). This would reduce the problematic cases to those that include both single and double quotes. Personally I don't see what is so bad about `\"' and `\\'; at least I can make out little call for a backslash in tempo advisory notes, and given ABC's roots in TeX it might actually be a good idea (memetically speaking). > > Q:Allegro % [3] symbolic tempo specification, metronome > > % speed (or range) defined elsewhere > > Maybe OK, maybe not. What's the syntax for the "Allegro" thing? Jack Campin posted a BNF specification for that part of the proposal ages ago. In his specification, the tempo labels may contain alphabetic characters and spaces but not numerals or special characters. This sounds reasonable to me. > Is it too complicated?? What is the syntax of the > "Allegro" part. Can it be more than one word? e.g. > Q:Allegro moderato note="Fairly quickly" Sure, see above. > Can it contain keywords such as "note"? e.g. > Q:Allegro but see note from composer note="Pretty quickly" Presumably the `key=value' syntax could be specified to require no spaces between `key' and `=' and `value'. This would make it easy to distinguish from the `key' occuring on its own in all but pathological cases. > > Q:Allegro 1/4=120-128 % [6] definition of range > > Not OK. For a player program this is just silly. It can only play at one > speed at a time. I can't see any point in choosing a random number in the > range given and I can't see in the near future a program that will have such > intelligence that it can interpret the music by finding the best number in > the range. Better to just say 124. This is from Jack's original proposal. IMHO it is nice to be able to specify a range of metronome speeds in sheet music (which is something that does occur in practice but which Simon's proposal conveniently ignores). Player programs are free to pick a speed (any speed, but in the absence of better ideas the arithmetic mean should be fine) from the range, just like a human musician would be; the user should of course be able to override this like any other speed specification. > >... > > Q:1/4=120 mode="accelerando" > > This is a new departure that goes beyond anything discussed so far. Of course. If you go back to my earlier message I think you will find that this was only meant as an illustration of how the `key=value' notation allows further extensions in the future with very little new syntax needed. Simon's proposal would require the invention of more ad-hoc special syntax to accommodate this on top of the special `Q:' field syntax that is already there. I thought that I made this clear in my original posting but apparently I didn't. > Incidentally it still has the possibility of writing something like > > Q:Prestissimo 1/4=220 %defines Prestissimo > Q:Largo 1/4=40 % defines Largo > ... > Q:Largo note="Prestissimo" > > which will play extremely slowly while displaying something meaning > extremely fast. You apparently misunderstood the original proposal regarding `note="..."'. While I'm not about to prescribe what notation programs `must' do, my suggestion for this combination (case [4] in my earlier posting) is to display Largo (Prestissimo) or Largo (Prestissimo) - .|=40 and we shall just have to see what musicians will make of this! :^) The `note="..."' is just an advisory note that should influence neither the displayed metronome speed nor the speed that a piece is played back at. Given a notation program with enough degrees of freedom one could probably figure out how to make the notation program generate just `Prestissimo' and no metronome speed, while a player program would use the 1/4=40 specification (as it should!). I can live with that -- at least this possibility does not complicate the standard over and above Jack's original proposal (modified to allow `note="..."'), which in itself is fairly simple and minimal. If anything, your observation corroborates the conjecture that Simon's more complicated approach may not in fact be needed at all, a point which I have been trying to get across for quite some time now. Anselm -- Anselm Lingnau .......................................... [EMAIL PROTECTED] Never learn to do anything: if you don't learn, you'll always find someone else to do it for you. -- Mark Twain To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html
