Assign a MIDI controller to any parameter, in the patch #31

Open
opened 2026-10-12 17:52:10 +00:00 by bcox · 1 comment
Owner

From #19. The JX-10 has "control assign": two sliders (C1, C2) and a pedal switch, and each patch says what they do. A slider is one of upper/lower balance, portamento time, total volume or MIDI volume; the pedal switch one of patch shift, portamento on/off, chase play on/off or hold (JX-10 owner's manual, pages 14 and 15).

Every one of those but patch shift is already a parameter of mini-JX (zone.level, voice.portamento, chase.on, each zone's hold). What is missing is the binding: a patch cannot say that a MIDI controller moves a parameter. Today controllers 1, 2 and 64 are fixed to what each instrument gives them, and everything else is changed only by set.

The owner asked on 2026-10-12 for this to be filed as a shared feature and not built for the JX alone: a few slots in every instrument's patch, each a controller number, a parameter and a range, in engine/ or the shared layer, so that all thirteen instruments have it.

To settle: how many slots; whether a slot names its parameter by name or by number in a stored patch; whether a controller moves the stored value (and so the page) or is added on top of it; how the audio thread applies it, since parameters are set from the control thread today; switches and stepped parameters; and whether the fixed meanings of controllers 1, 2 and 64 become defaults of the same slots. It is near #7, the modulation matrix, and #11, hold and the pedal.

Not started.

From #19. The JX-10 has "control assign": two sliders (C1, C2) and a pedal switch, and each patch says what they do. A slider is one of upper/lower balance, portamento time, total volume or MIDI volume; the pedal switch one of patch shift, portamento on/off, chase play on/off or hold (JX-10 owner's manual, pages 14 and 15). Every one of those but patch shift is already a parameter of mini-JX (`zone.level`, `voice.portamento`, `chase.on`, each zone's `hold`). What is missing is the binding: a patch cannot say that a MIDI controller moves a parameter. Today controllers 1, 2 and 64 are fixed to what each instrument gives them, and everything else is changed only by `set`. The owner asked on 2026-10-12 for this to be filed as a shared feature and not built for the JX alone: a few slots in every instrument's patch, each a controller number, a parameter and a range, in `engine/` or the shared layer, so that all thirteen instruments have it. To settle: how many slots; whether a slot names its parameter by name or by number in a stored patch; whether a controller moves the stored value (and so the page) or is added on top of it; how the audio thread applies it, since parameters are set from the control thread today; switches and stepped parameters; and whether the fixed meanings of controllers 1, 2 and 64 become defaults of the same slots. It is near #7, the modulation matrix, and #11, hold and the pedal. Not started.
Author
Owner

Controller 67 is taken, by Ben's word on 2026-10-16 (#11): it is to capture chord memory's chord on every instrument, by a --chord-cc flag that defaults to 67 and is 0 for none, beside --hold-cc and the rest. So 67 is no longer left free for this issue; the fixed meanings of 64, 65, 66, 67 and 69 are among those that may become defaults of the same slots.

**Controller 67 is taken**, by Ben's word on 2026-10-16 (#11): it is to capture chord memory's chord on every instrument, by a `--chord-cc` flag that defaults to 67 and is 0 for none, beside `--hold-cc` and the rest. So 67 is no longer left free for this issue; the fixed meanings of 64, 65, 66, 67 and 69 are among those that may become defaults of the same slots.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/mini-800#31
No description provided.