ZammothBack to the site

Manual

The Arrangement

The Arrangement is the main timeline: the lane field on the left, track headers down the right, a ruler stack on top and a tick ruler along the bottom. Its ground is skin-tinted, with a subtle time "zebra" — alternating column shading that always spans exactly four grid divisions, so the shading breathes with your zoom and grid setting.

The ruler stack

From top to bottom, one gesture per row:

  1. Overview / minimap — the whole song at a glance.
  2. Sections strip — auto-hides when the song has no sections (see below).
  3. Bar.beat ruler — click or drag to scrub the playhead; click a marker flag to jump to it; right-click for Set 1.1.1 here (re-anchor the bar numbering to any spot — a display change only, it never moves audio), Reset 1.1.1, and Add section.
  4. The loop bar — a fat strip sitting directly on the lanes (see Loop below).
  5. Tempo lane — collapsible, toggled with the ♩= view button (see Tempo below).

Labels drop trailing ".1"s — a bar boundary reads "5", a beat "1.4", a sixteenth "1.4.2". The bottom tick ruler mirrors time in minutes:seconds and scrubs the same way — click or drag it like the bar ruler above, and right-click it for the same Set 1.1.1 here / Add marker here menu. Its labels carry only the precision the ticks resolve: 0:07 when the step is a second or coarser, 0:07.4 or 0:07.428 as you zoom past that. In the corner where it meets the header column sits the corner cluster: the GRID readout cell (click it for the grid/snap menu) and the W / H fit buttons.

If you don't read in seconds while you work, the bottom ruler is 22 px you can have back: View ▸ Time Ruler (⌥⌘T) hides it and the lanes take the height. The setting persists, and the agent can see and set it (view.time_ruler) — the transport's TIME readout and the bar ruler still tell you where the playhead is.

Grid and snap

The grid is adaptive by default — it picks a musically sensible division for your zoom — or fixed at anything from 8 bars down to 1/32, with triplet variants.

  • ⌘1 / ⌘2 — grid narrower / wider
  • ⌘3 — triplet grid on/off
  • ⌘4 — snap on/off
  • ⌘5 — adaptive ↔ fixed grid mode
  • The grid readout (bottom-right of the field) shows the current setting: "2 Bar", "1/16", a trailing "T" for triplets.

Bar lines draw strongest, beats lighter, subdivisions lightest. Hold ⌥ during a drag to bypass snap for that gesture.

Zoom and scroll

  • = / − — zoom in/out around the selection or view centre
  • Z — zoom to the selection (or fit the song if nothing is selected); X steps back through the zoom history
  • W / H — fit the song's width / equal-fill track heights. On a project with nothing on the timeline yet, "fit the width" shows 16 bars at the song tempo — there is no content to fit, and an empty arrangement is not a reason to be zoomed into one second.
  • Scroll-wheel over any ruler (or ⌘-wheel anywhere) — focal timeline zoom: the moment under the pointer stays where it is while the timeline expands around it. Trackpad pinch does the same.
  • ⇧-wheel / trackpad swipe — horizontal scroll; ⌥-wheel over a lane — that track's height
  • The view is allowed to scroll past the end of the song into empty space.

Zooming never happens behind your back: importing or deleting content does not re-zoom the view.

Follow and the playhead

Follow (⌥⇧F, or the playhead-follow view toggle) auto-scrolls during playback in one of two modes: Scroll (the playhead pins about 10 % in and the content slides underneath) or Page (the playhead walks to the right edge, then the view flips one page forward). Any manual pan, scroll or zoom pauses Follow; pressing play again — or zooming while playing — re-engages it. The follow state persists across launches.

  • ← / → nudge the playhead one grid step; ⇧← / ⇧→ one full bar; Home / End jump to the start / end.
  • Click any ruler, or within a few pixels of the playhead line itself, to scrub.
  • The playhead is always amber — a transport signal, deliberately not skinned.

The loop

The loop bar sits directly above the lanes:

  • Drag on empty loop-bar space — create a loop range (snapped).
  • Grab an end — resize; press inside the brace — move it; click it — toggle looping on/off. The brace stays visible even while looping is off.
  • ⌘L — set the loop to the current time selection. ⇧⌘L — the inverse: turn the loop range into a time selection across every lane.
  • The loop range and markers draw in the reserved blue-cyan so they read against every skin.

The loop is yours alone: it is the one transport control the agent is structurally forbidden from touching. No agent command can set, move, or clear your loop.

Selection

  • Click a clip's title strip — select the clip (and arm a move). A MIDI or step clip selects (and arms) from anywhere on its body — it has no marquee inside it.
  • Click a clip's body or empty lane space and drag — a marquee time selection: it spans a time range and a lane range (drag vertically to include more tracks). No modifier key needed. A plain click with no drag moves the playhead and collapses the selection. The highlight belongs to the tracks it was drawn across, not to their positions: add, rename or reorder tracks and it stays on the same ones. If a track at either end of it goes away — you fold the group it lives in, or delete it — the highlight clears rather than sliding onto whatever moved into that row.
  • Shift-click — contiguous multi-select; ⌘-click — toggle tracks/clips in and out. ⌘A selects every lane. Touching a control on a selected track (fader, pan, M, S, arm) focuses that track but keeps the rest of the selection — the gesture is about to act on all of them. The selection also survives structural edits: adding, duplicating, deleting or folding tracks keeps every selected track that still has a row, and only drops the ones that no longer do.
  • Press inside an active marquee and drag — the "power edit": the region is cut out at both edges across every spanned lane and rides your drag as new clips. A clip's edge handles still win inside a highlight: grab a trim edge, a fade square, or a curve diamond under one and you trim or fade as usual — only the clip body arms the region cut-move. And a multi-lane highlight is itself the group: an edge grabbed under one trims or fades every lane the highlight spans, by the same amount, whatever the track selection happens to be. Drag a highlight down across five stems, grab one clip's right edge, and all five extend together.
  • Your selection feeds the agent: the live session snapshot carries the selected time range and tracks, so "make this part brighter" or a bare "delete" in chat acts on exactly what you've highlighted. The chat composer's + Selection token attaches the range to a message explicitly.
  • Selection drives the panels: the selected track is what the device dock and the chat composer scope to; double-clicking an audio clip opens the Audio Clip View, a MIDI clip the piano roll, a step clip the Step Grid.

