Endorphin.es Evil Pet: MIDI CC, NRPN and OSC map¶
The Endorphin.es Evil Pet as named OSC addresses — 76 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Endorphin.es Evil Pet |
|---|---|
| Vendor | Endorphin.es |
| OSC prefix | /evil_pet |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/endorphin-es/evil_pet.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/endorphin-es/evil_pet.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 evil_pet: ask “what can the Endorphin.es Evil Pet do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (76)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/evil_pet/grains/volume |
11 | 0–127 | continuous | Grains | |
/evil_pet/grains/saturator |
39 | 0–127 | continuous | Grains | |
/evil_pet/grains/mix |
40 | 0–127 | continuous | Grains | |
/evil_pet/grains/diffuse |
41 | 0–127 | continuous | Grains | |
/evil_pet/grains/spread |
42 | 0–127 | continuous | Grains | |
/evil_pet/grains/cloud |
43 | 0–127 | continuous | Grains | |
/evil_pet/grains/pitch |
44 | 0–127 | continuous | Grains | |
/evil_pet/grains/detune |
45 | 0–127 | continuous | Grains | |
/evil_pet/grains/grains |
46 | 0–127 | continuous | Grains | |
/evil_pet/grains/shape |
47 | 0–127 | continuous | Grains | |
/evil_pet/grains/position |
49 | 0–127 | continuous | Grains | |
/evil_pet/grains/size |
50 | 0–127 | continuous | Grains | |
/evil_pet/grains/record_enable |
69 | 0–127 | continuous | Grains | |
/evil_pet/grains/saturator_type |
84 | 0–127 | continuous | Grains | |
/evil_pet/envelope/attack |
73 | 0–127 | continuous | Envelope | |
/evil_pet/envelope/decay |
75 | 0–127 | continuous | Envelope | |
/evil_pet/envelope/sustain |
79 | 0–127 | continuous | Envelope | |
/evil_pet/envelope/release |
72 | 0–127 | continuous | Envelope | |
/evil_pet/filter/frequency |
70 | 0–127 | continuous | Filter | |
/evil_pet/filter/resonance |
71 | 0–127 | continuous | Filter | |
/evil_pet/filter/type |
80 | 0–127 | continuous | Filter | |
/evil_pet/filter/envelope_filter_modulation |
96 | 0–127 | continuous | Filter | |
/evil_pet/lfo/1_type |
81 | 0–127 | continuous | LFO | |
/evil_pet/lfo/1_speed |
76 | 0–127 | continuous | LFO | |
/evil_pet/lfo/2_type |
82 | 0–127 | continuous | LFO | |
/evil_pet/lfo/2_speed |
77 | 0–127 | continuous | LFO | |
/evil_pet/lfo/3_type |
83 | 0–127 | continuous | LFO | |
/evil_pet/lfo/3_speed |
78 | 0–127 | continuous | LFO | |
/evil_pet/overtone/volume |
85 | 0–127 | continuous | Overtone | |
/evil_pet/overtone/type |
86 | 0–127 | continuous | Overtone | |
/evil_pet/reverb/type |
95 | 0–127 | continuous | Reverb | |
/evil_pet/reverb/amount |
91 | 0–127 | continuous | Reverb | |
/evil_pet/reverb/tone |
92 | 0–127 | continuous | Reverb | |
/evil_pet/reverb/tail |
93 | 0–127 | continuous | Reverb | |
/evil_pet/reverb/shimmer |
94 | 0–127 | continuous | Reverb | |
/evil_pet/general/expression |
1 | 0–127 | continuous | General | |
/evil_pet/general/volume |
7 | 0–127 | continuous | General | |
/evil_pet/general/sustain_pedal |
64 | 0–127 | continuous | General | |
/evil_pet/general/mpe_timbre |
74 | 0–127 | continuous | General | |
/evil_pet/volume |
7 | 0–127 | continuous | ||
/evil_pet/source_grains |
40 | -64–63 | continuous | ||
/evil_pet/expression |
1 | 0–127 | continuous | ||
/evil_pet/saturator |
39 | 0–127 | continuous | ||
/evil_pet/adsr |
73 | 0–127 | continuous | ||
/evil_pet/adsr |
75 | 0–127 | continuous | ||
/evil_pet/adsr |
79 | 0–127 | continuous | ||
/evil_pet/adsr |
72 | 0–127 | continuous | ||
/evil_pet/filter |
70 | 0–127 | continuous | ||
/evil_pet/reverb |
91 | 0–127 | continuous | ||
/evil_pet/shimmer |
94 | 0–127 | continuous | ||
/evil_pet/position |
49 | 0–127 | continuous | ||
/evil_pet/size |
50 | -64–63 | continuous | ||
/evil_pet/pitch |
44 | -64–63 | continuous | ||
/evil_pet/grains_amount |
46 | -64–63 | continuous | ||
/evil_pet/spread |
42 | 0–127 | continuous | ||
/evil_pet/cloud |
43 | 0–127 | continuous | ||
/evil_pet/detune |
45 | -64–63 | continuous | ||
/evil_pet/shape |
47 | 0–127 | continuous | ||
/evil_pet/sustain |
64 | 0–127 | continuous | ||
/evil_pet/resonance |
71 | 0–127 | continuous | ||
/evil_pet/type |
80 | 0–127 | continuous | ||
/evil_pet/env_mod |
96 | 0–127 | continuous | ||
/evil_pet/osc_volume |
85 | 0–127 | continuous | ||
/evil_pet/osc_waveform |
86 | 0–127 | continuous | ||
/evil_pet/fm_tune |
97 | 0–127 | continuous | ||
/evil_pet/saturator_type |
84 | 0–127 | continuous | ||
/evil_pet/diffuse |
41 | 0–127 | continuous | ||
/evil_pet/reverb_type |
95 | 0–127 | continuous | ||
/evil_pet/tone |
92 | 0–127 | continuous | ||
/evil_pet/tail |
93 | 0–127 | continuous | ||
/evil_pet/lfo_1_type |
81 | 0–127 | continuous | ||
/evil_pet/lfo_2_type |
82 | 0–127 | continuous | ||
/evil_pet/lfo_3_type |
83 | 0–127 | continuous | ||
/evil_pet/lfo_1_speed |
76 | 0–127 | continuous | ||
/evil_pet/lfo_2_speed |
77 | 0–127 | continuous | ||
/evil_pet/lfo_3_speed |
78 | 0–127 | continuous |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /evil_pet/note/on <note> <velocity>, /evil_pet/cc/<number> <value>, /evil_pet/pitchbend <0-16383>, /evil_pet/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.