On Sat, 2004-01-17 at 19:45, Fons Adriaensen wrote:
I'm
guessing that you want to kill voices that are finished? Well, my
guess is that you just can't - not without unexpected things happening.
It can only done (some) softsynths synths because they know the semantics
of thier own voices.
No, killing finished voices is not the primary objective. Also, the standard
VC does not really need this info -- it's only used to resolve conflicts
in special cases. The VC I've been testing recently works as follows:
- if there is no 'lock' feedback, the voice that has the 'oldest'
note-off
is re-used. If all voices are 'on', the new note is discarded, or optionally,
the voice with the oldest note-on is re-used.
- if the feedback is used, the VC first checks if there is any 'free' voice,
i.e. one that is not locked. If there is none, the new note is discarded,
or optionally, the previous rule is used.
(and if there's still a problem after all this, you *definitely* need more
voices :-)
Ack. Speaking as a musician and not a hacker for a moment, I don't
think a new note should ever, ever, ever be discarded!
But you did say optionally... I just had to say that. :) Reusing the
oldest voice should definitely be the default behaviour.
-Dave