Bypass Plugin when volume is down

Hi everybody,
I was using another keyboard rig the other day that was running mainstage and the way he had it set up was quite good and i have been wanting to replicate it somewhat in gig performer.
He had a patch loaded that had a different sounds on each channel in the mixer within mainstage but all on midi channel 1. What was interesting though was that he had each channel (sound) volume assigned to a fader on his nano kontrol and when that fader was turned right down it bypassed the plugin automatically. This was great as u didnt need to have another button or widget to do the bypassing.
So the fader was expression(volume) and when it was at the 0 range it bypassed the plugin. T his is great for running alot of plugins efficiently.
Can u do this within gig performer??

That’s really trivial to do automatically with MainStage (or any channel strip based system) because the channel strip “knows” what plugins it contains.
Gig Performer of course doesn’t have a concept of a channel strip so there’s no way to automatically know what plugins should be bypassed.
Having said that, it’s actually trivial to implement this in Gig Performer using GP Script by associating a callback with the widget that is controlling the gain (for example).
If you’re familiar with GP Script then you just call the SetPluginBypassed function (see example)

// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from Blue3Vol
    SetPluginBypassed(Blue3, newValue < 0.1)
End

The above will bypass the plugin named “Blue3” whenever the volume goes down below 1%

You could of course just test for 0 but I’ve run into MIDI controllers that don’t always reach 0 so I like to have a little bit of leeway

Thanks for the quick response. I havent used gp script as yet so you have to excuse my lack of knowledge with this concept. Do I just copy that as is into gp script to do it per plug in, and when the plug in has been activated to do this would it be only for that rackspace or would it be a global type command and bypass on every rackspace.

Until now there is no global script, so you have to use a script in each rackspace.

Thanks mate will give it a try.
Cheers

Unfortunately, there’s a little bit more to it than that (not a lot!) Next time I’m near a computer, I’ll try and post an example. However, it’s important to understand what’s going on here. It’s not a “one plugin per script” concept. It’s a one script per rackspace concept.

However, I’m curious about your setup — is your CPU overloaded already? If you think about it, if you’re going to have five (say) plugins, each with volume controls, then you have the option to have them all on anyway. Unless THAT is overloading your machine, it’s not clear to me that it’s worth bothering with this bypass. Remember that when you switch to a different rackspace, all the plugins in the previous rackspace will be disabled automatically.

I definitely dont have any cpu issues this is not the reason i wanted to do this, my personal rig i use is a custom win desktop in a 2u rack for live use only it never gets over 30% and thats with massive layering etc of plugins.
The reason for this to be brought up was that i was setting up the keyboard rig for metro church here in Aus and it had to be user friendly for all keyboard players without having to make custom sounds. So they basically wanted to have a main piano sound, organ, brass, pads, choir , rhodes, clavs etc all easy access to get to on the fly for layering etc by any keyboard player who comes along.
They were willing to change from mainstage to gig performer as i suggested it to them but they wanted it set it like they had it in MS and i couldnt recreate it with gig performer as user friendly.
The church laptop was a 2015 macbook i7 so it wasnt the most powerful system for having 10 to 12 plugins open at once. I did suggest using midi channel switching but they did not like that idea.

OK in this case you would just create a widget for each slider, associate the widget with a gain control (or use a couple of mixer plugins) and then use a script with a callback for each widget that would detect the widget value being at (or close to) zero so as to bypass the desired plugin

Apologies for reviving an old thread, but I’m attempting something similar. I want to use an audio mixer to select from four different impulse response (IR) loaders and automatically mute the inactive ones.

Here’s my current setup:

GP Wiring

I’ve successfully implemented the first plugin (IR1), but I’m unsure how to code the setup for the other three plugins (IR2, IR3, IR4).

Since I lack coding experience, I’ve been reading the manual, and it seems that using Elsif conditions might be the way to define the desired behavior for the additional IR loaders.

Currently, my code looks like this (but apart from IR1, the others aren’t functioning as intended):

Var
IR1 : PluginBlock
IR2 : PluginBlock
IR3 : PluginBlock
IR4 : PluginBlock
IRMIX1 : PluginBlock

On ParameterValueChanged(parameterNumber : integer, parameterValue : double) from IRMIX1
if parameterNumber == 4
then SetPluginBypassed(IR1, parameterValue > 0.05)
Elsif parameterNumber == 4
then SetPluginBypassed(IR2, parameterValue > 0.25)
end
End


I’m using the output from Channel 1-2 as my parameter condition (parameter #4).

Could anyone offer guidance or provide some pointers?
Thank you kindly

Check out this: Useful scripts and Scriptlets - #3 by npudar

And this: Blog article on bypassing plugin automatically when volume is off

1 Like

I attempted to use the code from the blog article, but for some reason, my plugin only deactivates when adjusting the volume slider. Even when the volume is set to maximum, the bypassed state does not revert.

Could there be a configuration within GigPerformer that is interfering with the script? I have attempted to run the code in my regular rackspace as well as in a new, empty instance.

Thank you.

I don’t understand. Your test is only checking if the parameter value is zero. You’re not doing anything to test if the parameter value is NOT zero.

I’m refering to this blog article.

In the demonstration, the plugin powers down when the volume hits zero and automatically powers back on by using the same code.

Yes, I know - I wrote that article. But I stand by what I said.

You are comparing the parameterValue to 0. You should be comparing the parameterNumber to 0

In other words, instead of

if parameterValue == 0  ....

you need to write

if parameterNumber == 0 ...
1 Like

You are using parametervalue.
In the blog the script uses parameternumber.

2 Likes

Thank you kindly!

I appreciate your help in identifying my mistake and providing an explanation. Now, everything is functioning as expected.