Convolution Synthesis — User Guide

Excitation–resonator synthesis by discrete convolution: a short source excites a three-mode decaying impulse response, producing a resonant sound whose spectrum and decay follow the IR.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.4.1 (2026) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

Convolution Synthesis generates a new sound from two internally created signals: a short excitation and a resonant impulse response (IR). The excitation supplies the initial event or energy; the IR supplies three decaying resonant modes. Their discrete convolution produces the resonant output.

This is synthesis from scratch: the script does not process a selected input Sound. The source and IR are created internally, normalized to unit discrete L2 energy, convolved, shaped by an optional output envelope, spatialized, and optionally peak-normalized.

Convolution in plain language

Think of the excitation as what strikes or activates a resonant system, and the impulse response as the system's characteristic reaction. Convolution applies that reaction across the excitation. A short click therefore lets the resonator itself dominate; a noise or tone burst feeds a broader or more pitched spectrum into the same resonant structure.

Core relation: output[n] = Σ source[k] × IR[n-k]

The script uses Praat's Convolve: "sum", "zero". With the one-sample Impulse excitation, this convention reproduces the normalized IR directly before the later envelope, spatialization and optional final normalization.

Convolution here should not be confused with convolution reverb using a recorded room IR. The IR is synthesized by the script from three damped sinusoidal modes, so the technique functions as an excitation–resonator synthesizer.

Quick start

  1. Run Convolution Synthesis.praat. No input Sound needs to be selected.
  2. Choose a Preset, or leave Custom to use the fields below.
  3. Choose an Excitation. Start with Impulse if you want to hear the resonant IR most directly.
  4. Set Frequency 1, Frequency 2, and Decay rate to define the resonator.
  5. Optionally choose an output Envelope and Spatial mode.
  6. Click OK. The final Sound remains in the Objects window; helper Source and IR objects are removed after the visualization is drawn.

Signal path

excitation → unit-energy normalization → resonant IR → unit-energy normalization → discrete convolution → exact-duration trim/zero-pad → musical envelope → edge fade → spatial render → optional peak normalization

The source and IR are normalized before convolution. This keeps source-type and decay changes from acting merely as uncontrolled level changes; their waveform, spectrum and temporal structure still strongly affect the result.

Parameters

ParameterDefaultWhat it controls
PresetCustomLoads one of 11 mechanism-oriented parameter sets. Presets override only the fields explicitly listed in the preset section.
Duration_s1.0 sExact final output duration; valid range is greater than 0 to 120 s.
Sample_rate_Hz44100Sampling rate, constrained to 8–192 kHz.
Frequency_1_Hz800 HzFirst IR resonance and the Tone Burst frequency.
Frequency_2_Hz1200 HzSecond IR resonance.
Decay_rate20 s⁻¹Exponential decay constant of the slowest IR mode. Larger values produce shorter ringing.
Modulation_rate_Hz2 HzGentle amplitude modulation applied only to the third IR mode.
Source_typeImpulseImpulse, Short Burst, Noise Burst, or Tone Burst.
Random_seed0Controls Noise Burst reproducibility. Positive values fix the random sequence; 0 leaves it unpredictable.
Envelope_typeNo EnvelopeGlobal musical envelope applied after convolution.
Spatial_modeMonoMono, short-delay Stereo Wide, or equal-power Rotating stereo.
Edge_fade_s0.005 sIndependent linear protection fade at both output edges, limited to 20% of total duration.
Normalize_outputOnIf enabled, sets the final absolute peak to 0.90.
Draw_visualizationOnDraws the actual excitation, IR, measured output spectrum/waveform and QC summary.
Play_resultOnPlays the final Sound after synthesis.

Presets

The preset names describe the sonic morphology produced by this three-mode resonator; they are not claims that the script physically models a particular instrument or object.

PresetDurationf1 / f2DecayExcitationEnvelopeSpatial
Bright Metallic Ring1.5 s760 / 1230 Hz12Noise BurstNoneMono
Deep Resonant Ring3.5 s90 / 170 Hz3.5Noise BurstNoneMono
High Glassy Ring1.2 s1550 / 2570 Hz18ImpulseNoneStereo Wide
Short Noisy Resonance0.6 s220 / 3600 Hz70Noise BurstPercussiveMono
Low Impact Resonance0.7 s55 / 95 Hz30ImpulsePercussiveMono
Droplet Resonance0.55 s720 / 1450 Hz45ImpulseNoneStereo Wide
Hollow Pop0.35 s320 / 650 Hz90ImpulsePercussiveMono
Inharmonic Chime1.4 s900 / 1450 Hz14Short BurstNoneRotating
Dense High Burst0.9 s1850 / 4300 Hz85Noise BurstPercussiveStereo Wide
Rising Resonant Tone0.8 s350 / 1800 Hz40Tone BurstReverse EnvelopeStereo Wide
Long Low Noise Decay4.0 s50 / 120 Hz2.5Noise BurstSlow DecayStereo Wide

