[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: \change Voice
From: |
Keith OHara |
Subject: |
Re: \change Voice |
Date: |
Sat, 25 Apr 2015 12:17:05 -0700 |
User-agent: |
Opera Mail/12.16 (Win32) |
On Fri, 24 Apr 2015 22:04:28 -0700, David Kastrup <address@hidden> wrote:
Keith OHara <address@hidden> 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
- \change Voice, Dan Eble, 2015/04/21
- Re: \change Voice, Keith OHara, 2015/04/25
- Re: \change Voice, David Kastrup, 2015/04/25
- Re: \change Voice,
Keith OHara <=
- Re: \change Voice, Dan Eble, 2015/04/26
- Re: \change Voice, Keith OHara, 2015/04/26
- Re: \change Voice, Dan Eble, 2015/04/26
- Re: \change Voice, Keith OHara, 2015/04/26
- Re: \change Voice, David Kastrup, 2015/04/27
- Re: \change Voice, David Kastrup, 2015/04/27
- Re: \change Voice, Dan Eble, 2015/04/29
- Re: \change Voice, David Kastrup, 2015/04/30
- Re: \change Voice, Dan Eble, 2015/04/30
- Re: \change Voice, David Kastrup, 2015/04/30