Apply a recorded impulse response to a track to borrow the reflections of a space or the color of a system.
What it is#
convolve routes a track's audio through a real, sampled impulse response (IR) — convolution reverb against a recorded hall, spring, plate, or cabinet. An IR is just a sample: it loads through the same registry, manifest, and preload path as any other audio file. A wet/dry mix knob blends the convolved signal against the dry track, the same shape as track-level reverb (Voice signal flow §5), while its reflection pattern comes from the recording. The ordinary reverb uses a retained feedback-delay network.
Use preparedFx for discrete, crossfaded choices among small preloaded IRs. Missing or oversized alternatives keep the current audio active; editing the prepared bank is separate from choosing a ready state.
Surface#
A track-level effect inserted with |>. Three positional args: the track, the IR name (a prepared string naming a manifest entry), and a mix in [0, 1].
hallVox = play vox !"c4 e4 g4 c5" |> convolve "ir-hall" 0.4
mix = 0 is fully dry, mix = 1 fully wet. A constant is clamped to [0, 1] at compile time; mix is a Param, so a macro can ride it live. convolve also works as a mixer insert.
Notes & limits#
Convolution adds no latency. Stereo impulse responses retain separate left and right responses; mono responses are centered. An unavailable impulse response passes dry audio through.
- Track-level only. The per-voice
NodeKind::Convolveform sketched in Convolution: recorded spaces and colors §4–§5.2 (cab sim on a single voice) is deferred, along with the §5.3 tail-extension accounting it needs. - No normalisation knob. Blink-compatible
normalize = truebehaviour is used unconditionally; the authoring-levelnorm: rms | peak | offfrom Convolution: recorded spaces and colors §3 / §5.1 is not implemented, and the manifestir: trueflag is not checked —convolveresolves any sample name with no IR-tag check or warning. - String-literal IR names only.
convolve !"hall plate"(patterned IR swapping) is not supported; swapping the IR requires a recompile. - Outstanding stages — starter IRs + an asset-drawer "IRs" tab (§6), non-reverb usage examples (§7), and the normalisation knob — are tracked in Convolution: recorded spaces and colors.