Q
How do I automatically switch VST plugin presets with a MIDI controller?
B As always, you have a number of options. The first trick to learn is that in Bidule, any incoming MIDI CC can be linked to any parameter of any bidule or VST plugin. This means that you can use MIDI CC to automate bidules and groups, or to add MIDI CC control over a VST plugin parameter that doesn't have MIDI CC response already built in.
Naturally, there are countless ways to make use of this kind of control, and it would be impossible to cover all of them here. This particular tutorial will show you how to select VST plugin presets using the modulation wheel on a MIDI keyboard.
(Naturally, if you follow this example, you can use any MIDI CC if you have a different MIDI controller. I just chose the mod wheel since it's all that I have right now.)
B1 If you haven't already made it part of your default layout, right-click the patchbay and select
MIDI Devices > Input > and then choose your MIDI controller's input. Next, right-click the patchbay again and select
MIDI > CC to Params. Connect the MIDI device's output to the MIDI CC to Param bidule's input. Now, select your VST effect plugin, and add it to the patchbay. For this example, we will use Bram's most excellent
Cyanide 2 distortion/shaper plugin.

B2 The next step is to add a Variable bidule: right-click the patchbay and select
Building Blocks > Math > Variable. Rename the variable to
Preset Range. Right-click again and select
Misc > Parameter Modulator. Rename this bidule to
Preset Mod, and connect the output from Preset Range to the Preset Mod's input.
Double-click Cyanide 2 to open it, and click the presets down-arrow to count the number of presets. In this case, the plugin has 16 presets. That's the magic number: 16. Remember that, and close the Cyanide window.

B3 What you want to do is have the entire range of the mod wheel to be divided into 16 sections, thus mapping out to each of the Cyanide presets. To do this, open the Preset Range bidule, and set the Min value to 1 and the Max to 16. Repeat the same by opening the Preset Mod bidule, and setting the Min and Max values there to 1 and 16, respectively.
To make the whole thing work, you also need to link some parameters. Press Ctrl+P, then first link the CC to Param's MIDI CC_001 parameter (default for the mod wheel) to the Value parameter on the Preset Range bidule. Then, link the Modulation parameter on the Preset Mod bidule to the Preset Number parameter on Cyanide 2.

B4 Activate audio processing, then open Cyanide 2. Slide the mod wheel on your MIDI keyboard slowly from the lowest value to the highest. You should see the plugin's settings and presets changing as you move through each one by one. Try connecting some audio input (a loop, or input from your soundcard) to Cyanide 2. Note that you'll probably hear a fair bit of glitching as one preset replaces another. There's not much that can be done about this, so when performing, it is best to save your preset switches for times when no audio is flowing through the plugin. Each plugin is different, and some will glitch more during a live change than others.
In theory, you could have just linked the CC_001 parameter straight to the plugin's Preset Number parameter, without having to go through all these other bidules. So why bother with this setup, then? Because it allows you fine control over the range of presets you access.
For instance, say you only want to use the last two presets in Cyanide's bank: Inverted Psycho and More Fuzz?. Open the Preset range bidule, and set the Min to 15. The result: the first half of your mod wheel will select Inverted Psycho, and the latter half will select More Fuzz?.

The same configurability holds true if you decide to switch Cyanide 2 for a different plugin -- one that has, say, more presets. Simply update the Min and Max values in both the Preset Range and Preset Mod bidules to reflect the number of presets as well as the range you want to use. (Don't forget to re-link the Preset Mod modulation param to the new plugin's Preset Number paramater.)