A cathedral in a box — cinematic convolution reverb for orchestral and choral space.
Work in progress. Requiem is pre-1.0 and under active development. Binaries for macOS and Windows are available from the Releases page (currently unsigned — see the release notes); building from source works too. Expect breaking changes until v1.0.0 ships (see Roadmap).
Requiem is a cinematic convolution reverb built for orchestral and choral space in heavy productions - cathedral, hall, and chamber-style tails for strings, choir, and everything that needs to bloom into a wide, dark stereo image behind the wall of guitars. Rather than shipping (and licensing) an IR sample library, its impulse response is generated procedurally, off the audio thread, from Decay, Damping, Space, Size, Early/Late Balance, and Bass Decay - or you can load your own WAV/AIFF impulse response to override it entirely. The early-reflection and tail-darkening behavior is a research-derived rework (v0.2.0) against documented cinematic-reverb design principles - see docs/design-brief.md/docs/research-notes.md for the full sourcing.
juce::dsp::Convolution-based stereo reverb engine with a multiband decay: independent low/mid/high RT60 rates plus a progressively darkening high band, driven by Decay (reverb time) and Damping (the tail's terminal HF corner) - no bundled sample library, no licensing to manage.- Space (Cathedral/Hall/Chamber) shapes a density-buildup early-reflection layer ahead of the diffuse tail; Size continuously scales that layer's apparent dimensions, decoupled from Decay; Early/Late Balance crossfades between the early layer and the diffuse late tail.
- Bass Decay (25-175%) lets the low band ring longer (or shorter) than the mid/high bands, matching real-hall low-frequency-decay behavior.
- Freeze sustains the tail's current spectral content instead of letting it decay - a bounded, convolution-based "hold the pad" mode that structurally can't develop the dulling/periodicity artifacts feedback-loop-based infinite reverbs are documented to have.
- Modulation applies a subtle post-convolution chorus-style movement to the wet tail only, to soften metallic ringing and add richness (0% is a bit-identical passthrough).
- Pre-Delay (0-250 ms) separates the direct sound from the tail's onset - useful for keeping palm-muted rhythm parts tight while strings/choir bloom behind them.
- Width control (0-200%) reshapes the wet signal's stereo image via mid/side scaling, independent of the dry signal.
- Optional user impulse response override (Load IR.../Clear IR in the editor) - drop in your own captured space, persisted in the plugin's saved state. Rejects unreadable/non-audio files and pathologically long ones rather than loading them blindly.
- Preset system: 11 factory presets plus save/rename/delete/import/export for your own, with a German-localised interface (English elsewhere).
- Latency-compensated Dry/Wet Mix and post-mix Output trim.
- AU / VST3 / Standalone, built on JUCE 8.
input -> Pre-Delay -> Convolution (procedural or user IR) -> Modulation (chorus, wet only) -> Width (M/S, wet only) -> Dry/Wet Mix (latency-compensated) -> Output -> output
Decay, Damping, Space, Size, Early/Late Balance, Bass Decay, and Freeze don't touch the audio-thread signal path directly - they drive a background, message-thread-only impulse-response regeneration step (see docs/architecture.md for the full explanation of why, and how it stays real-time safe).
| Parameter | Range | Default | Unit |
|---|---|---|---|
| Decay | 0.1 – 10.0 | 2.5 | s |
| Pre-Delay | 0 – 250 | 20 | ms |
| Damping | 500 – 20000 | 8000 | Hz |
| Space | Cathedral / Hall / Chamber | Hall | — |
| Size | 0 – 100 | 50 | % |
| Early/Late Balance | 0 – 100 | 80 | % |
| Bass Decay | 25 – 175 | 130 | % |
| Modulation | 0 – 100 | 0 | % |
| Freeze | off / on | off | — |
| Width | 0 – 200 | 100 | % |
| Mix | 0 – 100 | 35 | % |
| Output | -24 – 24 | 0 | dB |
Full musical descriptions and usage tips: docs/manual.md. Factory presets: docs/presets.md.
Tracked as GitHub milestones and issues (gh issue list, gh api repos/basilica-audio/requiem/milestones). M2 (preset system) shipped in v0.2.0. Planned beyond v0.2.0: a custom vector-drawn GUI plus an accessibility pass (current editor is a functional slider/combo/toggle layout - M3), and signed/notarized release builds (M4).
No pre-built binaries are published yet (see the work-in-progress notice above). Once releases begin, installation will follow the standard plugin locations:
macOS
| Format | Path |
|---|---|
| AU (Component) | ~/Library/Audio/Plug-Ins/Components/ |
| VST3 | ~/Library/Audio/Plug-Ins/VST3/ |
If Logic Pro doesn't pick up the plugin after installing, force a rescan by resetting the AU cache:
killall -9 AudioComponentRegistrar
auval -aWindows
| Format | Path |
|---|---|
| VST3 | C:\Program Files\Common Files\VST3\ |
Requires JUCE 8.0.14, C++20, and CMake ≥ 3.24. See docs/building.md for full prerequisites and step-by-step build/test commands for macOS and Windows.
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failureRequiem is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
This project uses JUCE 8, whose open-source tier is licensed under AGPLv3 (as of JUCE 8; JUCE 7 and earlier used GPLv3), which is why this project is AGPLv3 rather than GPLv3. See docs/adr/0002-agplv3-licensing.md for the full reasoning.
VST is a registered trademark of Steinberg Media Technologies GmbH.
Requiem is an independent open-source project and is not affiliated with, endorsed by, or sponsored by any plugin manufacturer.