Skip to content

A digital audio reverberation engine inspired by the classic Schroeder configuration, but with a novel twist.

License

GPL-3.0 and 2 other licenses found

Licenses found

GPL-3.0
LICENSE
Apache-2.0
LICENSE-APACHE
Unknown
LICENSE-COMMERCIAL
Notifications You must be signed in to change notification settings

jamesstanier/Reverb2

Reverb2 — A Novel Schroeder-Based Reverberator

Reverb2 is a digital audio reverberation engine inspired by the classic Schroeder configuration, but with a novel twist:
it enhances the perceived sound quality not only through the traditional longer delay lines, but also by introducing very short delays that add richness, depth, and clarity without smearing the audio.

This approach was loosely inspired by ideas discussed in Coding a Basic Reverb Algorithm, but extends them with an original design that goes beyond conventional Schroeder reverbs.

Demo available on YouTube.


✨ Key Features

  • Schroeder-inspired topology
    Uses a combination of parallel comb filters and serial all-pass filters.

  • Novelty: very short delay enhancement
    Unlike most reverbs that rely only on longer delays for spaciousness, Reverb2 leverages short micro-delays to improve presence and timbral detail. This makes the reverb usable as both a spatial effect and a subtle enhancer.

  • Configurable delay lines
    Tune both long (RD) and short (VD) delay values, and feedback (gain) amounts.

  • Automatically saves output
    Saves the output to an 'output.wav' file for later playback.

  • Written in Java
    Portable across platforms, with no native dependencies.

  • Dual-licensed
    Open source under GNU GPL v3, with a separate commercial license available.


🚀 Getting Started

Requirements

  • Java 17+ (tested with JDK 21, compiled to Java SE 17 compatibility)
  • Maven (via the included Maven Wrapper)

Clone and Build

git clone https://github.com/jamesstanier/Reverb2.git
cd Reverb2

# Build with Maven Wrapper (Linux/macOS)
./mvnw -q clean compile
./mvnw exec:java -Dexec.mainClass=reverb2.App

# or on Windows
.\mvnw.cmd -q clean compile
mvnw.cmd --% exec:java -Dexec.mainClass=reverb2.App

Or just double-click the 'Reverb2-0.0.1.jar' file (after downloading) to get it running.


📜 License

This project is dual-licensed:

  • GPL v3 (see LICENSE)
    You are free to use, modify, and distribute under the terms of the GNU General Public License version 3.
  • Commercial license
    For closed-source or proprietary applications, a commercial license is available.
    Please contact me: j.stanier766(at)gmail.com for details.

Third-Party Code

This project includes code adapted from:

See the NOTICE file for details of modifications and attribution requirements.


🛠 Contributing

Contributions are welcome! If you’d like to propose improvements or bug fixes, please open an issue or pull request.

📣 Roadmap

  • Volume control
  • Accept additional audio formats (other than just .wav)
  • Better GUI
  • VST Plugin
  • Use JUCE framework

About

A digital audio reverberation engine inspired by the classic Schroeder configuration, but with a novel twist.

Topics

Resources

License

GPL-3.0 and 2 other licenses found

Licenses found

GPL-3.0
LICENSE
Apache-2.0
LICENSE-APACHE
Unknown
LICENSE-COMMERCIAL

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages