AudioMix

std.AudioMix(anode[] clips, float[] matrix, int[] channels_out, bint overflow_error = False)

AudioMix can mix and combine channels from different clips in the most general way possible.

Most of the returned clip’s properties are implicitly determined from the first clip given to clips.

The clips parameter takes one or more clips with the same format. If the clips are different lengths they’ll be zero extended to that of the longest.

The argument matrix applies the coefficients to each channel of each input clip where the channels are in the numerical order of their channel constants. For example a stereo clip will have its channels presented in the order FRONT_LEFT and then FRONT_RIGHT.

Output channels and order is determined by the channels_out array between input index and output channel happens on the order of lowest output channel identifier to the highest.

Will stop processing with an error if clipping is detected if overflow_error is set. If it’s false a warning will be printed for the first audio block with clipping.

Below are some examples of useful operations.

Downmix stereo audio to mono:

AudioMix(clips=clip, matrix=[0.5, 0.5], channels_out=[vs.FRONT_CENTER])

Downmix 5.1 audio:

AudioMix(clips=clip, matrix=[1, 0, 0.7071, 0, 0.7071, 0, 0, 1, 0.7071, 0, 0, 0.7071], channels_out=[vs.FRONT_LEFT, vs.FRONT_RIGHT])

Copy stereo audio to 5.1 and zero the other channels:

AudioMix(clips=c, matrix=[1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], channels_out=[vs.FRONT_LEFT, vs.FRONT_RIGHT, vs.FRONT_CENTER, vs.LOW_FREQUENCY, vs.BACK_LEFT, vs.BACK_RIGHT])