cloudseed

cloudseed · effects · schema v1

Exact algorithm port of Ghost Note Audio's CloudSeed reverb (MIT-licensed, github.com/GhostNoteAudio/CloudSeedCore). Stereo input cross-mixes then per-channel passes through: optional 1-pole HP + LP pre-EQ → modulated pre-delay → multitap early-reflection field (up to 256 taps, seed-deterministic) → AllpassDiffuser (up to 12 stages) → 12 parallel late-field DelayLine voices, each with optional in-loop AllpassDiffuser + LowShelf + HighShelf + LP, with T60-targeted feedback that produces a precise decay-seconds tail. Cross-seed control divides the L/R seeded delay layouts for stereo decorrelation. 45 parameters total — 7 macros (DRY / EARLY / LATE faders, INPUT MIX, LOW CUT, HIGH CUT, CROSS SEED) are exposed as AudioParams for CV summing; 38 toggle/integer/seed/modulation parameters live on the worklet's message port. Bundled v1 preset bank: DIVINE INSPIRATION (DarkPlate from Programs.h verbatim), SHORT ROOM, BRIGHT HALL, INFINITE PAD. Card footer cycles through the preset bank with click-numbered slots, prev/next arrows, and a live DECAY readout that reflects LateLineDecay's computed RT60.

An algorithmic reverb — an exact port of Ghost Note Audio's open-source CloudSeed. Audio fed into the stereo inputs runs through three stages whose levels you blend at the output: a TAPS multitap layer (sparse early echoes), an EARLY diffusion network (smearing those into a denser cloud), and a LATE reflections tank (a bank of modulated, decaying delay lines that build the long reverberant tail) — with a per-channel EQ shaping the wet signal and input/output filters trimming the lows and highs. The character is set by the four panels' knobs: TAP count/decay/predelay/length, DIFFUSION stages/feedback/modulation, LATE line size/count/decay/modulation, and the EQ shelves + lowpass. Because the delay-line layout is built from a random SEED, raising CROSS SEED de-correlates the left and right tanks for a wider stereo image. Seven 'macro' knobs (the output mix faders + input mix + the two cut filters + cross seed) are CV-able AudioParams; the rest of the algorithm's parameters live on the card and are pushed to the worklet over its message port. A footer preset bank lets you jump between bundled spaces (DIVINE INSPIRATION / SHORT ROOM / BRIGHT HALL / INFINITE PAD).

the faceplate

cloudseedin_laudioin_raudiodry_cvcvearly_cvcvlate_cvcvinput_mix_cvcvlow_cut_cvcvhigh_cut_cvcvcross_seed_cvcvout_laudioout_raudioaudiocvgatepitch
9 inputs · 2 outputs · 8 params

inputs

