MC Objects for Signal Manipulation

MC includes a number of objects that are useful for combining, separating, and transforming multichannel signals. The objects do not use the "MC Wrapper"; rather, they are made to work with wrapper-based objects.

Creating Multichannel Signals

mc.pack accepts numbers, single-channel signals, or multichannel signals and produces a multichannel signal with a designated number of outputs. This can be used to group separate single-channel sources into a single multichannel patch cord.

Note that signals are not mixed together.

If you want to create a multichannel signal from numbers, you can also use the wrapper-based object mc.sig~ or the even simpler mc.list.

Separating Multichannel Signals into Single-Channel Signals

To separate a multichannel signal into one or more individual signal outputs, use mc.unpack~. The argument to mc.unpack~ determines the number of individual signal outlets. If the multichannel input to mc.unpack~ contains fewer channels than the number of outlets, the extra outlets will produce a zero signal. If the multichannel input contains more channels than the number of outlets, the additional input channels are ignored.

Combining and Separating Multichannel Signals

If you have several multichannel signals you would like to group into a single multichannel signal, use the mc.combine~ object. mc.combine~ produces an output multichannel signal containing the total number of input channels in the inputs. The argument to mc.combine~ specifies the number of inputs.

To separate a multichannel signal into two or more multichannel signals, use mc.separate~. Arguments to mc.separate~ specify the channel counts in its output signals.

Adding and Removing Channels from Multichannel Signals

To make a multichannel signal that copies a single-channel input, use mc.dup~. The argument specifies the number of copies produced.

To force a multichannel output to have a set number of channels, use mc.separate~ with one argument specifying that number of channels. Additional channels are split off to the right outlet, but you don't need to connect that outlet to anything. If there are fewer channels in the input than you specify in the argument, the output will be padded with zero signals.

To mix all channels of a multichannel signal to fewer channels, use mc.mixdown~. mc.stereo~ is a stereo-specific version of the mc.mixdown~ object. A single mixed channel can be obtained by using mc.op~ with the op attribute set to the sum operator.

Transforming Multichannel Signals

MC includes several objects that you can use to change how channels within multiple multichannel patch cords are organized, including mc.interleave~, mc.deinterleave~, and mc.transpose~. Some applications of these objects are described in our discussion of multichannel signal topology.

See Also

Name Description
MC MC