Markers

Markers are flags on the ruler in the loop/marker blue. Click a flag to jump to it. Right-click the ruler ▸ Add marker here drops one at the clicked time (the palette's Add Marker puts one at the playhead). The agent shares the surface — marker.add, marker.remove, and go to marker — and always sees your marker list, so "jump to the drop" works if the marker is named that.

Sections

Sections are named, coloured spans (Verse, Chorus…) in their own strip above the ruler — Zammoth's arranger track. First one appears via ruler right-click ▸ Add section.

  • Click a section to jump to it; drag to move it; drag an edge to resize (min ¼ bar); double-click to rename in place; double-click empty strip space to add one (it spans your current time selection if you have one, else 2 bars at the playhead).
  • Right-click — Add / Rename / Remove / Colour (13 swatches: the six track colours plus the seven skin hues).
  • The agent reads your sections (name, position, length) and uses them for section-aware mixing ("the chorus is 1.2 dB quieter than the drop"), and can manage them through the same commands.

Tempo and time signature

The tempo lane (♩= toggle) is a breakpoint editor for the tempo map:

  • Click the line to add a tempo point and drag it immediately.
  • Drag a point in 2D — horizontally to move it in time (snapped), vertically to change BPM. The BPM scale freezes for the whole gesture so it can't shift under your hand; hold ⇧ for fine BPM steps.
  • Double-click a point removes it (the base tempo at the start of the song always remains). Right-click — Add tempo change here / Remove tempo change.
  • While you drag, the bar grid holds its screen position and the seconds axis visibly rescales — you see the musical grid stay put while real time stretches.

Tempo changes respect each clip's warp mode: a warped clip keeps its bar span (the audio time-stretches); an unwarped clip keeps its absolute seconds. On loading a song, Zammoth sets the project tempo from its own tempo detection when it's confident and you haven't set one.

The time signature is set from the transport bar's SIG cell (eight common signatures) or by the agent at any point in the song (tempo.set_time_sig); the ruler and grid follow it — a beat is the signature's own note value, so 6/8 is six eighth-note beats to the bar (the ruler counts 1 · 1.2 … 1.6 · 2, and "1 Bar" on the grid is the whole bar) and 7/8 is seven. The SIG cell and the metronome's beat counter read the signature under the playhead, so a song that changes metre mid-way shows the change as playback crosses it.

Timeline surgery (whole-song edits)

The edit-the-timeline commands operate across every track at once, using their own time clipboard (audio, MIDI and step clips all survive):

  • ⌘I — Insert Silence into the selected range
  • ⇧⌘X / ⇧⌘C / ⇧⌘V — Cut / Copy / Paste Time
  • ⇧⌘D — Duplicate Time

Plain ⌘D with a time selection is the narrower duplicate: the highlighted span's clips on the marquee'd lanes are copied to directly after the span — so highlight a clip plus the empty space behind it and the copy lands at the END of the highlight, not glued to the clip. Only those lanes' later material shifts right (a clip straddling the insertion point is split there); the highlight moves onto the copy, so a repeated ⌘D keeps chaining.

  • ⇧⌘⌫ — Delete Time

Dropping things onto the Arrangement

The lane field accepts, with a solid insertion line (a snapped vertical line with a small triangular pointer) marking exactly where things will land:

  • Audio files from Finder or the browser — placed instantly at the snapped time; the first file takes the hovered lane, each additional file gets its own new track.
  • A Loop Deck pad's clip — dragged out of the launcher onto a lane (⌥ at the drop copies it, keeping the pad).
  • A device or plug-in from the browser — the target lane outlines (no time position; it lands in that track's chain). Off every lane, it makes a new track carrying it — and the insertion line marks where that track will appear, under the last track, rather than over a pinned FX return. An audio effect makes an audio track, the Arpeggiator makes a MIDI track waiting for its instrument, and an instrument plug-in (its row reads INST) makes a MIDI track with that instrument. An instrument plug-in dropped on an audio track is refused, and the status line says so.
  • An instrument from the browser — onto a MIDI track's lane, it becomes that track's instrument (a MIDI track without one gains it, one with an instrument swaps; an audio track refuses); off every lane, a new MIDI track.
  • A track from another open project — always lands as a new track (cross-project drops import the audio files into this project).
  • A groove from the browser's Grooves tab — must land on a clip.
  • A device box dragged out of the device dock — moves that device to the target track (⌥ copies it).

Dropping past the last lane creates new tracks.

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

Join the beta