The Novation Launch Control XL is a great midi controller to use with the ipad (in low power mode) to control AUM. For me it’s annoying that the LEDs dont automatically change to reflect their values.
This mozaic midi effect needs to be setup in AUM to receive midi from the Launch Control XL AND send to the Launch Control XL.
The code ensures that all LEDs run in low power mode and also forces the Launch Control XL to select factory configuration #1 to avoid possible mapping problems.
Tested for a few hours yesterday. I think everything is working just fine. It’s not a complicated script!
Enjoy
P.S. The code is a mix of different code and ideas from roland, derwent, _ki, mcD. Thanks

Does it only work with AUM for the light’s? I was trying to use it with Loopy Pro as my DAW. I just wanted the bottom pads to light up as they are used to toggle FX on and off.
I dont know Loopy Pro that well but if you can route the launch control to a mozaic instance in LP and loopy pro can send sysex back to the launch pad then yes.
I tried to get it to work in drambo but unfortunately dranbo doesnt sent sysex messages so I had to run the program in a separate program. I used midifire but there are a few different ones you can use.
Ill post the mod to only affect the bottom leds below
@OnLoad
SetShortName {LC_LEDS}
sysButton[] = [ 0x00, 0x20, 0x29, 0x02, 0x11, 0x77, 0x08, 0x00, 0x00 ]
SendSysex sysButton, 7 // force factory template mode
sysButton[] = [ 0x00, 0x20, 0x29, 0x02, 0x11, 0x78, 0x08, 0x00, 0x00 ]
states[] = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
// notes are default button midi note for factory #1
notes[] = [ 41, 42, 43, 44, 57, 58, 59, 60, 73, 74, 75, 76, 89, 90, 91, 92 ]
// ccs are default knob midi cc for factory #1
ccs[] = [13, 14, 15, 16, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 36, 49, 50, 51, 52, 53, 54, 55, 56]
// turn off all leds
for i = 0 to 39 //24 knobsand 16 buttons
sysButton[7] = i
sysButton[8] = 12
SendSysex sysButton, 9 // uncomment resets at startup
endfor
@End
@OnMidiNoteOn
for i = 8 to 15
if MIDIByte2 = notes[i]
sysButton[7] = 24 + i
if states[i] = 1
states[i] = 0
sysButton[8] = 28
if i > 7 // botton row of pads
sysButton[8] = 13
endif
else
states[i] = 1
sysButton[8] = 12
endif
SendSysex sysButton, 9
// log sysButton[7], { }, sysButton[8]
endif
endfor
@End
@OnMidiCC
for i = 0 to 24
if MIDIByte2 = ccs[i]
sysButton[7] = i
if MIDIByte3 > 90
sysButton[8] = 13
elseif MIDIByte3 > 60
sysButton[8] = 28
elseif MIDIByte3 > 30
sysButton[8] = 29
else
sysButton[8] = 12
endif
SendSysex sysButton, 9
// log i, { }, MIDIByte3
endif
endfor
@End
I don’t understand how you did it, but it works for me and it makes a massive difference to knowing where I am with my sessions in AUM. Thank you for uploading this.
Hey everyone. I’ve made an extended version of this script that adds support for User Templates, so you can use your own mappings instead of being locked to Factory 1, while keeping all LED and ring feedback fully functional in AUM.
This update also makes it much easier to use multiple Launch Control XLs simultaneously, since each one can operate on its own User Template + midi channel without conflicts.
Everything else behaves just like the original, this just improves flexibility for more complex setups.
You can check it out here on GitHub:
https://github.com/MatiasBrunacci/LaunchControlXL_LEDsToAUM
Thank you richtowns for the original script!