Max for Live for Pluggo Developers
Max was able to create plug-ins for VST, Audio Unit, and RTAS using the Pluggo system first introduced in 1999. Ten years later, Pluggo was replaced by Max for Live. If you were familiar with plug-in development using Max in version 4.0, here are some tips about working with Max for Live.
Max for Live uses the same objects as Pluggo for audio I/O, plugin~ for audio input and for audio input. However, all audio I/O in Max for Live is currently stereo, as is true for all Live devices.
Max for Live uses the standard Max MIDI objects for MIDI input and output, which are much easier to work with thanand used by Pluggo.
Live does not currently support polyphonic aftertouch (received by the polyin object).
Defining Plug-in Types
Pluggo used the keyword synth in ascript to tell the host application it was an instrument. In Max for Live, you create new devices by modifying existing ones. There are three default Max devices: Max Audio Effect with an audio input and output, Max MIDI Effect with a MIDI input and MIDI output, and Max Instrument with a MIDI input and audio output. A new Max device saved from an existing device always shares the same device type.
In Pluggo, you could define the fixed latency of a plug-in using the latency keyword in a Creating Audio Effect Devices documentation.script. In Max for Live, you define a device's latency using the Patcher Inspector. See the section 'Defining Latency for a Max for Live audio device' in the
Parameters in Pluggo were most often defined with the pattr objects in Max for Live, which provide similar functionality and support a wider variety of data types.object. This object took a number of arguments for defining a parameter's name, minimum, maximum, and so forth. The object stored 32-bit floating point values (the standard data type in the original VST specification). You would connect objects to Max user interface objects in a loop. This functionality has been replaced by
Live UI objects such as live.dial now integrate user interface and parameter storage. Parameter settings are configured using the Parameter tab of the Inspector on these objects. Here are the Max for Live equivalents of object options:
The parameter number of aobject determined the order in which preset data from a host would be output, as well as the order that the parameter would appear in an automatically generated VST interface. In Max for Live, the equivalent attribute for parameter-aware objects is called Parameter Order. There is no concept of an automatically-generated plug-in user interface.
There are two names for each parameter in Max for Live, the long name and short name. Long names are described in more detail here
If aobject used the hidden keyword, the parameter would not be automated by the host. The hidden attribute of a parameter-aware object is equivalent.
If aobject used the fixed keyword, the parameter would not be changed by Pluggo's auto-randomization feature. Auto-randomization is not currently implemented in Max for Live.
The meta keyword for theobject was used to identify parameters that could be changed by other parameters. This feature existed specifically to appease Apple's Audio Unit validation tool. Live does not require meta-parameters to be explicitly identified.
The c2, c3, and c4 keywords were used to specify optional colors for a parameter's display in the automatically generated user interface. This feature does not apply to Max for Live.
minimum and maximum
The Inspector to .object used the db keyword to specify that a parameter represented decibel units of amplitude. To use decibel units for a Max for Live parameter, set the Unit Style attribute in the object's
To store an initial program in a device, set the attributes for each parameter-aware object using the object's Inspector . There is no support for storing additional programs in Max for Live devices. Make presets for your device by creating them in Live.and
Other plugconfig Features
The followingkeywords do not apply to Max for Live: usedefault, useviews, numprograms, preempt, package, oversampling, sigvschange, sigvsdefault, autosize, setsize, nohintarea, welcome, defaultview, defaultpage, addview, dragscroll, infotext, infopict, setprogram, meter, hintfg, hintbg, noinfo, accurate, nonrealtime, vendor, product, category, tailsize, version, surround.