pascalcompressor/README.md
2026-09-09 12:37:06 +02:00

2 KiB

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