A free, open-source OTT-style dual-band compressor VST3 plugin built with JUCE.
Combines classic downward compression (tame loud signals) with upward compression
(lift quiet signals) in a single, lightweight processor — perfect for glue compression,
mastering levelling, or parallel pumping effects.
- Features
- Parameters
- Installation
- Building from Source
- Project Structure
- Contributing
- License
- Acknowledgements
- Dual-mode compression — independent downward and upward compressor in one plugin
- OTT-style gain computation — ratio-based power-law mapping with smooth ballistic envelopes
- Per-channel stereo processing — left and right channels processed independently
- Zero-latency — no look-ahead; tail length is zero
- Preset state save/restore — full DAW automation and session recall via APVTS
- Lightweight — no web browser, no CURL, no unnecessary JUCE modules
- FOSS — MIT licensed; source included, forks welcome
| Parameter | ID | Range | Default | Description |
|---|---|---|---|---|
| Down Threshold | down_thresh |
−60 … 0 dB | −12 dB | Level above which downward compression engages |
| Down Ratio | down_ratio |
1 … 20 | 4 | Downward compression ratio (N:1) |
| Up Threshold | up_thresh |
−60 … 0 dB | −30 dB | Level below which upward compression engages |
| Up Ratio | up_ratio |
1 … 20 | 4 | Upward compression ratio (N:1) |
| Attack | attack_ms |
0.1 … 200 ms | 10 ms | Attack time for both compressors |
| Release | release_ms |
1 … 2 000 ms | 100 ms | Release time for both compressors |
All parameters are fully automatable and saved with the DAW project.
Download the latest pre-built VST3 from the Releases page.
- Download
PHU-COMPRESSOR-windows.zipfrom the latest release. - Extract and copy
PHU COMPRESSOR.vst3to your VST3 folder:C:\Program Files\Common Files\VST3\ - Rescan plugins in your DAW.
- Download
PHU-COMPRESSOR-linux.zipfrom the latest release. - Extract and copy
PHU COMPRESSOR.vst3to:~/.vst3/ # or system-wide: /usr/lib/vst3/
- Rescan plugins in your DAW.
| Platform | Architecture | Format |
|---|---|---|
| Windows 10 / 11 | x64 | VST3 |
| Ubuntu 22.04+ / Debian | x64 | VST3 |
| Other Linux | x64 | VST3 (build from source) |
macOS is not yet officially supported (contributions welcome — see Contributing).
- Git (with submodule support)
- CMake ≥ 3.23
- C++17-capable compiler (MSVC 2022+ on Windows, GCC 11+ / Clang 13+ on Linux)
Clone the repository with submodules (JUCE is a submodule):
git clone --recurse-submodules https://github.com/huberp/phu-compressor.git
cd phu-compressorIf you already cloned without --recurse-submodules:
git submodule update --init --recursivescripts\build.batThe script configures and builds a Release VST3 using the vs2026-x64 CMake preset.
The output is placed in:
build\vs2026-x64\src\phu-compressor_artefacts\Release\VST3\PHU COMPRESSOR.vst3
scripts\release.batThis builds Release and zips the VST3 into dist\PHU-COMPRESSOR-windows.zip.
cmake --preset vs2026-x64
cmake --build --preset releaseInstall system dependencies first (Ubuntu / Debian):
sudo bash scripts/install-linux-deps.shThen build:
cmake --preset linux-release
cmake --build --preset linux-buildThe built plugin is at:
build/linux-release/src/phu-compressor_artefacts/Release/VST3/PHU COMPRESSOR.vst3/
Install to your user VST3 folder:
cp -r "build/linux-release/src/phu-compressor_artefacts/Release/VST3/PHU COMPRESSOR.vst3" \
~/.vst3/For detailed Linux instructions see docs/LINUX_BUILD.md.
| Preset | Platform | Description |
|---|---|---|
vs2026-x64 |
Windows | Visual Studio 2026, x64 |
linux-release |
Linux | Unix Makefiles, Release |
release (build) |
Windows | Release build targeting phu-compressor_VST3 |
debug (build) |
Windows | Debug build |
linux-build (build) |
Linux | Release build |
phu-compressor/
├── src/
│ ├── OttCompressor.h # Core DSP — OTT-style compressor (header-only)
│ ├── PluginProcessor.cpp/.h # JUCE AudioProcessor: parameter setup & audio routing
│ ├── PluginEditor.cpp/.h # JUCE AudioProcessorEditor: slider UI
│ └── CMakeLists.txt # Plugin target definition
├── JUCE/ # JUCE framework (git submodule)
├── scripts/
│ ├── build.bat # Windows quick-build script
│ ├── release.bat # Windows release-package script
│ └── install-linux-deps.sh # Linux dependency installer
├── docs/
│ └── LINUX_BUILD.md # Detailed Linux build guide
├── .github/
│ └── workflows/
│ ├── build.yml # CI: build + pluginval on every push/PR
│ └── release.yml # CD: publish a GitHub Release on version tags
├── CMakeLists.txt
├── CMakePresets.json
└── LICENSE # MIT
Contributions, bug reports and feature requests are welcome!
- Fork the repository.
- Create a branch:
git checkout -b feature/my-feature - Commit your changes with a clear message.
- Open a Pull Request against
main.
Please keep code style consistent with the existing .clang-format configuration
(BasedOnStyle: Google, 100-column line limit).
Ideas for future improvements:
- macOS / AU support
- Gain reduction meter in the UI
- Mid/Side processing mode
- Multiband (phu-splitter integration)
MIT License — © 2026 huberp
You are free to use, modify, and distribute this plugin in both open-source and commercial projects. Attribution is appreciated but not required.