lilypond-user
[Top][All Lists]
Advanced

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

Re: Changing voice order...


From: David Kastrup
Subject: Re: Changing voice order...
Date: Wed, 02 Nov 2016 11:09:43 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Werner LEMBERG <address@hidden> 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



reply via email to

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