Launchpad Mini Mk3

Connect one device for a switchable performance surface, or two for a live matrix beside a command deck. This guide covers the physical controls, gestures and LEDs of the launchpad control module.

Start with the Clip Player quick start for sound wiring and clip playback. See that guide for note editing, audio capture, automation, scenes and arrangement and Song. For Ableton hardware, use the separate Push 2 guide.

Choose the recording control for the job

CLIP RECORD — notes
KEYS → QUEUE-REC captures played notes into the selected note clip.
AUTO — control movement
One device: HOLD SHIFT + lane 1–7’s top button; lane 8 uses the pad directly below SHIFT. Two devices: R → AUDIO → AUTO row. AUTO is independent of audio recording. Assignment and playback are explained in Clip Player automation.
AUDIO RECORD — sound
CONTROL → AUDIO selects a destination and arms mixer-channel capture. Use the Audio tab below for the device layout.
ARRANGER RECORD — launches
Single CONTROL → REC, or paired R’s top-left REC, captures clip launches for arrangement playback.

1 Launchpad — one device, four views

One Launchpad switches between the views below. The lone device is a four-view surface — GRID (launch clips), CLIP (edit notes; its KEYS sub-view plays, clip-records + arpeggiates), ARRANGER (reserved) and CONTROL (the performance deck) — laid over a permanent top-row nav bar with a shared SHIFT arm layer, with a one-hand SHIFT layer. New to the device? Start with the Walkthrough tab. Setup + the shared top-row / SHIFT foundation sit in the two collapsible panels just below the tabs.

Setup, binding and reconnection
  1. Add launchpad control and clip player. This controller module has no audio ports; wire sound through Clip Player and your instruments.
  2. Plug in a Launchpad Mini Mk3 and press Connect single on the Launchpad module face. Grant the browser’s Web MIDI and SysEx request. The first matching MIDI port binds; there is no press-a-pad handshake.
  3. The first Clip Player in the patch is bound automatically. Open the Launchpad module to check LINK (hardware connected) and CLIP (Clip Player bound). Bind to clip-player / Unbind clip-player changes that binding; there is no picker for arbitrary players.
  4. A fresh Connect single gesture starts in GRID. Device IDs, deployment and view are saved on this computer; reconnect after reload. The on-screen GRID / CLIP / ARR / CTRL segment also changes the hardware view.

The implemented protocol targets Mini Mk3. Launchpad X and Pro Mk3 have different device IDs; their presence in source constants is not support for those models. A shared controller engine serves one active Push/Launchpad surface at a time; adding another module does not create an independent controller session.

Shared in every view — the permanent top row, SHIFT, the colour language + the automation ARM layer

The permanent top row — your compass

▶GRIDCLIPARRCTRLUNDOREDOSHFTTRANSPORTVIEWS · Grid · Clip · Arranger · ControlUNDO / REDOSHIFT
The 8 top-row buttons (CC 91–98) mean the SAME thing in every view. Left→right: transport (red stopped / green playing) · GRID · CLIP · ARRANGER · CONTROL (purple; the active view is bright) · UNDO · REDO (orange) · SHIFT (yellow). The 8×8 below is dark here only to spotlight the row.
  • Transport (CC 91): start / stop the rack transport (TIMELORDE). Red = stopped, green = playing — the only red/green button on the row.
  • GRID · CLIP · ARRANGER · CONTROL (CC 92–95): the four view buttons — dim purple when you're not in them, bright purple for the one you're in. While KEYS is open (a sub-view of Clip) the CLIP button also lights bright; pressing any view button leaves KEYS for that view.
  • UNDO / REDO (CC 96 / 97): launchpad-scoped — they revert only this launchpad's persistent clip edits (div, swing, length, paste, note content, scale), never a collaborator's edits and never a transient launch. Orange when there's something on the stack, dim when empty.
  • SHIFT (CC 98): the alt-layer key (next). Dim yellow off, bright yellow while held. Momentary hold only — a short tap does nothing; there is no latch.
  • AUTOMATION ARM — HOLD SHIFT + a lane's top button (every view): while SHIFT is held, the top row becomes the per-lane automation arm map: pressing column 1–7 toggles that lane's clip-automation record (red pulse = armed, dim red = available), and the press is consumed — shift+▶ never touches the transport, shift+GRID never switches views, shift+UNDO never undoes. Lane 8's top button IS the shift button, so lane 8 lives on the pad directly below SHFT (the topmost 8×8 row, rightmost column) — while shift is held, tap it to toggle lane 8's arm (it lights in the arm map too). Because this lives on the global row, you can arm or disarm any lane from any screen — and an ARMED lane's top button red-flashes over its normal colour all the time, in every view, as the always-visible record indicator.

