Werner LEMBERG <w...@gnu.org> 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 lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel