M9 Docs   Using VST PlugIns

MuTools apps support VST plugins up to VST version 2.4. Using VST 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 VST plugin

On MacOS a VST plugin is a shared library normally with extension ".vst". On Windows a VST plugin is a DLL normally with extension ".dll".

There are several ways to start using a VST plugin:

  • You can drag-drop the VST plugin file on a rack slot or MUX Modular Area.
  • You can add VST plugins via the "Manage VST PlugIns" function.
  • Known VST 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 VST Plugin..." in that popup list.


About VST inputs and outputs

A VST plugin can have multiple audio inputs and outputs. Each VST audio input and output jack is mono, that's how VST is organized. But there is a VST function where the plugin can tell the host how its inputs and outputs are practically organized. If a VST 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 VST 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 VST plugin, you can use a Stereo Splitter module.

If there are VST 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 VST plugin into a rack, you don't immediately see the extra inputs/outputs of a VST 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 VST in that MUX. Then in that MUX's modular area you'll see all the inputs/outputs of the VST 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 VST presets that include a complete sub-mix setup!
  • Right-click the VST 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 VST inputs/outputs.
    Then go to the modular area containing that rack and there you can connect things as you want.
    If you want certain VST plugins to always import/export certain auxiliary inputs/outputs whenever it's plugged in, you can define this in the VST Plugin Manager -> right-click the VST 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 VST in the modular area and connect things as you want, similar to the first option, but here you can also add racks to the VST 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 VST plugins that are only processing silence. It means that if the VST plugin is not receiving any input nor generating any output for some time then the VST plugin is bypassed so that it does not consume CPU. As soon as the VST 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 VST effects and synths!

The Auto Bypass can be setup via the VST 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 VST 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 VST 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 VST as it produces audio above the smart bypass threshold level for detecting audio.


Focused VST Parameter Control

At the top of each VST editor, at the right of the Open/Save and Options buttons, there is a parameter knob that reflects the last tweaked VST parameter. Whenever you tweak a VST parameter that focused parameter control switches to that last tweaked parameter. This focused parameter control is a handy bridge between any VST parameter and the MuTools user interface. 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 VST parameters for VST's that don't show this in their own editor. It can also be used to copy-paste VST parameter values even in VST editors that don't support such functionality. Etc.


How To Automate A VST Parameter

  • Open the VST 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 VST plugin, right-click the track and choose "Add Automation Sub-Track".


How To MIDI Control A VST Parameter

  • Open the VST 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 VST plugins you want to use have the same bit-depth as the host (MuLab/MUX Modular) 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 VST editor, but it also depends on how the VST plugin editor works. So when using VST plugin editors then sometimes it's not clear who has the keyboard focus: The MUX window or the embedded VST editor. That's because some VST 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 VST editor (to use that VST editor's key shortcuts). To have more control over where the keyboard focus is when using a VST editor there are 2 functions:

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

Unfortunately there is an extra complication wrt using key shortcuts in VST editors: When the key focus is on the VST editor and you use a key shortcut for MUX, and that key is not used by the VST editor, it should be forwarded to the MUX window so that the key shortcut can be processed by MUX. But it occurs that the VST 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 VST 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 VST editor (thus in the MuTools 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 VST plugin is a dynamic library file, on Windows called a DLL file, on MacOS called a bundle. Now when scanning VST plugins, it may be that also other DLL/bundle files are detected and scanned to see if they're VST plugins. In case a DLL/bundle is not a VST plugin the scan log will include a message that says "Couldn't find main vst function" which means that that DLL could not be recognized as a VST plugin. That's a normal message and added for your information.
  • Input and output names for stereo jacks are displayed in a simplified form, for example if the VST 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 VST plugins into groups (eg. "VA Synths", "Samplers", "EQ & Filters", "Reverbs", ...) using the "Group" column in the VST Plugin Manager.
  • VST 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 VST editor, that will load that FXB/FXP file into that VST.
  • You can drag-drop an FXB/FXP file on the top control bar of a VST editor, that will load that FXB/FXP file into that VST.

Table Of Contents