The arm layer in pictures

1234567SHFTARM MAP — press = toggle that lane (red pulse = armed · dim red = available)SHFT — lane 8 = the pad below
SHIFT held — the top row becomes the PER-LANE ARM MAP, in EVERY view: columns 1–7 are lanes 1–7 (red pulse = armed — lane 3 here; dim red = available; the press toggles the arm and is consumed). Column 8 keeps the SHIFT LED — lane 8 lives on the PAD DIRECTLY BELOW SHFT (topmost 8×8 row, rightmost column; dim red = available, red pulse = armed), tapped while shift is held.
▶GRIDCLIPARRCTRLUNDOREDOSHFTTRANSPORTVIEWS · Grid · Clip · Arranger · ControlUNDO / REDOSHIFT
Shift released — the compass comes back, but ARMED lane 3's button keeps RED-FLASHING, alternating with its base colour (shown on the red phase), in every view, until the lane is disarmed. A RED-FAMILY base (the stopped transport button) alternates with a DIM red instead, so the blink stays legible.

SHIFT and armed actions

SHIFT (CC 98) is a momentary hold. In Grid, hold it and tap COPY, PASTE, CLIP-DIV or LENGTH to arm that action. Only one action can be armed at a time.

  • COPY / PASTE: release SHIFT, then tap a clip or scene target. The arm remains active until used, cancelled, timed out (about four seconds), or you leave Grid.
  • CLIP-DIV / LENGTH: keep SHIFT held for the target tap. Releasing SHIFT commits the divider preview or cancels an unused length arm.
  • Tap the armed function again to disarm. These temporary edit arms are separate from the lane’s audio and automation recording arms.

Navigation palette (permanent top row)

transport — stopped red — CC 91; tap to start
transport — playing green — CC 91; tap to stop
view — inactive dim purple — a view you are NOT in (Grid · Clip · Arranger · Control)
view — active bright purple — the current view (Clip is bright while KEYS is open)
undo / redo — available orange — CC 96 / 97; a persistent edit is on the stack
undo / redo — empty dim orange — nothing to undo / redo
shift — off dim yellow — CC 98 idle
shift — held bright yellow — momentary hold (there is no latch)

Right-column function taxonomy

pattern green — content: copy · paste · double · follow · scales · row-nav
pattern — armed / selected bright green — armed (tap-to-arm) or the selected scale / arp direction
timing blue — clip divider · swing ± · step-scroll · arp division
timing — armed / jump bright blue — armed clip-div, or a block / page jump under shift
length yellow — edit clip length (owner override; not green)
KEYS entry bright orange — open the KEYS keyboard (owner override)
system orange — arp range · arp on/off · arp latch
system — off dim orange — that system toggle is off
copy buffer turquoise (pulses) — the Paste button while the clipboard holds a clip
swing — raising purple ramp — Swing+ nudged up (pale → bright by amount)
swing — lowering blue ramp — Swing− nudged down

GRID Mode — launch clips

▶GRIDCLIPARRCTRLUNDOREDOSHFTKSVROW ▶CHANNELS / LANES 1 → 8
GRID view (no shift). The 8×8 is the clip matrix, TRANSPOSED to match the on-screen card: each COLUMN is a channel/lane (1–8 left→right), each ROW is a clip slot (top row = slot 1). Clip states paint in each CHANNEL'S OWN colour: dim = loaded · solid = playing · flashing = queued-launch · flashing RED = queued-stop (red is the one semantic exception). Right column = ROW / scene launch (amber where the scene has clips, dark where empty; the top row flashes green — its scene holds the queued clip).
  • Every channel's clip states glow in that channel's own colour (the colour you picked in Clip Player, else its default hue) — dim = loaded, solid full brightness = playing, flashing = queued-launch. Only queued-stop flashes RED on every channel, so a pending stop always reads. The pad matches Clip Player’s swatch for the same channel.
  • Tap a loaded clip (dim) to launch it — it flashes (queued) until the next quantize boundary, then turns solid (playing). Tap the playing clip to queue a stop (flashes red until the boundary).
  • Columns are channels, rows are slots — the same orientation as the Clip Player Session grid, so the pad you see lit is the clip you see on screen.
  • Row / scene launch (right column): a grid row is one clip per channel — an Ableton-style scene / song section. Scene button N fires that row's slot across every channel that has a clip and stops the channels that don't. It flashes green while any channel in that row is queued. The column is a scrolling window over up to 64 scenes (slide it with Grid + shift SCR▲ / SCR▼; an empty scene is dark and its launch is a no-op).
  • Empty pads glow dim red while ARRANGER RECORD is armed.

