diff --git a/README.md b/README.md index e69de29..e0063e9 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,49 @@ +# 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 +```