Manual
Routing: Buses, VCAs, Sends & Returns, Ducking
Routing in Zammoth is fully shared-control: every gesture here has a matching agent command, both drive the same live engine, and everything is undoable.
Group buses
A bus sums its member tracks and processes them through its own device chain.
- Create — multi-select two or more tracks and press ⌘G (Create bus from N tracks). This is the only place new buses are minted; the routing dropdowns route to existing buses.
- Route a track — the strip's/header's ▸ MASTER well lists Master plus every bus.
- The bus is a channel — its strip has the same fader, pan knob, stereo-width field and [M] mute as any track, and its device dock takes the full bus palette. All of it is shared control: your move and the agent's land on the same controls, and every one of them is carried into the mix the export bounces.
- Nest buses — a bus's own output well can target another bus (cycles are refused). The mixer's bracket rail draws two levels of nesting clearly; deeper nesting still works, it just reads better in the arrangement list.
- Colour — an unrecoloured bus gets its own stable family hue, which its members inherit; recolour cascades from the bus to the group.
- Remove — right-click the bus ▸ Remove bus: members re-home to the Master, anything routed into it re-homes too, nothing dangles.
- The rail — while any group exists, a slim rail lane in the mixer (and the gutter bracket in the arrangement headers) marks each group: the bus leads its members, drop ticks land on each one at its name bar, the rail starts at the bus (its card's top corner in the arrangement, underneath its strip in the mixer), and its far end lands on the last member's bottom corner. Clicking the rail folds/unfolds the group on either surface (the pointer turns into a hand over it); right-clicking it opens the bus's own menu. Hovering or selecting a group brings it to full brightness everywhere at once — the mixer strips, the track headers and the arrangement lanes — and dims the rest. A folded group collapses to a 40-px spine — colour strap, vertical name, one summed meter, member count.
- Freeze a bus freezes the whole group.
VCA groups
A VCA is a level-only group: one fader scaling its members' levels without moving their own faders, and no audio path or device chain of its own.
- Create — track menu ▸ Group N tracks into VCA… (name it). VCAs are one level — no nesting.
- The VCA strip has a fader (−60…+6 dB), a rename editor, and Remove VCA group on right-click; members show Remove from VCA "name" in their menus.
- Agent commands:
vca.create,vca.set,vca.assign,vca.unassign,vca.rename,vca.remove.
Sends and FX returns
- Add a return — track menu ▸ Add FX return. It lands as a blank pinned lane/strip (letter-badged A, B, C…); put anything in its device chain — the three wet devices (Reverb, Delay, IR Reverb) default to 100 % wet there, since the dry stays on the source tracks. Up to 12 returns per project.
- Send — each strip's send knobs (−60 = off … 0 dB). Turning a send up for the first time wires it into the live graph; nudging an existing send is instant.
- Pre/Post — the POST/PRE well beside [M] [S] on the return strip's one control row (a return has no record-arm or freeze, so that row is all it needs): Post (default) taps each source after its fader; Pre taps after the track's devices (and its track delay) but before the fader — so a pre-fader reverb stays time-aligned with the dry signal whatever the fader does.
- Return level — the return strip's own fader (−60…+6 dB).
- Cascades — returns can send to later returns (never backwards, so feedback loops are impossible by construction).
- Rename — double-click the return's name on its strip or its pinned head card (⌘R, or the right-click ▸ Rename FX return…, do the same for the selected return). A return's name is its id, so the rename moves it: every send feeding the return follows, along with its level, Pre/Post tap, device chain and cascades. Names share one namespace with tracks, buses and the master, so a name already taken is refused with a reason. The return's colour is derived from its name, so it — and every send knob tinted to it — takes a new hue together.
- Remove — the return strip's right-click ▸ Remove FX return, or Delete with the return selected (its head card or its strip); every send into it is cleaned up.
- Returns and the Master are pinned — they don't reorder.
Ducking (sidechain)
The Duck device lives in a track's device chain (one per track, tracks only — not buses, returns, or the master):
- Trigger — the combo on the Duck box lists every other audio track (the list follows the edit as tracks come and go); pick the source (the classic: kick ducking the bass). The pick is applied on the track itself, audible on the next block, and is one Undo step (⌘Z un-keys it) — it never waits on the engineer and works while an agent turn is running. "Trigger: none" disarms the duck but keeps the device and its knob settings; re-keying keeps the tuning too (only the source changes). A disarmed duck also survives a duplicate or a paste — it is a deliberate state, not a broken one. Neither a pick nor a disarm MOVES the Duck in the chain: it stays in the slot you put it in.
- Knobs — Thresh (−60…0 dB, default −30), Depth (1–12 dB of maximum reduction, default 6), Attack (1–100 ms, default 5), Release (20–1000 ms, default 150).
- SC AUTO — one click asks the resident engineer to scan the mix for the strongest low-end or masking collision involving this track, set the best trigger, tune threshold/depth/attack/release to the audio, and report the numbers — or say why a duck makes no sense here and remove it. It runs as a normal agent turn ("· sidechain scan…" in the feed) and is one Undo away like everything else.
- The face is a sidechain tape (the same idea as the de-esser's catch tape): the trigger's level scrolls across the upper lane in aqua with the threshold as a dashed line, and the duck's gain reduction drops as a red curtain across the lower lane with the depth as its floor; every time the duck engages, a red dot lands in the lane above. In the expanded view (double-click the box) the Trigger combo and SC AUTO sit on the TRIGGER card at the left over a level ladder (aqua under the threshold, amber over it), an ENGAGE pad whose LED lights on every hit, and the trigger level; the readout on the right shows the current reduction, its recent maximum, a HITS count (click it to reset) and the depth; the four knobs sit on the strip beneath. Drag the dashed threshold line on the tape to set it (double-click resets it to −30 dB). In the dock box the same tape runs three seconds wide with the combo and SC AUTO at the end of the knob strip. Without a trigger the face stays put and says PICK A TRIGGER — the device is never a blank pane.
- Duck reduction is included in the strip's GR column.
Level bounds
Fader-class agent commands are bounded and refused (not silently clamped) outside −96…+24 dB for track/bus gain and −60…+6 dB for VCAs; your own faders run −60…+6 dB with 0.1 dB steps. Pan is −1…+1; width 0–200 %.
Device parameters are bounded too, but clamped rather than refused: a device.set past a knob's range lands on that range's end, and the value you read back is the value the engine is running. Three parameters are discrete rather than continuous and snap instead — an EQ band's slope to the nearest of 6/12/24/48/96 dB/oct, a saturator's or clipper's oversampling down to 1/2/4/8×, a chorus's voices to a whole 1–3 — so those read back as the setting that actually exists. A parameter name the device does not have is refused outright, and refuses the rest of that command with it: a multi-parameter device.set is one undo step, so it applies either all of its values or none.
Zammoth is a DAW for Apple silicon Macs with an AI audio engineer built in. The beta opens soon.
Join the beta