Ref / Hz.Plugins / Hz.Mix

Hz.Samplo, Hz.Syntho, FluidSynth, Hz.Osc
Hz.Filt, Hz.Echo, Hz.Delay, Hz.Reverb
Hz.Mix, Hz.LFO, Hz.ADSR
see also Hz.Builtins, Plugin Explorer, Hz.Plugins Examples


Wherein we mix it up for fun and profit.

Hz.Mix

Hz.Mix is a utility node used to combine and modify audio signals.

Hz.Mix supports two input ports. The first (required) can be configured mono or stereo and the second (optional) port is currently assumed mono.

Any number of input signals can be connected to each port. With no connections to port1, we apply the mix op to Σ(input0) otherwise the mix op is applied to the product of their sums: Σ(input0) * Σ(input1). This optional sidechain input allows you to achieve effects like Amplitude Modulation (enveloping) and Ring Modulation.

Webview GUI

Hz.Mix's webview GUI panel groups all Hz.Mix instances into a single group and offers group-wide control over them: Mute All, Unmute All, Toggle All.

Each invidividual subpanel supports these widgets / displays:

Parameters

It only takes a few parameters to control Hz.Mix:

Name Description Range
Gain Signal Gain (in dB) -20-20 (0)
Pan Stereo Position 0-1 (.5: center)
Mode Op Mode 0:Mute, 1:Normal, 2:Bypass
UpdateGUI Periodically sent signal levels to GUI true
Config and Pan

The effects of the Pan parameter depends on your network configuration.

MixMode Description Config
1 to 1 Monophonic Gain, Pan Ignored {cfg: "1to1"||"mono"}
2 to 1 Mixdown Gain, Pan used to weigh inputs {cfg: "2to1"}
1 to 2 Stereo Gain, Pan used to position input {cfg: "1to2"}
2 to 2 Stereo Gain, Pan Ignored * {cfg: "2to2"||"stereo"}

* It should also be noted that Pan is a standard Note Expression and may be implemented by polyphonic instruments to position individual notes within the stereo field. This is why MixMode 2 to 2 currently ignores Pan.

Here's an example stereo setup:

let mix = scene.NewAnode("Hz.Mix", {cfg: "stereo"});
let osc = scene.NewAnode("Hz.Osc", {cfg: "stereo"}); 
         // Hz.Osc:UnisonSpread requires stereo
scene.Chain(osc, mix, scene.GetDAC());

Dual Port Usage (Sidechain)

To configure Hz.Mix for side-chaining:

scene.Chain(osc, mix); // osc -> mix's default input
scene.Chain([adsr,0,1], mix); // adsr out:0 -> mix's "sidechain" (input:1)

produces this graph:

See Also

Hz.Mix Examples

home .. topics .. interface .. reference .. examples .. tipjar