CC arps
CC arps modulate per-step CC values using short repeating patterns, similar to how velocity arps and duty arps work for note parameters. Each CC row has its own arp pattern (up to 8 steps) and arp length, allowing rhythmic modulation of filter cutoff, resonance, decay, and other synthesiser parameters.
This document covers the LP and LC gestures and what shows on the grid. Which CC each row of each sequencer sends is on CC assignments.
Why
Another way to add variation to a pattern that is a bit limited or static sounding is by twiddling the knobs on the front of your synths. Whilst we love this as much as the next person, sometimes you just don’t have enough hands. Luckily, MIDI can make up for it. A CC arp is a short list of values that walks forward every time that row’s trigger fires, so the parameter moves in step with the pattern rather than independently of it.
A row with an arp length of 0 sends nothing at all, which is the whole point. It hands the parameter back to you, so that you can control the relevant knob with your hand rather than fighting with the invisible MIDI hand that is also tweaking that parameter.
Colour tells you what kind of parameter you are moving
Each row is coloured by the family of parameter it targets, so that you can read a CC arp view at a glance without having to remember the assignments. The palette is part of the CC assignment itself, so it can be tuned per synth, and when a parameter is assigned from the webapp its family picks the default:
| Parameter family | Default palette | Reads as |
|---|---|---|
| Filter (cutoff, resonance) | 2 | Dark gold |
| Pitch / tuning | 3 | Vivid orange |
| Amp / level | 4 | Pale blue |
| Envelope, decay | 5 | Sky blue |
| LFO | 6 | Dim magenta |
| Oscillator, waveform | 7 | Pink |
| FX | 9 | Green |
| Utility / unclassified | 1 | Tan→lilac gradient |
Assign a parameter from the webapp and it takes the default palette for its family; from there the palette is fixed per CC.
What You See on the Launchpads
LHS (LP1 for P1, LP3 for P2): Pattern Overview
8 rows × 8 steps showing every CC arp row at once.
- Rows are numbered 1 at the bottom of the pad up to 8 at the top, the same way round as the velo, duty and note arps and the trig view.
- The step a row is currently playing is drawn in that row’s palette colour (that CC’s own palette), so the parameter family is what you see moving along the row. A row whose arp length is 1 is drawn in the palette colour too, since its single step is always the one playing.
- The row’s other active steps are drawn in a four-tone blue gradation of their value: deep navy for 0–1, mid blue for 2–3, pale blue for 4–5, vivid blue for 6–7. So the overview reads value as colour, where the editor on the right reads it as height.
- Steps beyond a row’s arp length are unlit.
- A row with an arp length of 0 blinks its first step between the palette colour and unlit, which is how a handed-back parameter announces itself. (On the editor pad the same step blinks between the palette colour and slate.)
- Unassigned rows stay unlit: on the NTS-1, for instance, rows 8, 7, 2 and 1 carry nothing.
RHS (LP2 for P1, LP4 for P2): Step-Value Editor
The row currently selected by that player gets an 8-step value editor on the RHS.
- Step values run 0–7, shown as a single lit pad per step at the height of its value (bottom row = 0, top row = 7). The eight steps read as a dotted contour across the pad, not as a bar chart.
- Colours match the overview: the step being played takes the row’s palette colour, and the rest take the blue value gradation.
- Steps beyond the length still show their stored value, but in slate, so you can see where the pattern stops without counting.
This is the NTS-1, which has four of its eight rows assigned to CCs. Only two of them show here: the green row (filter cutoff) and the pink row (mod depth), whose first pads carry the parameter colour because that is the step playing, with the remaining values behind in blue gradations. The other two assigned rows: sky-blue and lime: have an arp length of 0, so they blink their first pad on and off; the webapp capture froze them mid-blink on the dark half, while the hardware photograph caught them lit, so flipping this figure between the two shows you both halves of the blink. Rows A, B, G and H have no CC assignment and stay dark permanently. The selected pink row puts six values on the right-hand pad, rising from 1 to 7 and back down to 2, with the two unused steps in slate.
Edit Workflow
The CC arp editor is a two-stage gesture: pick a row, then write step values.
1. Select a row (Launchpad LHS, the overview LP)
Press the LP LHS at column 1–8 to select that row and, on a double-tap, set that row’s arp length:
- A single press on any column 1–8 selects that row (focus switches to it) but does not change the length.
- A double-tap (≤350 ms) on the same column confirms the length write:
- Columns 2–8: sets the row’s arp length to the column number (2–8).
- Column 1: toggles the row’s length between 0 (disabled) and 1.
- Selected row tracks per-player; whichever row you pressed becomes that player’s focus.
- Column 9 is reserved for shift gestures (see below).
Unassigned rows are silently no-op for length writes; the selected row still updates so focus follows the press.
2. Write step values (Launchpad MK2 RHS, on the player’s LP)
With a row selected, press an LP key on the RHS grid. The grid position encodes step and value:
- Column 1–8 = arp step 1–8 of the selected row.
- Row 1–8 (bottom → top) = value 0–7.
An unmodified RHS press does not change the arp length. Length is set independently on the LP LHS. Hold SHIFT and the RHS press does both: it writes the value and sets the row’s length to the column you pressed, which can shrink the pattern under your fingers. It is the quickest way to draw a short arp (press the last step you want with SHIFT held), and the easiest one to trigger by accident if you were reaching for a reset.
Shift modifiers
Holding an LC modifier changes what an LHS press does. With SHIFT alone the length write needs no double-tap; the other two act on column 9, the rightmost column of the LP LHS:
| Modifier | Column pressed | Effect |
|---|---|---|
| SHIFT alone | 2–8 | Set the row’s length to the column number, on a single press. |
| SHIFT alone | 1 | Toggle the row’s length between 0 and 1. |
| SHIFT alone | 9 | Disable the row (length → 0). |
| SHIFT + MUTE | 9 | Hard reset: length → 0, all 8 step values → default fill (3). |
| SHIFT + SOLO | 9 | Randomise all 8 step values; length unchanged. |
Edit independence
P1 and P2 each have their own selected row slot. They never overwrite each other; both players can edit different rows in the same CC view simultaneously.
How CC Arps Work
Each sequencer row that has a CC assignment can also have a CC arp. The arp is an 8-step pattern of values 0–7. On each step where the row’s trig fires, the current arp value is looked up in that row’s CC curve and the result is sent as the CC value. The arp position advances each time the trig fires, wrapping at the configured arp length.
When a trig does not fire (muted step, zero velocity, etc.), no CC is sent: CC output is trig-checked.
Scaling
The arp value is not a multiplier: it is an index into an eight-entry lookup table, so the row’s CC assignment picks its eight values rather than spacing them evenly.
cc_output = clamp(cc_curve_N[arp_value], 0, 127)
Which curve a row uses is fixed per CC. They are deliberately uneven. One curve runs 0, 25, 45, 60, 70, 83, 103, 127 (fine at the top, coarse at the bottom), while another runs 0, 1, 2, 4, 8, 12, 16, 20, 25 for a parameter that only wants the bottom of its range. That is why the same grid height sends a different value on a filter row than on a decay row.
Trig Groups (Drums)
On a synth sequencer all 8 CC rows share one trig group, so they advance together. On the drums, rows that control the same drum sound are grouped instead: the group shares an arp length as well as a trig group, so setting the length on one BD row sets it for all three.
Cross-References
- CC assignments: which CC every row of every sequencer sends
- Slew and CC smoothing: smoothing the values these arps send
- Arp curves: the eight-entry curves a row’s values are looked up in
- Velocity and duty arps: the velocity and duty arps these work alongside