PreenFM2 (PreenFM3): MIDI CC, NRPN and OSC map¶
The PreenFM2 (PreenFM3) as named OSC addresses — 76 CC, 211 NRPN — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | PreenFM2 (PreenFM3) |
|---|---|
| Vendor | PreenFM |
| OSC prefix | /preenfm2_preenfm3 |
| Source | 📦 Derived from MIDI Guide (community CC/NRPN data) |
| Firmware | unknown |
| Revision | per pencilresearch canonical CSV |
| Upstream | pencilresearch |
| Data licence | CC-BY-SA-4.0 — MIDI Guide (https://midi.guide) by Pencil Research and contributors |
| Driver file | devices/preenfm/preenfm2_preenfm3.json |
Not tested on the device yet
This driver comes from documentation or community data and has not been checked on real hardware. If you own one, a quick test and a pull request promoting it helps everyone — see CONTRIBUTING.
How do you control it?¶
Find the MIDI ports, then start the bridge with this driver:
osc-bridge detect # prints the ready-to-run line for what is plugged in
osc-bridge run --device devices/preenfm/preenfm2_preenfm3.json --out-port <N> --in-port <M>
Then send OSC to 127.0.0.1:7777, for example:
From Claude or any MCP client, the osc-bridge mcp server exposes this driver as preenfm2_preenfm3: ask “what can the PreenFM2 (PreenFM3) do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (223)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/preenfm2_preenfm3/midi/bank_select |
0 | 0–3 | continuous | MIDI | |
/preenfm2_preenfm3/midi/bank_select_lsb |
32 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/mod_wheel |
1 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/hold_pedal |
64 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/all_sounds_off |
120 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/all_notes_off |
123 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/omni_on |
124 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/omni_off |
125 | 0–127 | continuous | MIDI | |
/preenfm2_preenfm3/midi/parameter_flush |
127 / 127 | 0–16383 | continuous | MIDI | |
/preenfm2_preenfm3/engine/algorithm_number |
16 | 0 / 0 | 0–127 | continuous | Engine |
/preenfm2_preenfm3/engine/velocity |
0 / 1 | 0–16 | discrete | Engine | |
/preenfm2_preenfm3/engine/voice |
0 / 2 | 0–16 | discrete | Engine | |
/preenfm2_preenfm3/engine/glide |
0 / 3 | 0–10 | discrete | Engine | |
/preenfm2_preenfm3/modulation/index_1 |
17 | 0 / 4 | 0–127 | continuous | Modulation |
/preenfm2_preenfm3/modulation/index_1_velocity |
0 / 5 | 0–1600 | continuous | Modulation | |
/preenfm2_preenfm3/modulation/index_2 |
18 | 0 / 6 | 0–127 | continuous | Modulation |
/preenfm2_preenfm3/modulation/index_2_velocity |
0 / 7 | 0–1600 | continuous | Modulation | |
/preenfm2_preenfm3/modulation/index_3 |
19 | 0 / 8 | 0–127 | continuous | Modulation |
/preenfm2_preenfm3/modulation/index_3_velocity |
0 / 9 | 0–1600 | continuous | Modulation | |
/preenfm2_preenfm3/modulation/index_4 |
20 | 0 / 10 | 0–127 | continuous | Modulation |
/preenfm2_preenfm3/modulation/index_4_velocity |
0 / 11 | 0–1600 | continuous | Modulation | |
/preenfm2_preenfm3/modulation/index_5 |
21 | 0 / 12 | 0–127 | continuous | Modulation |
/preenfm2_preenfm3/modulation/index_5_velocity |
0 / 13 | 0–1600 | continuous | Modulation | |
/preenfm2_preenfm3/mixer/mix_1 |
22 | 0 / 16 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/pan_1 |
23 | 0 / 17 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/mix_2 |
24 | 0 / 18 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/pan_2 |
25 | 0 / 19 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/mix_3 |
26 | 0 / 20 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/pan_3 |
27 | 0 / 21 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/mix_4 |
28 | 0 / 22 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/pan_4 |
29 | 0 / 23 | 0–127 | continuous | Mixer |
/preenfm2_preenfm3/mixer/mix_5 |
0 / 24 | 0–100 | continuous | Mixer | |
/preenfm2_preenfm3/mixer/pan_5 |
0 / 25 | 0–200 | continuous | Mixer | |
/preenfm2_preenfm3/mixer/mix_6 |
0 / 26 | 0–100 | continuous | Mixer | |
/preenfm2_preenfm3/mixer/pan_6 |
0 / 27 | 0–200 | continuous | Mixer | |
/preenfm2_preenfm3/arpeggiator/clock |
97 | 0 / 28 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/tempo |
98 | 0 / 29 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/direction |
0 / 30 | 0–16383 | continuous | Arpeggiator | |
/preenfm2_preenfm3/arpeggiator/octave |
99 | 0 / 31 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/pattern |
100 | 0 / 32 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/division |
101 | 0 / 33 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/duration |
102 | 0 / 34 | 0–127 | continuous | Arpeggiator |
/preenfm2_preenfm3/arpeggiator/latch |
0 / 35 | 0–16383 | continuous | Arpeggiator | |
/preenfm2_preenfm3/filter/type |
70 | 0 / 40 | 0–127 | continuous | Filter |
/preenfm2_preenfm3/filter/parameter_1 |
71 | 0 / 41 | 0–127 | continuous | Filter |
/preenfm2_preenfm3/filter/parameter_2 |
72 | 0 / 42 | 0–127 | continuous | Filter |
/preenfm2_preenfm3/filter/gain |
73 | 0 / 43 | 0–127 | continuous | Filter |
/preenfm2_preenfm3/operator_1/shape |
0 / 44 | 0–7 | discrete | Operator 1 | |
/preenfm2_preenfm3/operator_1/frequency_type |
0 / 45 | 0–1 | switch | Operator 1 | |
/preenfm2_preenfm3/operator_1/frequency |
50 | 0 / 46 | 0–127 | continuous | Operator 1 |
/preenfm2_preenfm3/operator_1/fine_tune |
0 / 47 | 0–16383 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_attack |
74 | 0 / 68 | 0–127 | continuous | Operator 1 |
/preenfm2_preenfm3/operator_1/envelope_attack_level |
0 / 69 | 0–100 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_decay |
0 / 70 | 0–1600 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_decay_level |
0 / 71 | 0–100 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_sustain |
0 / 72 | 0–1600 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_sustain_level |
0 / 73 | 0–100 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_1/envelope_release |
82 | 0 / 74 | 0–127 | continuous | Operator 1 |
/preenfm2_preenfm3/operator_1/envelope_release_level |
0 / 75 | 0–100 | continuous | Operator 1 | |
/preenfm2_preenfm3/operator_2/shape |
0 / 48 | 0–7 | discrete | Operator 2 | |
/preenfm2_preenfm3/operator_2/frequency_type |
0 / 49 | 0–1 | switch | Operator 2 | |
/preenfm2_preenfm3/operator_2/frequency |
51 | 0 / 50 | 0–127 | continuous | Operator 2 |
/preenfm2_preenfm3/operator_2/fine_tune |
0 / 51 | 0–16383 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_attack |
75 | 0 / 76 | 0–127 | continuous | Operator 2 |
/preenfm2_preenfm3/operator_2/envelope_attack_level |
0 / 77 | 0–100 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_decay |
0 / 78 | 0–1600 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_decay_level |
0 / 79 | 0–100 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_sustain |
0 / 80 | 0–1600 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_sustain_level |
0 / 81 | 0–100 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_2/envelope_release |
83 | 0 / 82 | 0–127 | continuous | Operator 2 |
/preenfm2_preenfm3/operator_2/envelope_release_level |
0 / 83 | 0–100 | continuous | Operator 2 | |
/preenfm2_preenfm3/operator_3/shape |
0 / 52 | 0–7 | discrete | Operator 3 | |
/preenfm2_preenfm3/operator_3/frequency_type |
0 / 53 | 0–1 | switch | Operator 3 | |
/preenfm2_preenfm3/operator_3/frequency |
52 | 0 / 54 | 0–127 | continuous | Operator 3 |
/preenfm2_preenfm3/operator_3/fine_tune |
0 / 55 | 0–16383 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_attack |
76 | 0 / 84 | 0–127 | continuous | Operator 3 |
/preenfm2_preenfm3/operator_3/envelope_attack_level |
0 / 85 | 0–100 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_decay |
0 / 86 | 0–1600 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_decay_level |
0 / 87 | 0–100 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_sustain |
0 / 88 | 0–1600 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_sustain_level |
0 / 89 | 0–100 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_3/envelope_release |
84 | 0 / 90 | 0–127 | continuous | Operator 3 |
/preenfm2_preenfm3/operator_3/envelope_release_level |
0 / 91 | 0–100 | continuous | Operator 3 | |
/preenfm2_preenfm3/operator_4/shape |
0 / 56 | 0–7 | discrete | Operator 4 | |
/preenfm2_preenfm3/operator_4/frequency_type |
0 / 57 | 0–1 | switch | Operator 4 | |
/preenfm2_preenfm3/operator_4/frequency |
53 | 0 / 58 | 0–127 | continuous | Operator 4 |
/preenfm2_preenfm3/operator_4/fine_tune |
0 / 59 | 0–16383 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_attack |
77 | 0 / 92 | 0–127 | continuous | Operator 4 |
/preenfm2_preenfm3/operator_4/envelope_attack_level |
0 / 93 | 0–100 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_decay |
0 / 94 | 0–1600 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_decay_level |
0 / 95 | 0–100 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_sustain |
0 / 96 | 0–1600 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_sustain_level |
0 / 97 | 0–100 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_4/envelope_release |
85 | 0 / 98 | 0–127 | continuous | Operator 4 |
/preenfm2_preenfm3/operator_4/envelope_release_level |
0 / 99 | 0–100 | continuous | Operator 4 | |
/preenfm2_preenfm3/operator_5/shape |
0 / 60 | 0–7 | discrete | Operator 5 | |
/preenfm2_preenfm3/operator_5/frequency_type |
0 / 61 | 0–1 | switch | Operator 5 | |
/preenfm2_preenfm3/operator_5/frequency |
54 | 0 / 62 | 0–127 | continuous | Operator 5 |
/preenfm2_preenfm3/operator_5/fine_tune |
0 / 63 | 0–16383 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_attack |
78 | 0 / 100 | 0–127 | continuous | Operator 5 |
/preenfm2_preenfm3/operator_5/envelope_attack_level |
0 / 101 | 0–100 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_decay |
0 / 102 | 0–1600 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_decay_level |
0 / 103 | 0–100 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_sustain |
0 / 104 | 0–1600 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_sustain_level |
0 / 105 | 0–100 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_5/envelope_release |
86 | 0 / 106 | 0–127 | continuous | Operator 5 |
/preenfm2_preenfm3/operator_5/envelope_release_level |
0 / 107 | 0–100 | continuous | Operator 5 | |
/preenfm2_preenfm3/operator_6/shape |
0 / 64 | 0–7 | discrete | Operator 6 | |
/preenfm2_preenfm3/operator_6/frequency_type |
0 / 65 | 0–1 | switch | Operator 6 | |
/preenfm2_preenfm3/operator_6/frequency |
55 | 0 / 66 | 0–127 | continuous | Operator 6 |
/preenfm2_preenfm3/operator_6/fine_tune |
0 / 67 | 0–16383 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_attack |
79 | 0 / 108 | 0–127 | continuous | Operator 6 |
/preenfm2_preenfm3/operator_6/envelope_attack_level |
0 / 109 | 0–100 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_decay |
0 / 110 | 0–1600 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_decay_level |
0 / 111 | 0–100 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_sustain |
0 / 112 | 0–1600 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_sustain_level |
0 / 113 | 0–100 | continuous | Operator 6 | |
/preenfm2_preenfm3/operator_6/envelope_release |
87 | 0 / 114 | 0–127 | continuous | Operator 6 |
/preenfm2_preenfm3/operator_6/envelope_release_level |
0 / 115 | 0–100 | continuous | Operator 6 | |
/preenfm2_preenfm3/envelope/carrier_operator_envelope_attack |
80 | 0–127 | continuous | Envelope | |
/preenfm2_preenfm3/envelope/carrier_operator_envelope_release |
81 | 0–127 | continuous | Envelope | |
/preenfm2_preenfm3/envelope/modulator_operator_envelope_attack |
62 | 0–127 | continuous | Envelope | |
/preenfm2_preenfm3/envelope/modulator_operator_envelope_release |
63 | 0–127 | continuous | Envelope | |
/preenfm2_preenfm3/matrix/row_1_source |
0 / 116 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_1_multiplier |
46 | 0 / 117 | 0–127 | continuous | Matrix |
/preenfm2_preenfm3/matrix/row_1_destination |
0 / 118 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_2_source |
0 / 120 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_2_multiplier |
47 | 0 / 121 | 0–127 | continuous | Matrix |
/preenfm2_preenfm3/matrix/row_2_destination |
0 / 122 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_3_source |
0 / 124 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_3_multiplier |
48 | 0 / 125 | 0–127 | continuous | Matrix |
/preenfm2_preenfm3/matrix/row_3_destination |
0 / 126 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_4_source |
1 / 0 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_4_multiplier |
49 | 1 / 1 | 0–127 | continuous | Matrix |
/preenfm2_preenfm3/matrix/row_4_destination |
1 / 2 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_5_source |
1 / 4 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_5_multiplier |
1 / 5 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_5_destination |
1 / 6 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_6_source |
1 / 8 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_6_multiplier |
1 / 9 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_6_destination |
1 / 10 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_7_source |
1 / 12 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_7_multiplier |
1 / 13 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_7_destination |
1 / 14 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_8_source |
1 / 16 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_8_multiplier |
1 / 17 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_8_destination |
1 / 18 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_9_source |
1 / 20 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_9_multiplier |
1 / 21 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_9_destination |
1 / 22 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_10_source |
1 / 24 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_10_multiplier |
1 / 25 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_10_destination |
1 / 26 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_11_source |
1 / 28 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_11_multiplier |
1 / 29 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_11_destination |
1 / 30 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_12_source |
1 / 32 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_12_multiplier |
1 / 33 | 0–2000 | continuous | Matrix | |
/preenfm2_preenfm3/matrix/row_12_destination |
1 / 34 | 0–16383 | continuous | Matrix | |
/preenfm2_preenfm3/performance/parameter_1 |
115 | 1 / 36 | 0–127 | continuous | Performance |
/preenfm2_preenfm3/performance/parameter_2 |
116 | 1 / 37 | 0–127 | continuous | Performance |
/preenfm2_preenfm3/performance/parameter_3 |
117 | 1 / 38 | 0–127 | continuous | Performance |
/preenfm2_preenfm3/lfo_1/shape |
94 | 1 / 40 | 0–127 | continuous | LFO 1 |
/preenfm2_preenfm3/lfo_1/frequency |
56 | 1 / 41 | 0–127 | continuous | LFO 1 |
/preenfm2_preenfm3/lfo_1/bias |
91 | 1 / 42 | 0–127 | continuous | LFO 1 |
/preenfm2_preenfm3/lfo_1/key_sync |
1 / 43 | 0–16383 | continuous | LFO 1 | |
/preenfm2_preenfm3/lfo_1/phase |
88 | 1 / 68 | 0–127 | continuous | LFO 1 |
/preenfm2_preenfm3/lfo_2/shape |
95 | 1 / 44 | 0–127 | continuous | LFO 2 |
/preenfm2_preenfm3/lfo_2/frequency |
57 | 1 / 45 | 0–127 | continuous | LFO 2 |
/preenfm2_preenfm3/lfo_2/bias |
92 | 1 / 46 | 0–127 | continuous | LFO 2 |
/preenfm2_preenfm3/lfo_2/key_sync |
1 / 47 | 0–16383 | continuous | LFO 2 | |
/preenfm2_preenfm3/lfo_2/phase |
89 | 1 / 69 | 0–127 | continuous | LFO 2 |
/preenfm2_preenfm3/lfo_3/shape |
96 | 1 / 48 | 0–127 | continuous | LFO 3 |
/preenfm2_preenfm3/lfo_3/frequency |
58 | 1 / 49 | 0–127 | continuous | LFO 3 |
/preenfm2_preenfm3/lfo_3/bias |
93 | 1 / 50 | 0–127 | continuous | LFO 3 |
/preenfm2_preenfm3/lfo_3/key_sync |
1 / 51 | 0–16383 | continuous | LFO 3 | |
/preenfm2_preenfm3/lfo_3/phase |
90 | 1 / 70 | 0–127 | continuous | LFO 3 |
/preenfm2_preenfm3/free_envelope_1/attack |
1 / 52 | 0–16383 | continuous | Free envelope 1 | |
/preenfm2_preenfm3/free_envelope_1/decay |
1 / 53 | 0–16383 | continuous | Free envelope 1 | |
/preenfm2_preenfm3/free_envelope_1/sustain |
1 / 54 | 0–16383 | continuous | Free envelope 1 | |
/preenfm2_preenfm3/free_envelope_1/release |
1 / 55 | 0–16383 | continuous | Free envelope 1 | |
/preenfm2_preenfm3/free_envelope_2/silence |
60 | 1 / 56 | 0–127 | continuous | Free envelope 2 |
/preenfm2_preenfm3/free_envelope_2/attack |
1 / 57 | 0–16383 | continuous | Free envelope 2 | |
/preenfm2_preenfm3/free_envelope_2/decay |
1 / 58 | 0–16383 | continuous | Free envelope 2 | |
/preenfm2_preenfm3/free_envelope_2/loop |
1 / 59 | 0–16383 | continuous | Free envelope 2 | |
/preenfm2_preenfm3/step_sequencer_1/tempo |
1 / 60 | 0–16383 | continuous | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/gate |
61 | 1 / 61 | 0–127 | continuous | Step sequencer 1 |
/preenfm2_preenfm3/step_sequencer_1/step_0 |
2 / 0 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_1 |
2 / 1 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_2 |
2 / 2 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_3 |
2 / 3 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_4 |
2 / 4 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_5 |
2 / 5 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_6 |
2 / 6 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_7 |
2 / 7 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_8 |
2 / 8 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_9 |
2 / 9 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_10 |
2 / 10 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_11 |
2 / 11 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_12 |
2 / 12 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_13 |
2 / 13 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_14 |
2 / 14 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_15 |
2 / 15 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_1/step_16 |
2 / 16 | 0–16 | discrete | Step sequencer 1 | |
/preenfm2_preenfm3/step_sequencer_2/tempo |
1 / 64 | 0–16383 | continuous | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/gate |
62 | 1 / 65 | 0–127 | continuous | Step sequencer 2 |
/preenfm2_preenfm3/step_sequencer_2/step_0 |
3 / 0 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_1 |
3 / 1 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_2 |
3 / 2 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_3 |
3 / 3 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_4 |
3 / 4 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_5 |
3 / 5 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_6 |
3 / 6 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_7 |
3 / 7 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_8 |
3 / 8 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_9 |
3 / 9 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_10 |
3 / 10 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_11 |
3 / 11 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_12 |
3 / 12 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_13 |
3 / 13 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_14 |
3 / 14 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_15 |
3 / 15 | 0–16 | discrete | Step sequencer 2 | |
/preenfm2_preenfm3/step_sequencer_2/step_16 |
3 / 16 | 0–16 | discrete | Step sequencer 2 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /preenfm2_preenfm3/note/on <note> <velocity>, /preenfm2_preenfm3/cc/<number> <value>, /preenfm2_preenfm3/pitchbend <0-16383>, /preenfm2_preenfm3/program_change <n>.
Limitations¶
CC/NRPN only. SysEx (preset management, display control, bulk dump/load, vendor-proprietary opcodes) is NOT covered by pencilresearch. To extend this device with SysEx, sniff the vendor editor, add `sysex.header/footer` + `commands` blocks, and use `update_device.md` PR template.