A newer version of Max is available. Click here to access the latest documentation.

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 6 Users: This documentation refers to deprecated features of Max which have been since removed from the software. While the information presented is still accurate, Max 6 no longer supports the use of the older Pluggo parameter objects.

Audio I/O

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.

MIDI I/O

Max for Live uses the standard Max MIDI objects for MIDI input and output, which are much easier to work with than plugmidiin and plugmidiout used by Pluggo.

The midiselect object works with midiin and midiout for creating MIDI effects that filter some but not all MIDI.

Live does not currently support polyphonic aftertouch (received by the polyin object).


Defining Plug-in Types

Pluggo used the keyword synth in a plugconfig script 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.

Defining Latency

In Pluggo, you could define the fixed latency of a plug-in using the latency keyword in a plugconfig 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 Creating Audio Effect Devices documentation.

Parameters

Parameters in Pluggo were most often defined with the pp object. 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. This functionality has been replaced by pattr objects in Max for Live, which provide similar functionality and support a wider variety of data types.

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 pp object options:

Parameter Number

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.

Parameter Name

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

hidden

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.

fixed

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.

modable

The modable 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 modulation-enabled parameters that can be changed by Live's clip modulation feature.

meta

The meta 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.

c2-c4

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 attributes in the Inspector .

unit label

The labels for unit styles for Live UI object parameters are set using the UI object's Inspector .

choices

The pp 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 or live.tab object, and set the Range/Enum attribute in the object's Inspector to reflect the choices you want to use.

db

The pp 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 Inspector to deciBel.

Storing Presets

To store an initial program in a device, set the Parameter Mode Enable and Initial Value 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.

More information about presets for Max devices.

Other plugconfig Features

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.

See Also

Name Description
Technical Notes Technical Notes
Max For Live Max For Live