short-header

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.

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.

A CC-arp view: on the LP LHS a green row with three lit pads and a pink row with six, in the palette colour at the head of each run and blue value gradations behind; a sky-blue and a lime row carry a single blinking pad in column 1, and the remaining four rows are dark. On the LP RHS, single pads trace the pink row's six values rising to the top and falling again, followed by two slate pads A CC-arp view: on the LP LHS a green row with three lit pads and a pink row with six, in the palette colour at the head of each run and blue value gradations behind; a sky-blue and a lime row carry a single blinking pad in column 1, and the remaining four rows are dark. On the LP RHS, single pads trace the pink row's six values rising to the top and falling again, followed by two slate pads, photographed on the hardware

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:

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:

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