Bursts & Taps Convolution — User Guide

Builds a synthetic impulse response from two sparse taps plus Gaussian-distributed burst clouds, then convolves it with the selected Sound.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.6.2 (2026) License: MIT License Repo: Praat AudioTools
Contents:

What this does

Bursts & Taps Convolution creates a mono impulse response (IR) containing two discrete taps and a set of random burst clusters. Each burst cluster is a cloud of PointProcess events drawn from a Gaussian distribution around a randomly chosen centre. The IR is then convolved with the selected Sound, and the dry and wet paths are mixed according to Wet_dry_percent.

Two temporal layers: the sparse taps provide two clear reference echoes. The burst clouds provide denser, irregular reflection structures. Because burst centres and Gaussian point locations are generated without a user seed, repeated runs can produce different IRs.

What is convolution?

Convolution applies an impulse response to a sound. Every impulse in the IR creates a delayed, scaled copy of the source; the copies overlap and sum. A sparse IR therefore behaves like a multi-tap echo pattern, while a denser IR produces a more diffuse response. In this tool the IR is generated algorithmically rather than recorded from a physical room.

IR structure

Sparse taps

Tap_1_time_s and Tap_2_time_s place two PointProcess events inside the IR. Custom values are clamped so both taps remain inside the IR domain; if clamping makes them coincide, the script separates them by one sample when possible.

Burst clouds

For each burst, the script first chooses a random centre between the protected margins. It then requests Points_per_burst Gaussian-distributed events:

Timing law

t = burstCenter + randomGauss(0, Burst_stddev_s)

Only events that remain strictly inside the IR are added. Therefore the number of realized burst points can be smaller than Number_of_bursts × Points_per_burst.

Pulse shaping

With Pulse_tone_Hz = 0, taps and burst events remain broadband click-like impulses. With a positive tone frequency, every impulse is convolved with a Hann-windowed cosine grain. The requested carrier is capped below Nyquist and the effective grain width is at least four samples.

Pulse_amplitude does not set the final IR peak. It scales the burst-cloud layer relative to the two sparse taps; after the two layers are combined, the complete IR is peak-scaled to 0.9.

Presets

PresetIRTapsBursts × pointsσMargin
Subtle Bursts1.5 s0.12 / 1.00 s2 × 625 ms0.25 s
Medium Bursts1.8 s0.15 / 1.20 s3 × 1035 ms0.30 s
Heavy Bursts2.5 s0.18 / 1.80 s5 × 1550 ms0.35 s
Extreme Bursts3.5 s0.20 / 2.80 s8 × 2580 ms0.40 s
CustomUses the values entered in the form.
Preset scope: built-in presets override IR duration, tap times, burst count/density/spread/margin, pulse width, and pulse tone. They do not override Pulse_amplitude, Wet_dry_percent, or the output switches. All built-in presets use broadband clicks (Pulse_tone_Hz = 0), so their pulse-width value is inactive unless the tone is changed manually.

Parameters

ParameterMeaning
IR_duration_sLength of the generated impulse response. Internally kept at least four samples long.
Tap_1_time_s / Tap_2_time_sTimes of the two sparse reference taps.
Number_of_burstsNumber of randomly positioned burst centres.
Points_per_burstRequested Gaussian events in each burst. Out-of-domain draws are discarded.
Burst_stddev_sStandard deviation of event times around each burst centre.
Burst_margin_sKeeps burst centres away from the IR edges; internally limited to 49% of IR duration.
Pulse_amplitudeRelative gain of the burst-cloud layer before final IR normalization.
Pulse_width_sHann tone-grain duration when Pulse_tone_Hz > 0; inactive for broadband-click mode.
Pulse_tone_Hz0 = broadband clicks; positive = Hann-windowed tonal grains.
Wet_dry_percentLinear mix: 0% dry only, 100% convolution only.

Output & visualization

Visualization

The picture shows the original waveform, result waveform, an IR-structure panel, and a run summary. The two waveform panels use their own automatic amplitude scaling. The IR panel shows the sparse taps and the randomly chosen burst centres with Gaussian-envelope hints; it does not draw every realized Gaussian event. The Summary reports how many burst points were actually placed.