- C++ 64.5%
- C 15.6%
- CMake 10.5%
- Makefile 9.4%
| Source | ||
| Tests | ||
| .gitignore | ||
| CMakeLists.txt | ||
| Makefile | ||
| pascalcompressor.png | ||
| README.md | ||
Pascalcompressor
An audio compressor audio plugin, built with JUCE as an Audio Unit (AU) and VST3.
What it is
Pascalcompressor is a dynamics processing plugin - a compressor - that reduces the level of audio that exceeds a threshold, making loud parts quieter and the overall signal more consistent. It's the kind of tool you use to glue a mix together, tame peaks, or shape the punch of a track.
What it does
The plugin's DSP (in Source/Compressor.cpp) implements a classic soft-knee compressor with the standard controls:
- Input - pre-gain applied to the signal before detection
- Threshold - the level above which compression kicks in
- Ratio - how much gain reduction is applied above the threshold
- Attack - how fast the compressor responds once the signal crosses the threshold
- Release - how fast it lets go after the signal drops back below
- Makeup gain - compensates for the level lost to compression
- Dry/wet - blend between the uncompressed and compressed signal, handy for parallel compression
It uses a feed-forward design with a mono-summed detector and a one-pole envelope follower, so the gain reduction feels smooth and "glued" to the source.
Why it's called Pascalcompressor
A friend of mine is named Pascal. This is named after him - "the Pascal compressor."
Building
The project is set up with CMake and JUCE's FetchContent (it pulls JUCE automatically into build/_deps). See the Makefile for common targets, e.g.:
make build # configure + build default targets
make install # build and install the plugin
make smoke # run a smoke test against the built AU (if present)
Configuration defaults to a build in build/; see the Makefile for available
variables (e.g. CONFIG) and targets.
Build output lands in build/Pascalcompressor_artefacts/ (.component for AU, .vst3 for VST3).
Repository layout
Source/ plugin DSP and editor code
Tests/ unit tests
CMakeLists.txt
Makefile
