polarizer
polarizer · utilities · schema v1POLARIZER — a tiny 1-in / 1-out CV utility that converts a UNIPOLAR control voltage to a BIPOLAR one. Model: out = (2·in − 1) · DEPTH — it takes a [0, 1] input and stretches it across [−1, +1]. Computed sample-accurately by a pure Web Audio graph (a GainNode for the scale + a started ConstantSourceNode → GainNode for the offset, both summed; no worklet, no DSP build). Controls — DEPTH: the single bipolar-swing knob, range 0..1 on a LINEAR taper; default 1.0 = the FULL ±1 conversion (in=0 → −1, in=0.5 → 0, in=1 → +1), 0.5 → ±0.5, 0 → flat 0. DEPTH scales the swing symmetrically about 0, so the output always stays centered on 0 as you trim it. IO — IN (cv): the unipolar (0..1) control voltage to polarize (the affine map is defined for any value, it just linearly centers + scales); OUT (cv): the bipolar result, out = (2·in − 1)·depth. This is the bipolar counterpart of a unipolar envelope output (e.g. SYNESTHESIA's 0..1 follower). All patching is via the card's yellow drill-down PATCH PANEL (top-left / top-right affordances → INPUT / OUTPUT) — no side jacks. DEPTH is MIDI / control-surface assignable (right-click → MIDI Learn) like every other knob. Usage: patch a 0..1 envelope / LFO / sequencer CV through it to get a ±1 modulation source that can both RAISE and LOWER a destination (e.g. drive a filter cutoff above AND below its rest point from a unipolar envelope); pair with DEPOLARIZER for the round trip.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
in | cv | The unipolar control voltage to polarize, expected 0..1 (e.g. an envelope follower or a 0..1 LFO). The affine map is defined for any value — it just centers and linearly scales whatever arrives — but the labeled use is 0..1 in, ±depth out. control voltage (CV) |
outputs
| id | cable | what it does |
|---|---|---|
out | cv | The bipolar result, out = (2·in - 1)·depth. At depth 1: in=0 gives -1, in=0.5 gives 0, in=1 gives +1. The mid-point of the input (0.5) always maps to 0, so this is the signal centered on zero and ready to add to / subtract from a destination. control voltage (CV) |
params
| id | label | range | default | curve |
|---|---|---|---|---|
depth | DEPTH | 0..1 | 1 | linear |
controls
| control | what it does |
|---|---|
| DEPTH | Sets the bipolar swing on a linear 0..1 fader, scaling BOTH the slope and the offset together so the output stays centered on 0. 1 (default) = the full unipolar→bipolar conversion (±1); 0.5 = a half-size ±0.5 swing; 0 = flat 0 regardless of input. Effectively an attenuator on the polarized signal. |
source
polarizer.ts on GitHub.