lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changing voice order...


From: David Kastrup
Subject: Re: Changing voice order...
Date: Tue, 01 Nov 2016 21:18:31 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

David Wright <address@hidden> writes:

>
>> Now the Voice contexts are still going to be assigned sequentially as
>> "1"/"2", "1"/"2"/"3", "1"/"2"/"3"/"4" (nothing else makes sense really).
>> So in order not to cause confusion by having "1"/"2"/"3"/"4" correspond
>> to "One"/"Three"/"Four"/"Two", I want to rename the \voiceXXX constructs
>> as well.  The old ones will be available still but no longer promoted
>> and/or documented prominently, instead using something like \voiceUp,
>> \voiceDown, \inner \voiceUp, \inner \VoiceDown ...  Those names are
>> still accurate when more than two voices are involved while the relation
>> between name and behavior for \voiceTwo becomes tenuous as soon as more
>> than two voices are involved.
>
> I would hate   \inner \voiceUp   and would suggest
>
> \voiceTop \voiceHigh \voiceLow \voiceBottom instead¹.

Well, the naming is not something I am particularly enamored with.
\inner has the advantage that it stacks, and that you don't need to
remember whether the default pair was \voiceTop/\voiceBottom or
\voiceHigh/\voiceLow.  Both could also be served by a postfix operator
just incrementing horizontal-shift, so you'd have

<< \voiceUp { \voiceUp \nudge } { \voiceUp \nudge \nudge }
   { \voiceDown \nudge \nudge } { \voiceDown \nudge } \voiceDown >>

The postfix addition has the disadvantage that it no longer forms a
single expression together with \voiceUp/\\voiceDown and the advantage
that it is much simpler to write.  Independently the name \nudge has the
disadvantage of describing not where the voice is located with the
respect to the original, but what is to be done to it.  Which is
typesetting knowledge rather than input structure knowledge and requires
the user to have a clue.  Strictly speaking, this holds for
\voiceUp/\voiceDown as well (the naming is more typical in LilyPond for
describing what to do with stems et al rather than where the voices are
located: in that respect \voiceTop/\voiceBottom might be better).

> It is unfortunate that you have to look ahead so much with << \\ \\ \\ >>

It is not "so much", really, if you take a look how LilyPond does it.
It is one postprocessing phase in the music.

> but that comes with the territory. One more tentative suggestion I
> would make, to keep things slightly simpler, is to ban << \\ \\ >>
> so that you have to explicitly put << \\ {} \\ \\ >> or << \\ \\ {} \\ >>
> for three voices, which at least means there are only two structures
> to deal with.

Don't really see the point.  It's straightforward enough, and if you
don't like it, you need not use it.

> ¹ why not \voiceTop \voiceUp \voiceDown \voiceBottom ? Well, you could
> end up with \voiceUp having stems pointing down,

Uh no?  \voiceUp will always have stems pointing up, and \voiceDown will
have them pointing down.  \inner (or whatever you want to use instead)
just increases the horizontal-shift value and does nothing else.

The whole point of the renaming exercise was that the voice type
commands retain a fixed and predictable meaning.  It's only the << \\ \\
... >> construct which becomes smarter.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]