This class describes the structure and properties of a VST plugin. Instances are stored in a global dictionary and can be retrieved with VSTPlugin: plugins using the -key.
a symbol used to identify this plugin.
For VST 2.x plugins, the key is simply the plugin name; for VST 3 plugins, the key has an additional ".vst3" extension (to distinguish it from a VST 2.x plugin of the same name). It can be used in VSTPluginController: -open.
the full path to the module containing this plugin.
the plugin name.
the plugin vendor.
the plugin category. Multiple (sub)categories are seperated with the '|' character, e.g. "Fx|Delay".
the plugin version, e.g. "1.0".
the VST SDK version, e.g. "VST 2.4".
whether the plugin is bit-bridged (using a 32-bit plugin on 64-bit Supercollider or vice versa).
the unique ID as a hex string, e.g. "6779416F". The size of the id is 4 bytes (max. 8 characters) for VST2 plugins and 16 bytes (max. 32 characters) for VST3 plugins.
whether the plugin has a VST GUI editor
whether the editor is resizable
whether the plugin is a VST instrument
whether the plugin supports single precision processing
whether the plugin supports double precision processing
whether the plugin accepts MIDI input
whether the plugin accepts MIDI output
whether the plugin accepts SysEx input (undefined for VST3)
whether the plugin accepts SysEx output (undefined for VST3)
Array of input/output busses. Each bus is represented as an Event with the following fields:
\channels | number of channels |
\name | bus name |
\type | bus type (\main or \aux ) |
Array of (automatable) parameters. Each parameter is represented as an Event with the following fields:
\name | parameter name |
\label | the unit of measurement (e.g. 'dB', 'ms' or 'Hz') |
\automatable | a Boolean that indicates whether the parameter is suitable for automation |
More entries might be added later.
the number of parameters.
Array of built-in plugin programs. Each program is represented as an Event which currently only contains a single field \name
. More entries might be added later.
the number of built-in programs.
Array of VST presets. Each preset is represented as an Event with the following fields:
\name | preset name |
\path | file path |
\type | preset type (user , userFactory , sharedFactory or global ) |
More entries might be added later.
The preset list is populated automatically and updated whenever you call VSTPluginController: -savePreset, VSTPluginController: -deletePreset or VSTPluginController: -renamePreset.
These are the standard VST3 preset paths:
Windows |
| ||||||
OSX |
| ||||||
Linux |
|
For VST2 plugins, the following (non-standard) paths are used:
Windows | %USERPROFILE%\Documents\VST2 Presets\[VENDOR]\[PLUGIN] |
OSX | ~/Library/Audio/Presets/[VENDOR]/[PLUGIN] |
Linux | ~/.vst/presets/[VENDOR]/[PLUGIN] |
Presets are searched in the following order: user, userFactory, sharedFactory, global. The folders are automatically scanned everytime you boot the Server and call VSTPlugin: *search.
the number of VST presets.
post plugin info to the console.
long |
also post parameters and programs. |
post parameters.
post programs.
get the index of parameter by name.