devices/e-mu/e4.electra-community-editor-v3.fw-unknown.jsonEdit on GitHubJSONE-MU E4 MIDI CC chart, NRPN and OSC map
The E-MU E4 MIDI implementation: 184 SysEx commands, each named, for Claude (MCP), SuperCollider or any OSC app.
- sourceElectra One preset
- real unitnot yet checked
Not checked on a real E-MU E4 yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- E-MU
- Version
- per Electra preset
- Source
- Electra One preset
- OSC prefix
/e4
Use 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/e-mu/e4.electra-community-editor-v3.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 e4: ask “what can the E-MU E4 do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
184 controls, each with its number, its range and the name to send
SysEx commands
| Command | Arguments | Name to send |
|---|---|---|
| Preset | val: u7 | /e4/preset |
| Voice | val: u7 | /e4/voice |
| Group | val: u7 | /e4/group |
| Zone | val: u7 | /e4/zone |
| Link | val: u7 | /e4/link |
| Transpose | val: u7 | /e4/transpose |
| Volume | val: u7 | /e4/volume |
| Ctrl a | val: u7 | /e4/ctrl_a |
| Ctrl b | val: u7 | /e4/ctrl_b |
| Ctrl c | val: u7 | /e4/ctrl_c |
| Ctrl d | val: u7 | /e4/ctrl_d |
| Fxa alg | val: u7 | /e4/fxa_alg |
| Fxa decay | val: u7 | /e4/fxa_decay |
| Fxa hfdamp | val: u7 | /e4/fxa_hfdamp |
| Fxa fxb a | val: u7 | /e4/fxa_fxb_a |
| Fxa main | val: u7 | /e4/fxa_main |
| Fxa sub1 | val: u7 | /e4/fxa_sub1 |
| Fxa sub2 | val: u7 | /e4/fxa_sub2 |
| Fxa sub3 | val: u7 | /e4/fxa_sub3 |
| Fxb alg | val: u7 | /e4/fxb_alg |
| Fxb feedbk | val: u7 | /e4/fxb_feedbk |
| Fxb lfo rt | val: u7 | /e4/fxb_lfo_rt |
| Fxb delay | val: u7 | /e4/fxb_delay |
| Fxb main | val: u7 | /e4/fxb_main |
| Fxb sub1 | val: u7 | /e4/fxb_sub1 |
| Fxb sub2 | val: u7 | /e4/fxb_sub2 |
| Fxb sub3 | val: u7 | /e4/fxb_sub3 |
| Sample | val: u7 | /e4/sample |
| Pan | val: u7 | /e4/pan |
| Crsetune | val: u7 | /e4/crsetune |
| Finetune | val: u7 | /e4/finetune |
| Orig key | val: u7 | /e4/orig_key |
| Key low | val: u7 | /e4/key_low |
| Key lofd | val: u7 | /e4/key_lofd |
| Key high | val: u7 | /e4/key_high |
| Key hifd | val: u7 | /e4/key_hifd |
| Vel low | val: u7 | /e4/vel_low |
| Vel lofd | val: u7 | /e4/vel_lofd |
| Vel high | val: u7 | /e4/vel_high |
| Vel hifd | val: u7 | /e4/vel_hifd |
| Rt low | val: u7 | /e4/rt_low |
| Rt high | val: u7 | /e4/rt_high |
| Nonxpose | val: u7 | /e4/nonxpose |
| Chrsamt | val: u7 | /e4/chrsamt |
| Chrswidth | val: u7 | /e4/chrswidth |
| Chorus x | val: u7 | /e4/chorus_x |
| Delay | val: u7 | /e4/delay |
| Startofs | val: u7 | /e4/startofs |
| Gliderate | val: u7 | /e4/gliderate |
| Glidecurv | val: u7 | /e4/glidecurv |
| Solo | val: u7 | /e4/solo |
| Assign grp | val: u7 | /e4/assign_grp |
| Latch | val: u7 | /e4/latch |
| Env depth | val: u7 | /e4/env_depth |
| Submix | val: u7 | /e4/submix |
| Atk1 rate | val: u7 | /e4/atk1_rate |
| Atk1 lvl | val: u7 | /e4/atk1_lvl |
| Dcy1 rate | val: u7 | /e4/dcy1_rate |
| Dcy1 lvl | val: u7 | /e4/dcy1_lvl |
| Rls1 rate | val: u7 | /e4/rls1_rate |
| Rls1 lvl | val: u7 | /e4/rls1_lvl |
| Atk2 rate | val: u7 | /e4/atk2_rate |
| Atk2 lvl | val: u7 | /e4/atk2_lvl |
| Dcy2 rate | val: u7 | /e4/dcy2_rate |
| Dcy2 lvl | val: u7 | /e4/dcy2_lvl |
| Rls2 rate | val: u7 | /e4/rls2_rate |
| Rls2 lvl | val: u7 | /e4/rls2_lvl |
| Filt type | val: u7 | /e4/filt_type |
| F morph | val: u7 | /e4/f_morph |
| F keyxfrm | val: u7 | /e4/f_keyxfrm |
| F parm 1 | val: u7 | /e4/f_parm_1 |
| F parm 2 | val: u7 | /e4/f_parm_2 |
| F parm 3 | val: u7 | /e4/f_parm_3 |
| F parm 4 | val: u7 | /e4/f_parm_4 |
| F parm 5 | val: u7 | /e4/f_parm_5 |
| F parm 6 | val: u7 | /e4/f_parm_6 |
| F parm 7 | val: u7 | /e4/f_parm_7 |
| F parm 8 | val: u7 | /e4/f_parm_8 |
| Fa1 rate | val: u7 | /e4/fa1_rate |
| Fa1 lvl | val: u7 | /e4/fa1_lvl |
| Fd1 rate | val: u7 | /e4/fd1_rate |
| Fd1 lvl | val: u7 | /e4/fd1_lvl |
| Fr1 rate | val: u7 | /e4/fr1_rate |
| Fr1 lvl | val: u7 | /e4/fr1_lvl |
| Fa2 rate | val: u7 | /e4/fa2_rate |
| Fa2 lvl | val: u7 | /e4/fa2_lvl |
| Fd2 rate | val: u7 | /e4/fd2_rate |
| Fd2 lvl | val: u7 | /e4/fd2_lvl |
| Fr2 rate | val: u7 | /e4/fr2_rate |
| Fr2 lvl | val: u7 | /e4/fr2_lvl |
| Lfo1 rate | val: u7 | /e4/lfo1_rate |
| Lfo1 shp | val: u7 | /e4/lfo1_shp |
| Lfo1 dly | val: u7 | /e4/lfo1_dly |
| Lfo1 var | val: u7 | /e4/lfo1_var |
| Lfo1 sync | val: u7 | /e4/lfo1_sync |
| Lfo2 rate | val: u7 | /e4/lfo2_rate |
| Lfo2 shp | val: u7 | /e4/lfo2_shp |
| Lfo2 dly | val: u7 | /e4/lfo2_dly |
| Lfo2 var | val: u7 | /e4/lfo2_var |
| Lfo2 sync | val: u7 | /e4/lfo2_sync |
| Aa1 rate | val: u7 | /e4/aa1_rate |
| Aa1 lvl | val: u7 | /e4/aa1_lvl |
| Ad1 rate | val: u7 | /e4/ad1_rate |
| Ad1 lvl | val: u7 | /e4/ad1_lvl |
| Ar1 rate | val: u7 | /e4/ar1_rate |
| Ar1 lvl | val: u7 | /e4/ar1_lvl |
| Aa2 rate | val: u7 | /e4/aa2_rate |
| Aa2 lvl | val: u7 | /e4/aa2_lvl |
| Ad2 rate | val: u7 | /e4/ad2_rate |
| Ad2 lvl | val: u7 | /e4/ad2_lvl |
| Ar2 rate | val: u7 | /e4/ar2_rate |
| Ar2 lvl | val: u7 | /e4/ar2_lvl |
| C00src | val: u7 | /e4/c00src |
| C00dst | val: u7 | /e4/c00dst |
| C00amt | val: u7 | /e4/c00amt |
| C01src | val: u7 | /e4/c01src |
| C01dst | val: u7 | /e4/c01dst |
| C01amt | val: u7 | /e4/c01amt |
| C02src | val: u7 | /e4/c02src |
| C02dst | val: u7 | /e4/c02dst |
| C02amt | val: u7 | /e4/c02amt |
| C03src | val: u7 | /e4/c03src |
| C03dst | val: u7 | /e4/c03dst |
| C03amt | val: u7 | /e4/c03amt |
| C04src | val: u7 | /e4/c04src |
| C04dst | val: u7 | /e4/c04dst |
| C04amt | val: u7 | /e4/c04amt |
| C05src | val: u7 | /e4/c05src |
| C05dst | val: u7 | /e4/c05dst |
| C05amt | val: u7 | /e4/c05amt |
| C06src | val: u7 | /e4/c06src |
| C06dst | val: u7 | /e4/c06dst |
| C06amt | val: u7 | /e4/c06amt |
| C07src | val: u7 | /e4/c07src |
| C07dst | val: u7 | /e4/c07dst |
| C07amt | val: u7 | /e4/c07amt |
| C08src | val: u7 | /e4/c08src |
| C08dst | val: u7 | /e4/c08dst |
| C08amt | val: u7 | /e4/c08amt |
| C09src | val: u7 | /e4/c09src |
| C09dst | val: u7 | /e4/c09dst |
| C09amt | val: u7 | /e4/c09amt |
| C10src | val: u7 | /e4/c10src |
| C10dst | val: u7 | /e4/c10dst |
| C10amt | val: u7 | /e4/c10amt |
| C11src | val: u7 | /e4/c11src |
| C11dst | val: u7 | /e4/c11dst |
| C11amt | val: u7 | /e4/c11amt |
| C12src | val: u7 | /e4/c12src |
| C12dst | val: u7 | /e4/c12dst |
| C12amt | val: u7 | /e4/c12amt |
| C13src | val: u7 | /e4/c13src |
| C13dst | val: u7 | /e4/c13dst |
| C13amt | val: u7 | /e4/c13amt |
| C14src | val: u7 | /e4/c14src |
| C14dst | val: u7 | /e4/c14dst |
| C14amt | val: u7 | /e4/c14amt |
| C15src | val: u7 | /e4/c15src |
| C15dst | val: u7 | /e4/c15dst |
| C15amt | val: u7 | /e4/c15amt |
| C16src | val: u7 | /e4/c16src |
| C16dst | val: u7 | /e4/c16dst |
| C16amt | val: u7 | /e4/c16amt |
| C17src | val: u7 | /e4/c17src |
| C17dst | val: u7 | /e4/c17dst |
| C17amt | val: u7 | /e4/c17amt |
| Mfxa alg | val: u7 | /e4/mfxa_alg |
| Mfxa dcy | val: u7 | /e4/mfxa_dcy |
| Mfxa hfd | val: u7 | /e4/mfxa_hfd |
| Mfxa fxb | val: u7 | /e4/mfxa_fxb |
| Mfxa mn | val: u7 | /e4/mfxa_mn |
| Mfxa s1 | val: u7 | /e4/mfxa_s1 |
| Mfxb alg | val: u7 | /e4/mfxb_alg |
| Mfxb fbk | val: u7 | /e4/mfxb_fbk |
| Mfxb lfo | val: u7 | /e4/mfxb_lfo |
| Mfxb dly | val: u7 | /e4/mfxb_dly |
| Mfxb mn | val: u7 | /e4/mfxb_mn |
| Mfxb s1 | val: u7 | /e4/mfxb_s1 |
| Fx bypass | val: u7 | /e4/fx_bypass |
| Lnkintext | val: u7 | /e4/lnkintext |
| Lnkpitch | val: u7 | /e4/lnkpitch |
| Lnkmod | val: u7 | /e4/lnkmod |
| Lnkpress | val: u7 | /e4/lnkpress |
| Lnkpedal | val: u7 | /e4/lnkpedal |
Performance MIDI
Notes, pitch bend and any CC are also available: /e4/note/on <note> <velocity>, /e4/cc/<number> <value>, /e4/pitchbend <0-16383>, /e4/program_change <n>.
Limitations
Imported from an Electra One community preset. The mapping reflects the preset author's editorial choices: parameter naming, ranges, and which params are exposed. Untested on hardware in this repo.
Frequently asked questions
Can an AI agent like Claude control the E-MU E4?
Yes: SynthHub's hosted MCP server knows the E-MU E4's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.