Latest release

clap-nr

DSP noise-reduction algorithms for amateur radio, wrapped as an open-standard CLAP audio plugin.

⇓ Download ⬡ View on GitHub

What is clap-nr?

The noise-reduction algorithms at the core of this plugin were written by Warren Pratt (NR0V) and Richard Samphire (MW0LGE). The NR0 automatic tone notcher was written by Stuart Green (G5STU). Our contribution is the CLAP plugin wrapper, the audio integration layer, and the cross-platform Dear ImGui user interface. Full attribution is given in the THIRD-PARTY-NOTICES file.

clap-nr brings the high-quality DSP noise-reduction algorithms found in established amateur radio software-defined radio stacks to any host application that supports the CLAP open plugin standard.

The plugin was written primarily to support Station Master Pro by Stuart E. Green (G5STU), an advanced amateur radio application with native CLAP plugin support. The broader goal is to make professional-grade noise-reduction available to the wider amateur radio community without locking it to any single radio application.

This plugin is not standalone - it must be loaded by a host application that supports the CLAP plugin format.

Get clap-nr

Select your operating system below for step-by-step installation instructions.

clap-nr NR0 tab shown active inside Station Master Pro
clap-nr loaded inside Station Master Pro - NR0 auto-notch tab active
clap-nr plugin window standalone view
The clap-nr plugin window - NR0 auto-notch controls
  1. Download the Windows installer

    Click the Download button at the top of this page. Your browser will download a .exe installer file.

  2. Run the installer

    Double-click the downloaded .exe file. Windows may show a security prompt - click More info then Run anyway to continue.

  3. Follow the setup wizard

    Click through the setup steps. The installer handles everything - no manual file copying required.

    Windows installer ready-to-install screen
    Installer ready to install - click Install to continue
    Windows installer completed screen
    Installation complete
  4. Open your host application

    Start Station Master Pro (or any CLAP-compatible host). The plugin will appear as clap-nr in the plugin list.

  5. Load clap-nr and select a noise-reduction mode

    Add the plugin to your audio chain, choose a noise-reduction tab (NR1 through NR4, or NR0 for the auto-notch), and adjust the controls to suit your signal.

To uninstall: Open Add or remove programs in Windows Settings, search for clap-nr, and click Uninstall.

clap-nr plugin window
The clap-nr plugin window - NR0 auto-notch controls
  1. Download the macOS installer

    Click the Download button at the top of this page. Your browser will download a .pkg installer file.

  2. Open the installer

    Double-click the downloaded .pkg file and follow the on-screen steps. macOS may ask for your administrator password to install the plugin system-wide.

    If macOS shows a security warning, go to System Settings → Privacy & Security and click Open Anyway.

  3. Complete the installation

    The plugin is installed to /Library/Audio/Plug-Ins/CLAP/ and is available to all users on this Mac.

  4. Open your host application

    Start your CLAP-compatible host. The plugin will appear as clap-nr in the plugin list.

  5. Load clap-nr and select a noise-reduction mode

    Add the plugin to your audio chain, choose a noise-reduction tab (NR1 through NR4, or NR0 for the auto-notch), and adjust the controls to suit your signal.

Supported on Apple Silicon & Intel.

clap-nr plugin window
The clap-nr plugin window - NR0 auto-notch controls
  1. Download the Linux installer

    Click the Download button at the top of this page. Your browser will download a .tar.gz archive file named clap-nr-{version}-linux-installer.tar.gz.

  2. Extract the archive

    Open a terminal in your Downloads folder and extract the archive:

    cd ~/Downloads
    tar xzf clap-nr-*-linux-installer.tar.gz
    cd clap-nr-*-linux-installer

    This creates a folder containing the plugin and installation script.

  3. Run the installer

    Execute the installation script (no sudo required for user install):

    ./install.sh

    This installs the plugin to ~/.clap/ in your home directory. For system-wide installation (all users), use:

    sudo ./install.sh --system

    System-wide installation places the plugin in /usr/lib/clap/.

  4. Open your host application

    Start your CLAP-compatible host. The plugin will appear as clap-nr in the plugin list. If your host was already running, restart it or trigger a plugin rescan.

  5. Load clap-nr and select a noise-reduction mode

    Add the plugin to your audio chain, choose a noise-reduction tab (NR1 through NR4, or NR0 for the auto-notch), and adjust the controls to suit your signal.

