Elektron Analog Heat +FX: MIDI CC, NRPN and OSC map¶
The Elektron Analog Heat +FX as named OSC addresses — 109 CC, 109 NRPN — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Elektron Analog Heat +FX |
|---|---|
| Vendor | Elektron |
| OSC prefix | /analog_heat_fx |
| Source | 📦 Derived from MIDI Guide (community CC/NRPN data) |
| Firmware | unknown |
| Revision | per pencilresearch canonical CSV |
| Upstream | pencilresearch |
| Data licence | CC-BY-SA-4.0 — MIDI Guide (https://midi.guide) by Pencil Research and contributors |
| Driver file | devices/elektron/analog_heat_fx.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/elektron/analog_heat_fx.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 analog_heat_fx: ask “what can the Elektron Analog Heat +FX do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (109)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/analog_heat_fx/heat_character/character_circuit |
108 | 1 / 108 | 0–7 | continuous | Heat: Character |
/analog_heat_fx/heat_character/character_drive |
109 / 37 | 1 / 109 | 0–16383 | continuous | Heat: Character |
/analog_heat_fx/heat_character/character_level |
110 / 39 | 1 / 110 | 0–16383 | continuous | Heat: Character |
/analog_heat_fx/heat_character/character_mix |
111 / 40 | 1 / 111 | 0–16383 | continuous | Heat: Character |
/analog_heat_fx/heat_eq/eq_low |
28 / 41 | 1 / 28 | 0–16383 | continuous | Heat: EQ |
/analog_heat_fx/heat_eq/eq_high |
29 / 42 | 1 / 29 | 0–16383 | continuous | Heat: EQ |
/analog_heat_fx/heat_filter/filter_mode |
30 | 1 / 30 | 0–13 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_frequency |
22 / 43 | 1 / 22 | 0–16383 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_frequency_pan |
26 / 47 | 1 / 26 | 0–16383 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_resonance |
23 / 44 | 1 / 23 | 0–16383 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_dirt |
27 | 1 / 27 | 0–127 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_envelope |
24 / 45 | 1 / 24 | 0–16383 | continuous | Heat: Filter |
/analog_heat_fx/heat_filter/filter_lfo1 |
25 / 46 | 1 / 25 | 0–16383 | continuous | Heat: Filter |
/analog_heat_fx/envelope/envelope_mode |
17 | 1 / 17 | 0–125 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_attack |
13 | 1 / 13 | 0–127 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_release |
14 | 1 / 14 | 0–127 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_trig_level |
12 / 32 | 1 / 12 | 0–16383 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_base |
15 | 1 / 15 | 0–127 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_width |
16 | 1 / 16 | 0–127 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_destination |
18 | 1 / 18 | 0–112 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_depth |
19 / 33 | 1 / 19 | 0–16383 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_destination_2 |
20 | 1 / 20 | 0–112 | continuous | Envelope |
/analog_heat_fx/envelope/envelope_depth_2 |
21 | 1 / 21 | 0–127 | continuous | Envelope |
/analog_heat_fx/lfos/lfo1_mode |
70 | 1 / 70 | 0–4 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_speed |
67 | 1 / 67 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_multiplier |
68 | 1 / 68 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_fade |
69 | 1 / 69 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_waveform |
66 | 1 / 66 | 0–6 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_start_phase |
71 | 1 / 71 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_destination |
72 | 1 / 72 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_depth |
73 / 34 | 1 / 73 | 0–16383 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_destination_2 |
74 | 1 / 74 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo1_depth_2 |
75 | 1 / 75 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_mode |
80 | 1 / 80 | 0–4 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_speed |
77 | 1 / 77 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_multiplier |
78 | 1 / 78 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_fade |
79 | 1 / 79 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_waveform |
76 | 1 / 76 | 0–6 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_start_phase |
81 | 1 / 81 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_destination |
82 | 1 / 82 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_depth |
83 / 35 | 1 / 83 | 0–16383 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_destination_2 |
84 | 1 / 84 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo2_depth_2 |
85 | 1 / 85 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_mode |
90 | 1 / 90 | 0–4 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_speed |
87 | 1 / 87 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_multiplier |
88 | 1 / 88 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_fade |
89 | 1 / 89 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_waveform |
86 | 1 / 86 | 0–6 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_start_phase |
91 | 1 / 91 | 0–127 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_destination |
92 | 1 / 92 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_depth |
93 / 36 | 1 / 93 | 0–16383 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_destination_2 |
94 | 1 / 94 | 0–112 | continuous | LFOs |
/analog_heat_fx/lfos/lfo3_depth_2 |
95 | 1 / 95 | 0–127 | continuous | LFOs |
/analog_heat_fx/controls/cv_a_destination |
100 | 1 / 102 | 0–112 | continuous | Controls |
/analog_heat_fx/controls/cv_a_depth |
101 | 1 / 103 | 0–127 | continuous | Controls |
/analog_heat_fx/controls/cv_b_destination |
104 | 1 / 106 | 0–112 | continuous | Controls |
/analog_heat_fx/controls/cv_b_depth |
105 | 1 / 107 | 0–127 | continuous | Controls |
/analog_heat_fx/controls/expr_a_destination |
102 | 1 / 104 | 0–112 | continuous | Controls |
/analog_heat_fx/controls/expr_a_depth |
103 | 1 / 105 | 0–127 | continuous | Controls |
/analog_heat_fx/controls/expr_b_destination |
106 | 1 / 108 | 0–112 | continuous | Controls |
/analog_heat_fx/controls/expr_b_depth |
107 | 1 / 109 | 0–127 | continuous | Controls |
/analog_heat_fx/gate/gate_threshold |
113 | 1 / 113 | 0–127 | continuous | Gate |
/analog_heat_fx/gate/gate_hold |
114 | 1 / 114 | 0–127 | continuous | Gate |
/analog_heat_fx/gate/gate_release |
115 | 1 / 115 | 0–127 | continuous | Gate |
/analog_heat_fx/gate/gate_range |
116 | 1 / 116 | 0–127 | continuous | Gate |
/analog_heat_fx/preset/preset_volume |
112 | 1 / 112 | 0–127 | continuous | Preset |
/analog_heat_fx/fx_bits/bits_srr |
88 | 2 / 88 | 0–127 | continuous | FX: Bits |
/analog_heat_fx/fx_bits/bits_br |
89 | 2 / 89 | 0–127 | continuous | FX: Bits |
/analog_heat_fx/fx_bits/bits_filter |
90 | 2 / 90 | 0–127 | continuous | FX: Bits |
/analog_heat_fx/fx_bits/bits_mix |
91 | 2 / 91 | 0–127 | continuous | FX: Bits |
/analog_heat_fx/fx_chorus/chorus_depth |
102 / 36 | 2 / 102 | 0–16383 | continuous | FX: Chorus |
/analog_heat_fx/fx_chorus/chorus_speed |
103 / 37 | 2 / 103 | 0–16383 | continuous | FX: Chorus |
/analog_heat_fx/fx_chorus/chorus_width |
105 | 2 / 105 | 0–127 | continuous | FX: Chorus |
/analog_heat_fx/fx_chorus/chorus_mix |
106 | 2 / 106 | 0–127 | continuous | FX: Chorus |
/analog_heat_fx/fx_delay/delay_time |
107 / 39 | 2 / 107 | 0–16383 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_pingpong |
108 | 2 / 108 | 0–1 | switch | FX: Delay |
/analog_heat_fx/fx_delay/delay_width |
109 | 2 / 109 | 0–127 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_feedback |
110 | 2 / 110 | 0–127 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_hpf |
111 / 40 | 2 / 111 | 0–16383 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_lpf |
112 / 41 | 2 / 112 | 0–16383 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_amount |
113 | 2 / 113 | 0–127 | continuous | FX: Delay |
/analog_heat_fx/fx_delay/delay_mode |
114 | 2 / 114 | 0–2 | continuous | FX: Delay |
/analog_heat_fx/fx_reverb/reverb_pre_delay |
12 | 2 / 12 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_decay_time |
13 | 2 / 13 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_frequency |
14 | 2 / 14 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_gain |
15 | 2 / 15 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_hpf |
16 | 2 / 16 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_lpf |
17 | 2 / 17 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_amount |
18 | 2 / 18 | 0–127 | continuous | FX: Reverb |
/analog_heat_fx/fx_reverb/reverb_mode |
19 | 2 / 19 | 0–2 | continuous | FX: Reverb |
/analog_heat_fx/fx_compressor/compressor_threshold |
20 | 2 / 20 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_attack |
21 | 2 / 21 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_release |
22 | 2 / 22 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_makeup_gain |
23 | 2 / 23 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_ratio |
24 | 2 / 24 | 0–7 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_s_chain_filter |
26 | 2 / 26 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_compressor/compressor_mix |
27 | 2 / 27 | 0–127 | continuous | FX: Compressor |
/analog_heat_fx/fx_warble/warble_mix |
28 | 2 / 28 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_depth |
29 | 2 / 29 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_speed |
30 | 2 / 30 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_base |
31 | 2 / 31 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_width |
32 | 2 / 32 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_stereo |
33 | 2 / 33 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_noise_level |
34 | 2 / 34 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_warble/warble_noise_hpf |
35 | 2 / 35 | 0–127 | continuous | FX: Warble |
/analog_heat_fx/fx_bass_focus/bass_focus_xfreq |
115 | 2 / 115 | 0–127 | continuous | FX: Bass Focus |
/analog_heat_fx/fx_bass_focus/bass_focus_hp_level |
116 | 2 / 116 | 0–127 | continuous | FX: Bass Focus |
/analog_heat_fx/fx_bass_focus/bass_focus_lp_level |
117 | 2 / 117 | 0–127 | continuous | FX: Bass Focus |
/analog_heat_fx/fx_bass_focus/bass_focus_bass |
118 | 2 / 118 | 0–1 | switch | FX: Bass Focus |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /analog_heat_fx/note/on <note> <velocity>, /analog_heat_fx/cc/<number> <value>, /analog_heat_fx/pitchbend <0-16383>, /analog_heat_fx/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.