Using Plug-ins with MC

When working with plug-ins in MC, you can take two approaches: working with multiple copies of a plug-in to produce multiple channels of audio, or working with a single copy of the plug-in to produce multichannel signals containing its output. There are MC options for each of these approaches.

Working with a Single copy of a Plug-in with Multichannel Signals

The mcs.vst~ object allows you to work with a single instance of a plug-in, but have multichannel signal input and output. In the most basic case, you can create an mcs.vst~ with a favorite stereo VST effect, and have a 2-channel MC signal routed into and out of the effect.

If the plug-in is capable of more than two inputs, you can define the number of inputs and outputs with an argument, and the audio inlets and outlets of the mcs.vst~ object will accept that number of channels.

Working with Multiple Copies of a Plug-in

The mc.vst~ object works like other "wrapped" objects: it contains one instance of the plug-in for each channel that is defined, and it will auto-adapt to the number of channels in any MC signal input.

The number of inputs and outputs to the plug-in are defined by the channels argument to mc.vst~, and each of the inlets and outlets will support a multichannel signal. For example, a mc.vst~ defined with two input/output channels and four MC channels will produce a 'left' and 'right' output, each of which will contain four channels of audio.

When using a VST instrument, you will need to define the number of MC output channels to be used, since it will not accept incoming multichannel signals. This can be done with the @chans attribute to the object.

Accessing Parameters of Individual Plug-in Instances

When using mc.vst~ to host multiple copies of the same plug-in, you may want to change the parameters of each copy to different settings. This can be done using the mcisolate attribute to the mc.vst~ object, as well as the and mc.targetlist objects to route messages to a single instance of the plug-in.

To alter individual instances of a plug-in's parameters, take the following steps:

  • Enable the mcisolate attribute using a message box or attrui object
  • Using an or mc.targetlist object, send a setvalue message with the proper parameter name to the mc.vst~ object. This will change the parameter for the targeted instance only.
  • To target all instances of the mc.vst~ object, you can target using voice number 0 (zero), or disable the mcisolate attribute to distribute the change to all instances of the plug-in.

When mcisolate is off, any parameter change for any voice - or any change to the user interface of the plug-in - will result in that parameter being changed in all of the instances of the plug-in.

Working with Max for Live Devices

Max for Live devices are hosted similarly to VST plug-ins, using the mcs.amxd~ object for a single instance, and mc.amxd~ for multiple-instance applications.

If you are showing the device's interface in your patcher (by toggling on the Show View In Patcher attribute), you can choose the instance of the device that is displayed by using the displaychan attribute.

See Also

Name Description