Skip to content

Novation Launch Control XL 3: MIDI CC, NRPN and OSC map

The Novation Launch Control XL 3 as named OSC addresses — 69 CC, 6 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

Device Novation Launch Control XL 3
Vendor Novation
OSC prefix /lcxl3
Source 📘 From the manufacturer's documentation
Revision firmware 1.x (2024-2026)
Upstream vendor-doc
Driver file devices/novation/launch-control-xl-3.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/novation/launch-control-xl-3.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /lcxl3/feature/surface_mode 14

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as lcxl3: ask “what can the Novation Launch Control XL 3 do?” and it reads this map with list_routes. See the MCP guide.

MIDI CC and NRPN parameters (69)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/lcxl3/feature/surface_mode 30 1–29 continuous
/lcxl3/feature/shift 63 0–1 switch
/lcxl3/feature/row1/relative 69 0–1 switch
/lcxl3/feature/row2/relative 72 0–1 switch
/lcxl3/feature/row3/relative 73 0–1 switch
/lcxl3/feature/fader_pickup 70 0–1 switch
/lcxl3/feature/touch_events 71 0–1 switch
/lcxl3/feature/led_brightness 111 0–127 continuous
/lcxl3/feature/screen_brightness 112 0–127 continuous
/lcxl3/feature/display_timeout 113 0–99 continuous
/lcxl3/feature/out2_midi_thru 120 0–1 switch
/lcxl3/feature/global_midi_channel 100 0–15 continuous
/lcxl3/led/palette/fader/1 5 0–127 continuous
/lcxl3/led/palette/fader/2 6 0–127 continuous
/lcxl3/led/palette/fader/3 7 0–127 continuous
/lcxl3/led/palette/fader/4 8 0–127 continuous
/lcxl3/led/palette/fader/5 9 0–127 continuous
/lcxl3/led/palette/fader/6 10 0–127 continuous
/lcxl3/led/palette/fader/7 11 0–127 continuous
/lcxl3/led/palette/fader/8 12 0–127 continuous
/lcxl3/led/palette/encoder/row1/1 13 0–127 continuous
/lcxl3/led/palette/encoder/row1/2 14 0–127 continuous
/lcxl3/led/palette/encoder/row1/3 15 0–127 continuous
/lcxl3/led/palette/encoder/row1/4 16 0–127 continuous
/lcxl3/led/palette/encoder/row1/5 17 0–127 continuous
/lcxl3/led/palette/encoder/row1/6 18 0–127 continuous
/lcxl3/led/palette/encoder/row1/7 19 0–127 continuous
/lcxl3/led/palette/encoder/row1/8 20 0–127 continuous
/lcxl3/led/palette/encoder/row2/1 21 0–127 continuous
/lcxl3/led/palette/encoder/row2/2 22 0–127 continuous
/lcxl3/led/palette/encoder/row2/3 23 0–127 continuous
/lcxl3/led/palette/encoder/row2/4 24 0–127 continuous
/lcxl3/led/palette/encoder/row2/5 25 0–127 continuous
/lcxl3/led/palette/encoder/row2/6 26 0–127 continuous
/lcxl3/led/palette/encoder/row2/7 27 0–127 continuous
/lcxl3/led/palette/encoder/row2/8 28 0–127 continuous
/lcxl3/led/palette/encoder/row3/1 29 0–127 continuous
/lcxl3/led/palette/encoder/row3/2 30 0–127 continuous
/lcxl3/led/palette/encoder/row3/3 31 0–127 continuous
/lcxl3/led/palette/encoder/row3/4 32 0–127 continuous
/lcxl3/led/palette/encoder/row3/5 33 0–127 continuous
/lcxl3/led/palette/encoder/row3/6 34 0–127 continuous
/lcxl3/led/palette/encoder/row3/7 35 0–127 continuous
/lcxl3/led/palette/encoder/row3/8 36 0–127 continuous
/lcxl3/led/palette/solo_arm/1 37 0–127 continuous
/lcxl3/led/palette/solo_arm/2 38 0–127 continuous
/lcxl3/led/palette/solo_arm/3 39 0–127 continuous
/lcxl3/led/palette/solo_arm/4 40 0–127 continuous
/lcxl3/led/palette/solo_arm/5 41 0–127 continuous
/lcxl3/led/palette/solo_arm/6 42 0–127 continuous
/lcxl3/led/palette/solo_arm/7 43 0–127 continuous
/lcxl3/led/palette/solo_arm/8 44 0–127 continuous
/lcxl3/led/palette/mute_select/1 45 0–127 continuous
/lcxl3/led/palette/mute_select/2 46 0–127 continuous
/lcxl3/led/palette/mute_select/3 47 0–127 continuous
/lcxl3/led/palette/mute_select/4 48 0–127 continuous
/lcxl3/led/palette/mute_select/5 49 0–127 continuous
/lcxl3/led/palette/mute_select/6 50 0–127 continuous
/lcxl3/led/palette/mute_select/7 51 0–127 continuous
/lcxl3/led/palette/mute_select/8 52 0–127 continuous
/lcxl3/led/palette/solo_arm_toggle 65 0–127 continuous
/lcxl3/led/palette/mute_select_toggle 66 0–127 continuous
/lcxl3/led/palette/settings 104 0–127 continuous
/lcxl3/led/palette/track_prev 103 0–127 continuous
/lcxl3/led/palette/track_next 102 0–127 continuous
/lcxl3/led/palette/page_up 106 0–127 continuous
/lcxl3/led/palette/page_down 107 0–127 continuous
/lcxl3/led/palette/record 118 0–127 continuous
/lcxl3/led/palette/play 116 0–127 continuous

SysEx commands (6)

OSC address Arguments
/lcxl3/daw_mode/enable
/lcxl3/daw_mode/disable
/lcxl3/led/rgb control: u7, r: u7, g: u7, b: u7
/lcxl3/display/configure target: u7, config: u7
/lcxl3/display/text target: u7, field: u7, text: string
/lcxl3/display/bitmap target: u7, data: string