Works on any x64 Linux distribution with glibc 2.31+ (Ubuntu 20.04+, Debian 11+, Fedora 30+). No dependencies to install - the installer is self-contained.

Uninstalling

To remove the plugin, run the uninstall script from the installer folder:

./uninstall.sh

Or for system-wide removal:

sudo ./uninstall.sh --system
🛠 Developer: build and install from source

These instructions are for developers who want to compile clap-nr from the source repository. Regular users should use the installer above.

Windows (x64)

Requires: Git, CMake 3.20+, Visual Studio 2022 with the Desktop development with C++ workload.

Build:

.\build-win.ps1

Output: build\Release\clap-nr.clap

Install (automatically requests administrator privileges):

install-win.ps1

Installs to %CommonProgramFiles%\CLAP\. Double-click the script in File Explorer.

Uninstall (automatically requests administrator privileges):

uninstall-win.ps1

macOS (Apple Silicon, arm64)

Requires: Xcode Command Line Tools, CMake 3.20+.

xcode-select --install   # one-time, if not already done
brew install cmake       # or download from cmake.org

bash build-mac.sh

Output: build-mac/clap-nr.clap

Install (user install, no password required):

bash install-mac.sh

Installs to ~/Library/Audio/Plug-Ins/CLAP/.

Linux (x64)

Quick development build:

Requires: GCC/Clang, CMake 3.20+, standard build tools, and audio processing libraries.

# Install system prerequisites
sudo apt-get install -y build-essential cmake git pkg-config \
    libglfw3-dev libgl-dev mesa-common-dev libfftw3-dev \
    autoconf automake libtool meson ninja-build

# Build and install rnnoise and specbleach from source
chmod +x install-linux-deps.sh
./install-linux-deps.sh

# Set PKG_CONFIG_PATH or restart terminal
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:${PKG_CONFIG_PATH:-}"

# Build the plugin
./build-linux.sh

Output: build-linux/clap-nr.clap

Standalone installer build (for distribution):

Create a distributable tarball that works on any Linux distro without requiring users to install dependencies:

# One-time: build static libraries (~15 minutes)
chmod +x build-linux-static-libs.sh
./build-linux-static-libs.sh

# Build the installer package
chmod +x build-installer-linux.sh
./build-installer-linux.sh

Output: dist/clap-nr-{version}-linux-installer.tar.gz

Install (after building):

User install (no root, installs to ~/.clap/):

./install-linux.sh

System-wide install (installs to /usr/lib/clap/):

sudo ./install-linux.sh --system

See the README for complete Linux build instructions including all options.

Noise-reduction modes

NR1

ANR

Adaptive LMS noise reduction. Fast, low-latency, effective on stationary tones.

NR2

EMNR

Spectral MMSE with machine-learning gain estimation. Broad-band noise floor reduction.

NR3

RNNR

RNNoise recurrent neural network denoiser. Choose from Standard (built-in), Small, or Large model; adjust suppression strength to taste.

NR4

SBNR

libspecbleach adaptive spectral denoiser. Simple single-knob reduction control.

NR0

Auto Notch

FFT spectral tone notcher. Automatically detects and notches narrowband carriers, heterodynes, and whistles. Written by Stuart Green (G5STU).

NR1 parameters

ParameterRangeDescription
Taps16 - 2048LMS filter length; more taps = narrower notch / slower adaptation
Delay1 - 512Decorrelation delay in samples
Gain (two_mu)1e-6 - 0.01LMS step size; higher = faster but less stable
Leakage (gamma)0.0 - 1.0Weight decay factor; prevents tap blow-up