Not overridden by the built-in presets: Sample rate, Random seed, Edge fade, Normalize output, Draw visualization, and Play result retain the values currently shown in the form.

Excitation types

TypeActual sourceDurationEffect
ImpulseOne sample with value 1 before source normalization1 sampleThe cleanest way to hear the synthesized IR itself.
Short BurstHann-windowed sine; frequency is min(1000 Hz, half of the internal safety ceiling)up to 10 msInjects a short pitched excitation with broader spectral spread than a long tone.
Noise BurstHann-windowed Gaussian noiseup to 20 msBroadband excitation; Random_seed controls repeatability.
Tone BurstHann-windowed sine at Frequency 1up to 50 msEmphasizes the relationship between the excitation pitch and the IR modes.

Each excitation is normalized to unit discrete L2 energy before convolution. The differences between source types therefore come primarily from their time/spectral shape rather than arbitrary source level.

Resonant impulse response

The IR is the sum of three damped modes:

ModeFrequencyRelative amplitudeDecayExtra behavior
1f11.0exp(-d·t)None
2f20.7exp(-1.5d·t)Fixed phase offset
31.5·f10.4exp(-2d·t)Gentle AM: 0.75 + 0.25 sin(2π·Modulation_rate·t)

The slowest exponential reaches an amplitude ratio of approximately 0.001 (−60 dB) after ln(1000) / Decay_rate seconds. The script uses this value to determine the IR duration, but never renders an IR longer than the requested final Duration.

Before synthesis, the resonance and modulation frequencies are scaled together if necessary so the highest modeled components retain practical headroom below 0.45 × sample rate. This is a practical anti-aliasing guard, not a claim that every possible sideband is mathematically band-limited.

Output envelopes

These envelopes are applied after convolution, so they shape the complete resonant result rather than the excitation or IR separately.

EnvelopeImplementation
No EnvelopeNo additional musical amplitude shaping.
Percussiveexp(-8t).
Slow Decayexp(-1.5t).
Reverse EnvelopeLinear crescendo t / Duration. It does not reverse the waveform in time.
Tremolo8 Hz sinusoidal multiplier ranging from 0.6 to 1.0.
SwellLinear fade-in over the first 30% of the requested duration, then sustain.
ADSROne piecewise pass: attack up to 10 ms, decay up to 100 ms, sustain 0.60, release up to 200 ms; stages shorten automatically for short sounds.

Spatial modes

ModeImplementation
MonoKeeps the convolved result as one channel.
Stereo WideLeft is the mono result scaled by 1/√2; right is a delayed copy scaled by 1/√2. Delay is min(8 ms, 2% of Duration). This is short-delay decorrelation, not frequency splitting.
RotatingCreates stereo with complementary equal-power gains driven by a 0.35 Hz sinusoidal pan trajectory.

Duration, level & reproducibility

Exact output duration: Praat's raw convolution naturally contains the complete source-plus-IR result. The script then creates a new Sound with exactly Duration_s at the requested sample rate and copies samples by index. If the raw convolution is longer it is trimmed; if shorter, the remainder is zero-padded. No time-axis interpolation or time stretching is performed.

Normalization: Source and IR receive unit-energy normalization before convolution. If Normalize output is enabled, the final mono or stereo result is then peak-normalized to exactly 0.90 when non-silent. This is target peak normalization, not an attenuate-only ceiling.

Noise reproducibility: Random_seed affects only Noise Burst. A positive seed makes that excitation reproducible; 0 uses the current unpredictable random state. The deterministic excitation types do not use the seed.

Visualization

The figure follows the actual synthesis path rather than presenting a generic convolution diagram:

PanelWhat is shown
A — ExcitationThe actual unit-energy source used in the convolution, with its own true short time axis.
B — Impulse ResponseThe actual normalized three-mode IR and its rendered duration.
C — Model → MeasurementA measured spectrogram of the output with guides at f1, f2 and 1.5·f1. These are nominal resonance guides, not measured peak trackers.
D — Measured OutputThe measured waveform of the output. For stereo, the channel with the larger RMS is used as the representative display channel.

The QC block reports the convolution convention, source duration, unit-energy normalization, IR T60/rendered duration, pre-normalization peak, final peak/RMS and spatial mode.

Outputs