I’m grateful for the vast array of LV2 plugin options out there, but frustrated that so many of them don’t have an automatable master enable/bypass. This usually makes them useless to me. (I’ve been getting by via L/R crossfading between two plugin chains but that’s a CPU hog and I don’t have the luxury on a raspberry pi for that.)
Is there a quick way to add such a bypass to plugins or is such a thing going to be different from plugin to plugin? (I can code, but have literally zero LV2 or plugin programming experience.)
I see that the .ttl file has to have a block (note I think BYPASS should be opposite, something like ENABLED, but this is what gxAxisFace has):
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 2 ;
lv2:symbol “BYPASS” ;
lv2:name “BYPASS” ;
lv2:default 1.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
lv2:designation lv2:enabled;
lv2:portProperty lv2:toggled;
]
Which I assume points to port handling in the cpp file
// connect the Ports used by the plug-in class
void Gx_AxisFace_::connect_(uint32_t port,void* data)
{
switch ((PortIndex)port)
{
case EFFECTS_OUTPUT:
output = static_cast<float*>(data);
break;
case EFFECTS_INPUT:
input = static_cast<float*>(data);
break;
case BYPASS:
bypass = static_cast<float*>(data); // , 0.0, 0.0, 1.0, 1.0
break;
default:
break;
}
}
but then that bypass variable gets involved with some ramp up/down logic in the code… and now my eyes have glazed over.
I’d kill for a core-ardour ability to automate enable/bypass on any plugin. That way it would be done well and all the plugins wouldn’t need it anymore.
Anyway, what are my options here?