hi frank
On Mon, 2006-12-11 at 13:10 +0100, Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
I don't think switching can be done in a generic way from the outside without knowing some details of the abstraction to switch on or off.
Take for example midi voice allocation: Basically noteon and noteoff are kind of switch on and switch off messages already. However generally you have a release envelope fading out the sound over a certain time span after the noteoff message arrived. You cannot switch off dsp for a voice unless you know its release length, and this length might only be known inside the voice abstraction.
However another thing to consider came to my mind. Switch~ing abstractions or subpatches on and off has the nasty side effect of being quantized to one block. Attached example illustrates the nastiness of this.
the attached patch shows that the subpatch is [switch~]ed off too early, but not [switch~]ed on too late.
So for tight timing switching on has to be done at least one block *in advance*.
if i interprete correctly, what your patch is telling me, then one would have to switch *off* one block *later*. it wouldn't be necessary to know in advance, when to switch on, though. it seems like it is enough to add 1.5ms to each [delay] that schedules the switch-off-messages.
For this a [polywhatever] could be interesting that would keep a pool of voices switched on all the time.
Here's an idea for an algorithm to achieve this: [poly] does voice allocation in a regular fashion using a modulo-counter: Assuming voices are counted from 0, then first voice 0 is used, after that voice 1 and so on until voice maxvoices-1, after that it starts at 0 again. Typical modulo.
Now assuming all voices in [polywhatever] are connected to each other, a voice that started to play could send along a message like "switch (myself+1)%maxvoices 1" to switch on the next voice in the circle.
if i am right, that wouldn't be necessary anymore, right?
cheers roman
___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de