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.
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).
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.
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 themessage.
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.
annotation_name [symbol] (default: )
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.
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.
Common Box Attributes
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)
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.
Out fifth-from-right outlet: Parameter values or plug-in informational values in response to themessage.
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).
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 themessage.
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).
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.