Skip to content

Kodamo MASK1EX: MIDI CC, NRPN and OSC map

The Kodamo MASK1EX as named OSC addresses — 82 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

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.