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:
- A string or brass bus, to glue a divisi section together the way tape/console summing naturally does - a little Drive and Warmth, modest Mix, and the section reads as one instrument rather than a pile of close mics.
- An orchestral/choir submix bus, sitting after the individual sections and before the final mix bus, to add cohesion before the orchestral material meets the metal instrumentation (guitars, drums, bass).
- The mix bus itself (sparingly - low Drive, Mix well under 100%), as a subtle "master glue" pass, in the same role a tape machine or console summing bus would play in a hybrid analog/ITB workflow.
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
- Voicing is anchored to published circuit analysis and triode laws, not to measured hardware. Nothing in this project asserts that anything "sounds like" any particular device - every behavioural claim above is a tested invariant (a knee width, a slew ratio, a time-constant ratio), and the triode gain cell's parameters are published-law parameters fitted to a documented control range and curvature, not a measurement of a specific device.
- Iron's low-end rise measures at roughly 10 dB/octave in this implementation, short of the 12 dB/octave an idealized flux-integration model would predict. The shipped stage's flux corner and finite core curve account for the gap; it's a real, measured property of this stage, not a bug, and it's why the Iron row above doesn't quote 12 dB/octave as a measurement.
- The VCA glue law's knee is genuinely narrower at higher ratios - roughly 2.2 dB wide at 2:1, but under 1 dB at 4:1 and 10:1. This is the same feedback mechanism at higher loop gain, not an inconsistency: widening it at the higher ratios would mean adding an explicit soft-knee term, i.e. curve-fitting the exact behaviour this design leaves emergent on purpose.
- The Vari-Mu law's release switch markings (0.1 / 0.3 / 0.6 / 1.2 s) do not equal its measured 37% recovery times (roughly 0.3 / 0.8 / 2 / 5 s). That gap is a real, documented property of the circuit class being modelled - the switch keeps the hardware-class markings rather than being quietly relabelled to the measured values.
- Quality: HQ carries a tiny inherent delay from its antiderivative averaging - a fraction of a sample at the 4x oversampled rate, far below what
getLatencySamples()reports in whole host samples, and inaudible. It does mean a Classic and an HQ render cannot be nulled against each other in the raw time domain without compensating for that fraction first. - No CPU benchmark is published for this plugin. HQ is not free - it evaluates one extra antiderivative per oversampled sample on top of the existing Character curve - but no measured percentage or millisecond figure exists in this repository to quote here.
- The Glue section models no detector nonlinearity - it is envelope-only by design, running at 1x the host rate. If what you want is the distortion character of a bus compressor rather than its dynamics, this section doesn't provide that; the Character saturator and Iron stage further down the chain do.
- Deliberately out of scope for this release: tape record/reproduce pre/de-emphasis and level-dependent HF loss modelling, a fully physically-modelled iron core, a push-pull Newton-solved Vari-Mu gain cell, stochastic wow/flutter and speed-dependent head bump/hiss, M/S processing, an input-calibration/headroom control, a gain-reduction meter with true ballistics, and linear-phase or higher-order oversampling options.
- The editor is still the functional slider GUI carried over from v0.1 - the preset bar at the top, then one rotary per float parameter (plus a combo box per choice parameter) laid out in signal-flow order. A custom photoreal panel is a later, suite-wide milestone.
- Pre-1.0. Release binaries for macOS are Developer-ID-signed, notarised and stapled; Windows binaries are not yet Authenticode-signed. AU, VST3 and Standalone only - no AAX. Licensed AGPLv3. Breaking changes to saved state remain possible until v1.0.0 (v0.2.0 made two, both with a documented, tolerant migration - see Upgrading below).
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
- Start with Character before reaching for Drive. The three models are genuinely distinct even at matched settings - Tape is the most forgiving, odd-harmonic-dominant glue sound; Console stays transparent until pushed hard, then blends in; Valve is the most aggressively asymmetric, even-harmonic-forward push. Pick the character first, then dial in Drive/Warmth to taste.
- Warmth does triple duty. It jointly drives the saturator's Character-dependent asymmetry, the HF-rolloff, and the LF head bump together, so a single Warmth move can sound like "more tape" without any other control changing - this is the fastest way to explore the plugin's core character. If you want the darkening/weight effect without more saturation asymmetry, reach for the separate LF/HF Trim shelves instead, or offset the asymmetry back out with a negative Bias.
- Bias is for fine-tuning, not the main event. Leave it at 0% until Warmth (and Character) have you most of the way there, then nudge Bias if you want a touch more (or less, or reversed) asymmetric character without moving the HF-rolloff/head-bump.
- Wow, Flutter, and Hiss are all off by default on purpose. They're deliberate "worn tape" effects for material that wants to sound like it came off a physical machine (a mellotron-style string patch, a vintage-tape-emulation pass on a whole mix) - most orchestral glue use cases should leave all three at 0% and only reach for them when that specific character is the goal. Wow and Flutter are independent as of v0.2.0, so you can dial in a slow drift without any faster shimmer, or vice versa.
- Use Mix for parallel processing. Because Mix is sample-accurately delay-compensated, you can blend a heavily driven, characterful wet signal back under the clean dry signal (New-York-style parallel saturation) without any phase smearing from the oversampling latency.
- HF/LF Trim vs. Tone. Tone's tilt shelves move the whole spectral balance in one gesture; HF/LF Trim are independent, so you can, for example, brighten with Tone and then pull a little top end back with a negative HF Trim if Tone's brightening also over-emphasizes something specific near 8 kHz.
- Use Output to gain-match. Since Drive/Warmth/Character all change the wet signal's level and perceived loudness, use Output to bring the processed signal back to roughly the same loudness as the dry input before comparing them (avoids the "louder always sounds better" trap when A/B-ing Mix or bypass).