Controller Button to "Turn On" VSTs

I’m working on re-doing my Cantabile setup after updating and want to make sure I’m setting this up it the “best” fashion. I want to have 8-16 VSTs ready to go in a “song”. When I press button 1, I want a pad sound activated, when I press button 2, I want a string sound activated, etc. I had previously been having the buttons suspend and unsuspend VSTs although I admit I’m not exactly clear what the difference between bypass and suspend. Mute/Unmute has the same effect but my understanding is that mute/unmute takes more resources than unsuspending? So first, let me know if suspend is the right way to be keeping these VSTs loaded in the background or if there is something else I should be doing.

I have always struggled to suspend and unsuspend VSTs with a controller button. It seems like this should be easy but I must be missing something. When I go to bindings and do learn, it gets setup like the screenshot below, but it doesn’t seem to work. My controller is setup to send 0 when off and 127 when on.

If I mess around with the settings, I can get it work in a variety of ways but I’d like to have a better idea of what I’m doing. The main source of confusion is the event. When I do learn it sets it to just controller but there are options like controller switch, controller button no edge, etc. Setting it to Controller Switch and inverting it seems to work, but this seems clunky. I feel like I’m missing an easier way to just say when 0 is sent, suspend VST, when 127 is sent, unsuspend VST.

Thanks,
Andrew V. Romero

There isn’t a universal "right’ or ‘wrong’ answer, because different VSTs respond differently to suspending and muting. This may help some:

  • Bypass: sends audio in → audio out. This is most useful when bypassing an effect while playing – wah, delay, etc. – or for debugging a sound path when something is wrong. In VST2, this will still use CPU cycles; in VST3, it’s possible that this will save cycles, but it depends on the VST3 code.

  • Mute: no audio comes out, but the VST is still running and processing input data. This uses the most cycles, but allows for pleasant transitions between instruments, etc. There are many ways to do this: my favorite is to map a MIDI CC to Output Gain in the bindings: either normal (CC=0 is mute, CC=127 is full volume), or inverted (CC=0 is full volume, CC=127 is mute).

  • Suspend: stops the VST from processing data. This is best for saving CPU cycles, but not always best for eliminating startup delays, pops and clicks, etc. Some VSTs are OK with this approach, others not. If you want real-time response, you’ll have to experiment. If you only make these changes at the start of a song, maybe the delays/noises are not an issue?

Regards, Bruce

1 Like