Launch versus inspect

Tap a clip to launch or stop it. HOLD GRID + tap a clip selects and opens it without changing playback. Note clips open CLIP, including those with attached audio; their recording and source controls stay in CONTROL → AUDIO. Legacy standalone audio clips open AUDIO. Empty pads create a note clip. A double-tap also opens the clip; it restores the lane’s pre-tap play/queue intent after the first launch tap. Use HOLD GRID when you want inspection with no first launch.

The selected note clip is the target for CLIP, KEYS and Swing ±. Clip Player Session explains lane, clip and queue behavior. A clip with saved audio keeps the same launch/stop gestures and has a purple loaded-state LED. Choose NOTES in AUDIO to hear note edits; they do not change the saved take. Whole-clip copy/paste carries notes, automation and attached audio together.

GRID + shift — the function palette (home of copy/paste)

1234567SHFTKSVCOPYPASTEDIVSW+SW−LENSCR▲SCR▼CHANNELS / LANES 1 → 8
GRID + shift (SHIFT HELD, bright yellow). The right column becomes the function palette, top→bottom: COPY · PASTE · CLIP-DIV · SWING+ · SWING− · LENGTH · SCR▲ · SCR▼. Green = pattern, blue = timing, yellow = length, amber = scene-scroll. PASTE shows turquoise here because the clipboard holds a clip. While shift is held, the TOP ROW is the per-lane automation ARM MAP (dim red = available — none armed here).

That shift-state top row is the automation ARM MAP — see the arm layer in pictures ↑ (in the shared foundation above).

  • COPY (green): arm, then tap a loaded clip → snapshot that CLIP to the clipboard, OR tap a ROW / scene-launch button → snapshot the WHOLE SCENE (all 8 channels at that slot). For a scene target, release SHIFT first so the column shows the ROW ▶ buttons again — while shift is held, that column is still this function palette (clip-pad targets work under either shift state). The clipboard is typed: a clip buffer pulses turquoise, a scene buffer pulses amber. Re-tap COPY while loaded to clear it. (Copy is a snapshot — edit after copying? re-copy.)
  • PASTE (green; only arms when the clipboard holds something): arm, then tap a clip pad to drop a clip buffer there, or a ROW / scene-launch button (again with SHIFT released) to full-REPLACE that whole scene from a scene buffer. The paste is type-gated — clip→clip and scene→scene apply; clip→scene and scene→clip are no-ops (nothing is written). A scene paste is a single undo step. Copy/paste carries each clip's recorded automation with it (the envelope belongs to the clip): the destination's old automation is replaced — or cleared when the source clip had none. This Grid palette is the ONLY copy/paste on the Launchpad — clips and scenes, right here; the note editor deliberately has none. (PASTE-REV, the time-reversed clip paste, is a pair-deck hold — see 2 Launchpads; it pastes the automation time-reversed to match.)
  • CLIP-DIV (blue): the per-clip divider. Arm, then tap a clip repeatedly to cycle its own clock division (1/8 · 1/4 · 1/2 · 1 · 2x · 4x). While you cycle, the target clip pad itself pulses in time with the chosen division. It writes once when you disarm, applied at the clip's next loop start. A clip's own div overrides its channel's CONTROL-mode RATE.
  • SWING+ / SWING− (blue): direct ±2 % nudges (one per press) to the selected channel's swing — odd steps slide late for a shuffle. The buttons ramp purple while you raise and blue while you lower, and both flash green on the nudge that returns swing to dead-centre (straight).
  • LENGTH (yellow): arm, tap a loaded clip → its length page opens (a full-device takeover, detailed below; EXIT returns to Grid).
  • SCR▲ / SCR▼ (amber): slide the scene-launch window UP (toward scene 1) / DOWN (up to 64 scenes; DOWN lazily reveals one empty scene past your deepest clip; each button dims at its scroll limit). Direct — no arming.

Scene repeats — HOLD GRID + HOLD a scene button

Scenes loop forever by default (repeats = infinite). To make a scene play N times and then auto-launch the next scene down (skipping empty rows; the last content scene keeps looping), set its repeat count with a 3-button, two-hands gesture: HOLD the GRID button (permanent top row) + HOLD one of the 8 scene-launch buttons. The scene press under GRID-hold selects only — it never launches.

