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