lilypond-user
[Top][All Lists]
Advanced

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

Re: Changing voice order...


From: Alexander Kobel
Subject: Re: Changing voice order...
Date: Wed, 2 Nov 2016 11:07:12 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.4.0

On 2016-10-28 14:52, David Kastrup wrote:
Alexander Kobel <address@hidden> writes:
[...]
Basically you need to only fix those voices not obeying the standard
scheme (usually just one) and the rest will work out.  So I don't really
think that a special syntax is needed.

True. But isn't the point of this shortcut notation that it saves you
the trouble of specifying those directions and voice names on your
own?

Sure, but you talk about a case where one _has_ to specify a direction
and voice name after all because the default does not work.  Admittedly,
yet another shortcut saves you from figuring out what level of \inner
(or whatever) you have to use.

Coincidentally, that's why I hardly ever use it: I tend to get
lost with the automatic assignment

Well, which is why the automatic assignment should be as predictable and
brainless and useful as possible.

After some consideration, I found the reason /why/ I don't like the automatic assignment. It's not that it's unpredictable (at least for me; I'm used to the voice<N> order since a long time. Rather, it's that there is automatic assignment going on at all:

I mostly set vocal music - typically clean SATB with exactly four voices on either two or four staves, but sometimes a voice splits to two or three in between. In that case, I'll almost always have a four-staves situation. This screams for << \\ >> or << \\ \\ >>.

However, I attach lyrics to the voices, and that's why I give them sensible names - namely, "sop" (or "soprano"), "alt", etc. The implicit voice naming with << \\ >> means that I have to split my lyrics to separate context, or I'll have to rename the voices inside << \\ >>. The output of

sop = \relative c'' {
  c4 c c c
  << { c c } \\ { g4. g8 } >> c4 c
}

\score {
  <<
    \new Staff { \new Voice = "sop" \sop }
    \new Lyrics \lyricsto "sop" { a b c d e f g h }
  >>
}

is (lyrics-wise) counterintuitive enough that I mostly refrain from using the construct at all and resort to my own (simple) helper function that creates anonymous voices (above or below) and does not override the name of the main voice. To change my style here, I'd need /at least/ prefixed voice names (that is, the voices created in line 3 would be named, e.g., "sop-1" and "sop-2"); some way to keep one voice in place and just add another one would make it a real boon.

However, this is maybe specific for this use case. Plus, I cannot see an obvious way to add this functionality without cluttering the syntactic sugar with tons of parameters that make it no less ugly than simple helper functions...


Obviously, that does not have much to do with the order of voices. It's just meant as an explanation that the reason for me not using << \\ >> is not the /way/ how automatic assignment works, but rather the /fact/ that automatic assignment is done at all.


Cheers,
Alexander



reply via email to

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