Skip to content

feat: add reverb stage#206

Merged
OpenSauce merged 2 commits intomainfrom
feat/reverb-stage
Mar 1, 2026
Merged

feat: add reverb stage#206
OpenSauce merged 2 commits intomainfrom
feat/reverb-stage

Conversation

@OpenSauce
Copy link
Copy Markdown
Owner

@OpenSauce OpenSauce commented Mar 1, 2026

Summary

  • Implement Freeverb (Schroeder-Moorer) reverb stage with 8 parallel lowpass-feedback comb filters and 4 series allpass filters
  • Parameters: Room Size, Damping, Dry/Wet mix with full i18n (EN + ZH_CN)
  • Delay lengths scale proportionally with sample rate; tuning constants match Jezar's original reference

Closes #24

Test plan

  • make lint passes
  • make test passes (11 new reverb tests)
  • cargo run --release — add Reverb stage via GUI, tweak sliders, verify audible reverb tail

Implement Freeverb (Schroeder-Moorer) reverb with 8 parallel
lowpass-feedback comb filters and 4 series allpass filters.

Parameters: room size, damping, dry/wet mix. Delay lengths scale
proportionally with sample rate. Tuning constants match Jezar's
original reference implementation.
Copilot AI review requested due to automatic review settings March 1, 2026 11:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Freeverb-style reverb processing stage to the amp pipeline and exposes it in the GUI with localized (EN + ZH_CN) controls, addressing Issue #24’s request for a simple reverb stage.

Changes:

  • Implement ReverbStage (8 parallel combs + 4 serial allpasses) with Room Size, Damping, and Dry/Wet (mix) parameters.
  • Wire the new stage into the GUI stage registry and add a dedicated reverb stage UI panel.
  • Extend i18n strings to include the new stage name and parameter labels (EN + ZH_CN).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/amp/stages/reverb.rs Adds the Freeverb-style reverb DSP stage implementation and unit tests.
src/amp/stages/mod.rs Exposes the new reverb stage module.
src/gui/stages/reverb.rs Adds GUI config/message/view for the Reverb stage sliders.
src/gui/stages/mod.rs Registers the Reverb stage in the GUI stage registry macro.
src/i18n/mod.rs Adds new translation keys for the Reverb stage and its parameters.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/amp/stages/reverb.rs
Comment thread src/amp/stages/reverb.rs
Apply DENORMAL_THRESHOLD check when writing into delay line buffers,
matching the pattern used by DelayStage. Prevents denormal values from
persisting in the ring buffers and causing CPU spikes on non-FTZ systems.
@OpenSauce OpenSauce merged commit 6835328 into main Mar 1, 2026
7 checks passed
@OpenSauce OpenSauce deleted the feat/reverb-stage branch March 1, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reverb Stage

2 participants