Convolution Explorer
Flip one signal, slide it across the other, and the running overlap area traces the output — the operation behind every filter, every speaker, and every room.
Builds on Chapter 7 · Utilities & Effects — filtering and convolution reverb.
At each shift t, the area where the two signals overlap is one sample of the convolution y(t) = Σ x(τ)·h(t−τ), where h is the impulse response. Either side can be set on its own, or a preset can fill both at once.
Drag the picture sideways to slide the flipped copy along, or use the Shift t slider below; the canvas also takes the arrow keys once focused.
The picture above uses short, simple signals because the sliding overlap has to stay legible: a few hundred points can be drawn, a few hundred thousand cannot. The arithmetic does not change with length, though, and this is what it sounds like when one side is an ordinary recording and the other is a room. Convolving them does not produce an echogram — the echogram is the room’s impulse response, drawn below. Convolving a signal with it produces that signal as heard in that room.
What This Shows (Plain-Language Guide)
Convolution combines two signals into a third. The recipe is flip, slide, multiply, add: take one signal h, mirror it left-to-right, slide it by an amount t, multiply it point-by-point against the other signal x, and add up the result. That single number is the output y(t). Sweep the shift across all t and the outputs trace the whole output signal.
Why It Matters for Audio
Convolution is filtering. When a sound x passes through any linear system — a filter, a speaker, a room — the output is x convolved with the system's impulse response h (its reaction to a single instantaneous click or tap). That is exactly what the Filter Playground and convolution reverb (chapter 9) do: the reverb's room is stored as an impulse response, and every sound is convolved with it. The Click or tap ⊛ Room preset shows this directly — a single click or tap convolved with a room's impulse response returns the room's full ringing response.
Setting Each Side
The presets are shortcuts that fill both sides at once. Either side can also be set on its own: pick a shape for the blue signal x and another for the orange impulse response h, then drag each shape’s parameter — width, decay rate, cycle count, onset, spacing — to reshape it. Any of the eleven shapes can meet any other, so pairings no preset covers (a ramp against a Gaussian, an echo pair against a room tail) are one menu away. Swap sides exchanges the two: the top panel redraws, the output below does not — commutativity made visible.
Two Properties Worth Seeing
- Box ⊛ Box → Triangle. Two rectangular pulses convolve into a triangle: as the boxes slide through each other, the overlap grows linearly, peaks at full overlap, then shrinks linearly.
- Anything ⊛ impulse = that thing (the sifting property). Convolving with a single impulse just copies the other signal, shifted. That is why an impulse response completely defines a linear system: convolving any input with it reproduces how the system would respond. (Convolution commutes — x ⊛ h = h ⊛ x — so each preset here names the fixed blue signal first and the flipped orange impulse response second.)
Continuous vs Discrete: the same operation, either as smooth areas (integral) or as sample-by-sample sums (Σ). Digital audio uses the discrete form; the continuous form is the textbook picture.
Sources & Inspiration
- Johns Hopkins University — The Joy of Convolution (continuous) and discrete convolution, the classic flip-and-slide applets.
- Erik Cheever, Swarthmore College — Convolution (Linear Physical Systems Archive).
- Brown University Exploratories — Discrete Convolution, by Andries van Dam and Daniel L. Gould. The project is gone from Brown’s servers and the applet was written in Java, so it can no longer be run in a browser in any case; the page survives only as an archived copy.
- phiresky — interactive convolution demo.