sidecar

sidecar · processors · schema v1

Stereo sidechain compressor — Giannoulis-Massberg-Reiss 2012 JAES topology (cross-checked against Faust's co.compressor_stereo). Stereo audio in, dedicated SC L/R inputs (with normalling fallback: both unpatched → self-detect on the audio pair, the typical "use this as a plain stereo comp" default). The SC detector path runs a one-pole HPF (sc_hpf 20..1000 Hz, default 20 = effectively off) for kick-immune bus compression, then |sL|+|sR| stereo-link rectifier → log2 → 3-region soft-knee gain computer → asymmetric one-pole smoother (attack 0.1..200 ms log, release 1..2000 ms log) → linear gain via 2^(gainDb/6.0205). Stereo-link is always on in v1 so transients never shift the image under compression. Two ENV outputs expose the reduction envelope for cross-patch ducking: env_out = (-gainDb / 24) * envMag (NO clamp — at envMag>1 the output can overshoot 1.0, by spec), and env_inv_out = 1 - env_out (the canonical "patch this into a VCA strength to make it close when the comp fires"). Threshold (-60..0 dB) and envMag (0..2) are CV-modulatable; ratio, attack, release, knee, makeup, and sc_hpf are knob-only. Per-sample param smoothing kills clicks on rapid threshold / envMag changes. The 6.0205 factor (= 20·log10(2)) is the GMR-canonical log2↔dB bridge that lets the smoother run cleanly in the dB domain.

A stereo sidechain ducker — the classic 'pumping' compressor where one signal pushes another down. The MAIN pair is the trigger (typically a kick drum); the SIDECHAIN pair is the signal that gets ducked and summed into the output (typically a pad or bass). The sidechain is always present at the output EXCEPT when the main fires, at which point the detector pulls it down by a compressor-style gain computer (threshold, ratio, knee, attack, release) and lets it spring back. Detection is stereo-linked so a transient on either main channel ducks both output channels equally (no image shift), and a sidechain high-pass lets you key off the kick's body without the low end choking the detector. Two extra CV outputs (ENV and ENV INV) expose the live ducking envelope for cross-patching the same pump into other VCAs. Real-source chain: feed a rhythmic source into MAIN and the bus you want pumped into SIDECHAIN.

the faceplate

sidecaraudio_l_inaudioaudio_r_inaudiosc_l_inaudiosc_r_inaudiothreshold_cvcvenv_mag_cvcvinput_level_cvcvaudio_l_outaudioaudio_r_outaudioenv_outcvenv_inv_outcvaudiocvgatepitch
7 inputs · 4 outputs · 9 params

inputs

idcablewhat it does
audio_l_inaudioLeft MAIN / trigger input — the signal whose transients drive the ducking (e.g. a kick). It also passes through to the output untouched. Unpatched: silent.
audio signal; L/R stereo pair with audio_r_in — L-only auto-duplicates to R
audio_r_inaudioRight MAIN / trigger input. If unpatched it is normalled to MAIN L, so a mono trigger drives both detector channels.
audio signal; L/R stereo pair with audio_l_in
sc_l_inaudioLeft SIDECHAIN input — the signal that gets ducked and summed to the output (e.g. a pad). If the whole SC pair is unpatched, nothing is ducked and only the MAIN passes through.
audio signal; L/R stereo pair with sc_r_in — L-only auto-duplicates to R
sc_r_inaudioRight SIDECHAIN input. If unpatched it is normalled to SC L (mono sidechain to both output channels).
audio signal; L/R stereo pair with sc_l_in
threshold_cvcvCV that adds to the THRESHOLD knob — modulate how loud the main must get before ducking begins.
control voltage (CV); modulates threshold (additive offset — ±1 CV sweeps the full range, centered on the knob)
env_mag_cvcvCV that adds to the ENV MAG knob — scale how far the ENV / ENV INV outputs swing for a given amount of gain reduction.
control voltage (CV); modulates envMag (additive offset — ±1 CV sweeps the full range, centered on the knob)
input_level_cvcvCV that adds to the INPUT LVL knob — modulate the sidechain's input gain (how loud the ducked signal sits in the output).
control voltage (CV); modulates inputLevel (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
audio_l_outaudioLeft output: the MAIN left passthrough plus the ducked left sidechain.
audio signal; L/R stereo pair with audio_r_out
audio_r_outaudioRight output: the MAIN right passthrough plus the ducked right sidechain.
audio signal; L/R stereo pair with audio_l_out
env_outcvThe ducking envelope as CV (rises as gain reduction increases). It is NOT hard-clamped: with ENV MAG above 1 it can exceed 1.0 — patch it where overshoot is tolerated. Use it to drive another VCA's strength so it ducks in time with this one.
control voltage (CV)
env_inv_outcvThe inverted ducking envelope (1 − ENV), also un-clamped (can go negative when ENV exceeds 1). Patch it into a downstream VCA's strength to make that VCA CLOSE while this ducker is reducing.
control voltage (CV)

params

idlabelrangedefaultcurve
thresholdThreshold-60..0dB-18linear
ratioRatio1..204log
attackAttack0.1..200ms10log
releaseRelease1..2000ms100log
kneeKnee0..24dB6linear
envMagEnv Mag0..21linear
inputLevelInput Lvl0..2%1linear
makeupMakeup0..24dB0linear
sc_hpfSC HPF20..1000Hz20log

controls

controlwhat it does
AttackHow fast the duck clamps down after the main fires (0.1 to 200 ms, log, default 10): short for a snappy pump, longer for a gentler dip.
Env MagScales how far the ENV / ENV INV CV outputs swing for a given gain reduction (0 to 2, default 1). At 1 a 24 dB reduction reaches ENV 1.0; above 1 the env overshoots past 1.0. Display/CV-shaping only — does not change the audio ducking. The MAG CV input adds to this.
Input LvlInput gain on the SIDECHAIN signal before ducking (0 to 200%, default 100%): boost a quiet pad into the mix or trim a loud one. The LVL CV input adds to this.
KneeThe soft-knee width around the threshold in dB (0 to 24, default 6): a wider knee eases ducking in gradually instead of switching hard at the threshold.
MakeupA fixed output gain in dB added after ducking (0 to 24, default 0) to bring the overall level back up.
RatioHow hard the sidechain is pushed down once over threshold (1:1 to 20:1, default 4): higher ratios duck more aggressively.
ReleaseHow fast the sidechain springs back up after the main passes (1 to 2000 ms, log, default 100): this sets the 'breath' / pumping speed.
SC HPFA high-pass on the DETECTOR signal only (20 to 1000 Hz, log, default 20 = effectively off): raise it so the detector keys on the main's punch rather than its low end, preventing bass from over-triggering the duck. It does not filter the audio you hear.
ThresholdThe main level (in dB) above which ducking kicks in (-60 to 0 dB, default -18): lower it to duck on quieter hits, raise it so only loud transients pump the sidechain. The THR CV input adds to this.

source

sidecar.ts on GitHub.

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