Cascading Echoes — User Guide
Randomized multi-tap FIR delay: parallel delayed copies of the dry signal with exponential tap gains, independent L/R tap sets, and optional multichannel alternation.
What this does
Despite its name, the current engine is not a feedback delay and not a chain of echoes feeding later echoes. It is a parallel multi-tap FIR structure. For each tap k, the script chooses one random delay and adds a delayed copy of the original dry signal with gain decay^k.
wet[n] = dry[n] + sum(k=1..N) decay^k × dry[n - delay[k]]
The source is first extended with a silent tail, so delayed copies from the end of the source can ring into that region.
Quick start
- Select exactly one Sound.
- Run
Cascading_Echoes.praat. - Choose Default, Short and Tight, Long Ambient Tail, Wide Stereo Delay, or Custom.
- Set Wet/Dry and optionally visualization/playback.
Output: <source>_echo_<preset>. Output duration is source duration + Tail_duration_s.
Tap generation and randomness
Delay controls are specified in milliseconds and converted to integer samples at the source sample rate. Each run independently draws one left-range and one right-range delay per tap. There is no user seed, so repeated runs can produce different patterns.
Custom ranges are automatically reordered if minimum exceeds maximum. All generated delays are at least one sample. Iterations is limited internally to 256, and decay values above 1.0 are capped at 1.0.
Presets
| Preset | Tail | Taps | L delay | R delay | Decay L/R |
|---|---|---|---|---|---|
| Default | 1.0 s | 5 | 10–100 ms | 12–120 ms | 0.80 / 0.75 |
| Short and Tight | 0.5 s | 3 | 5–40 ms | 7–50 ms | 0.90 / 0.88 |
| Long Ambient Tail | 2.5 s | 7 | 25–250 ms | 30–300 ms | 0.85 / 0.82 |
| Wide Stereo Delay | 1.5 s | 6 | 15–120 ms | 40–350 ms | 0.78 / 0.72 |
Parameters
| Control | Default | Meaning |
|---|---|---|
| Tail_duration_s | 1.0 | Silent extension appended before the taps are calculated into the output. |
| Iterations | 5 | Number of parallel delayed copies per tap set. |
| Delay_min_ms / Delay_max_ms | 10 / 100 | Left/odd-channel random-delay interval. |
| Stereo_delay_min_ms / max | 12 / 120 | Right/even-channel random-delay interval. |
| Decay_left / Decay_right | 0.80 / 0.75 | Tap k uses gain decay^k. |
| Wet_dry_percent | 60 | Linear final wet/dry mix, clamped 0–100%. |
Channel behavior and level
- Mono: uses the L tap set.
- Stereo: left uses L taps and right uses R taps. Each processed channel is independently peak-scaled to 0.95 before recombination, so the original L/R level relationship may change.
- 3+ channels: odd channels use L taps; even channels use R taps. One common final normalization preserves inter-channel balance.
- Sample rate: preserved. Processing uses a private zero-based copy, so output starts at 0 s.
- Normalization: every non-silent output is peak-normalized to 0.95, including a 0% wet run. This is target normalization, not an attenuate-only ceiling.
Visualization
The page shows: an echo-tap diagram (L green, R blue, dry at time zero), a parameter/tap report, a first-500-ms original/processed overlay, a full original/processed waveform comparison on a shared amplitude scale, and a summary strip. For stereo, the report explicitly notes the per-channel peak scaling; for 3+ channels it reports the odd/even tap assignment.