M9 Docs   Using Plugins

MuLab supports VST2, VST3 and CLAP plugins.
Using plugins is similar as using the internal MuTools modules, though here are some specific aspects.
That's what this doc page is about.


How to insert a plugin

On MacOS a VST2/VST3/CLAP plugin is a shared library normally with extension ".vst" or ".vst3" or ".clap".
On Windows a VST2 plugin is a DLL normally with extension ".dll" while VST3 plugins have extension ".vst3" and CLAP plugins extension ".clap".

There are several ways to start using a plugin:

  • You can drag-drop the plugin file on a rack slot or MUX Modular Area.
  • You can add plugins via MuLab menu -> Plugin Manager.
  • Known plugins will be available in the plugin list when you click an empty rack slot or add a module in the MUX Modular Area.
    And if the plugin you want to use is not yet listed there then choose "Browse For Plugin..." in that popup list.


About VST2 inputs and outputs (does not apply to VST3/CLAP)

A VST2 plugin can have multiple audio inputs and outputs. Each VST2 audio input and output jack is mono, that's how VST2 is organized. But there is a VST2 function where the plugin can tell the host how its inputs and outputs are practically organized. If a VST2 plugin has, for example, 2 output jacks and it reports to the host that they're the left and right jack of a single stereo signal, then MUX Modular will present these 2 VST2 plugin jacks as a single stereo jack, as that's what the plugin suggests. MUX Modular still offers you a way to override that by using a Stereo Splitter or Stereo Combiner, so, continuing the above example, if you want to have 2 separate mono outputs for that VST2 plugin, you can use a Stereo Splitter module.

If there are VST2 plugins for which you would want a more permanent reorganisation of its audio inputs and outputs, then you can use the ReGroupAudioInputs and ReGroupAudioOutputs preferences in the VstPlugins.xml file. More details on the Preferences doc page.


Using multiple inputs and outputs

When inserting a plugin into a rack, you don't immediately see the extra inputs/outputs of a plugin. If you want to have control over these auxiliary inputs/outputs there are 3 options:

  • Insert a MUX in that rack and then insert the plugin in that MUX.
    Then in that MUX's modular area you'll see all the inputs/outputs of the plugin and you have all creative freedom to use them as you want.
    Also note that another advantage of working this way is that you can save this MUX as a preset that can be re-used in other projects, for example you can make plugin presets that include a complete sub-mix setup!
  • Right-click the plugin in the rack slot and choose "Setup Aux Ins/Outs".
    Then you can choose which auxiliary inputs/outputs should be imported/exported from the rack.
    When that's done the rack will have the extra inputs/outputs that directly represent the auxiliary plugin inputs/outputs.
    Then go to the modular area containing that rack and there you can connect things as you want.
    If you want certain plugins to always import/export certain auxiliary inputs/outputs whenever it's plugged in, you can define this in the MuLab menu -> Plugin Manager -> right-click the plugin -> Edit Extra Options. This avoids having to do "Setup Aux Ins/Outs" again and again if you want that to be default behavior.
  • Insert the plugin in the modular area and connect things as you want, similar to the first option, but here you can also add racks to the plugin outputs and so these racks will also show up in the rack desk.


Auto Bypass

Using the Auto Bypass function you can avoid wasting precious CPU cycles by temporarily bypassing plugins that are only processing silence.
It means that if the plugin is not receiving any input nor generating any output for some time then the plugin is bypassed so that it does not consume CPU.
As soon as the plugin receives input again, the auto bypass is switched off and the plugin processes the input, so nothing lost, only CPU gain.
This works for both plugin effects and synths!

The Auto Bypass can be setup via the plugin's context menu. The value is the number of milliseconds that the output must be silent before the Auto Bypass is switched on. By default it's set to "Off", but by setting the "Auto Bypass Threshold" to eg 500 ms then the auto bypass will be switched on as soon as the plugin's output is silent for 500 ms and the plugin does not receive any new input. Of course it depends from plugin to plugin, and even from patch to patch what threshold value is best. Just as an example: A filter plugin may be ok with a threshold of 10 ms, but a delay plugin will need a threshold that is at least as long as the delay time.

When the Auto Bypass function is enabled and it is effectively switched on (thus bypassing silence) the power LED for that plugin is dimmed, indicating that the plugin is still active but auto-bypassed.
That way you can clearly see the Auto Bypass function in action.

Note that if a plugin constantly sends out a very low level noise so to avoid denormalization, and that noise is above -379 dB then the auto bypass feature cannot be used for such plugin as it produces audio above the smart bypass threshold level for detecting audio.


Focused Plugin Parameter Control

At the top of each plugin editor, at the right of the Open/Save and Options buttons, there is a parameter knob that reflects the last tweaked plugin parameter. Whenever you tweak a plugin parameter that focused parameter control switches to that last tweaked parameter. This focused parameter control is a handy bridge between any plugin parameter and the MuLab GUI. For example you can easily drag-drop the name of that focused parameter control onto the [+] track button to create an automation track, or to insert a point for that parameter value into an automation envelope editor, etc. You can also right-click the focused parameter control for handy functions like Copy As Parameter Event, Copy As Envelope Point, Map MIDI Controller, etc. It can also be used to monitor the value of parameters for plugins that don't show this in their own editor. It can also be used to copy-paste VST parameter values even in plugin editors that don't support such functionality. Etc.


