DSP TOOLBOX · BONUS PAGE

Creative Impulse Responses

Previously we invented h[n]. Then we measured h[n]. Now we stop treating an impulse response as sacred and start treating it as what it is: data — a very long set of FIR coefficients.

Four taps grew into thousands of taps. If those taps are numbers, we can interpolate them, reshape them, modulate between them and save the result as a completely new impulse response.

1. Start with two impulse responses

Load any two mono or stereo IR WAV files. To make the page useful immediately, two synthetic starter IRs are generated on first load. Mono/stereo combinations are handled automatically; shorter IRs are zero-padded for coefficient morphing.

IR A

STARTER A · SMALL ROOM

IR B

STARTER B · LONG PLATE-ISH

2. Morph the FIR coefficients

hₘ[n] = (1 − m)hA[n] + m hB[n]

At m = 0 every coefficient comes from A. At m = 1 every coefficient comes from B. In between, every tap is interpolated.

50% A · 50% B
IR AIR B
This is not metaphorical. The waveform above is the actual coefficient array that can be installed in a convolver and exported as a new WAV.

3. Transform the impulse response

The same transformation is applied to A and B before morphing, so it also remains available during live A↔B modulation.

1.00×
80 ms
0 dB
0 dB
22.0 kHz
TRANSFORM: 1.00× · split 80 ms · early 0 dB · late 0 dB · LP 22.0 kHz · forward

Time Scale resamples the IR in time, so it is deliberately a creative transformation rather than a transparent time-stretch. Darken runs a simple one-pole low-pass across each IR channel. These operations change the filter represented by h[n] — that is the point.

4. Can an impulse response be modulated?

A conventional convolution reverb assumes a fixed h[n]: a linear time-invariant system. Here we deliberately make the effective response change with time.

m(t) = centre + depth · sin(2πft) effective response: h[n,t] = (1 − m(t))hA[n] + m(t)hB[n]
0.15 Hz
85%
STATIC · morph follows manual slider
Implementation: live modulation uses two convolution engines and continuously crossfades their outputs. For a fixed value of m this is mathematically equivalent to convolving with the linearly interpolated IR:
x * [(1−m)hA + mhB] = (1−m)(x*hA) + m(x*hB)
When m changes through time, the overall processor is time-varying. Freeze Current IR captures that instant as a new static h[n] that can be exported.

5. Optional Stereo Motion

Two identical channels are technically stereo, but they are not decorrelated. This section lets the left and right convolution paths move a little differently, creating a wider and more animated spatial image.

35%
60°
0.030 Hz
LINKED · left and right use the same morph position
Linked: mL(t) = mR(t) Phase Offset: mL(t) = c + d sin(ωt) mR(t) = c + d sin(ωt + φ) Depth Offset: same LFO phase, slightly different depth Drift: very slow independent movement around the same centre
Important: this is optional and defaults to Linked. That keeps the core FIR/convolution explanation clean. Once Stereo Motion is enabled, the two channels can follow slightly different effective impulse responses — which is where genuinely unique stereo results start to appear.

6. Hear it

Output starts low. Imported IRs can have wildly different gain. Use the audition level and wet return trim before turning anything up.
-18 dB
25%
-12 dB
READY · current morphed IR installed for audition

7. Freeze it. Save it. Use it somewhere else.

The current static result can be exported as a normal PCM WAV impulse response. If the LFO is running, Freeze Current IR first to capture the current point in the modulation cycle. Export defaults to stereo: if the result is mono, the mono IR is duplicated identically to left and right.

READY TO EXPORT · stereo export by default
The creative loop:
MEASURE / LOAD IRs → MORPH COEFFICIENTS → TRANSFORM → MODULATE → FREEZE → EXPORT NEW h[n] → LOAD INTO ANY CONVOLUTION REVERB

8. The important distinction

Static creative IR

Morph, reverse, time-scale, rebalance or filter the coefficient data, then export the resulting fixed h[n]. It is still a conventional FIR/convolution kernel.

Time-varying convolution effect

Continuously move between responses while audio is running. There is no single fixed IR that describes the whole effect through time — because the system itself is changing.

And underneath all of it: stored samples → multiply by coefficients → add. The four-tap FIR never really went away.