[Top][All Lists]

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

Part combiner (determine-split-list) enhancements

From: Dan Eble
Subject: Part combiner (determine-split-list) enhancements
Date: Mon, 1 Sep 2014 12:56:29 -0400

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 
\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.

reply via email to

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