Aureate User Manual

What Aureate is

Aureate is a tape/console saturation "glue" plugin for orchestral material - strings, brass, and layered/bussed tracks that need cohesion and a little analog warmth without sounding like a guitar pedal. It combines a 4x oversampled, character-selectable saturator (tanh-based tape, soft-knee console, or exponential valve) with tape-transport artefacts (independent Wow/Flutter, an LF head bump, HF-forward Hiss) and a dual-shelf tilt-style Tone control plus independent HF/LF trim shelves.

v0.3.0 adds the section the plugin's name always implied: a program-dependent bus compressor with two selectable laws (VCA and Vari-Mu), a flux-domain transformer "Iron" stage, an ADAA "HQ" quality mode, and drive-compensated Auto Gain. Every one of them is off or neutral by default, and each neutral default is a branch-skip rather than a transparent setting - an existing session sounds bit-for-bit as it did in v0.2.1 (see Upgrading below).

v0.2.0 is a research-derived revision of the saturation core - see docs/design-brief.md for the full brief (what changed and why) and docs/research-notes.md for its sourced citations. Nothing here is calibrated against measured hardware; every default is either carried over from v0.1 or chosen to sit inside a sourced band/ordering from the literature - see the brief's own Honesty section.

Where it sits in a heavy production chain

Aureate is designed to run after the individual layers of an orchestral/choral stack have been balanced (strings, brass, choir, etc.), typically on:

It is not a distortion or amp-sim plugin (that role belongs to overture/tenebrae elsewhere in the suite) - Drive is deliberately capped at a modest 24 dB and the default Warmth/Character settings stay well inside "adds richness," not "adds grit."

Signal flow

input -> Wow/Flutter (independent wow + flutter) -> Glue compressor (v0.3.0) -> Drive
      -> [4x oversampled: Warmth HF-rolloff -> LF head bump -> saturator (Character:
         Tape/Console/Valve, Warmth+Bias-driven asymmetry, ADAA in HQ quality) ->
         Iron transformer stage (v0.3.0) -> Tone tilt -> HF/LF Trim
         -> Hiss (HF-forward)]
      -> downsample -> Auto Gain (v0.3.0) -> Dry/Wet Mix -> Output trim -> output

Wow/Flutter and Drive run at the host sample rate; everything from the Warmth low-pass through Hiss runs inside the 4x oversampled domain, so the saturator's harmonics (and Hiss's noise) are generated and filtered at 4x the host rate before a single downsample step. Mix blends the processed ("wet") signal back with a delay-compensated copy of the untouched input, and Output is a final trim applied to the combined result. See docs/architecture.md for the full technical breakdown, including latency accounting and real-time-safety notes.

Reported latency

