Skip to content

Waldorf Pulse 2: MIDI CC, NRPN and OSC map

The Waldorf Pulse 2 as named OSC addresses — 223 CC, 24 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

Device Waldorf Pulse 2
Vendor Waldorf
OSC prefix /pulse_2
Source 🎛️ Derived from an Electra One community preset
Revision per pencilresearch canonical CSV
Upstream electra-preset
Driver file devices/waldorf/pulse_2.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/waldorf/pulse_2.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /pulse_2/modwheel 63

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as pulse_2: ask “what can the Waldorf Pulse 2 do?” and it reads this map with list_routes. See the MCP guide.

MIDI CC and NRPN parameters (223)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/pulse_2/modwheel 1 0–127 continuous
/pulse_2/glide_rate 5 0–127 continuous
/pulse_2/glidemod 62 0–127 continuous
/pulse_2/volume 7 0–127 continuous
/pulse_2/pan 10 0–127 continuous
/pulse_2/env_vcf_attack 14 0–127 continuous
/pulse_2/env_vcf_decay 15 0–127 continuous
/pulse_2/env_vcf_sustain 16 0–127 continuous
/pulse_2/env_vcf_release 17 0–127 continuous
/pulse_2/env_amp_attack 18 0–127 continuous
/pulse_2/env_amp_decay 19 0–127 continuous
/pulse_2/env_amp_sustain 20 0–127 continuous
/pulse_2/env_amp_release 21 0–127 continuous
/pulse_2/lfo1_speed 24 0–127 continuous
/pulse_2/lfo1_shp 25 0–127 continuous
/pulse_2/lfo2_speed 26 0–127 continuous
/pulse_2/lfo2_delay 27 0–127 continuous
/pulse_2/osc1_shape 34 0–127 continuous
/pulse_2/osc1_pwm 35 0–127 continuous
/pulse_2/osc1_semitone 70 0–127 continuous
/pulse_2/osc1_detune 71 0–127 continuous
/pulse_2/osc1_keytrack 73 0–127 continuous
/pulse_2/osc2_semitone 36 0–127 continuous
/pulse_2/osc2_detune 37 0–127 continuous
/pulse_2/osc2_shape 38 0–127 continuous
/pulse_2/osc2_pwm 39 0–127 continuous
/pulse_2/osc2_keytrack 40 0–127 continuous
/pulse_2/osc3_sync 41 0–127 continuous
/pulse_2/osc3_semitone 42 0–127 continuous
/pulse_2/osc3_detune 43 0–127 continuous
/pulse_2/osc3_shape 44 0–127 continuous
/pulse_2/osc3_route 72 0–127 continuous
/pulse_2/osc1_level 45 0–127 continuous
/pulse_2/osc2_level 46 0–127 continuous
/pulse_2/osc3_level 47 0–127 continuous
/pulse_2/unison_detune 102 0–127 continuous
/pulse_2/osc1_fade 103 0–127 continuous
/pulse_2/osc2_fade 104 0–127 continuous
/pulse_2/noise 48 0–127 continuous
/pulse_2/vcf_type 49 0–127 continuous
/pulse_2/vcf_cutoff 50 0–127 continuous
/pulse_2/vcf_res 56 0–127 continuous
/pulse_2/vcf_keytrack 51 0–127 continuous
/pulse_2/vcf_velocity 53 0–127 continuous
/pulse_2/env_amount 52 0–127 continuous
/pulse_2/vca_volume 57 0–127 continuous
/pulse_2/vca_velocity 58 0–127 continuous
/pulse_2/vca_pan 59 0–127 continuous
/pulse_2/env_vcf_trig 29 0–127 continuous
/pulse_2/env_vcf_loop 74 0–127 continuous
/pulse_2/env_amp_loop 75 0–127 continuous
/pulse_2/env_amp_trig 31 0–127 continuous
/pulse_2/drive 76 0–127 continuous
/pulse_2/drive_type 77 0–127 continuous
/pulse_2/arp_switch 79 0–127 continuous
/pulse_2/arp_range 80 0–127 continuous
/pulse_2/arp_tempo 81 0–127 continuous
/pulse_2/arp_clock 82 0–127 continuous
/pulse_2/arp_mode 83 0–127 continuous
/pulse_2/step_duration 84 0–127 continuous
/pulse_2/arp_swing 85 0–127 continuous
/pulse_2/arp_delay 86 0–127 continuous
/pulse_2/pattern_length 87 0–127 continuous
/pulse_2/accent 88 0–127 continuous
/pulse_2/bend_up 105 0–127 continuous
/pulse_2/bend_down 106 0–127 continuous
/pulse_2/mod1_source 108 0–127 continuous
/pulse_2/mod1_amount 109 0–127 continuous
/pulse_2/mod1_target 110 0–127 continuous
/pulse_2/mod2_source 111 0–127 continuous
/pulse_2/mod2_amount 112 0–127 continuous
/pulse_2/mod2_target 113 0–127 continuous
/pulse_2/mod3_source 114 0–127 continuous
/pulse_2/mod3_amount 115 0–127 continuous
/pulse_2/mod3_target 116 0–127 continuous
/pulse_2/mod4_source 117 0–127 continuous
/pulse_2/mod4_amount 118 0–127 continuous
/pulse_2/mod4_target 119 0–127 continuous
/pulse_2/mod5_source 90 0–127 continuous
/pulse_2/mod5_amount 91 0–127 continuous
/pulse_2/mod5_target 92 0–127 continuous
/pulse_2/mod6_source 93 0–127 continuous
/pulse_2/mod6_amount 94 0–127 continuous
/pulse_2/mod6_target 95 0–127 continuous
/pulse_2/mod7_source 96 0–127 continuous
/pulse_2/mod7_amount 97 0–127 continuous
/pulse_2/mod7_target 98 0–127 continuous
/pulse_2/mod8_source 99 0–127 continuous
/pulse_2/mod8_amount 100 0–127 continuous
/pulse_2/mod8_target 101 0–127 continuous
/pulse_2/shape 34 0–127 continuous
/pulse_2/semitone 70 -48–48 continuous
/pulse_2/detune 71 -64–63 continuous
/pulse_2/mute 45 0–127 continuous
/pulse_2/osc3 47 0–127 continuous
/pulse_2/pw 35 0–127 continuous
/pulse_2/key_track 73 0–127 continuous
/pulse_2/env_a_fade 103 0–127 continuous
/pulse_2/osc2 46 0–127 continuous
/pulse_2/shape 38 0–127 continuous
/pulse_2/semitone 36 -48–48 continuous
/pulse_2/detune 37 -64–63 continuous
/pulse_2/down 106 0–127 continuous
/pulse_2/up 105 0–127 continuous
/pulse_2/pw 39 0–127 continuous
/pulse_2/key_track 40 0–127 continuous
/pulse_2/osc_3_2_sync 41 0–127 continuous
/pulse_2/env_a_fade 104 0–127 continuous
/pulse_2/mode 62 0–127 continuous
/pulse_2/rate 5 0–127 continuous
/pulse_2/shape 44 0–127 continuous
/pulse_2/semitone 42 -48–48 continuous
/pulse_2/detune 43 -64–63 continuous
/pulse_2/routing 72 0–127 continuous
/pulse_2/all_sounds_off 120 0–127 continuous
/pulse_2/cutoff 50 0–127 continuous
/pulse_2/resonance 56 0–127 continuous
/pulse_2/type 49 0–127 continuous
/pulse_2/keytrack 51 -64–63 continuous
/pulse_2/velocity 53 -64–63 continuous
/pulse_2/f_attack 14 0–127 continuous
/pulse_2/f_attack 15 0–127 continuous
/pulse_2/f_attack 16 0–127 continuous
/pulse_2/f_attack 17 0–127 continuous
/pulse_2/loop 74 0–127 continuous
/pulse_2/trigger 29 0–127 continuous
/pulse_2/vca_drive 76 0–127 continuous
/pulse_2/drive_curve 77 0–127 continuous
/pulse_2/overall_volume 57 0–127 continuous
/pulse_2/velocity 58 -64–63 continuous
/pulse_2/a_attack 18 0–127 continuous
/pulse_2/a_attack 19 0–127 continuous
/pulse_2/a_attack 20 0–127 continuous
/pulse_2/a_attack 21 0–127 continuous
/pulse_2/loop 75 0–127 continuous
/pulse_2/trigger 31 0–127 continuous
/pulse_2/source 108 0–24 continuous
/pulse_2/amount 109 -64–63 continuous
/pulse_2/destination 110 0–31 continuous
/pulse_2/source 111 0–24 continuous
/pulse_2/amount 112 -64–63 continuous
/pulse_2/destination 113 0–31 continuous
/pulse_2/speed 24 0–127 continuous
/pulse_2/shape 25 0–127 continuous
/pulse_2/speed 26 0–127 continuous
/pulse_2/delay 27 0–127 continuous
/pulse_2/mod_wheel 1 0–127 continuous
/pulse_2/hold 64 0–127 continuous
/pulse_2/source 114 0–24 continuous
/pulse_2/amount 115 -64–63 continuous
/pulse_2/destination 116 0–31 continuous
/pulse_2/source 117 0–24 continuous
/pulse_2/amount 118 -64–63 continuous
/pulse_2/destination 119 0–31 continuous
/pulse_2/source 90 0–24 continuous
/pulse_2/amount 91 -64–63 continuous
/pulse_2/destination 92 0–31 continuous
/pulse_2/source 93 0–24 continuous
/pulse_2/amount 94 -64–63 continuous
/pulse_2/destination 95 0–31 continuous
/pulse_2/source 96 0–24 continuous
/pulse_2/amount 97 -64–63 continuous
/pulse_2/destination 98 0–31 continuous
/pulse_2/source 99 0–24 continuous
/pulse_2/amount 100 -64–63 continuous
/pulse_2/destination 101 0–31 continuous
/pulse_2/range 80 1–10 continuous
/pulse_2/tempo 81 0–127 continuous
/pulse_2/clock_ratio 82 0–127 continuous
/pulse_2/mode 83 0–127 continuous
/pulse_2/delay 86 -50–50 continuous
/pulse_2/swing 85 14–114 continuous
/pulse_2/accent_control 88 0–24 continuous
/pulse_2/tune 33 -32–31 continuous
/pulse_2/tune 37 -32–31 continuous
/pulse_2/sync 41 0–127 continuous
/pulse_2/tune 43 -32–31 continuous
/pulse_2/osc_1 45 0–127 continuous
/pulse_2/osc_2 46 0–127 continuous
/pulse_2/osc_3 47 0–127 continuous
/pulse_2/noise_level 48 0–127 continuous
/pulse_2/attack 14 0–127 continuous
/pulse_2/decay 15 0–127 continuous
/pulse_2/sustain 16 0–127 continuous
/pulse_2/release 17 0–127 continuous
/pulse_2/attack 18 0–127 continuous
/pulse_2/decay 19 0–127 continuous
/pulse_2/sustain 20 0–127 continuous
/pulse_2/release 21 0–127 continuous
/pulse_2/cutoff_freq 50 0–127 continuous
/pulse_2/cut_keytrack 51 -64–63 continuous
/pulse_2/cut_env1_sens 52 -64–63 continuous
/pulse_2/cut_vel_sens 53 -64–63 continuous
/pulse_2/cut_mod_source 54 0–127 continuous
/pulse_2/cut_mod_amount 55 -64–63 continuous
/pulse_2/lfo_1_speed 24 0–127 continuous
/pulse_2/lfo_1_shape 25 0–127 continuous
/pulse_2/lfo_2_speed 26 0–127 continuous
/pulse_2/lfo_2_delay 27 0–127 continuous
/pulse_2/arp_active 102 0–127 continuous
/pulse_2/arp_tempo_ext 105 0–127 continuous
/pulse_2/pitch_mod_sour 60 0–127 continuous
/pulse_2/pitch_mod_amou 61 -64–63 continuous
/pulse_2/portamento_mod 62 0–127 continuous
/pulse_2/pitchbend_scal 63 0–24 continuous
/pulse_2/sustain_switch 64 0–127 continuous
/pulse_2/mod_u1_source 108 0–127 continuous
/pulse_2/mod_u1_amount 109 -64–63 continuous
/pulse_2/mod_u1_destina 110 0–127 continuous
/pulse_2/mod_u2_source 111 0–127 continuous
/pulse_2/mod_u2_amount 112 -64–63 continuous
/pulse_2/mod_u2_destina 113 0–127 continuous
/pulse_2/mod_u3_source 114 0–127 continuous
/pulse_2/mod_u3_amount 115 -64–63 continuous
/pulse_2/mod_u3_destina 116 0–127 continuous
/pulse_2/mod_u4_source 117 0–127 continuous
/pulse_2/mod_u4_amount 118 -64–63 continuous
/pulse_2/mod_u4_destina 119 0–127 continuous
/pulse_2/vol_velo_sens 58 -64–63 continuous
/pulse_2/panning 10 -64–63 continuous
/pulse_2/main_volume 7 0–127 continuous
/pulse_2/breath_control 2 0–127 continuous
/pulse_2/portam_time 5 0–127 continuous

SysEx commands (24)

OSC address Arguments
/pulse_2/char1 val: u7
/pulse_2/char2 val: u7
/pulse_2/char3 val: u7
/pulse_2/char4 val: u7
/pulse_2/char5 val: u7
/pulse_2/char6 val: u7
/pulse_2/char7 val: u7
/pulse_2/char8 val: u7
/pulse_2/char9 val: u7
/pulse_2/char10 val: u7
/pulse_2/char11 val: u7
/pulse_2/char12 val: u7
/pulse_2/char13 val: u7
/pulse_2/char14 val: u7
/pulse_2/sound_category val: u7
/pulse_2/transpose val: u7
/pulse_2/midi_thru val: u7
/pulse_2/clock_source val: u7
/pulse_2/input_gain val: u7
/pulse_2/vel_curve val: u7
/pulse_2/cc_x_assign val: u7
/pulse_2/tx_arp_clock val: u7
/pulse_2/tx_arp_notes val: u7
/pulse_2/glob_request val: u7

Performance MIDI

Notes, pitch bend and any CC are also available: /pulse_2/note/on <note> <velocity>, /pulse_2/cc/<number> <value>, /pulse_2/pitchbend <0-16383>, /pulse_2/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.