Ping-Pong Field — User Guide
Stereo convolution delay field built from two decorrelated sparse impulse responses with alternating spatial offsets and a one-sample high-frequency sparkle component.
What this does
Ping-Pong Field does not run a recursive feedback delay line. It first constructs separate left and right sparse impulse responses, then applies them with FFT convolution. Each IR contains many delayed signed taps whose delay, amplitude, and small local spectral emphasis vary independently. The final result is always a stereo field.
Quick start
- Select exactly one Sound.
- Run
Ping_Pong_Field.praat. - Choose Custom, Subtle, Medium, Heavy, or Extreme.
- Set Wet/Dry and, if needed, edit delay range, echo count, decay, offset, jitter, sparkle, tail, and fade.
- Click OK. The result is named
original_pingpong_PresetName.
Presets
| Preset | Tail | Echoes | Delay range | Base amp | Decay | Offset | Jitter | Sparkle |
|---|---|---|---|---|---|---|---|---|
| Subtle | 1.5 s | 50 | 25–800 ms | 0.18 | 0.96 | 2 ms | 3 ms | 0.20 |
| Medium | 2.0 s | 90 | 20–1200 ms | 0.25 | 0.95 | 3 ms | 4 ms | 0.30 |
| Heavy | 2.5 s | 130 | 15–1600 ms | 0.30 | 0.94 | 4 ms | 6 ms | 0.40 |
| Extreme | 3.5 s | 180 | 10–2200 ms | 0.35 | 0.93 | 6 ms | 8 ms | 0.50 |
Wet/Dry, Draw and Play are not replaced by presets.
Parameters
| Parameter | Default | Meaning |
|---|---|---|
| Tail_duration_s | 2.0 | Silent tail appended before mixing. |
| Number_of_echoes | 90 | Number of taps in each channel IR. |
| Min_delay_s / Max_delay_s | 0.02 / 1.2 | Nominal delay span; reversed Custom bounds are reordered internally. |
| Base_amplitude | 0.25 | Initial tap scale before decay and random variation. |
| Decay_factor | 0.95 | Per-tap geometric decay, internally clamped to 0…1. |
| Ping_pong_offset_s | 0.003 | Alternating timing offset that helps separate the two sides. |
| Jitter_s | 0.004 | Uniform random timing deviation around each nominal tap. |
| HF_sparkle | 0.3 | Strength of the one-sample pre-emphasis pair around each tap. |
| Wet_dry_percent | 60 | 0% dry only, 100% echoes only. |
| Fadeout_duration_s | 1.0 | Cosine fade restricted to the appended tail. |
Echo engine
- Construct the left IR by distributing taps across the delay range, alternating the spatial offset, adding random jitter, geometric amplitude decay, sign changes, and random amplitude variation.
- Add the HF-sparkle sample immediately before each main tap.
- Build a decorrelated right IR with a slightly narrower delay range, reversed offset pattern, slightly different decay/amplitude, different sign sequence, and slightly lower jitter/sparkle.
- Convolve each dry side with its IR.
- Trim the convolution returns to source duration + Tail_duration_s.
- Mix dry and echoes according to Wet_dry_percent, fade the appended tail, combine to stereo, and apply a ceiling only if the stereo peak exceeds 0.98.
The random tap jitter and amplitude variation are not seeded, so repeated runs can differ.
Channels & output
Stereo input: left and right source channels remain distinct and are sent through the corresponding decorrelated IRs.
Mono input: the mono source feeds both IRs and becomes a stereo output.
3+ channel input: the source is first converted to mono, then that mono signal feeds the two IRs. The output is therefore stereo, not multichannel.
Output duration is exactly the original duration plus the effective tail. Final peak handling is attenuation-only: signals above 0.98 are scaled to 0.98; quieter signals are not boosted.
Visualization
The figure shows the dry waveform, the first source-duration portion of the stereo result, and a delay-field diagram for up to the first 50 nominal echoes. The delay-field diagram is a structural view: its stored points omit the per-run random jitter and amplitude perturbation used in the actual IR.