▶GRIDCLIPARRCTRLUNDOREDOSHFT161HOLD
REPEAT-COUNT view while HOLDING GRID + HOLDING the top scene button — shown: 16 repeats, so pads 1–16 (the top two rows) glow system orange, counted row-major from the upper-left. ALL 64 pads lit = INFINITE (the default). The held scene button stays bright amber. Releasing either held button returns to the normal grid.
  • While both buttons are held, tap pad k (1-indexed row-major: upper-left = 1, second in the top row = 2, …) to set k repeats (1–63); pad 64 (bottom-right) sets it back to INFINITE. The bar updates live as you tap, and always shows pads 1..N lit for count N.
  • Scroll-aware: the held scene button is position-relative through the scene window — with the column scrolled (SCR▲/▼), button i edits scene offset + i, the same scene it would launch.
  • Counts are saved with the scene and travel with whole-scene copy/paste. See scene timing, auto-advance and manual overrides for how repeats behave.
  • No collision with the automation arm: that gesture is SHIFT + a top-row button — this one is a GRID hold without shift.

Clip-default probability — SHIFT + a clip pad

Every note has a firing probability, always: until you set a note's own, it uses the clip's probability. Give a WHOLE clip a default firing probability — the chance every note that has no probability of its own rolls each time it plays. HOLD SHIFT and press a clip pad (one that already holds a clip, with no function armed) → the 8×8 becomes a 40-level ORANGE bar over the top 5 rows (the orange echoes the clip-default note colour). Tap pad k = k × 2.5%; pad 40 = 100% (every note fires). The page auto-returns to the grid on that tap; a dark-row tap cancels.

▶GRIDCLIPARRCTRLUNDOREDOSHFT1
CLIP-DEFAULT PROBABILITY page (shown: 50% → pads 1–20 lit ORANGE over the top 5 rows). SHIFT + a Grid clip pad opens it; the next pad tap writes the clip’s default and returns. The default is used by every note that has not had its own probability set — in the note editor those notes render orange (∝ the default), a note using its own probability renders purple, and any effective 100% is white.
  • Precedence: once a note has its OWN probability it uses THAT value in all cases; a note that has none follows the clip default; with neither it always fires. So the default colours only the notes with no probability of their own (they turn orange in the editor); notes using their own probability stay purple (white at effective 100%).
  • It gates playback, and a note pins over it: a clip default of 0% silences every note that follows it — but a note set to 100% fires 100% (white) and thereby sits ABOVE a lower clip default, and a note set to 50% fires 50% even under a 100% clip. A note's own probability is used as-is, including exactly 100% (no delete, no special-casing). Setting the clip default to 100% clears the clip default (every note then fires unless it has its own lower value; old clips stay byte-identical).
  • Under shift an armed copy / paste / clip-div / length still consumes the clip-pad tap (unchanged); a no-shift tap still launches. Empty pads don't open the page (there's no clip to carry a default). Single-unit only — in Clip Player, right-click a clip pad → note probability.
  • The top-right clip pad (physical x=7, y=7) is claimed by the lane-8 arm from every view, so a SHIFT-tap there arms lane 8 rather than opening that clip's default-probability page. Set that clip's default in Clip Player instead: right-click the clip pad → note probability.

LENGTH-EDIT — set an exact clip length

123EXITEND BLOCK 1 → 8
LENGTH-EDIT page (shown: 3 blocks, end-step 4 → 36 steps). A full-device takeover. Bottom row = end BLOCK (1–8, ×16 steps each); the next two rows = end STEP (1–8, then 9–16). The bright pad is the current end — tap to set. Non-destructive; EXIT (top scene button) returns to where you came from.

Length = (endBlock−1)×16 + endStep, up to 128. Each clip's length is independent — polymeter is the point — and all playing clips re-align to step 1 when the transport starts (or on a RESET).

