Skip to content

Moog Sub 37 MIDI CC chart, NRPN and OSC map

The Moog Sub 37 MIDI implementation: 74 CC, 25 NRPN, each named, for Claude (MCP), SuperCollider or any OSC app.

Device Moog Sub 37
Vendor Moog
OSC prefix /sub_37
Source πŸŽ›οΈ Derived from an Electra One community preset
Revision per Electra preset
Upstream electra-preset
Driver file devices/moog/sub_37.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/moog/sub_37.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /sub_37/octave 63

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as sub_37: ask β€œwhat can the Moog Sub 37 do?” and it reads this map with list_routes. See the MCP guide.

MIDI CC and NRPN parameters (99)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/sub_37/octave 74 0–127 continuous
/sub_37/wave 9 0–127 continuous
/sub_37/hard_sync 77 0–127 continuous
/sub_37/kb_reset 81 0–127 continuous
/sub_37/frequency 12 0–127 continuous
/sub_37/volume 7 0–127 continuous
/sub_37/octave 75 0–127 continuous
/sub_37/wave 14 0–127 continuous
/sub_37/kb_ctrl 111 0–127 continuous
/sub_37/duo_mode 110 0–127 continuous
/sub_37/beat_freq 13 0–127 continuous
/sub_37/hold_sustain 64 0–127 continuous
/sub_37/osc_1 114 0–127 continuous
/sub_37/sub 115 0–127 continuous
/sub_37/osc_2 116 0–127 continuous
/sub_37/noise 117 0–127 continuous
/sub_37/fdbk_ext_in 118 0–127 continuous
/sub_37/kb_octave 89 0–127 continuous
/sub_37/osc_1 3 / 106 0–127 continuous
/sub_37/sub 3 / 107 0–127 continuous
/sub_37/osc_2 3 / 110 0–127 continuous
/sub_37/noise 3 / 111 0–127 continuous
/sub_37/fdbk_ext_in 3 / 114 0–127 continuous
/sub_37/kb_transpose 119 0–127 continuous
/sub_37/cutoff 19 0–127 continuous
/sub_37/resonance 21 0–127 continuous
/sub_37/multidrive 18 0–127 continuous
/sub_37/local_control 122 0–127 continuous
/sub_37/slope 109 0–127 continuous
/sub_37/eg_amount 27 0–127 continuous
/sub_37/kb_track 22 0–127 continuous
/sub_37/all_notes_off 123 0–127 continuous
/sub_37/cc7 23 0–127 continuous
/sub_37/cc7 24 0–127 continuous
/sub_37/cc7 25 0–127 continuous
/sub_37/cc7 26 0–127 continuous
/sub_37/delay 103 0–127 continuous
/sub_37/hold 105 0–127 continuous
/sub_37/velocity 86 0–127 continuous
/sub_37/kb_tracking 79 0–127 continuous
/sub_37/multi_trig 112 0–127 continuous
/sub_37/reset 82 0–127 continuous
/sub_37/sync 4 / 3 0–127 continuous
/sub_37/loop 4 / 4 0–127 continuous
/sub_37/latch_on 4 / 5 0–127 continuous
/sub_37/cc7 28 0–127 continuous
/sub_37/cc7 29 0–127 continuous
/sub_37/cc7 30 0–127 continuous
/sub_37/cc7 31 0–127 continuous
/sub_37/delay 104 0–127 continuous
/sub_37/hold 106 0–127 continuous
/sub_37/velocity 87 0–127 continuous
/sub_37/kb_tracking 80 0–127 continuous
/sub_37/multi_trig 113 0–127 continuous
/sub_37/reset 83 0–127 continuous
/sub_37/sync 4 / 25 0–127 continuous
/sub_37/loop 4 / 26 0–127 continuous
/sub_37/latch_on 4 / 27 0–127 continuous
/sub_37/lfo_rate 3 0–127 continuous
/sub_37/lfo_sync_rate 3 / 43 0–127 continuous
/sub_37/source 71 0–127 continuous
/sub_37/lfo_rate 8 0–127 continuous
/sub_37/lfo_sync_rate 3 / 68 0–127 continuous
/sub_37/source 72 0–127 continuous
/sub_37/hi_range 76 0–127 continuous
/sub_37/sync 3 / 41 0–127 continuous
/sub_37/kb_reset 93 0–127 continuous
/sub_37/hi_range 78 0–127 continuous
/sub_37/sync 3 / 66 0–127 continuous
/sub_37/kb_reset 95 0–127 continuous
/sub_37/pitch_amt 4 0–127 continuous
/sub_37/filter_amt 11 0–127 continuous
/sub_37/pitch_amt 15 0–127 continuous
/sub_37/filter_amt 16 0–127 continuous
/sub_37/osc 70 0–127 continuous
/sub_37/osc 88 0–127 continuous
/sub_37/destination 91 0–127 continuous
/sub_37/amt 20 0–127 continuous
/sub_37/destination 92 0–127 continuous
/sub_37/amt 17 0–127 continuous
/sub_37/mod_wheel 1 0–127 continuous
/sub_37/time 5 0–127 continuous
/sub_37/osc 102 0–127 continuous
/sub_37/type 85 0–127 continuous
/sub_37/gated 3 / 36 0–127 continuous
/sub_37/legato 94 0–127 continuous
/sub_37/on 65 0–127 continuous
/sub_37/rate 90 0–127 continuous
/sub_37/sync 3 / 29 0–127 continuous
/sub_37/tap_sync 3 / 20 0–127 continuous
/sub_37/range 3 / 21 0–127 continuous
/sub_37/back_forth 3 / 22 0–127 continuous
/sub_37/invert 3 / 24 0–127 continuous
/sub_37/pattern 3 / 25 0–127 continuous
/sub_37/arp_on 73 0–127 continuous
/sub_37/latch 69 0–127 continuous
/sub_37/bf_mode 3 / 23 0–127 continuous
/sub_37/gate_length 3 / 28 0–16383 continuous
/sub_37/step_1_reset 3 / 32 0–127 continuous

Performance MIDI

Notes, pitch bend and any CC are also available: /sub_37/note/on <note> <velocity>, /sub_37/cc/<number> <value>, /sub_37/pitchbend <0-16383>, /sub_37/program_change <n>.

Limitations

Imported from an Electra One community preset. The mapping reflects the preset author's editorial choices: parameter naming, ranges, and which params are exposed. Untested on hardware in this repo.

Frequently asked questions

Which MIDI CC controls the filter cutoff on the Moog Sub 37?

CC 19 (0–127), named /sub_37/cutoff in SynthHub's map.

How many parameters of the Moog Sub 37 can be controlled over MIDI?

SynthHub's map of the Moog Sub 37 lists 74 MIDI CC and 25 NRPN parameters, each with its number, range and a readable name; the full chart is on this page.

Can an AI agent like Claude control the Moog Sub 37?

Yes: SynthHub's hosted MCP server knows the Moog Sub 37's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.