Hi,
On Saturday 28 March 2009 16:39:35 Ken Restivo wrote:
When a LADSPA plugin is being sent zeroes-- i.e.
when the volume of the
input data is down to nothing-- is it still sucking up CPU cycles?
I understand from the JACK API that anytime a client gets a callback with
data, it has to drop down and deal with the data and then return, even if
the data is zero. But that could be lightweight, if the data are zero, or
is that very compute-intensive for the plugin?
I'm trying to build an outboard effects chain in various LADSPA hosts (JACK
Rack, ecasound, AMS, others... haven't settled on one yet), and when I've
got that plugin's volume MIDI'ed down to zero, I'd like it to not be
dominating CPU cycles at that time.
Actually with double- (or any floating point-) resolution it is rather hard to
detect exact 0.0 values. And because of the variable exponent, the cpu usage
for numbers near zero is higher then for numbers near 1 (or any other higher
value). The keywords to search for are "denormal problems".
In practice this means that while setting a volume to zero "should" give you
the desired effect of less cpu-usage, in fact the opposite is the case in the
worst case. When you are already controlling your effects via midi, why not
bind the "mute" or "active" (don't remember the current naming in
jack-rack)
to a midi controller. An in-active effect shouldn't eat cpu cycles when the
host-author did his job right...
That's the reason why I was asking.
There doesn't appear to be a way to bind the "Enable" button in Jack-Rack
to a MIDI controller. If there were, I'd just use jack-rack and be done with the
problem. But right-clicking on the button does nothing; only the faders appear to support
MIDI mapping.
So I was instead binding the Wet/Dry to a controller, but the processing on all the
plugins enabled simultaneously was too CPU-bound.
Perhaps the question I should ask is: how hard would it be to hack jack-rack to allow
MIDI binding to the Enable button?
-ken