mirror of
https://codeberg.org/armin/pascalcompressor.git
synced 2026-10-11 16:51:56 +02:00
51 lines
2 KiB
Markdown
51 lines
2 KiB
Markdown
# 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
|
|
```
|