PUBLIC REPOSITORY
By Batty 251 (@batty-251) · Licence: AGPL-3.0-or-later · 1 published version · 4378 files · 506 MB of source · Last published 2026-09-30
A public project on CodeRook. Browse it at https://coderook.com/batty-251/fxsound-linux.
FxSound is a digital audio program for Windows and Linux. The background processing, built on a high-fidelity audio engine, acts as a sort of digital soundcard for your system. This means that your signals will have the clean passthrough when FxSound is active. There are active effects for shaping and boosting your sound's volume, timbre, and equalization included on top of this clean processing, allowing you to customize and enhance your sound.
FxSound application requires FxSound Audio Enhancer virtual audio driver. So, to run FxSound application built from source, we need to install FxSound which installs the audio driver.
FxSound application has three components.
Due to the some limitations with Projucer, after exporting the Visual Studio solution from Projucer, few changes have to be made in the solution to build FxSound.
$(SolutionDir)..\..\bin\$(PlatformTarget) in FxSound_App Project->Properties->Debugging setting.See [linux/README.md](linux/README.md) for the full Linux build guide.
Quick start:
git submodule update --init Resources
git clone --depth 1 --branch 6.1.6 https://github.com/juce-framework/JUCE third_party/JUCE
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
sudo cmake --install buildAn AppImage can be built with ./packaging/build-appimage.sh (downloads
tooling automatically) or downloaded from the releases page.
We welcome anyone who wants to contribute to this project. For more details on how to contribute, follow [this contributing guideline](./CONTRIBUTING.md).
Our special thanks to Advanced Installer for supporting us with Advanced Installer Professional license to build our installer.
This project uses the JUCE framework, which is licensed under AGPL v3.0.
Thanks to Theremino for the valuable contributions they do through major feature enhancements in FxSound.
On Windows, FxSound's volume is applied by the operating system at the audio
endpoint (IAudioEndpointVolume, via sndDevices/sndDevicesVolCallbacks.cpp),
which sits after the DSP - so a volume boost lands where it can be heard.
The Linux/PipeWire port had no equivalent volume stage, so the only loudness
control available (FxSound's own volume) was applied inside the DSP, where the
engine's normalization absorbs it. As a result, gaining volume on Linux was
noticeably harder than on Windows.
audiopassthru/include/VoxLimiter.h restores the missing behaviour: a look-ahead
limiter plus adaptive normalizer applied after the DSP and after FxSound's own
volume, so a hard boost makes the sound louder instead of clipping. It is a port
of the author's own Rust audio engine, the mastering backend written for their
website (the vox-auto-master-v3 recipe), which is where every constant comes
from.
Set VOX_LIMITER=0 to disable it.
A fresh clone builds with no extra patching. Note thatdsp/linux/lc_headers is a case-insensitivity bridge made of relative
symlinks; regenerate it with tools/gen-lc-headers.sh if you add headers.
PUBLIC REPOSITORY