Firmament — User Manual
Open the heavens — a stereo widener and imager for lush orchestral layers.
What Firmament is
Firmament is a Mid/Side stereo widener and imager. It is one of the twelve plugins in the Basilica Audio heavy-music suite, and its job in that suite (and in any mix) is to take content that already has stereo information - strings, choirs, synth pads, doubled/layered guitars, ambience returns - and control how wide it feels, without ever compromising how the mix folds down to mono (club PA, phone speaker, a broadcast mono-check, a bass player checking their part in mono).
Firmament does not create stereo width out of a genuinely mono signal by itself (Width and Low Width can only scale what stereo difference is already present in the input) - the two exceptions are Haas Mode and Decorrelate, which can create a sense of width from mono-compatible material, at the cost of some or all of the exact mono-sum guarantee the rest of the plugin provides (see below). Decorrelate is the gentler of the two, added in v0.2.0 specifically for this use case at a much smaller mono-fold-down cost than Haas Mode.
v0.2.0 also revised how Auto Mono Safety reacts (calmer ballistics, a dead-zone around zero correlation, a user-adjustable floor, and an optional per-band mode) and widened Bass Mono Freq's range - see the parameter reference and docs/design-brief.md/docs/research-notes.md for the full research behind these changes. Every new parameter defaults to a value that reproduces v0.1.1's behaviour exactly, so nothing changes unless you explicitly opt in.
Where it sits in a heavy production chain
Firmament is a width/imaging tool, which places it toward the back end of a channel or bus chain, after tone-shaping and dynamics have already been decided:
- Corrective/tonal EQ, compression, saturation (e.g.
overture,tenebrae, other suite members) - shape the sound first. - Firmament - decide how wide it should feel, once the tone is set.
- Reverb/delay sends, final bus processing - width decisions made before verb affect how the reverb tail itself is perceived; some engineers prefer to widen after the reverb return instead, which is a valid alternative depending on the source.
Typical placements in a heavy-music production:
- String/choir/pad busses - the primary use case. Push Width up to open the orchestral/choral layers without smearing the guitars/bass/kick that share the mix.
- Doubled rhythm guitar bus - a gentler touch (Width 110-140%) can glue two already-panned doubles into a single, wider-feeling wall without the extreme "hyped" artifacts of some stereo wideners, because Firmament never adds anything that wasn't already in the stereo image (again, aside from Haas Mode).
- Master bus (used sparingly) - Bass Mono is particularly valuable here: keep the kick/bass/low guitar energy centered (mono-compatible, and physically tighter on a PA) while the cymbals/strings/reverb tails above the crossover stay as wide as the mix already has them.
- Mono-source instruments routed through a stereo bus - Firmament accepts a mono input bus gracefully (see "Mono input" below); in that case Width has no effect at all unless Haas Mode/Decorrelate is engaged, since there is no inter-channel difference to scale.
Signal flow (plain-language version)
See docs/architecture.md for the full technical breakdown (Mermaid diagram, exact math, the Linkwitz-Riley crossover's real magnitude/phase behaviour, real-time-safety details). In short:
- The input is split into Mid (mono content,
(L+R)/2) and Side (stereo difference content,(L-R)/2). - If Bass Mono is off, Width scales the whole Side signal by a single amount.
- If Bass Mono is engaged, Side is split into a low band (below the Bass Mono frequency) and a high band (above it); Low Width scales the low band and Width scales the high band independently.
- If Auto Mono Safety is on, Side is further attenuated automatically whenever the input is heavily out-of-phase enough to leave a small dead-zone around zero correlation (a safety net against mono cancellation), on top of whatever Width/Low Width already did - either as one global reading, or (if Auto Mono Safety Multiband is also on and Bass Mono is engaged) independently for the low and high bands.
- Mid and the processed Side are recombined back into Left/Right. Mid is never touched by any of the above - this is what guarantees the mono-fold-down safety described below.
- If Decorrelate is on, the Right channel is processed through an allpass network and blended in by Decorrelate Amount; otherwise, if Haas Mode is on, the Right channel is delayed slightly relative to Left instead (the two are mutually exclusive) - both are different, non-Mid/Side widening tricks, applied last, before the final trim.
- Output trims the overall level.
Parameter reference
| Parameter | Range | Default | Unit | What it does |
|---|---|---|---|---|
| Width | 0-200 | 100 | % | Scales the Side (stereo-difference) signal. 100% is the input's original stereo image, unmodified. 0% collapses everything to mono (Side silenced). 200% doubles the Side channel's amplitude for a maximally wide, sometimes "hyped"/artificial-feeling image - useful in small doses, easy to overdo on a whole mix. When Bass Mono is engaged, Width governs only the band above the Bass Mono frequency. |
| Bass Mono Freq | 0-600 | 0 (off) | Hz | The crossover frequency below which Low Width (rather than Width) governs the Side signal. At 0 Hz (off), the whole spectrum is a single band governed by Width alone. Typical settings sit in the 80-200 Hz range - low enough to leave kick/bass/low-guitar fundamentals centered, high enough to still catch the "boxy" low-mid stereo smear some wide reverbs/pads produce. The 500-600 Hz top of the range is a lower-confidence, reasoned extension (see docs/research-notes.md) for material where you want stereo control noticeably higher up than the usual bass-mono corner. |
| Low Width | 0-200 | 0 | % | Independent width scale for the band below Bass Mono Freq - only audible while Bass Mono Freq is above 0 Hz. At the default of 0%, the low band is forced to mono, exactly like a classic "bass mono" utility - the standard mastering-bus move to keep sub-bass energy centered and translate well on smaller systems. Raise it above 0% if you specifically want some width to survive down low (rare, but occasionally useful for very wide pad/drone material where even the low end should breathe a little). |
| Auto Mono Safety | off/on | off | - | When on, automatically reins in the Side signal whenever the input is heavily out-of-phase (correlation trending below a small dead-zone around zero, not any negative reading at all - an occasional small deviation is treated as insignificant), independent of and on top of Width/Low Width. A safety net for automated Width or aggressive settings on unpredictable source material; it never affects Mid, so it cannot break Firmament's mono-fold-down guarantee - it only ever reins in how wide Side gets. Leave it off if you are dialling in Width by ear and want full manual control; turn it on as a safety net on busses you can't constantly monitor. |
| Auto Mono Safety Floor | -24 to 0 | -9.1 | dB | The minimum Side gain Auto Mono Safety reaches at fully out-of-phase (worst-case) correlation - only relevant while Auto Mono Safety is on. -9.1 dB is the historical default (a gentle, audible-but-not-drastic safety net); lower it (toward -24 dB) for a firmer net on wide/exposed settings, or raise it (toward 0 dB) if you want the safety net to barely do anything even when it does engage. |
| Auto Mono Safety Multiband | off/on | off | - | Only relevant while both Auto Mono Safety and Bass Mono Freq are on. When engaged, Auto Mono Safety reasons about the low and high bands (split at Bass Mono Freq) independently instead of one global correlation reading - useful on a master bus where the low end is already safely centered (Bass Mono/Low Width) and you don't want an unrelated phase problem in the highs to needlessly dull the low end too (or vice versa). Off by default, since it changes Auto Mono Safety's behaviour whenever both features are engaged together. |
| Haas Mode | off/on | off | - | Enables an alternative widening technique: delays the Right channel by Haas Time relative to Left, after the Mid/Side stage. This can widen genuinely mono-compatible material (it works even at Width = 0%) - but unlike Width/Low Width, it does not preserve an exact mono-sum match with the input (summing two time-offset channels produces comb filtering on mono fold-down). Use it deliberately, and always check a mono fold-down before committing if translation matters for the target (e.g. broadcast, club systems). Mutually exclusive with Decorrelate - if both are on, Decorrelate takes effect and Haas Mode's delay is bypassed. |
| Haas Time | 0-40 | 20 | ms | The Left/Right delay Haas Mode applies, only audible while Haas Mode is on. Short times (5-15 ms) read as subtle widening; the 15-35 ms "precedence effect" zone reads as a strong, immersive width; times approaching 40 ms start to read as a discrete slap/echo rather than width - back off if you hear a distinct repeat rather than a wider image. |
| Decorrelate | off/on | off | - | A gentler alternative to Haas Mode for widening near-mono material (a mono-tracked lead, a narrow pad): a network of allpass filters processes the Right channel instead of delaying it. Like Haas Mode, this is not mono-sum-safe - it is a second, smaller, deliberate exception to Firmament's mono-fold-down guarantee, not "mono-safe" - but its documented cost is mild spectral ripple rather than Haas Mode's deep comb-filter notches. Mutually exclusive with Haas Mode - if both are on, Decorrelate takes effect and Haas Mode's delay is bypassed. |
| Decorrelate Amount | 0-100 | 50 | % | How much of the allpass-processed signal blends into the Right channel, only audible while Decorrelate is on. Higher values widen more but cost more mono-fold-down ripple; lower values are subtler and gentler. |
| Output | -24 to +24 | 0 | dB | Final output trim, applied after everything else (including Haas Mode/Decorrelate). Firmament has no built-in limiter or ceiling - Width/Low Width above 100% and Output above 0 dB can both add gain, so use this to compensate level changes introduced by extreme Width settings, not as a general-purpose gain/makeup stage. |
Tips
- Start with Width, not Bass Mono. Most material only needs the single global Width control; reach for Bass Mono Freq/Low Width specifically when you hear the low end losing focus or translating poorly in mono as you push Width up.
- A/B in mono, always. Solo the bus, flip your DAW's mono/downmix monitoring on, and confirm nothing phases out oddly - Firmament's own Width/Low Width/Auto Mono Safety path (broadband or multiband) is provably mono-safe by construction (see
docs/architecture.md), but Haas Mode and Decorrelate deliberately are not, and even a mono-safe width setting can still expose problems that were already latent in the source material's own stereo image. - 200% Width is a special-effect setting, not a default. On a whole mix or a loud bus it reads as artificial/phasey quickly; it's much more useful reached for briefly (automated for a chorus lift, a breakdown, a single pad layer) than left engaged throughout.
- Auto Mono Safety is a safety net, not a substitute for listening. It reacts to the correlation of the plugin's input, with meter-style (300 ms) ballistics and a small dead-zone around zero correlation - fast enough to catch a sustained phase problem, not fast enough (nor intended) to police fast transients sample-by-sample, and not so hair-triggered that an occasional small negative reading sets it off.
- Prefer Decorrelate over Haas Mode when mono translation matters at all. Both can widen near-mono material that Width/Low Width can't touch, but Decorrelate's documented cost is mild spectral ripple on mono fold-down, while Haas Mode's is deep, audible comb-filter notches. Reach for Haas Mode specifically when you want its stronger, more dramatic precedence-effect character and mono translation is a secondary concern (a transition effect, a layer that will never be folded to mono).
- Haas Mode/Decorrelate and Bass Mono/Low Width combine fine, but think about what each is doing: Bass Mono/Low Width/Auto Mono Safety shape width within the Mid/Side model (provably mono-safe), Haas Mode/Decorrelate are a separate, later, non-Mid/Side effect. If you need guaranteed mono compatibility (broadcast delivery, a club system with an unpredictable mono/summed sub), leave both off and rely on Width/Low Width/Auto Mono Safety alone.
- On a mono-input track/bus, Width/Low Width/Auto Mono Safety have nothing to act on (there is no Side signal) - the plugin passes the source through cleanly. Haas Mode/Decorrelate are the controls that still do something in that situation, since they operate after the (now-identical) L/R pair has been decoded - this is exactly the "widen near-mono material" use case they're built for.
Presets
Firmament ships with factory presets covering common use cases (orchestral/choir width, doubled rhythm glue, master-bus bass-mono, automated-width safety nets, and one showcase preset each for Decorrelate and Haas Mode) - see docs/presets.md for the full list and the intent behind each. The preset bar docked at the top of the plugin window lets you browse factory/user presets, save your own, rename/delete user presets, import/export single presets or a whole bank (a zip of your user presets), and set a preset as the default that loads on a fresh instance. Presets are a layer on top of your host's own plugin-state save mechanism, not a replacement for it - your DAW session still saves whatever state is currently loaded either way.
Research-derived voicing (honesty note)
Firmament's default values and ranges (Bass Mono Freq's 80-200 Hz "typical" range, the Linkwitz-Riley crossover order, the Haas Time window, Auto Mono Safety's ballistics/dead-zone, Decorrelate's approach) are research-derived from public manuals, developer/product documentation, mastering-forum and trade-press consensus, and acoustics/psychoacoustics literature (see docs/research-notes.md for the full sourcing) - not measured against any commercial stereo-widener plugin's actual audio output, and no proprietary DSP algorithm from any other vendor was inspected, decompiled, or approximated. docs/design-brief.md documents exactly which numbers are directly sourced, which are sourced-but-lower-confidence, and which are reasoned choices where a source establishes a principle but not an exact number.
Roadmap / what's not here yet
Firmament's GUI is still the plain, functional v0.1/v0.2-style slider/toggle editor plus a plain preset bar strip - every parameter above is fully controllable from the plugin's own window (and from any host's generic editor/automation lanes), but there is no custom-drawn interface yet, and the correlation/phase estimate that drives Auto Mono Safety is not yet displayed as a visible meter (the DSP value is fully computed and tested - see docs/architecture.md - only the visual widget is outstanding). Both are tracked for a later milestone (custom GUI + metering).