unityscalemathematik
unityscalemathematik · utilities · schema v1Bipolar CV-shaping utility with three independent channels: a UNITY scaler (input * atten) plus two attenuvert sections (A, B) whose curve knob morphs the response from linear (k=1) to steep exponential (k=3) via y = sign(x) * |x|^k * atten. Sign is preserved across the curve morph so the transform stays bipolar. CV inputs on every atten/curve knob — useful for envelope shaping, LFO sculpting, or driving any modulation through a tunable response curve.
the faceplate
8 inputs · 3 outputs · 5 params
inputs
| id | cable | what it does |
|---|---|---|
u_in | cv | UNITY-section signal input. Passed through the linear attenuverter: u_out = u_in · unityAtten. control voltage (CV) |
u_atten_cv | cv | CV that sums into the UNITY attenuverter amount (linear), modulating how much the UNITY section scales/inverts its input. control voltage (CV); modulates unityAtten (additive offset — ±1 CV sweeps the full range, centered on the knob) |
a_in | cv | A-section signal input. Passed through the curve-morphed attenuverter: a_out = sign·|a_in|^k·aAtten. control voltage (CV) |
a_atten_cv | cv | CV that sums into the A attenuverter amount (linear) — voltage control over A's scale/invert. control voltage (CV); modulates aAtten (additive offset — ±1 CV sweeps the full range, centered on the knob) |
a_curve_cv | cv | CV that sums into the A curve amount (linear), sliding A's response between linear and exponential under modulation. control voltage (CV); modulates aCurve (additive offset — ±1 CV sweeps the full range, centered on the knob) |
b_in | cv | B-section signal input. Same curve-morphed attenuverter shape as A: b_out = sign·|b_in|^k·bAtten. control voltage (CV) |
b_atten_cv | cv | CV that sums into the B attenuverter amount (linear). control voltage (CV); modulates bAtten (additive offset — ±1 CV sweeps the full range, centered on the knob) |
b_curve_cv | cv | CV that sums into the B curve amount (linear), modulating B's linear↔exponential bend. control voltage (CV); modulates bCurve (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
u_out | cv | UNITY-section output, u_in · unityAtten — the plainly attenuverted (scaled, possibly inverted) signal. control voltage (CV) |
a_out | cv | A-section output, sign(a_in)·|a_in|^k·aAtten with k from the A curve — the sign-preserving curve-shaped attenuvert. control voltage (CV) |
b_out | cv | B-section output, the same sign-preserving curve-shaped attenuvert as A driven by B's own atten + curve. control voltage (CV) |
params
| id | label | range | default | curve |
|---|---|---|---|---|
unityAtten | Unity | -1..1 | 1 | linear |
aAtten | A Att | -1..1 | 1 | linear |
aCurve | A Crv | 0..1 | 0 | linear |
bAtten | B Att | -1..1 | 1 | linear |
bCurve | B Crv | 0..1 | 0 | linear |
controls
| control | what it does |
|---|---|
| A Att | A-section attenuverter, linear -1..+1 (default +1). Scales A's curve-shaped output; negative values invert it. |
| A Crv | A-section curve, linear 0..1 (default 0 = linear). 0 is a straight attenuvert; turning it up bends the response toward exponential (exponent k goes 1→3), compressing small signals while preserving large ones. Sign is always kept. |
| B Att | B-section attenuverter, linear -1..+1 (default +1). Scales B's curve-shaped output; negative inverts. |
| B Crv | B-section curve, linear 0..1 (default 0 = linear), bending B's response from linear toward steep exponential exactly like A's curve. |
| Unity | UNITY attenuverter, linear -1..+1 (default +1 = unity passthrough). +1 passes the input as-is, 0 mutes, -1 inverts; in between it attenuates (and flips below 0). |
source
unityscalemathematik.ts on GitHub.