On 2016-10-28 14:52, David Kastrup wrote:
Alexander Kobel <a-ko...@a-kobel.de> 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
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user