[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Part combiner: separate split state and voice names
From: |
Dan Eble |
Subject: |
Re: Part combiner: separate split state and voice names |
Date: |
Sat, 29 Nov 2014 20:50:48 -0500 |
On Nov 29, 2014, at 18:48 , Keith OHara <address@hidden> wrote:
>
> On Sat, 29 Nov 2014 14:44:48 -0800, Dan Eble <address@hidden> wrote:
>
>> This suggestion was motivated by recent work on cases in which both parts
>> are resting. If the desired action is to route only one of the voices to the
>> shared voice, the Scheme half currently can only say “unisilence” and the
>> Part_combine_iterator picks a voice. The problem is that sometimes it
>> doesn’t pick well. It seems that the Scheme half has the information to
>> make a better decision.
>
> Oh, so you meant let the Scheme portion dictate to partcombine_iterator which
> _input_ voice, as it iterates the music expression produced by \partcombine,
> to use.
>
> That makes more sense. However, the current problem with the iterator
> picking which input part to route to output Voice "shared", seems best solved
> by your current patch, that marks these situations as 'apart-silence'
> whenever there is a difference between the input parts.
The current patch[1] improves many cases, but there are cases it doesn’t handle
as well as could be handled, Exhibit A being the regression test that changed.
That case has a rest concurrent with a multi-measure rest. The Scheme code
could easily decide that the multi-measure rest is visually unnecessary, but
there is no way for it to tell the current Part_combine_iterator specifically,
“Both parts are silent; keep the first part and discard the second.”
[1] https://code.google.com/p/lilypond/issues/detail?id=4205
—
Dan