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

Reply via email to