On Thu, 6 Feb 2003 10:40:30 +0000, Steve Harris wrote > 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
