Chord Progression Modulator
Purpose
A per-sequencer, per-bar diatonic transposition pattern layered on the global chord progression: for each of the 16 bars, choose whether to modulate (and how often) and by how many scale degrees. Lets different sequencers ride different movement over the same progression.
Interaction
16 columns (LHS = bars 0–7, RHS = bars 8–15) × 8 rows in two bands:
- Bottom row (row 1): the toggle row, which cycles that bar’s modulation status OFF → ON → PERC_CHANCE → MOD1 → MOD2 → OFF.
- Rows 2–8: the value grid, holding the scale-degree offset, from
−3on row 2 through0on row 5 to+3on row 8. This band draws a bar growing out from the centre, not a single lit cell: row 5 always carries a mustard centre marker, and the offset fills downward in red for a negative value or upward in green for a positive one.
Edits take effect at the next bar boundary.
Shortcuts
| Gesture | Where | Action | Modifiers |
|---|---|---|---|
| Press (toggle row, row 1) | LP grid | Cycle that bar’s status: OFF → ON → chance → MOD1 → MOD2 → OFF | none |
| Press (value rows 2–8) | LP grid | Set that bar’s scale-degree offset to the pressed row’s value (row 5 = 0) | none |
| SHIFT + MUTE + press row 1 | LP LHS col 9 | Reset: all 16 bars’ status → ON | shift+mute |
| SHIFT + MUTE + press value row | LP grid | Reset: that single bar’s offset → 0 | shift+mute |
| SHIFT + MUTE + press value row | LP LHS col 9 | Reset: all 16 bars’ offsets → 0 | shift+mute |
| SHIFT + SOLO + press row 1 | LP LHS col 9 | Randomise: each bar’s status → random OFF or ON | shift+solo |
| SHIFT + SOLO + press value row | LP grid | Randomise: that single bar’s offset → random pick from {−3, −2, −1, 0, +1, +2, +3} | shift+solo |
| SHIFT + SOLO + press value row | LP LHS col 9 | Randomise: all 16 bars’ offsets → random picks | shift+solo |
Row 1 in columns 1–8 is intentionally not affected by reset/randomise: only the col-9 whole-array gesture on row 1 touches
cpmstatus. RHS col 9 is view selection only and is always blocked.
See also
- Voicing and modulation, “Chord Progression Modulator”: full status table and sub-abstractions
docs/agent-notes/cp-modulator-frontend.md: data-flow internals- Reset and randomise: reset/randomise matrix