lilypond-devel
[Top][All Lists]
Advanced

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

Re: \change Voice


From: David Kastrup
Subject: Re: \change Voice
Date: Sun, 26 Apr 2015 22:04:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

"Keith OHara" <address@hidden> writes:

> On Sun, 26 Apr 2015 05:37:14 -0700, Dan Eble <address@hidden> wrote:
>
>>> I think \context...{} segments make a better implementation of
>> \partcombine than re-routing outlets in the part-combine-iterator.cc
>>
>> I believe that would work, but it looks less tidy than keeping the
>> original part intact and wrapping it in a context which moves
>> between Voice contexts.
>
>   ... c4 } \context Voice = "one" { d4 ...
> is only slightly less tidy than
>     ... c4 \change Voice = "one" d4 ...
>
> If you were thinking of a separate sequence of {... s1 \change Voice = "one" 
> s2...} in parallel with the part, then the \change method could be more tidy.
>
> The wrapping context, though, means that we have to explicitly specify Voice 
> in any overrides that should carry through to the combined part
> \partcombine { c'4 d'4 } {\slurDashed g'4( b') }
> \partcombine { c'4 d'4 } {\override Voice.Slur.dash-definition = #'((0 1 0.4 
> 0.75)) g'4( b') }

Huh.  I changed the definition of "Bottom" context at one time to one
that does not have a \defaultchild rather than one that does not have an
actual child.  So I'd expect a Bottom override to arrive in a Voice when
emitted in a SubVoice that is accepted by Voice as long as Voice still
has no \defaultchild.

But that does not happen.  One could argue that this may be a bug, and
that every context in the current parentage that considers itself
"Bottom" should be affected by Bottom overrides.

At least that seems like it would make for more useful behavior with
regard to extending the context hierarchy.

-- 
David Kastrup



reply via email to

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