charlotte's echos
charlottesEchos · effectsDestructive multi-head stereo delay. Pitch-shifted feedback with decay.
the faceplate
3 inputs · 2 outputs · 0 params
inputs
| id | cable | what it does |
|---|---|---|
L | audio | Left-channel input feeding the multi-head delay cascade. audio signal; L/R stereo pair with R — L-only auto-duplicates to R |
R | audio | Right-channel input feeding the cascade. If unpatched it is normalled from L, so a mono source into L alone drives both channels of the cascade and the echoes come back centred rather than hard-left. audio signal; L/R stereo pair with L |
delay | cv | CV that scales the DELAY-time knob (log-scaled), shifting all tap times together — sweep it for tape-warble and pitch-bend smears on the echoes. control voltage (CV); modulates delay (multiplicative ≈ octaves — ±1 CV spans the param’s log range) |
outputs
| id | cable | what it does |
|---|---|---|
L | audio | Left-channel output: the dry signal blended with the four-stage wet cascade per MIX. ⚠ The two channels are INDEPENDENT CASCADES sharing one control set — there is no width, no ping-pong and no stereo offset here (the DSP pins all three to 0), so silence into L with signal into R measures a bit-exact 0.0000 on this output. "Stereo" means two mono paths, not an image. audio signal; L/R stereo pair with R |
R | audio | Right-channel output: the dry signal blended with the wet cascade per MIX. Independent of L in both directions — measured max|L−R| = 0.000e+0 for a mono source and zero cross-talk for two different sources. audio signal; L/R stereo pair with L |
controls
| control | what it does |
|---|---|
| Decay | Per-tap colour-decay (0..1): progressively tapers each later stage's wet level and adds in-loop tanh drive plus high-frequency loss, so the repeats darken and degrade as they fade — the 'destructive', dub-delay character. ⚠ IT IS THREE CONTROLS AT ONCE AND ITS NAME SAYS ONE. Measured wet-only: a LEVEL control (peak 2.0000 at 0 down to 0.0381 at 1, ~22 dB), a TONE control (spectral centroid 1040 Hz → 125 Hz), and — because the drive it adds sits INSIDE each feedback loop with small-signal gain 1 + DECAY × (1+stage) × 0.8, up to 4.2 at the last stage — the other half of the stability boundary. At the shipped FEEDBACK of 0.5 the boundary is DECAY 0.29: turning a 'darkening' dial from 0.2 to 0.35 is what makes the module a drone. |
| Delay | Base tap time in seconds, log-scaled 1 ms..1.5 s — the spacing of the first echo (the cascade stages derive from it, each running at a quarter of it). Measured first-echo time / knob = 1.000 from 3 ms up. Summed with the DELAY CV input. ⚠ THE BOTTOM OF THE DIAL IS A FLOOR: each stage clamps at 0.5 ms, so the cascade cannot go below 2 ms and every setting from the 1 ms minimum up to 2 ms renders BIT-IDENTICALLY — about 9 % of the log travel. It also sets how FAST a tail fades rather than whether it does: at a fixed FEEDBACK and DECAY the same loop gain loses 47 dB/s at 0.15 s and 7 dB/s at 1.0 s, because the round trip is DELAY/4. |
| Feedback | Feedback amount fed to EVERY stage (0..1) — the largest authority on the module (25.6 dB of RMS span across its travel). ⚠ IT IS HALF OF A STABILITY BOUNDARY, not an amount control. Each stage multiplies it by 0.995 and by its own in-loop drive (see DECAY), so the loop gain is FEEDBACK × 0.995 × (1 + DECAY × 4 × 0.8); when that reaches 1 the echoes NEVER DECAY. At the shipped DECAY of 0.2 the boundary is FEEDBACK 0.59 — inside the normal working range of the dial. It never self-oscillates from nothing (feedback 1 with no input renders bit-exact silence): it needs a seed, and once seeded it keeps it. |
| Mix | Dry / wet balance (0..1): 0 is the clean input, 1 is the cascade only, between crossfades the two. It is the only control provably OUTSIDE every feedback loop — measured, it moves the level 9.8 dB and the tail length 0.00 s. ⚠ It is also what turns the wet path's internal ±2 clamp into an output clip: at DECAY 0 / FEEDBACK 0.9 / MIX 1 a sustained source measures peak 2.0000 with 84 % of samples past full scale, where the same patch at the shipped MIX 0.5 measures 1.30. |
| PitchUp | Per-stage upward pitch shift (0..0.2). At 0 the internal varispeed grain shifter is bypassed entirely and the echoes repeat at pitch; above 0 each successive stage is transposed up by a compounding ratio, so content that traverses stages 1-3 climbs by (1+PITCH)^6 — at 0.1 that is +990 cents, most of an octave, which no 0..0.2 linear dial hints at. ⚠ IT IS ALSO A TIME CONTROL, AND IT IS DISCONTINUOUS AT ZERO: each engaged shifter seeds its read lag at half of a 30 ms grain window, so the instant PITCH leaves 0 the three engaged stages insert 45.000 ms between the hit and the first echo (measured to the sample at PITCH = 1e-9), after which the offset wanders anywhere in 16.6-25.2 ms with the grain phase. ⚠ AND IT COSTS 15-28 dB of wet level: the two grain taps sum with unity GAIN but read content 15 ms apart, so their POWER sum is at best 3 dB down per engaged stage. Set it, do not ride it. |
source
charlottes-echos.ts on GitHub.