discoDSP Discovery: MIDI CC, NRPN and OSC map¶
The discoDSP Discovery as named OSC addresses — 55 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | discoDSP Discovery |
|---|---|
| Vendor | discoDSP |
| OSC prefix | /discovery |
| 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/discodsp/discovery.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/discodsp/discovery.pencilresearch.fw-unknown.json --out-port <N> --in-port <M>
Then send OSC to 127.0.0.1:7777, for example:
From Claude or any MCP client, the osc-bridge mcp server exposes this driver as discovery: ask “what can the discoDSP Discovery do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (55)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/discovery/global/mod_wheel |
1 | 0–127 | continuous | Global | |
/discovery/global/portamento |
5 | 0–127 | continuous | Global | |
/discovery/amp/gain |
7 | 0–127 | continuous | Amp | |
/discovery/oscillator/osc_mix |
8 | 0–127 | continuous | Oscillator | |
/discovery/global/play_mode |
15 | 0–2 | continuous | Global | |
/discovery/global/unison |
16 | 0–3 | continuous | Global | |
/discovery/global/octave_shift |
17 | 0–127 | continuous | Global | |
/discovery/global/wheel_mode |
18 | 0–5 | continuous | Global | |
/discovery/lfo_1/lfo1_rate |
19 | 0–127 | continuous | LFO 1 | |
/discovery/lfo_1/lfo1_waveform |
20 | 0–9 | continuous | LFO 1 | |
/discovery/lfo_1/lfo1_destination |
21 | 0–4 | continuous | LFO 1 | |
/discovery/lfo_1/lfo1_amount |
22 | 0–127 | continuous | LFO 1 | |
/discovery/lfo_2/lfo2_rate |
23 | 0–127 | continuous | LFO 2 | |
/discovery/global/lfo2_arp_destination_combo |
24 | 0–8 | continuous | Global | |
/discovery/lfo_2/lfo2_amount |
25 | 0–127 | continuous | LFO 2 | |
/discovery/mod_envelope/mod_env_attack |
26 | 0–127 | continuous | Mod Envelope | |
/discovery/mod_envelope/mod_env_decay |
27 | 0–127 | continuous | Mod Envelope | |
/discovery/mod_envelope/mod_env_destination |
28 | 0–3 | continuous | Mod Envelope | |
/discovery/mod_envelope/mod_env_amount |
29 | 0–127 | continuous | Mod Envelope | |
/discovery/oscillator/osc_1_waveform |
30 | 0–4 | continuous | Oscillator | |
/discovery/oscillator/osc_2_waveform |
31 | 0–4 | continuous | Oscillator | |
/discovery/oscillator/osc_2_finetune |
33 | 0–127 | continuous | Oscillator | |
/discovery/oscillator/osc_2_kbd_track |
34 | 0–127 | continuous | Oscillator | |
/discovery/oscillator/osc_mode |
35 | 0–3 | continuous | Oscillator | |
/discovery/amp_envelope/amp_decay |
36 | 0–127 | continuous | Amp Envelope | |
/discovery/amp_envelope/amp_sustain |
37 | 0–127 | continuous | Amp Envelope | |
/discovery/filter_envelope/filter_decay |
39 | 0–127 | continuous | Filter Envelope | |
/discovery/filter_envelope/filter_sustain |
40 | 0–127 | continuous | Filter Envelope | |
/discovery/filter_envelope/filter_release |
41 | 0–127 | continuous | Filter Envelope | |
/discovery/filter/resonance |
42 | 0–127 | continuous | Filter | |
/discovery/filter/env_amount |
43 | 0–127 | continuous | Filter | |
/discovery/filter/type |
44 | 0–7 | continuous | Filter | |
/discovery/filter/velocity |
45 | 0–127 | continuous | Filter | |
/discovery/filter/kbd_track |
46 | 0–3 | continuous | Filter | |
/discovery/global/portamento_auto |
65 | 0–127 | continuous | Global | |
/discovery/oscillator/osc_1_fm_amount |
70 | 0–127 | continuous | Oscillator | |
/discovery/amp_envelope/amp_release |
72 | 0–127 | continuous | Amp Envelope | |
/discovery/amp_envelope/amp_attack |
73 | 0–127 | continuous | Amp Envelope | |
/discovery/filter/frequency |
74 | 0–127 | continuous | Filter | |
/discovery/oscillator/osc_2_semitones |
78 | 0–127 | continuous | Oscillator | |
/discovery/oscillator/osc_pulse_width |
79 | 0–127 | continuous | Oscillator | |
/discovery/filter/distortion |
80 | 0–3 | continuous | Filter | |
/discovery/delay/level |
81 | 0–127 | continuous | Delay | |
/discovery/delay/left_time |
82 | 0–127 | continuous | Delay | |
/discovery/delay/right_time |
83 | 0–127 | continuous | Delay | |
/discovery/delay/feedback_left |
84 | 0–127 | continuous | Delay | |
/discovery/delay/feedback_right |
85 | 0–127 | continuous | Delay | |
/discovery/pan/position |
86 | 0–127 | continuous | Pan | |
/discovery/pan/mod_rate |
87 | 0–127 | continuous | Pan | |
/discovery/pan/mod_amount |
88 | 0–127 | continuous | Pan | |
/discovery/filter_envelope/filter_attack |
89 | 0–127 | continuous | Filter Envelope | |
/discovery/layer/a_active |
111 | 0–127 | continuous | Layer | |
/discovery/layer/b_active |
112 | 0–127 | continuous | Layer | |
/discovery/layer/c_active |
113 | 0–127 | continuous | Layer | |
/discovery/layer/d_active |
114 | 0–127 | continuous | Layer |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /discovery/note/on <note> <velocity>, /discovery/cc/<number> <value>, /discovery/pitchbend <0-16383>, /discovery/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.