the cost of a function call is significant even when
compared to a
branch mis-prediction. its therefore cheaper for hosts to say:
if (plugin->activate) plugin->activate (plugin);
than
plugin->activate (plugin);
Ok, I understand what you mean. It really isn't hard! It just came as a
surprise the first time I ran activate on a function that wasn't there
hehe. I didn't read in the API header that is was optional. It is really
not a high priority for me to have this, I can live without it it's
fine.
there are no booleans for many plugins. its very easy
to create
plugins that can be considered many different things.
That's why I am very lenient on how I filter them out now. Since my
program is a Tekno Composer, and tekno artists are known to do weird
things, I let them use them. If they don't work right, well, maybe it
will actually produce an effect that is cool after all. So, yep, I'll
let them connect a Variable slope oscillator now, but if it screeches
and makes there ears hurt, don't sue me...
ardour hosts all ladspa plugins, and i have never seen this behaviour
Umm, no, this one I know what I am talking about! Dyson Compressor would
not work unless I set the control values to defaults. For some reason,
it says it can take 0 for some parameters, but if I put zero in it it
blows up.
Now it could be my app! I don't know. I remove all denormals beforehand,
so I know it's not denormals. It could be making lists of NANs and those
will make the system grind to a halt (massive buffer underruns). Or,
it's the plugin!
Since I am just hacking at this (I am only self-taught, I don't know how
people learn all this DSP stuff.. I learn by studying other's code, and
reading books, and reading stuff on the internet) I can't say with
confidence who is to blame. All I know is if I plug certain plugins in
without setting the default values my app blows up hehe.