VSTPluginDesc:
Filter:
vstplugin/Classes (extension) | Undocumented classes

VSTPluginDesc
ExtensionExtension

VST plugin description

Description

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.

NOTE: Plugin descriptions are read-only and shouldn't be modified by the user

Instance Methods

.key

a symbol used to identify this plugin.

Discussion:

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.

.path

the full path to the module containing this plugin.

.name

the plugin name.

.vendor

the plugin vendor.

.category

the plugin category. Multiple (sub)categories are seperated with the '|' character, e.g. "Fx|Delay".

.version

the plugin version, e.g. "1.0".

.sdkVersion

the VST SDK version, e.g. "VST 2.4".

.bridged

whether the plugin is bit-bridged (using a 32-bit plugin on 64-bit Supercollider or vice versa).

.id

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.

.editor

whether the plugin has a VST GUI editor

.editorResizable

whether the editor is resizable

.synth

whether the plugin is a VST instrument

.singlePrecision

whether the plugin supports single precision processing

.doublePrecision

whether the plugin supports double precision processing

.midiInput

whether the plugin accepts MIDI input

.midiOutput

whether the plugin accepts MIDI output

.sysexInput

whether the plugin accepts SysEx input (undefined for VST3)

.sysexOutput

whether the plugin accepts SysEx output (undefined for VST3)

.inputs

.outputs

Array of input/output busses. Each bus is represented as an Event with the following fields:

\channelsnumber of channels
\namebus name
\typebus type (\main or \aux)
NOTE: VST2 plugins only ever have a single input and output bus.

.parameters

Array of (automatable) parameters. Each parameter is represented as an Event with the following fields:

\nameparameter name
\labelthe unit of measurement (e.g. 'dB', 'ms' or 'Hz')
\automatablea Boolean that indicates whether the parameter is suitable for automation

More entries might be added later.

.numParameters

Returns:

the number of parameters.

.programs

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.

.numPrograms

Returns:

the number of built-in programs.

.presets

Array of VST presets. Each preset is represented as an Event with the following fields:

\namepreset name
\pathfile path
\typepreset 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
user%USERPROFILE%\Documents\VST3 Presets\[VENDOR]\[PLUGIN]
user factory%APPDATA%\VST3 Presets\[VENDOR]\[PLUGIN]
shared factory%PROGRAMDATA%\VST3 Presets\[VENDOR]\[PLUGIN]

OSX
user~/Library/Audio/presets/[VENDOR]/[PLUGIN]
shared factory/Library/Audio/presets/[VENDOR]/[PLUGIN]

Linux
user~/.vst3/presets/[VENDOR]/[PLUGIN]
shared factory/usr/local/share/vst3/presets/[VENDOR]/[PLUGIN]
global/usr/share/vst3/presets/[VENDOR]/[PLUGIN]
NOTE: Only the user preset paths are writeable.

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.

.numPresets

Returns:

the number of VST presets.

.print

post plugin info to the console.

Arguments:

long

also post parameters and programs.

.printParameters

post parameters.

.printPrograms

post programs.

.findParamIndex

get the index of parameter by name.