On Nov 29, 2014, at 18:48 , Keith OHara <k-ohara5...@oco.net> wrote:
> 
> On Sat, 29 Nov 2014 14:44:48 -0800, Dan Eble <d...@faithful.be> 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


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to