[sdiy] Voice assignment algorithms
Rainer Buchty
rainer at buchty.net
Thu Mar 25 22:26:58 CET 2010
On Thu, 25 Mar 2010, cheater cheater wrote:
> Voice assignment algorithms are so simple that there's reeeeally no
> reason to optimize them
They are?
First of all, it might be highly unwanted that retriggering a key indeed
reuses that very voice. Bass sounds come to my mind, where you might
want to have a "this note is played alternatingly on two strings"-like
effects. You might want to feed back this very property from within the
sound (e.g. possible with ESQ1/SQ80).
So "search this note in the occupancy list and retrigger it" might
already be undesireable.
It was already discussed that "if there's no free voice, just grab the
one the voice pointer points to" is possibly bad. So you want to have
some LRU strategy here which grabs the voice which is the farthest in
the release phase -- assuming that you know that there is something like
a master envelope, which e.g. is almost non-existant on FM synths
without knowing what the carriers are. So either you have even more
feedback from the sound engine or you use a release counter, assuming
that premature reassigment hits all sounds equally bad.
That counter may want to be stretched (sostenuto) or sped up
(staccato).
And it needs a legato mode when used with monophonic sounds.
Sure, you can get away with a most simple voice assigner; but I
definitely see room for a more sophisticated one -- which then also
shouldn't add too much delay.
Rainer
More information about the Synth-diy
mailing list