Clip-state colours (in the channel's own colour)

empty slot off no clip here (glows dim red while ARRANGER RECORD is armed)
loaded audio clip static purple saved take; playing / queued states keep the lane colour
loaded note clip static dim has notes, stopped — DIM in the channel’s own colour
playing SOLID running now — full-brightness channel colour (steady; a blinking pad means queued, not playing)
queued-launch flash flashes in the channel’s colour until the loop boundary
queued-stop flash RED will stop on the boundary — always red, whatever the channel colour
scene / ROW launch (right col) amber fire one slot-row across all 8 channels; dark = empty scene; flashes green while queued

Reference

permanent top row (every view)CC 91 = transport (red stopped / green playing) · 92 = GRID · 93 = CLIP · 94 = ARRANGER · 95 = CONTROL (purple; bright = active) · 96 = UNDO · 97 = REDO (orange) · 98 = SHIFT (yellow: dim off / bright held). Without SHIFT these meanings are stable; SHIFT exposes the automation-arm map
SHIFT (CC 98)MOMENTARY HOLD — effective only while physically held down (bright yellow); a short tap does nothing (there is no latch). HOLD shift + tap a right-column / top-row function to use its shift meaning. Only COPY and PASTE survive releasing SHIFT; keep SHIFT held for CLIP-DIV and LENGTH targets
AUTOMATION ARM (HOLD SHIFT + top row)while SHIFT is HELD, the top row becomes the PER-LANE ARM MAP: press column 1–7 to toggle that lane’s automation record (red pulse = armed · dim red = available); lane 8 = the pad DIRECTLY BELOW SHFT (topmost 8×8 row, rightmost column), lit in the arm map. Works from EVERY view; the press is consumed (no transport/view/undo/launch side-effect). An armed lane’s button red-flashes over its normal colour all the time
UNDO / REDO (CC 96 / 97)launchpad-scoped: undoes only THIS launchpad’s persistent clip edits (div / swing / length / paste / content / scale) — never a collaborator’s edit, never a transient launch. Lit orange when the stack has something; dim otherwise. Under SHIFT these presses are the lane 6/7 arm toggles instead
GRID — the clip matrixcolumn = channel / lane (1–8 left→right), row = clip slot (top row = slot 1). Single-tap = launch / stop (queued to the boundary). HOLD GRID + a clip = inspect without launching. DOUBLE-TAP a clip = select it + open CLIP on it (empty pad = create a clip). No-shift right column = ROW / scene launch — a SCROLLING window of position-relative buttons over up to 64 scenes (slid by Grid+shift SCR▲/SCR▼)
CLIP-DEFAULT PROBABILITY — SHIFT + a clip padSHIFT + press a clip PAD (with NO armed function) → the 8×8 becomes a 40-level ORANGE bar (top 5 rows; each pad = 2.5%) for that clip’s DEFAULT firing probability. Tap pad k = k×2.5%, pad 40 = 100% (clears the clip default); the page auto-returns on the tap, a bottom-3-row tap cancels. The default is used by EVERY note with no probability of its own (a note’s own prob is used as-is, incl 100% which pins above the default). Opens only on a pad holding a clip; single-unit only. An armed copy/paste/div/len still consumes the tap; a no-shift tap still launches. Also in Clip Player: right-click a clip pad → “note probability”
GRID + shift right columntop→bottom: COPY · PASTE · CLIP-DIV · SWING+ · SWING− · LENGTH · SCROLL▲ · SCROLL▼ (amber). Copy / Paste / Clip-Div / Length are TAP-TO-ARM (tap → arm → tap a target). COPY/PASTE survive SHIFT release; CLIP-DIV/LENGTH require SHIFT held. Copy + a ROW/scene press grabs the WHOLE SCENE (all 8 lanes) — release SHIFT first so the column shows the ROW ▶ buttons (clip-pad targets work under either shift state); Paste is type-gated (clip→clip + scene→scene apply, the cross-type pastes are no-ops). Swing ± are direct ±2 % nudges on the SELECTED channel. SCROLL ▲▼ slide the scene window (up to 64 scenes; each dims at its limit)
SCENE REPEATS — HOLD GRID + HOLD a scene buttonthe 8×8 becomes the orange REPEAT-COUNT view for that scene (no shift — SHIFT+top-row stays the arm map). Tap pad k (row-major from the upper-left) = k repeats (1–63) · pad 64 = INFINITE (default). Pads 1..N stay lit for count N; all 64 lit = infinite. The held button is POSITION-RELATIVE through the scene scroll (button i edits scene offset+i); the press never launches. Release either button = back to the grid. After N passes of the scene’s longest clip (frozen at launch) the next content scene down auto-launches via the normal quantized path

Hardware protocol — implemented Mini Mk3 adapter

8×8 pads (programmer mode)note = row*10 + col · 11 = bottom-left · 88 = top-right
top row buttonsCC 91 · 92 · 93 · 94 · 95 · 96 · 97 · 98 (left → right)
right scene column (top→bottom)CC 89 · 79 · 69 · 59 · 49 · 39 · 29 · 19
per-LED full RGBF0 00 20 29 02 0D 03 03 <pad> <R> <G> <B> F7 (0–127)
Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo