attenumix

attenumix · utilities · schema v1

The simple mixer — a 4-channel attenuating mixer with per-channel direct outs and a master gain. Each channel's level is knob + CV summed and clamped to 0..1 (attenuators only attenuate, never boost), giving a per-channel direct out; all four sum into a master (0..2) with a tanh soft-clip so pushing the master past unity stays musical. Compared to VEILS (same quad-VCA-plus-mix topology) ATTENUMIX has no per-channel boost and no linear/exponential toggle — it is the no-surprises "the mixer" where every knob does exactly what it says. CV inputs are passthrough-by-design so a ±1 V LFO at knob=0 sweeps a channel's full open range.

The simple, no-surprises mixer: four channels, each with its own attenuator knob (0..1) and a CV input that sums into that knob, plus a per-channel direct out and one summed MIX output. Per channel out = in · clamp(knob + cv, 0, 1) — the attenuators only ATTENUATE, they never boost or invert (a negative knob+CV mutes, not phase-flips). The four channels sum and pass through a MASTER gain, then a tanh soft-clip: out = tanh(sum · master). Master goes up to ×2, so pushing past unity drives the sum into the tanh for warm saturation instead of a hard digital clip. Compared with VEILS (same quad-VCA-plus-mix topology) ATTENUMIX is the toggle-free 'just the mixer' version — the boost lives on the master, not per channel. There is a DSP worklet for the per-sample math.

the faceplate

attenumixin1audioin2audioin3audioin4audiocv1cvcv2cvcv3cvcv4cvout1audioout2audioout3audioout4audiomixaudioaudiocvgatepitch
8 inputs · 5 outputs · 5 params

inputs

idcablewhat it does
in1audioChannel 1 audio input. Scaled by clamp(Att1 + CV1, 0, 1) into both the channel-1 direct out and the summed mix.
audio signal
in2audioChannel 2 audio input. Scaled by clamp(Att2 + CV2, 0, 1).
audio signal
in3audioChannel 3 audio input. Scaled by clamp(Att3 + CV3, 0, 1).
audio signal
in4audioChannel 4 audio input. Scaled by clamp(Att4 + CV4, 0, 1).
audio signal
cv1cvCV that sums into the channel-1 attenuator (knob + CV, clamped 0..1). Passed through raw (no scaling), so a ±1 LFO at knob=0 already sweeps the channel full range — the negative half is rejected by the clamp, the positive half fully opens the channel.
control voltage (CV)
cv2cvCV summed into the channel-2 attenuator (raw, knob + CV clamped 0..1).
control voltage (CV)
cv3cvCV summed into the channel-3 attenuator (raw, knob + CV clamped 0..1).
control voltage (CV)
cv4cvCV summed into the channel-4 attenuator (raw, knob + CV clamped 0..1).
control voltage (CV)

outputs

idcablewhat it does
out1audioChannel 1 direct out — the post-attenuator signal (in1 · att1) BEFORE the summing bus and master, for splitting a channel off on its own.
audio signal
out2audioChannel 2 direct out (in2 · att2), pre-mix.
audio signal
out3audioChannel 3 direct out (in3 · att3), pre-mix.
audio signal
out4audioChannel 4 direct out (in4 · att4), pre-mix.
audio signal
mixaudioThe summing bus: tanh((out1 + out2 + out3 + out4) · master). The four attenuated channels summed, scaled by the MASTER knob, then soft-clipped — driving master above 1 recruits the tanh for warm saturation.
audio signal

params

idlabelrangedefaultcurve
att1Att10..10linear
att2Att20..10linear
att3Att30..10linear
att4Att40..10linear
masterMaster0..21linear

controls

controlwhat it does
Att1Channel 1 attenuator, linear 0..1 (default 0 = muted). Sets the channel's level; sums with CV1 and is clamped to 0..1, so it only ever cuts — there is no boost or polarity flip here.
Att2Channel 2 attenuator, linear 0..1 (default 0 = muted). Sums with CV2, clamped 0..1.
Att3Channel 3 attenuator, linear 0..1 (default 0 = muted). Sums with CV3, clamped 0..1.
Att4Channel 4 attenuator, linear 0..1 (default 0 = muted). Sums with CV4, clamped 0..1.
MasterOutput gain on the summed bus, linear 0..2 (default 1.0 = unity). Below 1 trims the whole mix down; above 1 boosts the sum INTO the tanh soft-clip for warm saturation rather than a hard clip. Applies only to the MIX output, not the per-channel direct outs.

source

attenumix.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo