isgasho / lamb-rs

A lookahead compressor/limiter that's soft as a lamb.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lamb 🐑

A lookahead compressor/limiter that's soft as a lamb.

screenshot

Lamb was made with these goals in mind:

  • Be as clean as possible
  • Give the user full control over the character with the minimum amount of knobs.

The secret sauce is all in the attack/release: you can change both the length and the shape of their curve.
The shapes look like this; c0 in Desmos corresponds to the shape parameters in the plugin.
When it is at value 0, the curve is a slice of pure sine.

The release hold parameter prevents the gain reduction from coming back up if it needs to go down again soon.
You control how soon is soon with release hold.
This adds latency though.

Usage

Apart from regular dragging and using the mouse-wheel, you can interact with the sliders in the following ways:

  • Shift + drag or mouse-wheel: fine adjustments
  • Alt + click on a slider: type a value
  • Double-click on a slider: back to the default value.

Building and installing

After installing Rust, you can build and install lamb as follows:

git submodule update --init --recursive
cargo xtask bundle lamb --release
cp -r target/bundled/lamb.vst3 ~/.vst3

User preferences

ATTENTION If you want to use the plugin with a samplerate of more than 48k, make sure you change MaxSampleRate at the start of lamb.dsp.
There's a couple of other user preferences as well, documented in the dsp file.

Rebuilding the Faust dsp

The faust dsp code in dsp/lamb.dsp is only transpiled to rust if you build with the faust-rebuild feature activated, like so:

cargo xtask bundle lamb --release  --features faust-rebuild

The smoothing algorithm in lamb needs double precision to work. This only recently got supported in faust and is not in a released version yet. Therefore, you currently need to build faust from source to be able to rebuild the dsp of lamb.
Here's a quick tutorial on how to do that.

Thanks

This plugin would not have been possible without the following projects:

I would like to thank @sletz, @robbert-vdh, @obsoleszenz and @dariosanfilippo for their fantastic support and feedback!

🐑

About

A lookahead compressor/limiter that's soft as a lamb.

License:GNU Affero General Public License v3.0


Languages

Language:Rust 97.7%Language:CSS 1.8%Language:Nix 0.4%Language:Shell 0.0%