Mastering in layers.
A free mastering plugin you stack like adjustment layers, and an Engine that balances the whole mix from a Cylinder on every channel. Learn the song once, and every render comes out the same.
VST3 and CLAP, 64-bit. Builds on Linux too. GPL-3.0.
Engine + Cylinders
Strata balances the mix for you, once per song, and then holds it still. It is not auto-gain that keeps reacting: it learns the song in one pass, plans every channel from what it heard, and plays that plan back locked to the song position.
Strata Cylinder
First insert slot of every instrument's mixer track
Listens to its channel while learning: level, attacks, low, mid and high bands and stereo width, beat by beat. After the balance it becomes that channel's gain and width stage.
Strata, the Engine
The Master track
The mastering chain and meters, plus the brain: it starts and stops learning, makes the plan, and sends each Cylinder its part. Both plugins ship in the same file and find each other in the host.
The process, once per song
Five steps. Channel faders stay at 0 dB: the Cylinders set the levels, and a fader still applies after its Cylinder.
Set up
Route every instrument to its own mixer track and put a Strata Cylinder in slot 1 of each. Give it a name and a role, or leave it on Auto and it guesses from what it hears. Put Strata on the Master and pick a genre, or Neutral.
Learn
In the Engine's Balance card press Start learning, then play or render the whole song from the start. Each Cylinder counts the beats it learned.
Balance
Press Stop learning + Balance. The Engine plans every channel and the Cylinders follow it straight away. The card lists each channel's role, gain and width, and a report is written.
Set the loudness
Press Reset meters, play or render the whole song again, then Apply to limiter input gain. The balanced mix now meets the loudness target: the genre's, or the Target slider in Neutral.
Render
Export the final mix. The plan is saved with the project, so reopening it plays the same balance.
Learn again only when the arrangement changes. After changing roles, trims or the genre, Balance again re-plans from what was already learned without replaying the song.
What the plan does
Three parts, each with its own slider on the Engine (0 to 100 %), and a Balance switch that turns the whole plan off.
- Static balance
- Each channel's loudness, while it plays, moves towards the genre's level for its role. Neutral: drums 0, bass −2, lead −1, keys −5, pad −9, texture −15 dB against the mix. At most ±9 dB.
- Moments
- Beat by beat, for Lead and Keys parts. One part moving alone comes up 3 dB, two moving 1.5 dB each, and in a crowd only the busiest stays forward. Pads, drones and textures sit back 1.5 dB while something moves. Drums and bass are never pushed around, so the groove doesn't pump.
- Width
- Each channel gets the genre's width for its role: bass mono, pads wide. A channel that is already wide is capped, and a mono one can't be widened; the report says which.
Roles
Set on each Cylinder. A role decides how the plan treats the channel, not how it sounds on its own.
| Role | Use it for | In the plan | Neutral level |
|---|---|---|---|
| Drums | Kits, loops, percussion | Fixed level, never moved by moments | 0 dB |
| Bass | Bass, sub, 808 | Fixed level | −2 dB |
| Lead | Lead vocal, solo instrument | Can be featured | −1 dB |
| Keys | Piano, guitar, any moving melodic line | Can be featured | −5 dB |
| Pad | Pads, drones, held chords | A bed: sits back while something moves | −9 dB |
| Texture | Noise, risers, rain, ambience | A bed, quietest | −15 dB |
On a Cylinder, Trim (−24 to +12 dB) sits on top of the plan, for example about −6 dB on a vocal that sits too far forward, and Follow Engine off takes one channel out of it. Every balance writes Documents\Strata\report.json with each channel's role, loudness, gain, width and per-bar curve, plus the list of moments.
The layers
On and off and opacity changes are ramped, so they never click. Pick a genre and Tone, Glue, Warmth and Width follow it; the sliders become trims on top.
| Layer | What it does | Controls |
|---|---|---|
| Tone | Mastering EQ, Presence and Air matched to the analog curve up to Nyquist | Low cut, Low shelf 110 Hz, Body 400 Hz, Presence 3 kHz, Air 10 kHz (±6 dB) |
| Glue | Stereo-linked bus compressor with a high-passed detector, so kick and bass don't drive it | Threshold, Ratio, Attack, Release, Makeup, Sidechain HPF |
| Warmth | Soft saturation, 4× oversampled, plus grit on the bass band | Drive, Bass grit |
| Width | Mid/side width with bass to mono, optional linear phase | Width 0–200 %, Mono below, Linear phase |
| Limiter | True-peak limiter with lookahead, program-dependent release and an optional clipper | Input gain, Ceiling, Release, Auto release, Clipper |
Meters follow EBU R128 / ITU-R BS.1770-4: integrated, short-term and momentary loudness, true-peak, correlation and gain reduction. Compare 1:1 plays the input at the output's loudness, so you judge the processing, not the level.
Install
Windows
- Download Strata-windows.zip from the latest release and unzip it.
- VST3: copy the
Strata.vst3folder toC:\Program Files\Common Files\VST3\ - CLAP: copy
Strata.claptoC:\Program Files\Common Files\CLAP\ - In FL Studio: Options, Manage plugins, Find more plugins. Strata goes on the Master, Strata Cylinder on each channel.
Build from source
cargo test --lib
./build-windows.sh
cargo run --release --bin strata-render -- \
in.wav out.wav [limiter-gain-dB] [ceiling-dBTP]
Rust with nih-plug. build-windows.sh cross-compiles with cargo-xwin. strata-render runs the default chain offline and prints loudness before and after.