vst~
Description
Use the vst~ object to load a real-time VST, VST3 or Audio Unit plug-in and use its audio processing in MSP. When vst~ is instantiated as mcs.vst~, the plug-in's audio inputs are combined into a single multichannel inlet and its audio outputs are combined into a single multichannel outlet.
Examples

Discussion
Some plug-ins have their own editing window, which is visible when you double-click on the object. Otherwise, double-clicking on the object displays a default parameter editing window. The number of signal inputs and outputs default to 2, but the number required by the plug-in may be less than that. If you want to specify a larger number of inputs and outputs, you can supply them as optional arguments.
Audio plug-ins loaded into a vst~ object can be synchronized by enabling the global transport (choose GlobalTransport from the Extras menu and click on the global transport's Activate button).
Arguments
number-of-inputs/outputs [int]
If the first or first and second arguments are numbers, they set the number of audio inputs and outputs. If there is only one number, it sets the number of outlets. If there are two numbers, the first one sets the number of inlets and the second sets the number of outlets.
VST-plugin-filename [symbol]
Sets the name of a VST or Audio Unit plug-in file to load when the object is created. You can load a plug-in after the object is created (or replace the one currently in use) with the
message.preset-effects-name [symbol]
After the plug-in name, a name containing preset effects for the plug-in can be specified. If found, it will be loaded after the plug-in has been loaded.
Attributes
annotation_name [symbol] (default: )
Annotation Name
bypass [int] (default: 0)
Bypasses plug-in processing and passes all audio through the vst~ object.
enablehscroll [int] (default: 0)7.0.0
Enable Horizontal Scrollbar
enablevscroll [int] (default: 1)7.0.0
Enable Vertical Scrollbar
genericeditor [int] (default: 0)7.0.0
Use a generic editor interface for a plug-in. Note that some Audio Unit plug-ins will not show generic interfaces.
mcisolate [int] (default: 0)
Isolate parameter changes to a specified channel.
parameter_enable [int]
Enables use of this object with Max for Live Parameters and allows for setting initial parameter values in the Max environment.
prefer [symbol] (default: VST)
In the absence of other information, such as an absolute path to a plug-in file or an explicit typed plug-in path (e.g. prefer attribute will be used to preferentially load one type of plug-in before other available formats when using the message. Note that the variations , , and can also be used to override the specified preference.
Possible values:
'VST'
'VST3'
'AudioUnit'
valuemode [int] (default: 0)
Determines the output at the vst~ object's fifth-from-right outlet. In Value mode (the default: 0), the object will send the parameter's index followed by a floating-point value between 0. and 1. (e.g. ). In String mode (1), the object will send the parameter's index followed by a symbol value (e.g. ). In Both mode (2), the object will send the parameter's index followed by a floating-point value and a symbol value (e.g. ).
Possible values:
0 = 'Value'
( Output parameter's normalized value (0. - 1.) )
1 = 'String'
( Output parameter's symbolic value )
2 = 'Both'
( Output parameter's normalized value followed by the symbolic value )
Common Box Attributes
Snapshot Attributes
Parameter Attributes
Messages
int
Arguments
float
Arguments
list
Arguments
setting [float]
anything
Arguments
setting [float]
(drag)
(mouse)
disable
Arguments
get
Arguments
If a symbol argument is provided, and the symbol corresponds to the name of a parameter, the message outputs the current parameter value (a float between 0 and 1) of the named parameter. Otherwise, nothing is output.
If a number argument is provided, and the number argument is between 1 and the number of parameters of the currently loaded plug-in (inclusive), the message outputs the current parameter value (a float between 0 and 1) of the numbered parameter. If the argument is 0 nothing is output.
If a negative number argument is provided, the message outputs a list with the first element specifying the number argument and the remaining elements specifying the following information:
the plug-in's number of inputs
the plug-in's number of outputs
the plug-in's number of programs (VST) or factory presets (Audio Unit)
the plug-in's number of parameters
whether the plug-in's canMono flag is set. This indicates that the plug-in can be used in either a stereo or mono context
1 if the plug-in has its own edit window, 0 if it doesn't
1 if the plug-in is a synth plug-in, 0 if it isn't
the unique ID of the plug-in as an integer value
four integer values representing the left, top, right, and bottom coordinates of the desired rectangle of the plug-in UI edit window
an integer value representing the initial delay of the plug-in in samples to allow you to automatically compensate for the plugin's latency in your patch
the plug-in's number of user preset files (Audio Unit only)
getsubnames
midievent
Arguments
mpeevent
Arguments
open
Arguments
params
pgmnames
plug
Arguments
For mc.vst~, if the attribute @mcisolate is set to 1, sending a plug message will allow the user to load a VST for each instance individually. When @mcisolate is set to 0, any plug message received loads that plug-in to all instances.
When the Max application starts up, the system VST folder will be added to the max search path. On the Macintosh this is generally /Library/Audio/Plug-ins/VST/ and on windows this is the folder specified in the VSTPluginsPath string value under the registry key HKLM\Software\VST. On Mac OS, Audio Unit plug-ins will be scanned and .auinfo files for Apple built-in and user-installed plug-ins will be added to the search path.
plug_au
Arguments
plug_vst
Arguments
plug_vst3
Arguments
presetnames
printids
read
Arguments
scan
Arguments
set
Arguments
signal
subname
Arguments
wclose
write
Arguments
writebank
Arguments
writepgm
Arguments
Snapshot Messages
Output
float
Out fifth-from-right outlet: Parameter values or plug-in informational values in response to the
message.int
Out fifth-from-right outlet: Parameter values or plug-in informational values in response to the
Out fourth-from-right outlet: Raw MIDI bytes received by the plug-in (but not any MIDI messages received using the message).
list
Out second-from-right outlet: When a VST shell plug-in (e.g., WaveShell) is instantiated without specifying a plug-in name, a list of symbols specifying sub plug-in IDs are sent out the seventh outlet in response to the
message.signal
Out left outlet (and other signal outlets as defined by the number of outputs argument): Audio output from the plug-in. The left outlet is the left channel (or channel 1).
symbol
Out sixth-from-right outlet: The plug-in's parameters are sent out as a series of symbols in response to the
Note: Some plug-ins, especially those with their own editors, fail to name the parameters.
Out third-from-right outlet: A series of symbols are sent out in response to the message. If there are no program names, the message is output.
Out second-from-right outlet: When a VST shell plug-in (e.g., WaveShell) is instantiated without specifying a plug-in name, a series of symbols specifying plug-in names are sent out the seventh outlet in response to the message.
Out right outlet: An Audio Unit plug-in's user preset files are sent out as a series of symbols in response to the message.
See Also
Name | Description |
---|---|
Sound Processing Techniques | Sound Processing Techniques |
MIDI | MIDI |
MC | MC |
rewire~ | |
amxd~ |