ZammothBack to the site

Manual

Devices and the Device Dock

Every track, bus, return, and the Master has a device chain — an ordered list of processors the signal flows through left to right. The device dock in the bottom band shows the selected track's chain as a row of boxes, and is fully shared-control: your knob turn and the agent's device.set are the same operation, applied to the live engine in-process (audible in milliseconds) and persisted automatically.

The dock

  • The identity tab ("+") — the leading tile is the selected track's own coloured plate, its name up the spine, and it is the add button: click for an alphabetical menu of every device that can live here (the list adapts — tracks get Duck, the Master gets Width, returns get the wet devices first; tracks without audio clips also get Add Arpeggiator, and a track with no instrument yet gets Add Synth (4OSC) / Add Sampler / Add Drum Kit).
  • A device box — a title bar (⏻ power · name · a Δ chip · ✕ remove) over the device's live graph. The Δ chip is the signed dB that device is adding or removing right now (red if its output clips). Between boxes, slim boundary meters show the level at every point in the chain. A switched-off device dims all of itself — knobs and captions as well as the title — but stays editable, so you can set it up before switching it back on.
  • Removing a device keeps your selection honest. The jade ring follows the device it was on when something above it is removed, and clears if the removed device was the selected one — it never silently ends up on a device you did not pick.
  • The instrument, MIDI FX and plug-in boxes wear the same bar — the same ⏻ in the same place (a bypass: the instrument goes silent, a plug-in passes audio through untouched, settings kept; ⌘Z undoes), a kind tag at the right (INSTRUMENT · MIDI FX · VST3 / AU · RACK · QUARANTINED), and on everything but the instrument the same ✕ (an instrument is swapped from its menu, never removed).
  • Knobs — one gesture language everywhere: drag to adjust (a floating LCD bubble shows the live value), double-click to type an exact value, ⌥-double-click to reset to default. On small boxes the knob strip is hover-revealed so the graph stays clean.
  • Fold — double-click a title bar to collapse the box to a narrow spine (power + vertical name); double-click to restore. A folded box still takes a right-click (the Modulate / MIDI Learn menu) anywhere on its spine. The engineer folds boxes too (view.device_fold) and can see which ones you folded.
  • Expand (the focus pane) — double-click a box's graph to open that one device across the full band width at hero density: bigger graphs, more of each device's own controls on the face, draggable curves.
  • Reorder / move — drag a box's header horizontally to reorder within the chain; a bright insertion line marks the gap the device would land in, so you can see the new order before you let go. Keep dragging onto another track's lane or strip to move the device to that track (⌥ at the drop = copy). Master-only devices refuse a track destination.
  • Select — click a box's header. ⇧-click extends a contiguous range along the chain; ⌘-click adds or removes one box. The EQ (and Dynamic EQ) box counts as one device — all its bands. The selection is what Delete and ⌘G act on.
  • Delete — the ✕, or select box(es) and press Delete; every selected device goes.
  • Copy / cut / paste / duplicate — ⌘C, ⌘X, ⌘V, ⌘D on a selected device box, the same keys as anywhere else. ⌘V pastes onto whichever chain the dock is showing, so ⌘C then ⌘V is how you copy a device to another track, and ⌘D duplicates it where it stands. A device the target chain can't hold (a second compressor, a Duck on the master) is refused with the count that landed. Hosted plug-ins are not copied this way — their settings live inside the plug-in.
  • Group into a rack — select devices and press ⌘G (or right-click ▸ Group into rack). See Racks below.
  • Hosted plug-ins sit at the end of the chain, before the fader. Zammoth's own devices run first, then any third-party plug-ins you host, then the channel fader — so a hosted compressor is reacting to the same level whatever the fader is doing. Nothing measures inside a hosted plug-in, so the boundary meters stop at the first one rather than repeating the level before it (the channel strip's own meter still shows the track's real output). Their parameters automate like anything else: right-click an automation lane's target to pick one.
  • Agent glow — any device the agent just touched wears an amber halo that fades over about 1.5 s; earlier moves in the same run cool toward blue. You can always see what the engineer changed, and every agent gesture is one ⌘Z.

Placement rules

  • Devices are freely ordered — nothing is pinned. The limiter defaults to last so the ceiling holds; if you drag something after it, whatever sits downstream is on you (16- and 24-bit exports clamp at full scale; a 32-bit float export does not — preserving overs is the point of float, so check the master meter before delivering one).
  • One-per-chain devices: compressor (per channel mode), limiter, multiband comp, OTT, saturation, overdrive, clipper, de-esser, gate, transient, Duck, imager, width, utility. A second add is refused with a plain reason. EQ, Dynamic EQ, and Band Width are deliberately multi — every band is its own entry, drawn as one aggregated box (up to 32 EQ bands — the bank Tilt and Match EQ also draw from, so a Tilt costs two of them — 6 dynamic-EQ bands, 8 width bands). Past the bank the add is refused rather than silently dropped. If another device ends up between two EQ bands (the engineer can place one there), the EQ runs in two places and its box says SPLIT ×2; hover the tag to see where each part's Output trim is applied. The Output readout then shows the total, and turning it moves the first part's trim.
  • Wet devices (Reverb / Delay / IR Reverb) can be inserts anywhere (Mix = dry/wet blend) or live on FX returns (Mix pinned to 100 % wet) — up to three wet inserts per chain.
  • Duck is track-only; Width (the device) is Master-only.
  • The gain stage that leads every chain is the channel fader itself — it never appears as a box.

