[linux-audio-dev] XAP spec & PTAF comments [merge]

Tim Hockin thockin at hockin.org
Thu Feb 6 17:08:01 UTC 2003


> On Thursday 06 February 2003 07.50, Tim Hockin wrote:
> [...Paul's k5000...]
> > The top-of-chain plugin (synth) will tell you when it is silent, of
> > course!
> >
> > I think it can be a massive, coarse-grain optimization, if we can
> > make it work.
> 
> I think it'll be rather useless if done on the plugin level, with 
> synths and other devices with many audio ports. As soon as we start 
> talking about multitimbral/multichannel synths without internal FX, 
> we're talking about *trees*; not chains.

> The reason I have it is that games and other multimedia stuff should 
> be able to just set up all FX processing needed for the whole thing 
> and then not worry about it. You can have the full FX net for every 
> song in the game "running" at all times virtually without cost. The 
> plugins won't start burning CPU until you actually send some sound 
> their way, and they'll stop burning CPU as soon as their tails are 
> out.
> 
> Whether or not this is useful in your average studio is another 
> matter, but it does *work*.

Yes - based on my experiences of looking at (admittedly mainstreamish) music
done in modern Windows sequencers, the majority of the time, a significant
portion of the processing tree is not in use.

Now, based on recent arguments, I am rethinking my otiginal idea.  I had
originally put this at the plugin granularity, then moved it to per-channel.
This may be Good Enough, but not The Best.

What I learned is that you can NEVER not call the run() method on a
processing pass.  Event outputs, etc. mandate that you call run().  Now, if
the plugin knows it's input is silent, it can heavily optimize the run() if
it does not have anything to do.

I'm starting to lean more towards David's idea which is that a buffer also
has at least one flag - SILENT.  All buffers start out silent (though they
should be zeroed, I think).  If a plugin can optimize in the face of silent
buffers, it should.  We should heavily recommend this, and code all examples
to do this.

This gives plugins a lot of granularity, and a lot of responsibility.
However, it is easy to do, and doesn't require the host to participate at
all.

Tim



More information about the Linux-audio-dev mailing list