Skip to content

Kodamo MASK1EX MIDI CC chart, NRPN and OSC map

The Kodamo MASK1EX MIDI implementation: 82 CC, each named, for Claude (MCP), SuperCollider or any OSC app.

Device Kodamo MASK1EX
Vendor Kodamo
OSC prefix /mask1ex
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/kodamo/mask1ex.pencilresearch.fw-unknown.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/kodamo/mask1ex.pencilresearch.fw-unknown.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /mask1ex/oscillator_1/osc1_delta_env_loop 63

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

MIDI CC and NRPN parameters (82)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/mask1ex/oscillator_1/osc1_delta_env_loop 56 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_delta_env_speed 54 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_delta_env_start 52 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_envelope_attack 103 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_envelope_decay 107 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_envelope_sustain 111 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_envelope_release 115 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_envelope_level 25 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_mask_1_4 23 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_mask_2_4 94 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_mask_3_4 46 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_mask_4_4 48 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_semitone_transpose 29 0–127 continuous Oscillator 1
/mask1ex/oscillator_1/osc1_tuning 14 0–127 continuous Oscillator 1
/mask1ex/oscillator_2/osc2_delta_env_loop 57 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_delta_env_speed 55 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_delta_env_start 53 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_envelope_attack 104 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_envelope_decay 108 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_envelope_sustain 112 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_envelope_release 116 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_envelope_level 26 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_mask_1_4 24 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_mask_2_4 95 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_mask_3_4 47 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_mask_4_4 49 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_semitone_transpose 30 0–127 continuous Oscillator 2
/mask1ex/oscillator_2/osc2_tuning 15 0–127 continuous Oscillator 2
/mask1ex/filter/tracking 19 0–127 continuous Filter
/mask1ex/filter/cutoff 20 0–127 continuous Filter
/mask1ex/filter/resonance 21 0–127 continuous Filter
/mask1ex/filter/mode 22 0–127 continuous Filter
/mask1ex/filter/envelope_level 27 0–127 continuous Filter
/mask1ex/filter/second_filter_parameters 51 0–127 continuous Filter
/mask1ex/filter/envelope_attack 105 0–127 continuous Filter
/mask1ex/filter/envelope_decay 109 0–127 continuous Filter
/mask1ex/filter/envelope_sustain 113 0–127 continuous Filter
/mask1ex/filter/envelope_release 117 0–127 continuous Filter
/mask1ex/fx/fx1_balance 90 0–127 continuous FX
/mask1ex/fx/fx2_balance 91 0–127 continuous FX
/mask1ex/fx/fx1_type 92 0–127 continuous FX
/mask1ex/fx/fx2_type 93 0–127 continuous FX
/mask1ex/lfo_1/lfo1_destination 33 0–127 continuous LFO 1
/mask1ex/lfo_1/lfo1_waveform 35 0–127 continuous LFO 1
/mask1ex/lfo_1/lfo1_delay 37 0–127 continuous LFO 1
/mask1ex/lfo_1/lfo1_decay 39 0–127 continuous LFO 1
/mask1ex/lfo_1/lfo1_amount 85 0–127 continuous LFO 1
/mask1ex/lfo_1/lfo1_speed 87 0–127 continuous LFO 1
/mask1ex/lfo_2/lfo2_destination 34 0–127 continuous LFO 2
/mask1ex/lfo_2/lfo2_waveform 36 0–127 continuous LFO 2
/mask1ex/lfo_2/lfo2_delay 38 0–127 continuous LFO 2
/mask1ex/lfo_2/lfo2_decay 40 0–127 continuous LFO 2
/mask1ex/lfo_2/lfo2_amount 86 0–127 continuous LFO 2
/mask1ex/lfo_2/lfo2_speed 88 0–127 continuous LFO 2
/mask1ex/noise/envelope_level 28 0–127 continuous Noise
/mask1ex/noise/frequency 31 0–127 continuous Noise
/mask1ex/noise/frequency_keyboard_tracking 50 0–127 continuous Noise
/mask1ex/noise/envelope_attack 106 0–127 continuous Noise
/mask1ex/noise/envelope_decay 110 0–127 continuous Noise
/mask1ex/noise/envelope_sustain 114 0–127 continuous Noise
/mask1ex/noise/envelope_release 118 0–127 continuous Noise
/mask1ex/pitch_envelope/start 41 0–127 continuous Pitch envelope
/mask1ex/pitch_envelope/speed 42 0–127 continuous Pitch envelope
/mask1ex/pitch_envelope/end 43 0–127 continuous Pitch envelope
/mask1ex/arpeggiator/arp_speed 89 0–127 continuous Arpeggiator
/mask1ex/arpeggiator/arp_type 119 0–127 continuous Arpeggiator
/mask1ex/general/pan_spread 3 0–127 continuous General
/mask1ex/general/volume 7 0–127 continuous General
/mask1ex/general/transpose 9 0–127 continuous General
/mask1ex/general/portamento 84 0–127 continuous General
/mask1ex/general/play_mode 44 0–127 continuous General
/mask1ex/general/keyboard_envelope_rate_scaling 45 0–127 continuous General
/mask1ex/general/mono_mode 126 0–127 continuous General
/mask1ex/general/poly_mode 127 0–127 continuous General
/mask1ex/global/bank_select_msb 0 0–127 continuous Global
/mask1ex/global/bank_select_lsb 32 0–127 continuous Global
/mask1ex/global/modulation_wheel 1 0–127 continuous Global
/mask1ex/global/pan 10 0–127 continuous Global
/mask1ex/global/sustain_pedal 64 0–127 continuous Global
/mask1ex/global/all_sound_off 120 0–127 continuous Global
/mask1ex/global/all_controllers_off 121 0–127 continuous Global
/mask1ex/global/all_notes_off 123 0–127 continuous Global

Performance MIDI

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

CC 19 (0–127), named /mask1ex/filter/tracking in SynthHub's map.

How many parameters of the Kodamo MASK1EX can be controlled over MIDI?

SynthHub's map of the Kodamo MASK1EX lists 82 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 Kodamo MASK1EX?

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