David Wright <lily...@lionunicorn.co.uk> 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 _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user