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 has been replaced by Max for Live. Here are some tips about
Max for Live for those familiar with Pluggo make the transition to the new system.
Max for Live uses the same objects as Pluggo for audio I/O, plugin~
for audio input and plugout
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 than plugmidiin
used by Pluggo.
A very useful new object called midiselect
works with midiin
for creating MIDI effects that filter some but not all MIDI.
Live does not currently support polyphonic aftertouch (received by the
Pluggo used the keyword synth
in a plugconfig
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
keyword in a plugconfig
script. In Max
for Live, you
define a device's latency
using the Patcher Inspector.
Parameters in Pluggo were most often defined with the pp
This object took a number of arguments for defining a parameter's name,
minimum, maximum, and so forth. The pp
object stored 32-bit
floating point values (the standard data type in the original VST
specification). You would connect pp
objects to Max user
interface objects in a loop. Something similar to pp
be done with
pattr objects in Max for Live
which support any data type you wish to use.
It's more likely you'll want to use the new set of Live UI objects such as
integrate user interface and parameter storage. Parameter
settings are configured using the Parameter tab of the
on these objects. Here are the Max for Live equivalents of pp
The parameter number of a pp
object 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
If a pp
object used the hidden
keyword, the parameter
would not be automated by the host. The hidden attribute of a parameter-aware
object is equivalent.
If a pp
object 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.
keyword for the pp
object was intended to be
used in conjunction with the hidden
keyword, to permit non-automating
parameters to be changed by other Pluggo modulator plug-ins. In Max for Live,
only automatable parameters can be changed by other plug-ins using the Live API
and the live.remote~
object. Max for Live has a separate concept of
that can be changed by Live's clip modulation feature.
keyword for the pp
object 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
Set a Max for Live parameter's range using the Minimum and Maximum
The labels for
for Live UI object parameters are set using the
object used the choices
keyword followed by a list of items to
create a parameter that displayed a list of text items. To set a list of items for
a Max for Live parameter's value, use the live.menu
set the Range/Enum
in the object's
to reflect the choices you want to use.
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
in the object's
To store an initial program in a device, set the
for each parameter-aware object using the object's
There is no support for storing additional programs in
Max for Live devices. Make presets for your device by creating them in Live.
The following plugconfig
keywords 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.