Skip to content

Modal Electronics CRAFTsynth 2.0 MIDI CC chart, NRPN and OSC map

The Modal Electronics CRAFTsynth 2.0 MIDI implementation: 69 CC, each named, for Claude (MCP), SuperCollider or any OSC app.

Device Modal Electronics CRAFTsynth 2.0
Vendor Modal Electronics
OSC prefix /craftsynth_2_0
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/modal-electronics/craftsynth_2_0.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/modal-electronics/craftsynth_2_0.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /craftsynth_2_0/mod_wheel 63

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

MIDI CC and NRPN parameters (69)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/craftsynth_2_0/mod_wheel 1 0–127 continuous
/craftsynth_2_0/glide 5 0–127 continuous
/craftsynth_2_0/phones_vol 7 0–127 continuous
/craftsynth_2_0/exp_pedal 11 0–127 continuous
/craftsynth_2_0/dist_mix 12 0–127 continuous
/craftsynth_2_0/delay_mix 13 0–127 continuous
/craftsynth_2_0/delay_time 14 0–127 continuous
/craftsynth_2_0/delay_fbk 15 0–127 continuous
/craftsynth_2_0/osc1_wave 16 0–127 continuous
/craftsynth_2_0/osc2_wave 17 0–127 continuous
/craftsynth_2_0/osc_mix 18 0–127 continuous
/craftsynth_2_0/osc_mod_amt 19 0–127 continuous
/craftsynth_2_0/spread 20 0–127 continuous
/craftsynth_2_0/filter_env_atk 22 0–127 continuous
/craftsynth_2_0/filter_env_dcy 23 0–127 continuous
/craftsynth_2_0/filter_env_sus 24 0–127 continuous
/craftsynth_2_0/filter_env_rel 25 0–127 continuous
/craftsynth_2_0/amp_env_atk 26 0–127 continuous
/craftsynth_2_0/amp_env_dcy 27 0–127 continuous
/craftsynth_2_0/amp_env_sus 28 0–127 continuous
/craftsynth_2_0/amp_env_rel 29 0–127 continuous
/craftsynth_2_0/osc2_coarse 30 0–127 continuous
/craftsynth_2_0/osc2_fine 31 0–127 continuous
/craftsynth_2_0/filter_env_amt 32 0–127 continuous
/craftsynth_2_0/morph 33 0–127 continuous
/craftsynth_2_0/filter_cutoff 34 0–127 continuous
/craftsynth_2_0/filter_resonance 35 0–127 continuous
/craftsynth_2_0/lfo1_rate 36 0–127 continuous
/craftsynth_2_0/lfo1_depth 37 0–127 continuous
/craftsynth_2_0/lfo1_shape 39 0–127 continuous
/craftsynth_2_0/octave 40 0–127 continuous
/craftsynth_2_0/osc_mod_mode 41 0–127 continuous
/craftsynth_2_0/mod_env_atk 43 0–127 continuous
/craftsynth_2_0/mod_env_dcy 44 0–127 continuous
/craftsynth_2_0/mod_env_sus 45 0–127 continuous
/craftsynth_2_0/mod_env_rel 46 0–127 continuous
/craftsynth_2_0/lfo2_rate 47 0–127 continuous
/craftsynth_2_0/lfo2_depth 48 0–127 continuous
/craftsynth_2_0/lfo2_shape 50 0–127 continuous
/craftsynth_2_0/amp_env_amt 51 0–127 continuous
/craftsynth_2_0/lfo1_midi_sync 52 0–127 continuous
/craftsynth_2_0/lfo2_midi_sync 54 0–127 continuous
/craftsynth_2_0/delay_midi_sync 55 0–127 continuous
/craftsynth_2_0/lfo1_mode 56 0–127 continuous
/craftsynth_2_0/lfo2_mode 57 0–127 continuous
/craftsynth_2_0/arp_on_off 58 0–127 continuous
/craftsynth_2_0/sustain_pedal 64 0–127 continuous
/craftsynth_2_0/scale 73 0–127 continuous
/craftsynth_2_0/root_note 79 0–127 continuous
/craftsynth_2_0/all_env_atk 84 0–127 continuous
/craftsynth_2_0/all_env_dcy 85 0–127 continuous
/craftsynth_2_0/all_env_sus 86 0–127 continuous
/craftsynth_2_0/all_env_rel 87 0–127 continuous
/craftsynth_2_0/lfo1_mod_amt 88 0–127 continuous
/craftsynth_2_0/lfo2_mod_amt 89 0–127 continuous
/craftsynth_2_0/modenv_mod_amt 90 0–127 continuous
/craftsynth_2_0/note_mod_amt 91 0–127 continuous
/craftsynth_2_0/velo_mod_amt 92 0–127 continuous
/craftsynth_2_0/modwhl_mod_amt 93 0–127 continuous
/craftsynth_2_0/exp_mod_amt 94 0–127 continuous
/craftsynth_2_0/at_mod_amt 95 0–127 continuous
/craftsynth_2_0/lfo1_mod_route 101 0–127 continuous
/craftsynth_2_0/lfo2_mod_route 102 0–127 continuous
/craftsynth_2_0/modenv_mod_route 103 0–127 continuous
/craftsynth_2_0/note_mod_route 104 0–127 continuous
/craftsynth_2_0/velo_mod_route 105 0–127 continuous
/craftsynth_2_0/modwhl_mod_route 106 0–127 continuous
/craftsynth_2_0/exp_mod_route 107 0–127 continuous
/craftsynth_2_0/at_mod_route 108 0–127 continuous

Performance MIDI

Notes, pitch bend and any CC are also available: /craftsynth_2_0/note/on <note> <velocity>, /craftsynth_2_0/cc/<number> <value>, /craftsynth_2_0/pitchbend <0-16383>, /craftsynth_2_0/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.

Frequently asked questions

Which MIDI CC controls the filter cutoff on the Modal Electronics CRAFTsynth 2.0?

CC 34 (0–127), named /craftsynth_2_0/filter_cutoff in SynthHub's map.

How many parameters of the Modal Electronics CRAFTsynth 2.0 can be controlled over MIDI?

SynthHub's map of the Modal Electronics CRAFTsynth 2.0 lists 69 MIDI CC 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 Modal Electronics CRAFTsynth 2.0?

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