On Fri, 24 Apr 2015 22:04:28 -0700, David Kastrup <d...@gnu.org> wrote:
Keith OHara <k-ohara5...@oco.net> writes:
The thing you want to change is the "outlet" of the sequential
iterator.
That's just \context Voice = "xxx". However, it does not take engravers
and properties along, as opposed to \change ...
Yes. The current part-combine-iterator does not carry properties along either,
which is to first approximation what we want, when a line of music moves from
'a2' with \oneVoice to 'two' with \voiceTwo style.
A big difference is that \change... changes routing so that all following music
is affected, while \context... applies to only the following music expression.
We would need to form sequential music groups in order to use the \context...
method.
\new Staff <<
\context Voice = "up" \with { \voiceOneStyle } s1*2
\context Voice = "down" \with { \voiceTwoStyle } s1*2
{ \context Voice = "up" { f'2 f' }
\context Voice = "down" { e' e' }
} >>
Current \partcombine does not collect segments into sequential music groups,
but it could do so. The analysis pass of \partcombine looks at the music
globally to find the transition points that it puts in 'split-list, so a next
pass can form sequential music groups between the transition points.
\partcombine
{R1*3 g''2 d''2 }
{r1 r2 b2 R1 b2 d'2 }
could be transformed into
\new Staff <<
\context Voice = "one" \with { \voiceOne }
\context Voice = "two" \with { \voiceTwo }
\context Voice = "solo"
\context Voice = "shared"
{
\context Voice = "shared" {R1 r2}
\context Devnull { R2 }
\context Voice = "shared" {R1 }
\context Voice = "one" { g''2 }
\context Voice = "shared" { d'' }
}
{
\context Devnull {r1 r2}
\context Voice = "solo" { \mark"solo II" b2 }
\context Devnull { R1 }
\context Voice = "two" { b2 }
\context Voice = "shared" { d'2 }
} >>
I imagined the splitting of multi-measure rests being done in the grouping pass, rather than in the iterator
as it is done now. If we define the names "one", etc., in just one place, then we can choose to
replace "solo" with "shared" so that they use the same Voice.
I think \context...{} segments make a better implementation of \partcombine
than re-routing outlets in the part-combine-iterator.cc
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel