On Thursday 06 February 2003 07.27, Paul Davis wrote:
Again, I think
we are speaking of slightly different things. I am
talking about the time when (for example) the synth at the head
of the chain has stopped playing notes. A reverb with this as
it's input would be told 'your input is now silent'. It has a
tail, of course. It can be marked silent when it's tail is done.
Once it is silent, it does not need to be processed._
this sounds very dangerous to me.
It is, but for other reasons.
your description sounds OK. but ... my kawai k5000 is
an additive
synth with a moderately interesting FX bank. its still producing
sound for most patches long after all of its "voices" are off. if
someone were to write a plugin modelled on this kind of design, you
can't really know when the top of the chain is silent.
The *synth* might know, but if you stop calling run(), it can't tell
you when you start calling run() again...
i have a gut feeling that this will turn out to be the
common case,
so common that trying for this optimization is a mistake. i could
be wrong, of course.
No, I think you're right.
I think the only optimization we can provide for on the API level is
handling of silent buffers. Whether or not a plugin just returns from
run() when it sees there's nothing useful to do is a plugin
implementation issue, and I don't think hosts can help very much in
that area.
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`--------------------------->
http://olofson.net/audiality -'
---
http://olofson.net ---
http://www.reologica.se ---