Releases: danielraffel/pulp-superconvolver
Release list
SuperConvolver 1.2.1
Signed + notarized macOS (Apple Silicon) build. Open the .pkg — it's a component-selectable installer (AU / VST3 / CLAP / Standalone).
Fixes
- Offline bounce glitch fixed. A Logic "Bounce in Place" renders faster than real time, but the AU v2 component never signals an offline render — so the GPU engine's async worker starved and spliced GPU blocks against CPU-fallback blocks (audible "nasty" glitching). The plugin now infers a faster-than-realtime render from wall-clock pacing and drives the GPU synchronously, so a bounce is as clean as realtime playback. Live playback is unaffected.
- Negative Gain readout no longer shifts. The value is right-aligned by measured width with the "−" hung to the left, so the digits stay put.
Changes
- Size now goes up to 20 s (was 4 s). The partitioned FDL keeps per-block cost flat regardless of tail length; rebuilds happen off the audio thread.
- Info card updated to explain that Flow's moving field is GPU-only and both engines run the static rooms.
Flow (the moving field) remains the headline GPU feature — see the README for the honest GPU-audio story.
SuperConvolver 1.1.2
SuperConvolver 1.1.2 — stability fix
Fix: no more crash when you add the plugin and then remove it from a track. Tearing the editor down could race the GPU UI's frame callback, which could crash the host on delete. Editor teardown is now serialized on the main thread and the frame callback re-checks that the view is still alive, so add → remove is safe in Logic (AU), REAPER/Cubase/Bitwig (VST3/CLAP), and Standalone.
Audio and UI are otherwise unchanged from 1.1.1.
Apple Silicon (arm64) only — run your DAW natively, not under Rosetta. Signed with a Developer ID and notarized by Apple. The installer's Customize pane lets you pick AU / VST3 / CLAP / Standalone / Diagnostics.
SuperConvolver 1.1.1
SuperConvolver 1.1.1 — offline-bounce fix
Fix: GPU mode now captures the reverb when you bounce/export. Previously, bouncing (rendering offline / faster-than-real-time) with the GPU engine active could drop the wet signal — silence for many rooms, dry for one — because the GPU engine's asynchronous worker can't keep up with a render that runs faster than real time. The plugin now detects an offline render and drives the GPU convolution synchronously, so the bounced audio matches what you hear live. (The CPU engine always bounced correctly.)
- Works in Logic (via the AU
renderingOfflinesignal) and VST3 hosts (REAPER, Cubase, Bitwig, …). - Realtime playback is unchanged.
Also includes everything from 1.1.0, notably Load IR — load your own impulse-response file; rooms are generated as decorrelated variants of it.
The honest GPU caveat for the many-rooms benchmark is unchanged (see the README): a static-pan room bank is mathematically reducible, so those numbers are parallel-FFT throughput, not proof the sound needs the GPU.
Apple Silicon (arm64) only — run your DAW natively, not under Rosetta. Signed with a Developer ID and notarized by Apple. The installer's Customize pane lets you pick AU / VST3 / CLAP / Standalone / Diagnostics.
SuperConvolver 1.1.0
SuperConvolver 1.1.0
Load your own impulse response. New Load IR button (top-right): pick any WAV / AIFF / FLAC file and it becomes the convolution IR — your own hall, plate, spring, or captured space. The file is summed to mono, resampled to the session rate, and level-normalized so Mix stays a sensible dry/wet balance. A missing or unreadable file falls back to the built-in synthetic reverb, so audio never drops. The loaded IR path is saved with your project / preset.
Built on the 1.0.7 crash + Mix fixes. Signed + notarized (Developer ID) — open the .pkg and use Customize to pick formats (AU / VST3 / CLAP / standalone, plus the optional Diagnostics helper).
SuperConvolver 1.0.7
SuperConvolver 1.0.7
Crash fix (important): fixed a use-after-free that could crash the host when switching the Engine (GPU↔CPU) or changing Rooms/Size live — most reliably hit at 96 kHz, where an over-budget GPU block lingered while the worker freed the GPU stack. The GPU-stack reclamation is now hazard-pointer protected (the audio thread is never holding a stack as it's freed). Verified under AddressSanitizer against the exact concurrent-switch scenario.
Mix knob fix: the impulse response is now level-normalized, so the dry/wet Mix is a perceptually sensible balance (previously anything above ~1% read as fully wet because the unnormalized IR made the wet far louder than the dry).
Diagnostics helper: the installer's Customize pane now offers an optional Diagnostics helper app alongside the AU / VST3 / CLAP / standalone components.
Signed + notarized (Developer ID). Open the .pkg, and use Customize to pick formats.
Note: at very high Size × Rooms the GPU can exceed the real-time budget and glitch (the "% of real-time" passes 100%) — a compute ceiling, not a bug; smoother degradation + offline-render (bounce) support are coming in the next release.
SuperConvolver 1.0.6
SuperConvolver 1.0.6 — bug fix
Raising Rooms no longer reverts to CPU. Past what the GPU's memory holds at the current IR length, the multi-room engine now clamps to the largest room count that fits and stays on the GPU (reporting the actual count) instead of silently falling back to the CPU. The internal block is now 512 samples, so the clamped maximum runs in real time with headroom rather than overrunning.
One notarized installer (Customize → AU / VST3 / CLAP / Standalone / Diagnostics). Apple Silicon; run your host natively (not Rosetta).
SuperConvolver 1.0.5
SuperConvolver 1.0.5 — real GPU audio, with the stats to prove it
This release makes the GPU engine usable and legible in a host: you can switch Engine → GPU, raise Rooms, and watch what the GPU is actually doing.
New
- Live GPU engine switch + Rooms control (up to 256 panned rooms) right in the editor.
- Live telemetry in the status line: GPU backend, rooms, blocks produced / missed, measured µs/block, and a device-derived real-time headroom % — how much of your machine's real-time budget the GPU work is using, so you can see how many more rooms you can add.
Honest about where the GPU helps
The README now shows both sides: the many-rooms regime where the GPU genuinely wins (up to ~5.7× and past what the CPU can do in real time), and the single-IR case where the CPU is faster at every length and stays the default. Past the GPU's memory limit the engine refuses the job rather than fake it.
Verified three ways
Hardware GPU-utilization rises 0% → ~60% under load; GPU output matches a CPU reference bit-for-bit (corr = 1.0); and the GPU's timing is impossible to hit on the CPU.
One notarized installer (Customize pane → AU / VST3 / CLAP / Standalone / Diagnostics). Apple Silicon, run your host natively (not Rosetta).
SuperConvolver 1.0.4
SuperConvolver 1.0.4 — real GPU audio
The headline: an opt-in multi-room GPU convolution mode that genuinely beats the CPU.
- Set Engine → GPU and Rooms > 1: the input is convolved against N distinct impulse responses (rooms), each panned, in one batched GPU submit per block. Measured on Apple Silicon/Metal: 6.0× faster than CPU at 256 rooms (0.5 s IRs), where the CPU exceeds the real-time budget and the GPU doesn't — a genuinely impossible-on-CPU, smooth-on-GPU regime. Single-IR convolution stays on CPU (honest: the round-trip wins there).
- The editor shows the live engine: Audio: GPU · Metal · N rooms · blocks · misses.
- Also in this build: resizable editor, the AU-editor crash fix (please confirm in Logic), and the Ink & Signal UI.
Install
SuperConvolver-1.0.4.pkg — one signed + notarized installer; Customize pane picks AU / VST3 / CLAP / Standalone / Diagnostics. Apple Silicon; run your DAW natively (not Rosetta).
SuperConvolver 1.0.3
SuperConvolver 1.0.3
What's new since 1.0.2
- Resizable editor — the AU/CLAP editor now opens at a usable size and resizes proportionally in Logic (it declares a design size so hosts treat it as resizable; VST3/REAPER already did).
- GPU convolution engine (opt-in) — a new Engine parameter (default CPU) can switch the convolution to the GPU (
gpu_audio::GpuConvolver), running on a non-RT worker with a seamless CPU fallback. Honest note: at typical short-IR settings the CPU path is faster (the CPU↔GPU round-trip dominates) — GPU is aimed at the heavy/long-IR regime. Default stays CPU. - AU editor crash fix — Logic's AU teardown could race the GPU editor's display-link idle pump and crash; editor teardown is now serialized to the main thread. (Please confirm in Logic.)
Install — one installer
SuperConvolver-1.0.3.pkg— signed + notarized; the Customize pane picks AU / VST3 / CLAP / Standalone app / Diagnostics helper.
Apple Silicon native — run your DAW natively, not under Rosetta. If anything won't load, install the Diagnostics component and send back the Desktop .zip.
SuperConvolver 1.0.2
SuperConvolver 1.0.2 — fixes the plugin/app failing to load off the build machine.
What was wrong (1.0.0 / 1.0.1)
The bundles referenced libwgpu_native.dylib (the GPU runtime) by an absolute build-cache path instead of from inside the bundle. On the build machine that path exists, so it passed every check — but on another Mac the standalone crashed at launch (Library not loaded: @rpath/libwgpu_native.dylib) and the AU/VST3/CLAP showed no editor / "couldn't load". Fixed: the dylib now loads via @loader_path from inside each bundle. Verified self-contained with the build cache removed (CLAP dlopen + standalone launch both succeed), and a new build-time validator now fails any non-relocatable bundle so this can't ship again.
One installer now
SuperConvolver-1.0.2.pkg— a single notarized installer; the Customize pane selects AU / VST3 / CLAP / Standalone app / Diagnostics helper. (No more separate DMGs.)
Still Apple Silicon native
arm64-only. Run your DAW natively, not under Rosetta (Get Info → uncheck "Open using Rosetta"). If anything won't load, install the Diagnostics component and send back the Desktop .zip.
Signed + notarized. Preview build.