Werner LEMBERG <[email protected]> writes:
>> To make it more visible I coded a small snippet annotating some info
>> to NoteHeads in
>> << .. \\ .. \\ ... ... ... >>-constructs.
>>
>> Output attached.
>
> Thanks!
>
> What about a two-step process: You first set up the order of the
> voices, then you input from top to bottom.
>
> Example:
>
> % current
> << c'''2 \\ c' \\ g'' \\ e' \\ e'' \\ g' \\ c'' >>
>
> % suggested
> \voiceOrder { 1, 3, 5, 7, 6, 4, 2 }
> << c'''2 \\ g'' \\ e'' \\ c'' \\ g' \\ e' \\ c' >>
>
> Using such a command would even retain backwards compatibility.
More like \voices 1,3,5,7,6,4,2 << ... >> if we want to keep in current
syntax. This is assuming a one-shot command taking the << >> construct
as its last argument.
The problem I see right away with that is that it is useful. How is
that a problem?
<<
\new Voice = "soprano" {
...
\voices 1,soprano << ... \\ ... >>
...
}
\lyricsto "soprano" { ... }
>>
Lo and behold, we have a solution for an old problem. But 1 can imply
\voiceOne as well as \context Voice = "1" while "soprano" cannot
obviously indicate "\voiceTwo". Maybe it is a feature instead of a bug?
After all, << ... \\ ... >> also does not imply a final \oneVoice for
whatever voice continues so we are better off having to say \voiceTwo
explicitly in the non-temporary voice as well?
Also, names like "soprano1" will be quite awkward:
\voices #'(1 soprano1) << ... >>
Basically, we would want to strongly suggest people to use context names
that LilyPond also likes as symbols.
> Note that this is an idea without considering whether it can be
> implemented at all.
With a bit of massage it seems to work.
--
David Kastrup
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel