Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

suppressor

Zero-latency, frequency-split noise suppressor for guitar DI — built for high-gain amp-sim and reamping chains. It sits on the raw DI before the amp sim, strips pickup-borne hiss/buzz/EMI between notes, and leaves the guitar body alone. Formats: VST3 and CLAP (Windows, macOS, Linux).

CI

Suppressor: three essential knobs, input/output peak meters, and a clearly labelled high-band reduction display

What it does

The core is a causal, sample-domain dynamic low-pass:

  • the input is split by a fourth-order Linkwitz–Riley-style crossover;
  • the low branch always passes (body, fundamentals, sustain);
  • the high branch is gated by an envelope detector that listens to the high branch itself — bass energy can't reopen the noise branch, pick attack and string harmonics can;
  • the gate opens in 10 µs, holds through waveform zero-crossings, and closes on a smooth exponential release.

The result: noise between notes disappears in the band where hiss/buzz lives, while low mids and body pass untouched and pick transients survive intact. Zero reported latency in the default mode; negligible CPU (four biquads plus an envelope per channel).

Controls

Control What it does
Threshold Sets when highs are reduced. Raise it until noise between notes is suppressed.
Strength Sets how much of the high-frequency range is treated (8 kHz → 1.4 kHz). Zero is not bypass.
Release Sets how quickly suppression returns after a note (2–30 ms). Increase it to preserve tails.
Listen removed Auditions input minus processed audio; switch it off to hear the processed signal. This difference includes filter phase effects, not just noise.

Input and output meters show peak dBFS. The large readout shows high-band gain reduction, not whole-signal loudness loss; in multiband sessions it shows the deepest band reduction. Clip warnings, bypass, silence, learning, and stopped audio are labelled explicitly. Stopped meters clear instead of holding stale readings.

Drag a dial to adjust; Shift-drag for fine control, double-click / Return for exact entry, and Alt/Option-click / Home to reset. Tab and arrow keys work too. Use your host's bypass to compare with the dry input.

Existing sessions and automation remain compatible. The additional engine settings remain available in the host's parameter view, not in the simplified editor. Host settings active indicates non-default legacy settings; hover for details. In multiband mode, Threshold and Strength are inactive because that mode uses its own splits and learned thresholds.

Building

Requirements: CMake ≥ 3.22, a C++17 compiler, Ninja (recommended). JUCE and the CLAP wrapper are fetched automatically (pinned versions).

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --target Suppressor_VST3 Suppressor_CLAP Suppressor_Standalone

Outputs land in build/Source/Suppressor_artefacts/Release/{VST3,CLAP,Standalone}.

Unit tests

cmake -S . -B build-tests -G Ninja -DSUPPRESSOR_BUILD_PLUGIN=OFF -DSUPPRESSOR_BUILD_TESTS=ON
cmake --build build-tests && ctest --test-dir build-tests --output-on-failure

UI and wrapper tests

cmake --build build --target SuppressorUITests
ctest --test-dir build --output-on-failure

These also exercise native VST3/CLAP editor embedding. Linux needs a display with a window manager (CI uses Xvfb + Openbox). Set SUPPRESSOR_UI_CAPTURE_DIR to an absolute directory to save real editor captures at 100–200% scaling.

CI

.github/workflows/ci.yml gates every push/PR on:

  1. DSP unit tests on Windows, macOS, and Linux;
  2. VST3 + CLAP builds on all three platforms (macOS universal);
  3. validation with pluginval (VST3) and clap-validator (CLAP);
  4. per-OS artifact packaging. Tags matching v* publish a GitHub release.

Design documentation

See docs/DESIGN.md for the full DSP specification: topology, parameter laws, timing, and the rationale behind every improvement over a plain one-split gate.

License

GPL-3.0-or-later (see LICENSE). This project is built with JUCE (also available under the GPL); a commercial JUCE licence would permit proprietary relicensing. CLAP is MIT-licensed.

About

Zero-latency, frequency-split noise suppressor for guitar DI — built for high-gain amp-sim and reamping chains.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages