Manual
The Mixer
The Mixer lives in the bottom band (one of the five view toggles). It has three regions: the track and bus strips on the left (scrolling), the FX return strips in their own scrolling column on the right, and the Master strip pinned at the far right, always visible. Strips come in three widths — Narrow 60 px, Default 104 px, Wide 150 px — switched from a right-click on the empty mixer background or the view.mixer_width command (the Master always stays at the default width).
Strip anatomy (top to bottom)
Each strip is a slab of smoked glass. The card itself carries no colour — the channel's own colour appears as light on the glass: a lit strip across the top of the slab, the level meter, the IN and OUT bars, and whichever keys are engaged. The track headers in the Arrangement are the same material, so a channel reads the same in both places. A selected strip wears a white ring, brighter on the one the device dock is following.
- Header bar — the lit strip at the top, with the name beside it in white. A group bus floods that whole band with its family colour, lit from the top like a backlit panel, so buses read at a glance against their members; the name stays white. Return strips carry an A/B/C letter badge; VCA strips a small ▽. The ⏻ power switch (true processing on/off, not mute) leads every header; a group bus adds a fold triangle. The switch is always inked to be READ against what it sits on, whatever colour you paint the track: on a bus — whose band is flooded with the track's own hue, so a tinted glyph would hide in it — white in a darkened key, or dark in a lightened one where the colour is pale; on a single track, whose bar is the dark slab, the glyph keeps the track's colour (that colour is the track's identity) and is simply lifted in brightness where a dark colour would otherwise vanish. Every colour in the picker is swept by a gate, on both surfaces. The name is set in caps and steps down a size or two to fit; one still too long is cut rather than shortened with dots — hover it to read the whole thing. Double-click the name to rename in place — stems, VCA groups and group buses (the fold triangle keeps its own double-click). Renaming a bus moves its identity: its members, any bus nested into it and the agent's own record of the group all follow the new name, so "BUS1" becomes "Drum Glue" everywhere at once. Returns keep their device's name, and the Master's name is its routing identity, so neither renames.
- The gain stage: an IN bar, the inserts, an OUT bar — the chain sits between its own two readings, so you can see what it did without doing arithmetic. Each row is a rounded window holding a caption, a lit bar on the same −60…+6 dB scale as the meter, and the exact figure in peak dB. Compare the two bar lengths and that difference is what the devices between them are adding or removing. These are held peaks, not a live chase: each row catches a new peak instantly, holds it still for about 1.5 s, then falls at 12 dB/s — the numeric twin of the meter's peak-hold line, so the value stands still long enough to read. The holds survive a stop, so you can read what the pass just did; they re-arm on the next playback, or clear immediately when you click the meter. The OUT bar latches a red clip LED at its far end once the output crosses 0 dBFS — click that row to clear it. Both rows are readouts; the editable controls are below. Narrow strips (and VCAs, which carry no audio) fold the whole tier to a single VOL cell.
- Insert slots — the device chain at a glance, stacked between the two bars: one slot per device (a multiband EQ is one slot). A slot holding a device is a lit cell with an LED dot beside its name — the track's colour when the device is on, dim when it is bypassed, amber while the engineer is working it. An empty slot is just an outline, because it is space you can use rather than something broken. Click a slot to select the track; double-click for that device's expanded view; click an empty one to add a device right there. A chain longer than the block scrolls — put the pointer on it and use the wheel; a slim bar at its right edge shows where you are.
- Fader — the reading line, inside the meter. The fader is not a column beside the meter; it is the meter's centre. Its travel is the gutter the dB numerals print in, its scale is those numerals, and its position is a white line ruled across both meter bars at the level you set — so you read a level against the fader without crossing a cap to find it. A smoked-glass tab sits on the line carrying the value, over the numeral it equals (the strip has no separate dB readout at its foot any more — the number lives at the point of control). The tab is dark enough that the ladder does not read through it: the numeral under it is the value it replaces, so showing both would print two numbers in one place. −60 to +6 dB, shown to 0.1 dB at every value. Drag anywhere in the gutter, or on the line where it crosses the bars; ⇧-drag for fine moves; double-click resets to 0 dB (unity). Clicking a bar still resets the peak hold, so the meter keeps its own click. While automation-armed and playing, fader moves record as rides. (Narrow strips, VCAs and the History Wall have no gutter to live in, so there the fader keeps its own column beside the meter, with the VOL cell for its value.)
- Pan — a centre-detent ribbon (Default and Wide; Narrow strips and VCAs carry no pan — use the track head's
PANwell), −1…+1, with L and R printed at the ends of its travel. The exact position is not printed on the strip: hover the ribbon for it, or read the track head'sPANwell, both as C / 25L / 25R. Double-click types an exact value —25L,L25and-25all pan left,25or25Rright; ⌥-double-click recentres. (Master pan applies live but is deliberately not saved — the master takes gain only.) - Width — Wide mode only, on stems and buses: 0–200 % stereo width (double-click = 100 %). This is the channel width control — distinct from the master-only Width device. Shared control: ask the engineer to "narrow the piano to 60 %" and it moves the same field (
track.set_width); a value outside 0–200 % is refused, not clamped. - Control ribbon [M][S][●][❄] — backlit keys: dim glass when off, lit in their own colour when engaged. Mute (persisted with the session), Solo (live-only; it is automatically cleared and restored around stem exports), Record-arm (stems only — same path as the track head and the C key), Freeze (a stem freezes individually; a bus freezes the whole group). Cells that don't apply to a strip type are disabled, not hidden, so every strip keeps the same shape.
- The I/O section — hidden until you ask for it: View ▸ In/Out (⌥⌘I), a right-click on the empty mixer background, or the agent's
view.io_section. It puts AUDIO FROM (or MIDI FROM), its channel, and AUDIO TO at the top of every strip. While it is on it carries the output key rather than adding a second one, so the foot token below moves up into the tier. See The I/O section below. - Track Delay + Keep Latency — hidden until you ask for it: View ▸ Track Delay (⌥⌘D), a right-click on the empty mixer background, or the agent's
view.track_delay. It adds two rows above the output token, on every strip including buses, returns and the Master. See Track Delay below. - Output key ("▸ MASTER") — stems route to the Master or any bus; a bus's own key nests it into another bus or back to the Master. The menu lists each bus by the name you see on it ("BUS1"), not its internal id. It is a backlit glass key, the same material as the [M][S][●][❄] row above it, and its label carries the track's colour — live, so recolouring a track moves the foot with it; a dark colour is lifted in brightness the way the ⏻ is, and a bus's key stays neutral because the family hue is already the loudest thing on that card. The Master's foot names the hardware output the mix leaves by rather than a bus — and it is a real Main Out chooser: click it to send the mix out of a different device output (the device itself is still picked in Preferences ▸ Audio). With no output device available to choose from it falls back to a sunk "OUT 1·2" readout, and says so on hover — a token you cannot press never looks like one you can.
- Send knobs — directly under the OUT bar, where they read as the last thing the channel does with its signal. One per FX return, in a staggered two-column layout (a single send is centred; scrollable when there are many): −60 (off) to 0 dB, double-click resets to off, with the return's letter (or, in Wide, its full name) beside it. Present on stems, buses, and returns (returns may only send forward to later returns — feedback-safe by construction).
- Level meter — the same instrument as the fader, on one −60…+6 dB scale. The stereo pair straddles the numerals: the left bar, then the dB scale (which is also the fader's travel), then the right bar, with a tick either side of every number reaching the bar it marks. The ladder fills its screen — the +6 mark at the very top, the −60 mark on the last row, each numeral centred on its own tick, no dead well at either end — and the gutter between the bars stays bare, so the numerals are never read through a wash of colour. That gutter is the card's centre line: the pan ribbon's centre detent sits on it, and it does not move when a channel's chain gains a compressor and the strip grows its gain- reduction column. Every strip type shares the line, the Master included. Each bar carries a bright RMS body, dimmer peak extension, absolute-level colouring (track tint → yellow-green → amber → red over 0), fast-attack/slow-release ballistics, a peak-hold line that catches a peak instantly, holds it for 1.5 s and then falls at 12 dB/s, and a red clip latch at the meter's top that stays lit for 3 s after the last over (the OUT bar's clip LED is the same latch). Both re-arm on the next play; click the meter to reset them now (the same click also re-arms the IN and OUT numbers). Meters follow the signal, not the transport: auditioning a drum pad, a sampler key, or a browser preview lights them even while the transport is stopped. When the channel is quiet, only the peak-hold line remains. The two bars are post-fader and post-pan — what actually leaves the channel — so panning a track leans its meter (and empties the far bar at a hard pan), while the IN number stays where it is: IN is what enters the device chain. Per-device levels in the device dock are likewise chain-local, unpanned.
- GR column — a slim top-down amber ladder on the far side of the meter, showing the chain's total gain reduction (0–18 dB span). It appears whenever the chain holds any reducing device — compressor, limiter, dynamic EQ, multiband comp, de-esser, gate, or Duck.
The History Wall. Any strip's meter zone can flip from the L/R + GR ladder to a phosphor scope scrolling roughly nine seconds of level history — RMS trace and fill in the track's tint, dimmed peak trace, amber dashed columns marking the moments the agent was live on the track, and a GR inset. Toggle it per-strip via right-click ▸ Meter view ▸ Levels / History (also the agent's view.meter_history). The choice persists.
Narrow mode keeps: name bar (with power), M/S, fader with a bare meter, and the VOL cell. Between Default and Narrow, a strip under height pressure folds gracefully in a fixed order (insert slots first, then the routing well, pan, captions, sends) — the fader never gets squeezed.
The add-track tab — after the last track strip sits a slim "+ / ADD TRACK" ghost tab: click for a new empty track, or drop an audio file straight onto it.
The I/O section
Switched on from View ▸ In/Out (⌥⌘I), the mixer's right-click menu, or view.io_section. Off by default, because it is height every strip has to find and most mixing sessions never route anything.
It adds up to three rows at the top of each strip — what feeds a channel is the first question you ask of it:
- AUDIO FROM / MIDI FROM — where the track listens. On an audio track that is
Ext. In(your interface) orNo Input; on a MIDI track it isAll Ins, one MIDI device, orNo Input. Picking an input does not arm the track — the ● key does, and it arms whatever this names. Your choice survives arming, disarming and moving the selection: two keyboards can feed two tracks and stay that way. - The channel row — which channel of that source. On audio this is the input list itself (
Input 1,Input 1+2, …); on MIDI it is the channel filter,All Channelsor one of 1–16. Configure… at the foot of either menu opens Audio inputs — configure, where you pair two hardware inputs into one stereo input or split them into two mono ones. Re-pairing renames the input, so a track listening to it reads asNo Inputafterwards — pick its new channel again. - MONITOR — In / Auto / Off — whether you hear the input on this track. Auto (the usual choice) means you hear it only while the track is armed; In means always, armed or not; Off means never, even while it is recording — which is what you want when you are monitoring through your interface instead and don't want to hear yourself twice. It is per track: two tracks fed by the same input can disagree, so you can monitor the part you are playing while another armed track stays quiet. Picking a mode does not arm the track — the ● key does that. A track with no input routed shows the three keys greyed, because there is nothing to monitor. The setting belongs to the routing: clear the track's input and it goes with it. Preferences ▸ Recording ▸ Monitoring still sets the default every new routing starts from.
- AUDIO TO / MIDI TO — where the channel goes. This is the same output key the foot normally carries, moved up into the tier. The full list:
- Master, or any bus — the everyday cases. A bus's own key nests it into another bus.
- Another track — the track's audio arrives at that track's input and is processed by everything on it, exactly as a bus would. Self-routes and anything that would close a feedback loop are refused, not silently dropped, and a route survives reordering the tracks (it is held by name, not by position) — and renaming the destination.
- Sends Only — the track leaves the main mix but its sends keep working. Use it when a part should be heard only through a reverb or delay return. Your choice sticks on a track that is also in a group.
- Ext. Out — straight to a hardware output, bypassing the master chain. A track routed this way is not in an exported mix, because an export is a bounce of the master bus.
- On the Master, this row is Main Out: which hardware output the mix leaves by.
Buses, returns and the Master have nothing to record from, so they show the TO row alone. A VCA has no tier at all — it is a fader over other channels, not a channel.
On a short mixer band the fold ladder thins the tier rather than starving the fader: the captions go first, then the channel row, then the source row. The destination folds at exactly the point it would have folded at the foot, so turning In/Out on never leaves a strip with less than it had with In/Out off.
The MIDI channel row is a property of the input device, not of the track — two tracks listening to the same keyboard share it. The tooltip on the cell says so.
Track Delay
Switched on from View ▸ Track Delay (⌥⌘D), the mixer's right-click menu, or view.track_delay. It is off by default because it is height every strip has to find.
The TRACK DELAY cell shifts a whole channel in time, ±200 ms. Drag the number (⇧ for fine), double-click for 0, right-click to read it in milliseconds or samples. Use it to line a channel up with the rest of the song: a player who rushes, a mic sitting further back than the DI beside it, an outboard box that adds its own delay. It is not an effect — the Delay device is the audible echo; this just moves the channel.
A negative delay means "play this early", and since nothing can be played early, the DAW does the only thing that works: it delays everything else by that much. The relative timing you asked for is exact; the cost is that much extra output latency for as long as any negative delay is dialled in. Positive delays cost nothing.
Every channel has the cell, and they stack down the signal path: a stem's delay plus the delay on the bus it feeds plus the Master's delay all apply to that stem. Setting it on a bus is the quick way to move a whole group. Returns are fed by sends, so a return's own delay is added on top of whatever its source already carries (a return can only be pushed later, never pulled earlier than the track feeding it) — a return strip's cell therefore runs 0 to +200 ms, with no negative half to dial, and track.set_delay refuses a negative value on one rather than storing an intent the engine would drop.
Delays stack down the path up to a ceiling of 800 ms of realized delay per channel — a channel's own maxed dial, plus a maxed bus, plus a maxed Master, plus the full compensation a −200 ms dial elsewhere forces on everyone. Deeper chains of maxed busses clamp there.
KEEP LATENCY, under the cell, is about recording, not mixing. Lit — the default — means this channel keeps its full processing while it is record-armed, so what you hear is what you get, with the engine compensating everything else. Click it and it reads LOW LATENCY: while the track is armed, the plug-ins on it that add latency are bypassed, so you monitor yourself in time enough to actually perform. Everything comes straight back the moment you disarm. Zammoth's own devices are never bypassed (their latency is a couple of milliseconds and losing the chain would cost you the mix) — this is for hosted third-party plug-ins, which is where unplayable latency comes from.
The latch is disabled on buses, returns and the Master, which never monitor an input.
The agent has both: track.set_delay {track, delay_ms} and track.keep_latency {track, on} — "the kick mic lands a few ms late, pull it into line" is one command, and it can read every channel's delay back out of the session.
The Master strip
Always visible at the far right. It has no power switch, no mute/solo/arm/freeze keys (and does not reserve their row — its gain stage starts straight under the name), no width field, no sends; its foot is a recessed, unclickable "OUT 1·2" readout rather than a routing token. Its chain accepts the full device palette plus the master-only Width device. While the Loop Deck owns playback every other strip's meter dims — the Master's stays live.
Loudness numbers live on the master limiter's own face (its ST · LUFS readout; and the Engineer's readouts), not as a persistent number in the mixer; the top bar's two-stage CLIP lamp (amber = over your deliverable ceiling, red = true inter-sample clipping) is the always-on mix-truth signal.
Selection and menus in the mixer
Strip clicks share one selection with the Arrangement (Shift = range, ⌘ = toggle). Right-click a strip for the same track menu as the arrangement header — plus, in the mixer only, the Meter view submenu. Multi-selecting strips unlocks Create bus from N tracks (⌘G) and Group N tracks into VCA….
Group faders. Drag a fader or pan knob on a strip that's part of the selection and the other selected strips follow by the same amount, keeping their balance. A strip that hits its own ceiling stops there and rejoins on the way back down — the move is measured from where you grabbed, never accumulated, so the group never drifts out of balance. M and S follow the selection the same way. Touching a control focuses that strip without dropping the others. Track order in the mixer mirrors the arrangement; reordering is done by dragging arrangement headers.
Zammoth is a DAW for Apple silicon Macs with an AI audio engineer built in. The beta opens soon.
Join the beta