NR2 parameters

ParameterOptionsDescription
Gain MethodRROE / MEPSE / MM-LSASpectral gain estimation algorithm (MM-LSA recommended)
NPE MethodOSMS / MMSENoise power estimation method
Audio EnhanceOn / OffPost-filter musical noise suppression

NR3 parameters

ParameterOptions / RangeDescription
ModelStandard / Small / LargeRNNoise neural network weights. Standard is built into the DLL; Small and Large load an external .bin file from the install folder. Larger models give stronger suppression at higher CPU cost.
Suppression0 - 100 %Blends the denoised output with the original dry signal. 100 % = full denoising; 0 % = bypass. Reduce if the denoiser removes too much signal content. Default: 100 %.

NR4 parameters

ParameterRangeDescription
Reduction0 - 20 dBAmount of spectral noise attenuation. Higher values suppress more noise but may affect speech clarity. Default: 10 dB.

NR0 parameters

Written by Stuart Green (G5STU). Uses a 2048-point overlap-add FFT to automatically detect and notch narrowband tones in real time. Broadband noise and speech are unaffected.

ParameterRangeDescription
Aggressiveness0 - 100Controls how quickly a notch is released after a tone disappears. 0 = longest hold (best for stable carriers); 100 = fastest release (best for sweeping tones).
Max Notches1 - 10Maximum number of simultaneous tone notches. Reduce for single-tone signals (e.g. carriers) to avoid touching voice content.
Threshold3 - 40 dBHow far a spectral peak must exceed the local noise floor to be considered a tone. Higher values ignore weaker tones. Default: 10 dB.

NR0 Target presets

PresetAggrMax NotchesThresholdUse case
Carriers / Heterodynes0220 dBStable single or dual tones; long hold prevents re-triggering on brief breaks.
General / Mixed50510 dBBalanced detection for most interference types.
Whistles8058 dBFast release for sweeping or brief tones.

Platform support

Windows x64 ✓ macOS arm64 ✓ Linux x64 ✓

Windows x64, macOS Apple Silicon (arm64), and Linux x64 are all supported. Each platform has a dedicated build and install script in the repository root.

Licence

Distributed under the GNU General Public License v2. This licence is inherited from the upstream DSP sources. See LICENSE for the full text and THIRD-PARTY-NOTICES.md for all upstream copyright notices.

Special thanks

clap-nr would not exist without the following people and projects. Please visit their repositories and consider supporting their work directly.

Warren Pratt NR0V
ANR and EMNR algorithms (NR1 & NR2) - from the wdsp DSP library for amateur radio SDR.
github.com/TAPR/OpenHPSDR-wdsp
Richard Samphire MW0LGE
RNNR and SBNR integration (NR3 & NR4) - RNNoise and libspecbleach wrappers from the Thetis project.
github.com/ramdor/Thetis
Jean-Marc Valin & Xiph.Org Foundation
RNNoise - recurrent neural network noise suppression (NR3).
gitlab.xiph.org/xiph/rnnoise
Luciano Dato
libspecbleach - adaptive spectral noise reduction (NR4).
github.com/lucianodato/libspecbleach
Matteo Frigo & MIT
FFTW3 - fast Fourier transform library underpinning EMNR frequency-domain processing.
fftw.org
Alexandre Bique & contributors
CLAP - the open audio plugin standard that makes host-neutral distribution possible.
github.com/free-audio/clap
Omar Cornut & contributors
Dear ImGui - the immediate-mode GUI library powering the cross-platform plugin interface (Windows, macOS, Linux).
github.com/ocornut/imgui
Stuart Green G5STU
NR0 automatic tone notcher - original FFT spectral notch algorithm for narrowband carrier, heterodyne, and whistle removal.
stationmastercloud.com