Jack Campin wrote: >What the 1.6 standard says is > >: P - parts; can be used in the header to state the order in which >: the tune parts are played, i.e. P:ABABCDCD, and then inside the >: tune to mark each part, i.e. P:A or P:B. > >Parts of a voice are not parts of a tune.
The way BarFly implements multi voice, each voice is a separate tune, sharing only the common header fields, so parts of a voice ARE parts of a tune. >The way Phil's doing it must be a nightmare to implement correctly >for a staff-notation generator. It would look damn silly to have >"Scherzo" or other section marker repeated in every single voice; >is the program supposed to calculate which parts start at the same >point so it can merge the display of these labels? Firstly, you can't use "Scherzo" to control part order - you've got to use 'A'..'Z' as specified in the standard which you quote above. Secondly, it is MUCH easier for a staff-notation generator to suppress the drawing of P: fields in every voice other than V:1 than it would be for a player program to locate P: fields outside of the voice that it is currently parsing and then figure out which point in the current voice corresponds to that. (Do any player programs other than BarFly currently implement part- order playing in multivoice tunes? If so, how do they do it?) >Then, how is a player supposed to take advantage of having P: within >the scope of V:? It isn't that way in the header, so if I *do* write >a piece where voice 1 has part order ABA and voice 2 has order CDCD, >how do I specify that order in the header P: line? If all the voices >are supposed to have the *same* order, why do I have the apparent >freedom to give each of them any order in the body, and how is this >constraint meant to be checked? Obviously you can't do that because all the voices share the same header. You could have voice 1 with order ABA and voice 2 BAB if you really wanted (by putting the same set of labels in different places). Actually you could even do what you suggested provided that you use four parts in each voice with different letters for each. The voice which only has three real parts would need an extra dummy part at the end consisting of a rest. I don't think you would really want to do something that screwy though. >If there is no real support for this apparent independence of parts >from voices, it's just adding verbosity by forcing the user to repeat >the body P: tags redundantly. It's not there for the benefit of the user - it's there to solve an extremely complicated programming problem in a reasonably economical way:-) Phil Taylor To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html
