On Thursday 06 February 2003 22.56, Tim Hockin wrote: [...] > 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.
I actually suspect that it might be *easier* to do it per audio port, as that eliminates the need for keeping track of which port belongs where. [...] > 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). Speaking of which, a host that can fill any SILENT buffers it sees with garbage would make a nice debugging tool for this feature. :-) You could also abuse the MMU to trap reads from SILENT buffers, but that's not quite as trivial to implement. > 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. Yeah. > 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. This is what I do in Audiality FX when I'm feeling lazy and want buffers of zeroes for silence: if(!in) in = ady_silent_buffer; This is an implication of the "silent input" feature not being optional - but it's not much to ask for, is it? (Though you'd have to loop over all your inputs, which makes it a *lot* harder! ;-) If it's still too much, a plugin can just have a hint "I don't give a damn about silent input!", which would have hosts clear silent input buffers before run()ning that plugin. //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 ---