On Thu, Feb 06, 2003 at 01:27:39 -0500, 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.
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.
I agree, and more than that its not a usful optimisation (in RT
processing), I dont htink the offline case is important enough to warrent
this level of complexit and debugging nightmare.
If you can point me to a working (not pure research) implemntation I
will consider that it might not be total insanity ;)
I had a vague attempt at doing something like this (after noticing that
filters filtering silence uses up a lot of cpu). Each sample buffer object
that ssm uses would record whether it had been written to, and setting them to
zero (by calling memset via a Zero() function in the sample object) would
clear this flag.
In this way plugins would know whether there was any information worth
processing in the buffer. I ended up coming to the same conclusion too
complex/not enough of a win to be worth the effort.
dave