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