Skip to content

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:

osc-bridge osc-send /evil_pet/grains/volume 63

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.