> The obvious problem for a player is that people can easily type all > sorts of of malformed endings. For example: > > |: ... |1,3 ... :|4 ... :| > > There's no 2nd ending here. I'd probably say that there are at least > two possible behaviors here: You could play it three times, skipping > the missing 2nd pass. Or you could play it four times, with a "null" > ending on the second pass. I'd suggest that if the listed endings > don't form a proper 1..N progression, that the behavior is up to the > implementer.
I would suggest that interpreting it as a null ending should be in the spec as required behaviour. This is something I've often wanted with the existing repeat syntax but BarFly (at least) doesn't support it. It'd be particularly helpful for getting anacruses to add up when the tune shifts them between repeats (which is quite common). There is a problem with the way you've written that. The existing standard says there is NO extra repeat sign at the end, so it ought to have been |: ... |1,3 ... :|4 ... || The way you had it suggests you do the whole thing again once you get to the end of the 4th time. I have seen that kind of nested-repeat syntax used for real, but only in a manuscript by somebody who was desperate to save space. This is a mistake you find all over the net and it would be a great help if more programs produced warnings about it. It's an annoyance for sightreading: you see that repeat sign and briefly think "back to where?", however often you've seen it before. I would much prefer it if there were some redundancy checking for this construct, by declaring the number of times at the start too. So your example would go |4: ... |1,3 ... :|4 ... || That would assist a program in correctness checking and it would warn the reader of the ABC source that something unusual was about to happen. There would be no obligation on display programs to print anything corresponding to the initial number. Also, I take it you mean to accept ... |[1,3 ... :|[4 ... and ... |... [1,3 ... :|... [4 ... as well? I never use the number-next-to-a-bar special case any more (the more general "[n" syntax is enough for me and it suits the kind of source layout I prefer). : I would like to add: : [1+3 : and : [1&3 Please NO. We might need those characters for something else one day (e.g. controlling the voice entries in rounds). : and a way of saying for example : [last time Good idea, but I don't think this is the same construct; usually it goes on the end of the *whole tune*, and strophic repeats are not represented in ABC (they'd need a nested-repeat syntax, as the tune might have internal repeats). It's a distinct topic. As this is a more emphatic, large-scale sort of variant repeat, how about this? [[^ ... % first time [[. ... % usual case [[$ ... % last time Any notation is going to be unfamiliar to most people but at least that's vaguely mnemonic to folks who've used Unix pattern matchers. =================== <http://www.purr.demon.co.uk/jack/> =================== To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html