How To Automate A Plugin Parameter

  • Open the plugin editor.
  • Give a little tweak to the parameter you want to automate. This will switch the focused parameter control to that parameter.
  • Drag-drop the name of that focused parameter control onto the [+] track button in the composer.

Alternatively, if you already have a track for that plugin, right-click the track and choose "Add Automation Sub-Track".


How To MIDI Control A Plugin Parameter

  • Open the plugin editor.
  • Give a little tweak to the parameter you want to control.
  • Open the plugin context menu via the Options button at the top of the editor.
  • Choose "Map MIDI Controller". You'll see that the last tweaked parameter is already selected; but you can also choose another one if you want.
  • Move your preferred MIDI controller or select it manually from the list.


MacOS: How to drop files from the finder onto a plugin editor

Drag the files from the finder window, drag-hold over the MuLab icon in the Mac doc, the MuLab window re-appears, then drag-hold over the MuLab window, the plugin windows re-appear, then you can drop the samples on one of the plugin windows.


32 bit and 64 bit

MacOS and Windows do not allow loading 32 bit plugins into 64 bit hosts and vice versa.
So make sure the plugins you want to use have the same bit-depth as the MuLab you're using.
If such version does not exist for a specific VST plugin then you could try jBridge.


About Keyboard Focus

Generally operating systems send key presses to the focused control in the focused window. When that control does not handle that key press it should forward it to the next keyboard handler, eg. its parent control. If all controls properly follow this rule, all will work fine as the user can indicate which control must have keyboard focus. That's how it technically works. Correction: should work. Read on.

By default MUX tries to give key focus to the plugin editor, but it also depends on how the plugin editor works.
So when using plugin editors then sometimes it's not clear who has the keyboard focus: The MUX window or the embedded plugin editor.
That's because some plugins grab focus, others don't. And as a user sometimes you want keyboard focus on the MUX window (to use MUX key shortcuts) or on the plugin editor (to use that plugin editor's key shortcuts). To have more control over where the keyboard focus is when using a plugin editor there are 2 functions:

  • In the MUX window options menu there is "Set Key Focus To Plugin Editor" which will set the keyboard focus to the embedded plugin editor.
    Still it depends on the plugin whether this will work.
  • When clicking on the MUX background of the top control bar of a plugin editor window, then the keyboard focus is set to the MUX window.

Unfortunately there is an extra complication wrt using key shortcuts in plugin editors: When the key focus is on the plugin editor and you use a key shortcut for MUX, and that key is not used by the plugin editor, it should be forwarded to the MUX window so that the key shortcut can be processed by MUX. But it occurs that the plugin editor does not properly forward unhandled keyboard events and this may result in, for example, that while the keyboard focus is on the plugin editor, pressing the spacebar does not start/stop the main Play function. And besides that, there also is a non-comformity in Microsoft Windows: When a child window (the very plugin editor) does report that a key press is unused and hence it gives the key message to DefWindowProc, Windows does not forward it to the parent window.
That's a serious shortcoming in the Windows system.
MuLab cannot do much about these cases except for this workaround: When you click the top control bar of a plugin editor (thus in the MuLab GUI area) this will shift the GUI focus to the window's top level and hence key presses will be processed by MuLab.
So that way you can quickly force a GUI focus shift to the MuLab GUI and hence eg pressing the spacebar will start/stop playing the composition.

Extra Notes

  • A plugin is a dynamic library file, on Windows called a DLL file, on MacOS called a bundle. Now when scanning plugins, it may be that also other DLL/bundle files are detected and scanned to see if they're plugins. In case a DLL/bundle is not a plugin the scan log will include a message that it cannot recognize it as a VST2/VST3/CLAP plugin.
  • Input and output names for stereo jacks are displayed in a simplified form, for example if the plugin reports that the output names for a stereo output are "Output 1" and "Output 2" then the tooltip for that output wil say "Output 1+2".
  • You can categorize your plugins into groups (eg. "VA Synths", "Samplers", "EQ & Filters", "Reverbs", ...) using the "Group" column in the Plugin Manager.
  • VST2 shell plugins are not yet supported. But you can try this workaround: Shell2Vst
  • You can drag-drop an FXB/FXP file on the top control bar of a VST2 editor, that will load that FXB/FXP file into that VST2.
  • You can drag-drop an FXB/FXP file on the top control bar of a VST2 editor, that will load that FXB/FXP file into that VST2.
  • In the Plugin Manager you have the "Always Reset Editor Window" option to tell plugins that their editor must be fully reset every time it's closed/reopened.
    This might fix exceptional editor issues caused by certain plugins.
    Attention: Switching this on/off will only have effect after re-inserting the plugin.

Table Of Contents