I’ve been using a modified determine-split-list scheme function for a while and I’d like to contribute it for use by others. I have just started to enumerate regression test cases, but before I get very far, I would appreciate some feedback on the approach so that I don’t waste time on things that are not acceptable for inclusion.
I’ve added two arguments to determine-split-list. One is the minimum and maximum distance between simultaneous notes for them to be put into the shared voice. This allows keeping unisons and seconds in separate voices and allows intervals larger than the currently hard-coded 8 spaces to be merged into the shared voice. The other argument is a boolean controlling solo analysis. When false, solo analysis is skipped. When solo analysis is skipped, concurrent rests are merged into the shared voice if they start and end simultaneously. These options work better than \partcombineApart etc. for me because life is too short to insert those commands in hundreds of scores for every combination of voices I would like to share a staff in different instrumental parts. This is automatic. I’ve defined two music functions that use these parameters to achieve different styles. \voicecombine skips solo analysis, keeps unisons and seconds apart, is willing to merge across large intervals \restcombine skips solo analysis, keeps all notes apart, but still merges rests These functions work for me, but I have a feeling that it is not the ideal interface. I've seen the code that handles part-combine-force-events, and that does not seem like a direct fit for this. I don’t care to apply and revert these settings in the course of combining the voices—but would others? Would it be better to expose the options as parameters of the music function, like \voicecombine #(3 . 14) ##f \soprano \alto? I don’t think I have a good sense of what fits best. Thanks for your feedback. — Dan _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
