Skip to content

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:

osc-bridge osc-send /preenfm2_preenfm3/midi/bank_select 1

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.