VOLTAreference

Reference / Effects and mixing

Convolution: recorded spaces and colors

Effects and mixing

Open in the workbench →
On this page · 3 sections

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::Convolve form 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 = true behaviour is used unconditionally; the authoring-level norm: rms | peak | off from Convolution: recorded spaces and colors §3 / §5.1 is not implemented, and the manifest ir: true flag is not checked — convolve resolves 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.