Workflow · Flexible monitoring
A file's channel layout and the speakers on the desk rarely match. Specula puts an N→M routing matrix between the two: send any source channel to any output, trim each route in dB, set its phase, and switch the channel meters between the raw file and the routed result. Nothing done here touches the file. When the routing is right, render it to a new one.

When the file and the room disagree
Where each channel ends up is a decision, and the matrix is where it is made.
A six-channel file lands on a stereo interface and something has to give: it gets folded, or four channels get dropped, or the centre goes to a speaker that is not there. Checking one channel on its own means bouncing a stem. Hearing what a listener on two speakers will hear means a trip back to the DAW.
The matrix holds that mapping, and it applies to playback only. Route, trim and phase-shift each output, then meter either side of the routing.
Working the matrix
Open the matrix, patch it by hand or from a preset, then choose which side the meters show.
What the controls actually do
Each contribution carries its own gain. Every source contribution to an output has its own dB value, so two channels landing on the same speaker are attenuated, not added at unity into clipping. Where the built-in presets use −3 dB, that is 1/√2, the equal-power gain for summing correlated channels.
The fold-down presets come from the published specification. Lo/Ro is the ITU-R BS.775 stereo downmix: the front channel, plus Center at −3 dB, plus the same-side surround at −3 dB. The 7.1 → Lo/Ro preset extends the same rule to both the side and back surround pairs, so the two surround pairs don't stack up on the front channels.
Phase is four states, and two of them are real shifts. The ϕ control cycles a route through 0°, +90°, −90° and 180°. The 180° state is a plain polarity flip. The ±90° states are a broadband Hilbert transform: a quadrature shift across the whole spectrum. Any fold-down the presets do not cover is built from these parts and saved to the Saved preset row.
Any 7.1 channel order is measured correctly. Loudness weighting follows ITU-R BS.1770 applied per channel by identity (front channels at full weight, surrounds at +1.5 dB, LFE excluded), so the integrated-loudness number is right whether a 7.1 file arrives in the standard SMPTE order (L R C LFE Ls Rs Lb Rb) that 7.1 WAV uses or in a different layout such as AAC's C Lc Rc L R Ls Rs LFE. 5.1 and smaller layouts are reordered to canonical order on load, and routing works the same across every layout.
Save a routing, share a routing
Custom patches, recalled in a click and portable between machines.
Above the built-in presets is a Saved row for custom routings. Save captures everything currently in the matrix: every output's sources, gains, and phase settings, under a chosen name; saved presets appear when a file and device with matching channel counts are loaded. Export writes all of them to a Specula Routing Presets JSON file, and Import reads one back, appending any presets not already in the library (deduplicated by ID), so a patch travels to another machine intact. Right-click a saved preset for Rename, Export (just that one), or Delete. They persist across launches and survive future updates.
A monitor setup that does not match the incoming files is a routing set once. A stereo pair with a single sub, or a laptop's built-in speakers, is one saved preset, recalled from the preset row whenever a file needs it.
The matrix at work




Monitor on the speakers at hand
Any channel on any speaker, with per-route gain and phase, and meters on either side of the routing. The patch saves for next time or renders to a new file, and the open file is a read-only input to all of it.