On Sat, Apr 22, 2006 at 10:53:58AM +0100, Steve Harris wrote: > Almost two years ago at the LA conference a bunch of us agreed that > something need to be done to improve LADSPA, and on the approximate > direction it should take. > > [...]
In my experience developing modular synths, it would be a huge benefit to performance if modules had the option of including source code in the bundle. This is especially useful if the module can provide a function that calculates the outputs one sample at a time. I reckon most modules which do not do any frequency domain calculations can do this. The reason it's so great is because it allows the host to inline those functions and call on a C compiler to optimize them together. For some simple functions, constant folding can make a huge difference. Perhaps more importantly, the sample buffer between the modules can be eliminated. When each module does something simple, say a low order IIR, an oscilator, or a multiplier, the load and store is much slower than the calculation that happens between them. If the result can be left in a register for the next module to process, the system becomes much more efficient. When the process functions are inlined, there is not even the overhead of a call. Also, included source is simply convienent if one wishes to tinker with the module, or run it on a different platform. Perhaps the compiled version should have a platform-unique name within the bundle, and be marked with a hash of the source, so that it can be rebuilt when needed, preferably with some shared ladspa build tool. Lastly, I'm not saying bundles-as-directories is a bad idea, but an alternative to an openstep bundle is an ar archive. It works like tar, only it is designed for nonsequential access of members. ".a" static libraries and ".deb" debian packages are really just ar archives.
