Skip to content

Endorphin.es Evil Pet MIDI CC chart, NRPN and OSC map

The Endorphin.es Evil Pet MIDI implementation: 76 CC, each named, for Claude (MCP), SuperCollider or any OSC app.

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.

Frequently asked questions

Which MIDI CC controls the filter cutoff on the Endorphin.es Evil Pet?

CC 70 (0–127), named /evil_pet/filter/frequency in SynthHub's map.

How many parameters of the Endorphin.es Evil Pet can be controlled over MIDI?

SynthHub's map of the Endorphin.es Evil Pet lists 76 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 Endorphin.es Evil Pet?

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