LOOM responds to a fixed, built-in set of notes that covers every track and the global controls. There is no mapping editor and no MIDI learn, so you set your controller to send the notes on this page.
Read this before you plug a keyboard into the same Mac. LOOM listens to every MIDI source on the machine, including any you plug in after LOOM is already open. Its commands respond on one channel only, the command channel, and you choose which. Notes on any other channel never reach the commands. They play the instrument tracks whose MIDI input matches them.
Note numbers, and why your controller may disagree with LOOM
LOOM matches raw MIDI note numbers, 0 to 127. It does not read note names, and it has no setting that changes this.
Controllers and DAWs disagree about the names for those numbers, by a whole octave. Two conventions are in wide use:
| raw note | Arturia / Akai / Ableton call it | scientific pitch calls it |
|---|---|---|
| 0 | C-2 | C-1 |
| 12 | C-1 | C0 |
| 24 | C0 | C1 |
| 36 | C1 | C2 |
| 48 | C2 | C3 |
| 60 | C3 | C4 |
| 72 | C4 | C5 |
| 84 | C5 | C6 |
| 96 | C6 | C7 |
| 108 | C7 | C8 |
| 120 | C8 | C9 |
Note 60 is "C3" on an Arturia and "C4" in a physics textbook. Both are correct names for the same key.
Getting this wrong fails silently, or worse. You set a pad to what you think is the right note, you press it, and nothing happens, or a different track responds. LOOM cannot tell you that you are an octave out, because to LOOM you pressed a different note.
Work in raw numbers. Every table on this page uses raw note numbers. If your controller's editor shows only names, convert them with the table above, then confirm with the inbound monitor described below, which shows the number LOOM received.
The layout: one octave per track
Each track gets its own octave, and within it the same controls in the same order. The layout below is the one LOOM uses unless you choose the 1.0 layout; see The 1.0 layout below.
Track n starts at raw note (n − 1) × 12. The controls sit at +0 to +6 from there.
| offset | control | held? |
|---|---|---|
+0 |
The ring button — see below. Does what the ring on strip n would do | no |
+1 |
Overdub — always an overdub | no |
+2 |
Undo (takes the last layer off) | no |
+3 |
Redo (puts back what +2 took off) |
no |
+4 |
Stop (this track, on its own STOP QUANTIZE) |
no |
+5 |
Clear | yes — hold one second |
+6 |
Play — always a play | no |
Which gives:
| track | notes | Arturia/Akai naming | scientific naming |
|---|---|---|---|
| 1 | 0–6 | C-2 … F♯-2 | C-1 … F♯-1 |
| 2 | 12–18 | C-1 … F♯-1 | C0 … F♯0 |
| 3 | 24–30 | C0 … F♯0 | C1 … F♯1 |
| 4 | 36–42 | C1 … F♯1 | C2 … F♯2 |
| 5 | 48–54 | C2 … F♯2 | C3 … F♯3 |
| reserved | 60–71 | C3 … B3 | C4 … B4 |
| instrument 1 | 72–78 | C4 … F♯4 | C5 … F♯5 |
| instrument 2 | 84–90 | C5 … F♯5 | C6 … F♯6 |
| instrument 3 | 96–102 | C6 … F♯6 | C7 … F♯7 |
| instrument 4 | 108–114 | C7 … F♯7 | C8 … F♯8 |
| globals | 120–125 | C8 … F8 | C9 … F9 |
Every cluster begins on a C, so the layout reads straight off a keyboard.
- Tracks 1 to 5 are LOOM's audio tracks, from note 0.
- Notes 60–71 are reserved for a sixth audio track. Nothing is mapped there, and a press does nothing.
- The instrument octaves, 72–119, drive the instrument tracks, one octave each, with the same controls at the same offsets as an audio track. An instrument track's octave does nothing while that track's MIDI input is
NONEand the track holds no loop: a press does not start the transport and does not start a hold. - The globals sit at the top of the layout, at 120.
+0 is the ring button, and that is why one pad is enough
The pad at +0 does not always mean "record". It does what the ring button on that track's strip does, which depends on where the track is:
| the track is… | one press of +0 |
|---|---|
| empty | records — and if the transport is stopped, it starts it first |
| recording | closes the loop (and then plays, overdubs or stops, per that track's REC ACTION) |
| playing | overdubs — punches in |
| overdubbing | punches out |
| stopped, holding a loop | plays it again — and a further press overdubs into it |
The last row is the important one. A pad that always meant "record" would record over the loop you had just stopped, and the take would be gone. Because the pad advances the track's state the way the ring does, it plays the loop instead.
If you would rather have pads that do exactly one thing, use +1 and +6. +1 is always an overdub and +6 is always a play, whatever the track is doing. You can use both models on the same controller.
+2 and +3 are undo and redo, side by side
+2 takes the last layer off the track. +3 puts it back. They sit next to each other because you reach for them in the same second, and on a pedalboard two pads apart can mean two rows or two units apart. They are the same two commands as the window's UNDO and REDO, but they act on the track the note names instead of the track that has focus, so a pedalboard can undo track 3 while you are looking at track 5. The buttons cannot do that.
A press that would move nothing does nothing. +2 on a track with no layer beneath the current one, or +3 with nothing to put back, is not an error. It leaves the take alone and announces nothing.
There is no third undo depth on a pad. LOOM has a shorter undo that it uses internally, and neither the window nor a note offers it.
If your transport is stopped,
+0starts it. Pressing the ring while the transport is stopped means "start now": LOOM rolls the transport and starts recording in the same instant, so you do not have to reach forROLLfirst.+6(Play) and+4(Stop) do not do this. They are quantized to the grid, and with the transport stopped there is no grid, so LOOM refuses them rather than leave them waiting for a bar line that never comes.
The note number alone chooses the track. There is no "select a track, then operate it" mode, and no note follows the FOCUS readout. A note always goes to the track the table gives, whatever is on screen.
Everything between the clusters (7–11, 19–23, and so on), the reserved octave 60–71, and notes 126–127 are unused. Those notes do nothing at all. LOOM refuses a note that names a track it does not have, so a stray pad cannot start your transport.
Why track 1 starts at note 0
The layout gives every audio track, a sixth audio track, every instrument track and the globals an octave each, and that uses the note space from 0 upward. Foot controllers and pad controllers send any note number you set, so they reach every octave. On a keyboard, use its octave buttons to reach the octave you want.
The globals: 120 to 125
| note | does what | held? |
|---|---|---|
| 120 | ALL START — starts every track that is included in ALL START, and starts the transport if it is stopped | no |
| 121 | ALL STOP — stops every track that is included in ALL STOP | no |
| 122 | ALL CLEAR — clears every track | yes — hold one second |
| 123 | TRANSPORT START — starts the clock and the click. Starts no tracks | no |
| 124 | TRANSPORT STOP — stops the transport, and every track with it | no |
| 125 | PERFORM FROM TOP — plays the arrangement from bar 1 | no |
In the 1.0 layout the same controls sit at notes 96 to 101, in the same order.
ALL STOP is not the transport STOP in the top bar. LOOM has three different stops:
- a track's own Stop (note
+4in its cluster, or the strip's■ STOP) — stops that one track, on that track'sSTOP QUANTIZE; - ALL STOP (note 121) — stops every track and leaves the transport running and the click sounding;
- the top bar's
STOP— stops the transport, and every track with it. This is note 124.
If you stomp note 121 expecting silence, you get silent tracks over a click that is still going. Use ALL STOP to end a section. Note 124 ends the song: it stops the tracks and the clock together.
Note 123 is the only pad that starts the clock without starting anything else. ALL START (120) also rolls the transport, but it starts every included track with it. Note 123 gives you a click and an empty bar to count in over, and it works on a completely empty session, where ALL START has nothing to start.
Neither transport pad needs a hold. The hold guards the gestures that destroy recorded material: ALL CLEAR and a track's own CLEAR. Stopping the transport destroys nothing: every take survives and note 123 starts you again.
The transport pads take effect a fraction of a beat later than the others, because they travel the same path the top-bar buttons do rather than a shortcut of their own. You will not hear the difference.
Note 125 performs the arrangement, and it works in every view
Note 125 is the arrange view's PERFORM FROM TOP button on a pad. It plays your arrangement from bar 1, so the regions fire the tracks at their own bars. ALL START is different: it starts every included track at once, now, wherever they sit in the song.
You do not have to be in the ARRANGE view. The keyboard shortcut (⇧Return) works only there, because those keys mean other things elsewhere, but the pad works from LOOPER, MIXER and ARRANGE alike, so you can stomp it while looking at your tracks.
If your arrangement cannot play, nothing happens at all. LOOM refuses a performance as a whole: if it cannot fire one region correctly, none of them roll. The button shows a band across the top of the lanes naming the region that is the problem. A pad has no screen, so you get silence. If a stomp on note 125 produces nothing, switch to ARRANGE and press the button there to see why.
ALL START and ALL STOP respect the per-track include switches. A track you have excluded from ALL START in its settings is not started by note 120 either, because the pad and the button are the same command. ALL CLEAR has no such switch and clears everything.
ALL START and ALL STOP land exactly where the buttons land, including your ALL START Q and ALL STOP Q settings. A stomp and a click are the same press.
ALL START starts the transport when it is stopped, from the pad and from the button alike, so a stomp on note 120 at the top of a set gets you going without a second control for the clock. If the transport is already rolling it starts the tracks and leaves the playhead alone.
Holding: Clear, and ALL CLEAR
Note +5 in any track's cluster, audio or instrument, and note 122, must be held down for a full second. If you press and let go, nothing happens: no take is discarded, and you can tap them as often as you like.
Clearing throws away a recorded loop and everything overdubbed onto it, and nothing puts the material back. The CLEAR button in the window needs the same one-second hold, so the pad and the button take the same gesture. ALL CLEAR, which clears every track, uses the same hold.
When the clear happens
The clear happens one second into the hold, while your foot is still down. You do not have to let go to complete it, and letting go never completes it.
On stage, remember that if the material is still there, letting go is safe. Hold the pad, listen, and release when you hear the track stop. If you release before the second is up, nothing was cleared and you can press again.
What you see while you hold
In the LOOPER view, the matching button on screen fills from the left as you hold, and it fires at the moment the fill is complete. The fill shows how long you have left.
In the MIXER and ARRANGE views those buttons are not on screen. The notice row tells you instead: it names the control you are holding (for example, Holding to clear track 3. Let go now and nothing happens.) and, if you release early, says that nothing was cleared.
Every other binding
Releasing the pad does nothing. The press is the whole gesture.
The MIDI readout — how to tell whether LOOM sees your controller at all
Look at the bottom rail. The MIDI readout appears there in every view, beside RATE, BLOCK, ROUND TRIP, CPU and DROPOUTS, and shows the last MIDI message LOOM received:
MIDI 16 · N36 · 100 ✓
16— the channel it arrived on, 1 to 16, as your controller numbers them.N36— a note, number 36. A controller message readsCC74. The number is raw.100— the velocity, or the controller value.✓— LOOM matched it to a binding and acted on it.·means it matched nothing.
— means nothing has arrived at all since LOOM started.
The · is the most useful mark. When nothing is happening, the readout tells you why:
- Still
—after you press a pad? LOOM is not receiving from that device at all, so changing note numbers will not help. Check the cable, and check the controller is powered and not in a mode that stops it transmitting. It does not matter when you plugged the controller in; see Plugging a controller in while LOOM is running below. - A line appears but ends in
·? LOOM heard it and did not act on it. Read the number. If it is not the note you meant, you may be an octave out, so go back to the table above. If the channel is not LOOM's command channel, the pad is on the wrong channel. A note you play into an instrument track on another channel also ends in·, because it is not a command. A note in an instrument octave ends in·when that instrument track's input isNONEand the track holds no loop. - A line appears and ends in
✓? That message worked. Check that it is the note you meant: an octave out on a pad often lands on another track's cluster, and that also ends in✓.
The readout is on the rail rather than in a panel, so you can watch it while you set up a loop, arrange or play.
Putting LOOM on a channel of its own
Use this setting if you play an instrument from the same controller you use to drive LOOM, which is the usual way to use one.
LOOM's command channel is 16 by default. You do not need to configure anything for a controller that already sends on 16, or on a rig where LOOM is the only thing listening.
To change it, open the side panel and use MIDI CH, under the MIDI heading just below AUDIO DEVICE. Any number from 1 to 16 works. The old channel goes quiet as soon as you choose a new one, and the new one starts responding without a restart. The choice is saved per machine, alongside your latency calibration, and is not stored in the song, so a set you take to another rig uses that rig's channel, because the controller there is different.
To move your controller's pads onto LOOM's channel instead, change the setting on the controller. Most pad controllers let you set a transmit channel per pad bank or per pad, in a menu called something like MIDI CH or Channel, or in the manufacturer's editor application. Put the pads you want LOOM to answer on the command channel and leave the keys on whatever channel your instrument is on. If your controller can only transmit on one channel at a time, do the opposite: leave the controller where your instrument needs it, and set LOOM's command channel to a channel you can spare.
The 1.0 layout
LOOM 1.0 used a different layout: track 1 started at note 36 and the globals at note 96. If your controller is programmed for that layout, you can keep using it.
To choose it, open the side panel and use MIDI MAP, under MIDI CH. It offers 1.x layout, the layout on this page and the default, and 1.0 layout. The change takes effect immediately, with no restart: every note answers as the layout you chose. If you are holding a pad when you switch, LOOM cancels that hold and nothing is cleared. The choice is saved per machine, beside the command channel, and is not stored in the song.
Only one layout is active at a time.
| track | notes |
|---|---|
| 1 | 36–42 |
| 2 | 48–54 |
| 3 | 60–66 |
| 4 | 72–78 |
| 5 | 84–90 |
| globals | 96–101 |
Each cluster has the same controls at the same offsets as in the 1.x layout, and the globals are in the same order. The 1.0 layout has no instrument octaves and no reserved octave.
The 1.0 layout will be removed in LOOM 1.4. Reprogram your controller for the 1.x layout before then.
A worked example, end to end
The rig: an Arturia MiniLab, plugged into the same Mac as LOOM. You want the pads to drive track 1, and you want to keep playing the keys into a synth on channel 1.
1. Work out the raw notes. Track 1 starts at 0, and each track after it is an octave up: (track − 1) × 12. So for track 1:
| pad | raw note | verb |
|---|---|---|
| 1 | 0 | Ring button (record / close / overdub / play, per the track) |
| 2 | 1 | Overdub |
| 3 | 2 | Undo |
| 4 | 3 | Redo |
| 5 | 4 | Stop |
| 6 | 5 | Clear (hold 1 s) |
| 7 | 6 | Play |
2. Translate for the MiniLab's editor. Arturia names note 0 C-2. If you type "C-1" because that is what scientific pitch would call it, you get note 12, which is track 2's ring button, and the pads work the wrong track. Type note 0, which is C-2 in Arturia's naming.
3. Set the pads' channel to 16. In MIDI Control Center, set pads 1–7 to send notes 0–6 on channel 16. Leave the keyboard on channel 1 for your synth. (A MiniLab has eight pads, so the eighth is spare. If you use the arrange view, note 125, PERFORM FROM TOP, is a good use for it.)
4. Check it before you trust it. Watch the MIDI cell on the bottom rail and press pad 1. It should read 16 · N0 · 100 ✓.
- Still
—? LOOM is not seeing the MiniLab. Check the cable and that it is powered. - Reads
16 · N12 · 100 ✓? The pad works, but on track 2: you typed the wrong octave, so go back to step 2. - Ends in
·instead of✓? Read the number.1 · N0means the pad is still on the keyboard's channel, so go back to step 3. - Reads
16 · N0 · 100 ✓? You are done.
5. Play. Pad 1 records track 1. Pad 1 again closes the loop. Pad 2 overdubs. Pads 3 and 4 undo and redo that overdub. Pad 6, held for a second, clears track 1. Your keys on channel 1 never reach LOOM's commands. They play whichever instrument track holds channel 1, or your external synth if no instrument track listens there.
What LOOM listens to
LOOM listens to every MIDI source macOS reports and keeps them connected for the session. Its commands have no device list and no enable switch, so you cannot choose which source drives them, but the MIDI readout shows you what is arriving. An instrument track can listen to one device; see Instrument tracks.
A Mac with no MIDI interface is not a problem: LOOM opens the audio device and runs as usual.
Plugging a controller in while LOOM is running
You do not need to restart LOOM. Plug the controller in and LOOM connects to it within about a frame. The notice row confirms it:
A MIDI device was connected. LOOM is listening to 2 MIDI sources.
Then press a pad and watch the MIDI readout, as you would for a controller that was already plugged in.
Unplugging works the same way. LOOM stops listening to that source and the notice row says so. Plug it back in and LOOM connects to it again.
LOOM does not name the device, because it has no device list to name it from. The count is your confirmation: if it went up when you plugged in, LOOM saw the controller.
On the command channel, a note LOOM does not know does nothing, and neither does anything that is not a note: clock, pitch bend, aftertouch, control changes and program changes are all ignored by the commands. A message on any other channel never reaches the commands; that is the purpose of the command channel. It goes to the instrument tracks whose MIDI input matches it, and to nothing else. All of it still shows up in the monitor.
If you do not want this
Move LOOM onto a channel that nothing else on your rig sends on. That is what the command channel is for. Failing that, unplug the controller or take it off the Mac running LOOM. There is no way to switch the bindings off entirely and no per-source choice: LOOM answers every source, on the command channel.
What is not here yet
There is no way to author a mapping. An editable binding table, a MIDI learn gesture, a choice of source, and control over whether a binding latches or is momentary are not built.
Two things a mapping editor would give you are already here. The command channel is a channel filter, though it applies to every binding at once rather than one binding at a time. Every binding also names its own target: the per-octave layout reaches every audio track, every instrument track and the globals.