Aureate's reported latency has exactly two fixed sources: the 4x oversampler's own latency (JUCE's half-band polyphase IIR design, resolved at prepare() time) and Wow/Flutter's fixed 6 ms base delay. That base delay is always present, even at Wow 0% / Flutter 0% - only the depth of each LFO scales with its own control, never the shared base delay - so automating Wow or Flutter during playback never moves the plugin's reported latency mid-stream. getLatencySamples() reports the exact integer sum of both, and no fixed per-sample-rate figure is published here because the oversampler's own contribution depends on JUCE's half-band filter design at each rate.

None of the v0.3.0 additions change that total, at any setting: the Glue section runs at the host rate ahead of Drive and adds zero latency by construction, and the Iron stage lives inside the existing 4x oversampled region rather than a new one. This is verified directly - the reported latency is checked identical across every combination of Glue (on/off, VCA/Vari-Mu), Iron amount, Quality (Classic/HQ) and Auto Gain, at six sample rates from 44.1 to 192 kHz, including "everything enabled at once." Whatever the number is at your session's sample rate, none of these controls will change it.

Gain-staging note

Drive/Warmth's defaults are tuned assuming a nominal -18 dBFS RMS input level (the widely-cited tape "0 VU" calibration convention) - not a measurement of anything Aureate-specific, just a documented assumption. This explains why the default 6 dB of Drive feels quite different on a hot, limited digital bus versus a conservatively gain-staged one, and it's the anchor the factory presets use for Drive/Output as a matched pair.

Parameter reference

Parameter Range Default Unit What it does
Wow 0-100 0 % Amount of slow tape-transport pitch drift (~0.7 Hz), applied via a modulated delay ahead of Drive. 0% is a fixed (non-modulated) delay - a true off state, not "very little." Independent of Flutter (v0.2.0) - use Wow alone for a slow "breathing" pitch instability without any faster shimmer.
Flutter 0-100 0 % Amount of faster tape-transport pitch shimmer (~11 Hz), applied via the same modulated delay. Independent of Wow (v0.2.0) - use Flutter alone for a faster "wobble"/shimmer character without any slow drift. Use Wow and Flutter together, sparingly (10-25% each), for a classic vintage-tape character on sustained pads/strings; higher settings are an obvious, deliberate effect.
Drive 0-24 6 dB Gain into the saturator. Kept modest by design - Aureate is a glue processor, not a distortion pedal. Higher settings push the Character-selected curve harder, adding more harmonic content and compression.
Warmth 0-100 35 % Controls three things from one knob, all Character-dependent in strength: the saturator's asymmetry bias (single-ended, tape-like character - the bias ceiling differs per Character, see below), a gentle pre-clip high-frequency rolloff (tape self-erasure/bias-oscillator darkening), and a gentle LF head-bump resonance around 80 Hz (tape-transport head geometry, up to +1.5 dB). Higher Warmth = more asymmetric saturation, a darker top end, and a touch more low-end weight - the single most important "character" knob on the plugin.
Bias -100 to 100 0 % An additional, independent saturator asymmetry trim, added on top of Warmth's own bias contribution. Use this to skew the asymmetry further (or in the opposite direction) without touching Warmth's HF-rolloff/head-bump amount - useful for dialing in odd-vs-even harmonic balance to taste.
Character Tape / Console / Valve Tape - Selects the saturator's transfer-function family, each with a genuinely distinct harmonic-balance profile. Tape: smooth asymmetric tanh, the most odd-harmonic-dominant and least asymmetric of the three (Warmth's bias ceiling is lowest here) - the classic, forgiving tape-glue sound. Console: an asymmetric soft-knee curve (v0.2.0) that stays transparent at low-to-moderate drive, only showing character once pushed hard - the "least characterful until pushed" archetype, closer to a solid-state/transformer summing bus. Valve: an asymmetric exponential saturation curve, the most asymmetric/even-harmonic-forward of the three (Warmth's bias ceiling is highest here) - a rounder, tube-like push.
Tone -100 to 100 0 % A dual-shelf tilt-style EQ (two independent shelf corners, not a textbook single-pivot tilt): negative darkens (low shelf up, high shelf down), positive brightens (the inverse), 0% is flat/unity. Use this for the broad tonal balance of the whole processed signal.
HF Trim -6 to 6 0 dB A fixed-frequency (8 kHz) high-shelf trim, independent of Tone - a finer top-end adjustment (add air or tame harshness) after the broader Tone tilt has set the overall balance.
LF Trim -6 to 6 0 dB A fixed-frequency (150 Hz) low-shelf trim, independent of Tone - a finer low-end adjustment (add weight or tighten up mud) after the broader Tone tilt.
Hiss 0-100 0 % Amount of shaped noise ("tape hiss") mixed into the processed signal, generated inside the oversampled domain and shaped by a dedicated high-frequency-forward shelf (v0.2.0) so it reads as broadband hiss, not muffled static. 0% is genuinely silent (no noise floor at all) - a deliberate "vintage" option for material that should sound like it came off a tape machine, not a mixing-desk artefact to leave on by default.
Mix 0-100 100 % Dry/wet blend. At 0% the plugin is a sample-accurate (latency-compensated) passthrough of the input - useful for parallel/New-York-style blending, or for confirming Aureate isn't colouring a signal when you want to A/B it out.
Output -24 to 24 0 dB Final output trim, applied after the dry/wet mix - unlike Drive (which only affects the wet path), Output scales the combined dry+wet signal as a whole. Use it to compensate for level changes introduced by Drive/Warmth/Character before the signal moves further down the chain.
Glue Off / On Off - Master switch for the v0.3.0 bus-compressor section, which sits at the host sample rate ahead of Drive (console insert order: dynamics first, then the console/tape colour they feed). Off is a genuine bypass - the section returns before touching a sample, adds no latency, and costs nothing. Enabling and disabling it crossfades over 10 ms, so it is safe to automate.
Glue Model VCA / Vari-Mu VCA - Which detector and gain-cell law the section runs. VCA: a dB-domain timing network in a feedback loop - clean, predictable, the classic console bus-compressor behaviour, and the one that responds to the Attack switch. Vari-Mu: a tube-limiter-style law with a soft dead-zone sidechain, a current-limited rectifier and a three-capacitor release network - a much softer knee, an intrinsic attack, and a release that changes shape with the programme. Switching mid-signal crossfades the applied gain over 30 ms with the incoming law warm-started from the outgoing gain reduction, so it never jumps.
Glue Threshold -30 to 10 0 dB Where the section starts working, referenced to the plugin's -18 dBFS RMS calibration point: at 0 dB, a sine whose RMS is -18 dBFS sits exactly at threshold. Because the detector rectifies peaks while the threshold is referenced to RMS, a signal at threshold already draws a little gain reduction - that is what makes the knee straddle the threshold and span a few dB instead of starting at a corner. In the Vari-Mu law this control is the sidechain's own drive, so threshold, ratio and knee interact rather than being independent; that is the authentic behaviour of that circuit class, not a limitation.
Glue Ratio 2:1 / 4:1 / 10:1 2:1 - How hard the section leans once past threshold. Because the loop is a feedback topology, the ratio also changes the effective attack (higher ratios attack faster) and the knee width (lower ratios are softer) - none of which is programmed in; it falls out of the loop.
Glue Attack 0.1 / 0.3 / 1 / 3 / 10 / 30 ms 10 ms - The VCA law's attack time constant. Ignored by the Vari-Mu law, whose attack is intrinsic to its current-limited rectifier and is therefore not a user control - a bigger overshoot there takes proportionally longer to reach its own gain reduction, which is the behaviour a fixed time constant cannot reproduce. Fast settings (0.1-1 ms) catch transients; slow settings (10-30 ms) let them through and glue the body underneath.
Glue Release 0.1 / 0.3 / 0.6 / 1.2 s / Auto Auto - How quickly the section lets go. The four fixed positions carry the markings of the hardware class being modelled; the measured 37% recovery times of the Vari-Mu network are approximately 0.3 / 0.8 / 2 / 5 s, and that gap between the markings and the behaviour is a real property of the circuit rather than something quietly relabelled here. Auto is the position that makes the section behave like glue: a brief peak is forgotten inside a second, while ten seconds of sustained gain reduction takes several times longer to release - not because anything measures how long the signal has been loud, but because a slow reservoir capacitor only fills when the signal is actually sustained.
Glue Makeup 0 to 12 0 dB Static output gain for the section, deliberately not derived automatically from threshold and ratio - the section's gain staging stays your decision.
Glue SC Filter 20 to 500 20 Hz A high-pass in the detector path only - the audio is not filtered. Raise it so that kick and low strings stop pumping the whole mix. 20 Hz is a hard bypass, not merely a very low corner.
Iron 0-100 0 % Amount of the flux-domain output-transformer stage, inside the same 4x oversampled region, right after the saturator. Because the flux in a transformer core is the integral of the signal, the core saturates far harder at low frequencies for the same level - so third-harmonic distortion rises steeply toward the bottom end on its own, measured at roughly 10 dB per octave in this implementation (see Known limitations for how that compares to the idealized prediction). Add a gentle LF resonance around 35 Hz and a little high-frequency rounding and you get weight and iron rather than fizz. 0% skips the stage entirely.
Quality Classic / HQ Classic - Classic is v0.2.1's exact saturator maths, unchanged. HQ applies first-order antiderivative anti-aliasing to the same three Character curves - same oversampling, same reported latency, same voicing, a measured 24 dB lower alias floor at a hard 10 kHz / 24 dB fixture. There is no reason not to use HQ except CPU headroom - see Known limitations for why no benchmark figure is quoted here.
Auto Gain Off / On Off - Compensates most of the level Drive adds, on the wet path only, so that A/B-ing Drive is an A/B of character rather than of loudness. Honesty note: this is a one-point calibration per Character (measured against equal-RMS pink noise at Drive 0 versus 18 dB), not loudness matching - it does not measure your signal, and it is deliberately a listening aid rather than a mastering tool.

Presets

The preset bar at the top of the editor lets you browse Factory and User presets (< / preset name / > to step through, click the name for the full menu), Save/Save As/Delete user presets, Import/Export single presets or bank zips, and set the current state as your own startup default. Fourteen factory presets ship in v0.3.0 - the eleven from v0.2.0, byte-identical, plus Orchestral Bus Glue, Soft Tube Glue and Iron Bus Weight, which show the new section in its three most useful shapes. See docs/presets.md for what each one is for. Presets are stored per-user at ~/Library/Audio/Presets/Yves Vogl/Aureate/ on macOS (%APPDATA%/Yves Vogl/Aureate/Presets/ on Windows).

Under the hood

The reasoning behind v0.3.0's additions lives in docs/architecture.md; the sourced numbers below are in CHANGELOG.md. This section summarizes both for anyone who wants to know why the section behaves the way it does, not just what the knobs are labeled.

The Glue compressor is a feedback law, not a curve-fit. Both laws share one mono-summed sidechain and a detector that sees the signal after the gain cell, one sample old. That single topology decision - not a separately-programmed knee curve or attack formula - is what produces the soft knee, the ratio-dependent effective attack and the program-dependent release. VCA solves a dB-domain timing network inside that loop: at the 10 ms attack position, measured 63% attack times are 4.96 / 2.46 / 0.98 ms at 2:1 / 4:1 / 10:1 (the closed-loop prediction is 5.00 / 2.50 / 1.00 ms). Vari-Mu swaps in a genuinely different detector and gain cell: a softplus dead-zone sidechain, a current-limited rectifier, a trapezoidally-discretised three-capacitor release network, and a gain cell derived from the analytic transconductance of a published triode law - which is why its attack isn't a user control, and why doubling a step's size grows its peak rate of gain-reduction change by only about 1.22x, against roughly 2.0x for the VCA law's exponential attack.

The Auto release is a reservoir, not a timer. Its slow capacitor is only ever charged by release-phase ripple, so a 50 ms burst is forgotten in about 0.28 s while ten seconds of sustained gain reduction takes roughly 2.37 s to release - over eight times longer - with a tail that never overshoots and comes back.

Iron is Faraday's law, not an EQ curve. The stage integrates the signal to flux, saturates that flux, then differentiates back - three cheap operations, in that order, inside the existing oversampled region. Because core flux is the integral of the applied voltage, a core that saturates does so far harder at low frequencies for the same terminal level, so third-harmonic content rises on its own toward the bottom end - nothing in the stage is fitted to produce that slope. The integrator/differentiator pair is deliberately backward-Euler matched rather than the more common bilinear transform, because the bilinear inverse carries an undamped pole at Nyquist that a transient would park there forever; the backward-Euler pair is instead a pure one-zero FIR that decays to true zero, which is exactly what a ten-seconds-of-silence-after-a-transient check verifies.

HQ lowers the alias floor without re-voicing the plugin. Quality: HQ applies first-order antiderivative anti-aliasing to the same three Character curves, in the same oversampled region, at the same reported latency. Measured at a 10 kHz / 0 dBFS / 24 dB Drive fixture, the non-harmonic floor drops by about 24 dB on every Character, while the audible harmonic structure (H2/H3) stays within about 1 dB of Classic and the low-drive magnitude response within 0.1 dB up to 5 kHz - an alias-floor option, not a different sound.

Every new stage is neutral at its default by construction, not by coincidence. The Glue section returns before touching a sample when it's off; Iron is stepped over entirely at 0%; Classic quality still runs the exact v0.2.1 saturator code rather than a generic path set to a neutral parameter; Auto Gain off applies no gain at all. That's why a v0.2.x session plays back bit-identically after upgrading (see Upgrading below), and it's checked two ways in the automated test suite: against the same binary with every new stage force-bypassed (zero difference), and against a checked-in v0.2.1 reference render (agreement to roughly -120 dBFS on the toolchain that produced it).

Zero heap allocations on the audio thread, proven under a replaced allocator across every new path - both Glue laws cycling through every law/ratio/attack/release position while sweeping threshold and sidechain filter, Iron sweeping continuously (which re-derives its two filters' coefficients every block), and the Glue section's own enable switch toggling block to block. This guard has a verified-red history in this codebase: a real per-block allocation bug present since v0.1.0 (heap-allocating IIR coefficient factory calls in the saturation-era filters) was caught and fixed in v0.2.1 before v0.3.0 extended the same discipline over all eleven new parameters.

Known limitations

Upgrading from v0.2.x

Nothing to do. All eleven v0.3.0 parameters default to a neutral value, and each neutral default takes the same code path v0.2.1 took rather than a mathematically-equivalent one - the Glue section returns before touching a sample when disabled, the Iron stage is stepped over at 0%, Classic quality still runs v0.2.1's own saturator loop, and Auto Gain off applies no gain rather than a gain of 1.0. A v0.2.x session therefore plays back bit-for-bit as it did (asserted in CI as max abs diff == 0 within one binary, and at the -120 dBFS class against a reference render captured from the v0.2.1 tag). Reported latency is unchanged at every setting and every sample rate, so host delay compensation does not shift either.

Upgrading from v0.1.x

v0.2.0 makes two breaking changes to saved automation/state, both explicitly allowed pre-1.0: the single "Wow/Flutter" parameter is now two independent parameters (Wow/Flutter), and each Character model's Warmth-driven bias ceiling changed (Tape and Console are now less asymmetric than before at the same Warmth/Bias settings; Valve is unchanged). A v0.1.0-saved session still loads without error - its old Wow/Flutter value is copied onto both new Wow and Flutter parameters - but it will sound different after upgrading if you were using Warmth/Bias with Tape or Console. This is an audible, deliberate voicing correction (see docs/design-brief.md), not a bug.

Tips