Requiem plugin icon

Cinematic convolution reverb

Requiem

A cathedral in a box — cinematic convolution reverb for orchestral and choral space.

AU · VST3 · Standalone · macOS & Windows · AGPL-3.0

About

A cinematic convolution reverb built for orchestral and choral space in heavy productions — cathedral, hall, and chamber tails for strings, choir, and everything that needs to bloom into a wide, dark stereo image behind the wall of guitars. Its impulse response is generated procedurally, off the audio thread — or load your own WAV/AIFF IR to override it entirely.

Why the name?

A requiem is the mass for the dead — music written for vast, stone-vaulted spaces. This Requiem generates exactly those spaces: cathedral and hall tails for strings, choirs and everything that should bloom behind the wall of guitars.

Under the hood

A decay curve you solve, not approximate. Each of the sixteen delay lines carries a ten-section octave-band graphic EQ plus a broadband gain, fitted to the target decay curve through a Householder-QR pseudo-inverse and Gauss-Newton refinement against the realised response, inside a ±10 dB command-gain clamp. A final stability projection sweeps the finished cascade over a 96-point grid and shifts the broadband gain down by exactly any excess, so no line's loop gain ever reaches unity at any frequency. Fifty randomised decay curves from 0.1 to 5 seconds, across all sixteen lines: zero failures. The solve is bit-reproducible, so two instances at the same settings cannot drift apart.

Movement without detuning. The feedback matrix is a Householder reflection composed with eight time-varying Givens rotations on disjoint index pairs. Both factors are orthogonal at every instant, so the prototype is lossless at every instant — the network cannot be destabilised by modulation, and the modulation cannot shift pitch, because no delay length ever changes. Measured pitch deviation at maximum depth: under one cent. If you want the vintage sound instead, Lush modulates the delay lengths and detunes on purpose — a separate test exists purely to prove the two modes are genuinely different.

A handover that is measured, not guessed. The mixing time — the point where the reflection pattern becomes statistically indistinguishable from noise — is measured with normalised echo density and clamped to 50–350 ms. The impulse response is split there by a raised-cosine window whose two halves reconstruct the original to within a millionth of its own peak, and the synthesised branch gets a 256-tap linear-phase correction filter. The branch pre-delay subtracts two things: the filter's group delay and the network's own shortest delay line, because an FDN with no feedthrough term emits nothing until its shortest line has run. Compensating only the filter would land the tail 34 ms late and leave an audible hole.

Knobs that morph instead of stepping. Every reverb-shaping control regenerates the kernel in the background, and the plugin crossfades between two convolution engines over 100 ms instead of swapping hard. Because the convolution engine's load is asynchronous with no completion callback, the crossfade waits on a handshake — the idle engine has to report the new kernel's exact length first, disambiguated by an alternating one-sample pad so that a Damping-only change (same length) is still detectable. In steady state one engine runs and the path is bit-identical to a plain single convolution.

Freeze that actually holds. In the network modes, Freeze ramps the per-line attenuation out to unity over 20 ms, leaving the lossless prototype holding exactly what is circulating inside it — indefinitely, engaging inside a single audio block rather than waiting on a regeneration tick. Measured hold: within ±0.2 dB over twenty seconds. In Classic Convolution, sustain stays bounded by the Decay setting instead, because a finite convolution kernel is what it is — a deliberate design that structurally cannot develop the progressive dulling or audible periodicity that feedback-loop freeze designs are documented to risk.

Your old sessions are safe, and that is a test, not a promise. All ten new parameters were appended after the existing block and every one defaults to neutral — the wet-path filters and the ducker are structurally bypassed at their defaults, not multiplied by one. A pre-existing session loaded into the current version renders bit-identically to a fresh instance at the same settings: maximum absolute difference exactly zero over two seconds. The existing factory presets are untouched, and a test reads each one to prove it never acquired a new parameter.

Engineering hygiene, enforced by CI. 134 test cases on macOS and Windows on every push, plus pluginval at strictness 10 and auval -strict: zero heap allocations on the audio thread in all three engine modes including mid-stream Freeze and mode switches, zero reported latency at 44.1 through 192 kHz in every mode, silence costing no more than signal, and a genuine dual-thread regression test for the kernel-reload race.

Features

Download

The latest builds are published on GitHub Releases.

The macOS binaries are Developer-ID-signed, notarised by Apple and stapled — they install and open without Gatekeeper warnings. Windows builds are not yet Authenticode-signed; SmartScreen may warn about an unknown publisher.

Compatible DAWs

Any modern DAW that supports VST3 or Audio Units. Pro Tools (AAX) is currently not supported.

Screenshots

product mockup
product mockup

Audio examples

Coming with the next release.

Before/after clips are being recorded — audio examples will appear here with an upcoming release.

Support development

Basilica Audio is free software, built at night and tuned by ear. If it earns a place in your session, you can help keep the candles lit.