Modulators and MIDI Learn

Right-click a native device box's header:

  • Modulate ‹param›… — attach a modulator to any knob: LFO, envelope follower, random, or step — with shape, tempo-sync or Hz rate, depth, centre, phase, attack/release, seed, smoothing, or step patterns. A fresh one is centred on where the knob already sits, so opening the menu never moves your sound. Clear ‹device›'s modulators removes that device's; Clear every modulator on this track is offered separately. Modulators work on Zammoth's own device knobs only. To move a rack macro or a hosted plug-in's parameter over time, draw an automation lane.
  • MIDI Learn ▸ ‹param› — arm the parameter, then move a control on your hardware; the next incoming CC maps to it (per-channel, persisted, rebuilt on load). Remove MIDI Map unmaps. This works on device knobs and track volume/pan. Learn is one shot: it switches itself off as soon as the control is mapped (the status line says MIDI Learn: mapped), so the control you just learnt moves its parameter straight away and nothing you touch afterwards is mapped by accident. An arm you do not answer gives up after a minute.

Racks (chains, macros, presets)

A rack hosts parallel chains of devices and plug-ins:

  • Create — ⌘G. Select devices already on the track (click, ⇧-click a range, ⌘-click to add — Zammoth's own devices and hosted plug-ins alike) and press ⌘G: they become one chain of a new Audio Effect Rack sitting exactly where they were, settings, automation and modulators intact, and the mix does not change. The chain is unnamed and shows its devices ("EQ | Compressor") until you rename it. Also: right-click a device ▸ Group into rack; drag the empty Audio Effect Rack row out of the browser's RACKS section; Wrap FX in parallel/serial rack (all of a track's hosted plug-ins); or rack.create. Zammoth's own devices sit together at the head of the chain, before the plug-ins — a chain holds one native device stage, exactly like a track. With tracks selected and no device selected, ⌘G still creates a bus. A track carries at most 16 devices (an engine limit): on a full track rack.create and loading a rack preset are refused with a message that says so — remove a device, or build inside an existing rack.
  • Ungroup — ⇧⌘G. Select the rack box and press ⇧⌘G (or right-click ▸ Ungroup): its devices go back on the track where the rack stood, chain by chain in order. Chain faders, pans, mutes and mapped macros do not survive ungrouping — the status line says what was dropped. Racks cannot be nested (an engine limit), so grouping a selection that contains a rack is refused with the reason: ungroup it first.
  • Chains — one compact column per parallel chain: a header with its name and M/S/× chips, its device rows (drag a row to reorder or to move it to another chain; the × under the mouse removes it; double-click opens the device), a + DEVICE caption showing where a drop appends, and a footer with an inline fader, a dB cell and a pan cell. Drop a plug-in or a native device onto the slim + CHAIN tab to start a new chain with it in one gesture, or click the tab for an empty chain. A rack with no chains left passes audio through unchanged. Solo mutes the other chains. Chains sum at unity: two identical chains come out +6 dB louder than one, so a parallel-compression rack wants its chain faders trimmed.
  • Macros — a strip of eight knobs on the rack's left, folded to two columns of four, each numbered (a mapped knob shows its parameter's name instead); click MACROS ▸ to open the 4×2 bank (the fold is remembered for the session). Click a macro's number or MAP label, then touch any control in a plug-in's editor (or turn a native device's knob) to bind it; the macro's full travel spans the parameter's whole range. Binding is silent: a macro's first mapping moves the macro to where the parameter already sat, so nothing you hear changes. A macro that already drives other parameters stays put, and the newly bound one follows it. Mappings are saved with the project, for plug-in parameters and native device knobs alike. A mapped knob can still be turned by hand, but it is the macro's: it goes back to where the macro puts it the next time the macro moves, and when the project is reopened. Unmapping (the × beside a mapping) leaves the knob where the macro had it, and so does undoing a mapping; undoing the unmap brings the mapping back without moving anything. Macros are automatable like any parameter (macro: lanes). The engineer maps and unmaps them too: a native device's knob by name ("map macro 1 to the compressor's threshold"), a plug-in's parameter by its position in that plug-in's list.
  • Presets — the rack's SAVE button stores the whole rack (chains + devices + macros + plugin state) as a .zrack preset; presets appear in the browser for drag-onto-dock reuse, and load as fully independent copies. (Racks are the preset unit — there is no separate single-device preset system; wrap a device in a one-chain rack if you want to save just it.)

The agent shares the entire rack surface — 20 rack commands cover grouping, chains, devices, macros, mapping, and presets ("group the EQ and compressor into a rack", "ungroup the Guitar Rack").

Zammoth is a DAW for Apple silicon Macs with an AI audio engineer built in. The beta opens soon.

Join the beta