← All plugins

Truce Fundsp Reverb (simple)

Stereo plate reverb built on the fundsp graph DSL — pedagogical inline rebuild. Not for production use.

Truce Fundsp Reverb (simple variant) showing Low Cut, High Cut, Time, Mix knobs and a stereo level meter

This is a teaching example for integrating the fundsp graph DSL inside a truce plugin. The signal flow is straightforward — high-pass → low-pass → reverb_stereo bussed against a dry path.

The simple variant calls `rebuild_graph` directly from inside `process()` when the Time knob crosses the rebuild threshold. `Box::new(...)` and `graph.allocate()` run on the audio thread. That's a real-time-safety violation — those calls can block on the system allocator — and exists in this crate only so the integration shape is visible end-to-end in one file. The worker variant moves both off-thread; everything else about the graph wiring is identical.

Not intended for production use. Two reasons. First, the inline rebuild itself is rt-unsafe (see above). Second — and this affects both variants — fundsp's `reverb_stereo` bakes RT60 into the FDN's feedback gains at construction, so every Time change forces a full graph rebuild and a fresh graph means the reverb's delay lines reset, dropping the tail. Moving the Time knob mid-playback audibly cuts the reverb.

For the worker-thread variant that keeps `process()` allocation-free, see Truce Fundsp Reverb (worker).

See the fundsp integration guide on this site for a walk-through of both variants, the rebuild trigger, and why the threshold + raw-target read are wired the way they are.

Formats

CLAPVST3LV2AU v2AU v3

Platforms

macOSWindowsLinux