idcablewhat it does
in_laudioLeft audio input into the reverb tank. Pairs with IN R as the stereo source; patch a mono signal into either to feed both via the input-mix stage.
audio signal; L/R stereo pair with in_r — L-only auto-duplicates to R
in_raudioRight audio input into the reverb tank, partnering IN L for the stereo source.
audio signal; L/R stereo pair with in_l
dry_cvcvCV that offsets the DRY output-mix macro (0..1, ±1 CV sweeps the full span around the knob): raise the level of the unprocessed signal in the output blend.
control voltage (CV); modulates dry_out (additive offset — ±1 CV sweeps the full range, centered on the knob)
early_cvcvCV that offsets the EARLY output-mix macro: raise the level of the early-reflections/diffusion layer in the blend.
control voltage (CV); modulates early_out (additive offset — ±1 CV sweeps the full range, centered on the knob)
late_cvcvCV that offsets the LATE output-mix macro: raise the level of the long reverberant tank in the blend — modulate it for swells.
control voltage (CV); modulates late_out (additive offset — ±1 CV sweeps the full range, centered on the knob)
input_mix_cvcvCV that offsets the INPUT MIX macro (pre-tank mid/side balance), shifting how the stereo source is summed into the reverb.
control voltage (CV); modulates input_mix (additive offset — ±1 CV sweeps the full range, centered on the knob)
low_cut_cvcvCV that offsets the LOW CUT macro — the input high-pass corner — to thin or thicken the lows entering the tank.
control voltage (CV); modulates low_cut (additive offset — ±1 CV sweeps the full range, centered on the knob)
high_cut_cvcvCV that offsets the HIGH CUT macro — the output low-pass corner — to darken or brighten the wet signal.
control voltage (CV); modulates high_cut (additive offset — ±1 CV sweeps the full range, centered on the knob)
cross_seed_cvcvCV that offsets the CROSS SEED macro, de-correlating the left/right tank layouts for a wider (or narrower) stereo image as it moves.
control voltage (CV); modulates cross_seed (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
out_laudioLeft channel of the wet+dry reverb mix (dry + early + late, post-EQ and post-high-cut). Pair with OUT R to keep the stereo width.
audio signal; L/R stereo pair with out_r
out_raudioRight channel of the wet+dry reverb mix, the partner of OUT L.
audio signal; L/R stereo pair with out_l

params

idlabelrangedefaultcurve
dry_outDry0..10.87linear
early_outEarly0..10linear
late_outLate0..10.66linear
input_mixInput Mix0..10.23linear
low_cutLow Cut0..10.64linear
high_cutHigh Cut0..10.29linear
cross_seedCross Seed0..10linear
preset_indexPreset0..?0discrete

controls

controlwhat it does
Cross SeedCROSS SEED — inter-channel seed offset: blends the left tank's random layout toward an inverted seed so the two channels de-correlate, widening the stereo image (0 = identical L/R, up = wider). CV via the X-SEED input.
DryDRY output level — how much of the unprocessed input is in the blend (0 = fully wet/muted dry, up = louder dry). Internally a dB fader (−30 dB..0 dB; the bottom reads MUTED). CV via the DRY input.
Early diffuse countDIFFUSION STAGES — number of cascaded all-pass diffusers (1..12); more stages smear the early reflections into a smoother, denser cloud.
Early diffuse delayDIFFUSION DELAY — the per-stage all-pass delay length (ms), setting the grain/texture of the early diffusion.
Early diffuse enabledDIFFUSION enable (the panel ON/OFF) — switches the early all-pass diffusion network (which smears the taps into a denser cloud) in or out.
Early diffuse feedbackDIFFUSION FEEDBACK — the all-pass feedback coefficient (0..100%); higher thickens and lengthens the early diffusion.
Early diffuse mod amtDIFFUSION MOD AMT — how much the early diffusers' delays are modulated, adding chorusing/shimmer to the early field.
Early diffuse mod rateDIFFUSION MOD RATE — the LFO rate (Hz) of the early-diffusion modulation.
EarlyEARLY output level — the early-reflections/diffusion layer in the blend (dB fader, MUTED at the bottom). CV via the EARLY input.
Eq cutoffEQ CUTOFF — the corner frequency (Hz) of the wet-path lowpass.
Eq high freqEQ HI FREQ — the corner frequency (Hz) of the wet-path high shelf.
Eq high gainEQ HI GAIN — boost/cut (dB) of the high shelf, brightening or darkening the tail.
Eq high shelf enabledEQ HIGH SHELF enable (the HS pill) — switches the wet-path high shelf in or out.
Eq low freqEQ LO FREQ — the corner frequency (Hz) of the wet-path low shelf.
Eq low gainEQ LO GAIN — boost/cut (dB) of the low shelf, warming or thinning the reverb tail.
Eq low shelf enabledEQ LOW SHELF enable (the LS pill) — switches the wet-path low shelf in or out.
Eq lowpass enabledEQ LOWPASS enable (the LP pill) — switches the wet-path lowpass (set by EQ CUTOFF) in or out.
High CutHIGH CUT — the output low-pass filter corner (~400 Hz–20 kHz); darkens the wet signal. Engaged by the HIC ON/OFF toggle. CV via the HI CUT input.
High cut enabledHIGH CUT enable (the HIC pill) — switches the output low-pass filter (set by HIGH CUT) in or out of circuit.
Input MixINPUT MIX — the pre-tank mid/side balance of the stereo source feeding the reverb (0..1). CV via the IN MIX input.
InterpolationINTERPOLATION on/off — enables fractional-delay interpolation in the tank for smoother modulation (cleaner pitch movement) at a small CPU cost.
Late diffuse countLATE DIFFUSION COUNT — number of all-pass diffusers in the late tank (1..8); more = a smoother, more washed-out tail.
Late diffuse delayLATE DIFFUSION DELAY — the per-stage all-pass delay (ms) inside the late tank, shaping its texture.
Late diffuse enabledLATE DIFFUSION enable (the panel ON/OFF) — switches the all-pass diffusion stage inside the late tank in or out.
Late diffuse feedbackLATE DIFFUSION FEEDBACK — feedback coefficient of the late-tank diffusers (0..100%); higher lengthens and thickens the diffuse tail.
Late diffuse mod amtLATE DIFFUSION MOD AMT — modulation depth of the late-tank diffusers, adding shimmer to the tail.
Late diffuse mod rateLATE DIFFUSION MOD RATE — the LFO rate (Hz) of the late-diffusion modulation.
Late line countLATE LINE COUNT — number of parallel delay lines in the reverb tank (1..12); more lines = a denser, smoother tail.
Late line decayLATE LINE DECAY — the reverb time / RT60 of the tank (the live DECAY readout): how long the tail takes to die away, from a short room to the near-infinite pad.
Late line mod amtLATE LINE MOD AMT — how much the tank delay lines are modulated, adding movement and de-metallizing long tails.
Late line mod rateLATE LINE MOD RATE — the LFO rate (Hz) of the tank delay-line modulation.
Late line sizeLATE LINE SIZE — the delay-line length (ms) of the tank, i.e. the perceived size of the space (short = small room, long = big hall).
Late modeLATE MODE (PRE/POST) — whether the late tank's diffusion sits before (PRE) or after (POST) its delay lines, changing how the tail builds.
LateLATE output level — the long reverberant tank in the blend, the main "reverb" you hear (dB fader, MUTED at the bottom). CV via the LATE input.
Low CutLOW CUT — the input high-pass filter corner (mapped along CloudSeed's frequency curve, ~20 Hz–1 kHz); rolls off lows before they enter the tank. Engaged by the LOC ON/OFF toggle. CV via the LO CUT input.
Low cut enabledLOW CUT enable (the LOC pill) — switches the input high-pass filter (set by LOW CUT) in or out of circuit.
PresetThe active preset slot in the bundled bank (DIVINE INSPIRATION / SHORT ROOM / BRIGHT HALL / INFINITE PAD). Clicking a footer slot, or the ‹ / › arrows, writes that whole preset (every macro + message-port value) into the module so all collaborators see the same space.
Seed delayDELAY SEED — the random seed for the late tank's delay-line lengths; reshapes the tail's modal structure.
Seed diffusionDIFFUSION SEED — the random seed for the diffusion all-pass layout; reshapes the diffuse texture without changing the macro settings.
Seed post diffusionPOST-DIFFUSION SEED — the random seed for the post-tank diffusion stage; another knob for re-rolling the late texture.
Seed tapTAP SEED — the random seed for the multitap layout; change it to audition a different early-reflection pattern at the same settings.
Tap countTAP COUNT — how many discrete early taps the multitap layer fires (1..256); more taps = denser early reflections.
Tap decayTAP DECAY — how quickly successive taps fall in level (0..100%); higher = the early taps die away faster.
Tap enabledTAPS enable (the panel ON/OFF) — switches the multitap early-echo layer in or out.
Tap lengthTAP LENGTH — the total time span (ms) the taps are spread across; longer = the early-reflection cluster lasts longer.
Tap predelayTAP PRE-DELAY — a gap (ms) before the first tap, pushing the early reflections later for a sense of a larger or more distant space.

source

cloudseed.ts on GitHub.

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