VSTPluginDesc:
Filter:
Classes (extension) | Undocumented classes

VSTPluginDesc : Object
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

Class Methods

Inherited class methods

Instance Methods

.key

.key = value

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

.path = value

the full path to the module containing this plugin.

.name

.name = value

the plugin name.

.vendor

.vendor = value

the plugin vendor.

.category

.category = value

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

.version

.version = value

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

.sdkVersion

.sdkVersion = value

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

.bridged

.bridged = value

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

.id

.id = value

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

.editor = value

whether the plugin has a VST GUI editor

.synth

.synth = value

whether the plugin is a VST instrument

.singlePrecision

.singlePrecision = value

whether the plugin supports single precision processing

.doublePrecision

.doublePrecision = value

whether the plugin supports double precision processing

.midiInput

.midiInput = value

whether the plugin accepts MIDI input

.midiOutput

.midiOutput = value

whether the plugin accepts MIDI output

.sysexInput

.sysexInput = value

whether the plugin accepts SysEx input (undefined for VST3)

.sysexOutput

.sysexOutput = value

whether the plugin accepts SysEx output (undefined for VST3)

.inputs

.inputs = value

.outputs

.outputs = value

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

.parameters = value

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

\nameparameter name
\labelthe unit of measurement (e.g. 'dB')

More entries might be added later.

.numParameters

Returns:

the number of parameters.

.programs

.programs = value

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

.presets = value

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(long: false)

post plugin info to the console.

Arguments:

long

also post parameters and programs.

.printParameters

post parameters.

.printPrograms

post programs.

.findParamIndex(name)

get the index of parameter by name.

Inherited instance methods

Undocumented instance methods

.addPreset(name, path)

.deletePreset(preset)

.findPreset(preset)

.presetFolder(type: 'user')

.presetPath(name, type: 'user')

.printPresets

.renamePreset(preset, name)

.scanPresets