# Pascalcompressor An audio compressor audio plugin, built with [JUCE](https://juce.com/) 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.: ```sh 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 ```