Strata GitHub

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.

The Strata chain as layers of rock: your mix at the bottom, then Tone, Glue, Warmth and Width, with the limiter on top Limiter Width Warmth Glue Tone Your mix always last mid/side, mono bass tape-like saturation bus compressor mastering EQ
Each layer has on/off and opacity, and the middle four can be reordered. The limiter always sits on top.

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.

Four channels, each with a Cylinder, feed the Engine on the Master. The Engine sends a plan back to every Cylinder. Drums Bass Lead vocal Pad Cylinder Cylinder Cylinder Cylinder Strata Engine on the Master: layers, limiter, meters plan per channel Four channels, each with a Cylinder, feed the Engine on the Master. The Engine sends a plan back to every Cylinder. DrumsBass Lead vocalPad CylinderCylinder CylinderCylinder plan per channel Strata Engine on the Master: layers, limiter, meters

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.
Example over 16 bars: the lead comes up 3 dB during its solo in bars 5 to 8 while the pad sits back 1.5 dB; drums stay level. solo bar 1 5 9 13 17 Lead Pad Drums +3 dB −1.5 dB 0 dB
Example: a lead solo over a pad and drums. Changes are smoothed over 3 beats and land a quarter beat early, so a lift is there when the note is.

Roles

Set on each Cylinder. A role decides how the plan treats the channel, not how it sounds on its own.

RoleUse it forIn the planNeutral level
DrumsKits, loops, percussionFixed level, never moved by moments0 dB
BassBass, sub, 808Fixed level−2 dB
LeadLead vocal, solo instrumentCan be featured−1 dB
KeysPiano, guitar, any moving melodic lineCan be featured−5 dB
PadPads, drones, held chordsA bed: sits back while something moves−9 dB
TextureNoise, risers, rain, ambienceA 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.

LayerWhat it doesControls
ToneMastering EQ, Presence and Air matched to the analog curve up to NyquistLow cut, Low shelf 110 Hz, Body 400 Hz, Presence 3 kHz, Air 10 kHz (±6 dB)
GlueStereo-linked bus compressor with a high-passed detector, so kick and bass don't drive itThreshold, Ratio, Attack, Release, Makeup, Sidechain HPF
WarmthSoft saturation, 4× oversampled, plus grit on the bass bandDrive, Bass grit
WidthMid/side width with bass to mono, optional linear phaseWidth 0–200 %, Mono below, Linear phase
LimiterTrue-peak limiter with lookahead, program-dependent release and an optional clipperInput 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

  1. Download Strata-windows.zip from the latest release and unzip it.
  2. VST3: copy the Strata.vst3 folder to C:\Program Files\Common Files\VST3\
  3. CLAP: copy Strata.clap to C:\Program Files\Common Files\CLAP\
  4. 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.