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