Written from devices/e-mu/e4.electra-community-editor-v3.fw-unknown.jsonEdit on GitHubJSON

E-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:

osc-bridge osc-send /e4/preset

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>.

JSON

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.