I have many questions regarding how midi displays work on various 3rd party controllers. Let’s talk launch control mk3 for example.. When a knob is turned, then the parameter being modified shows on display.
How can this work for any midi display? Does it work with custom mappings or does it require a remote script?
The answers to this question should help solve two problems I have:
1. Always be able to see the value of a macro without hovering over it with the mouse
2. This one is hard to explain. I want to see the name of the samples in sampler and be able to scroll through them like you can with chain selector.
Example:
To achieve this 1 macro is set to the sample selector of sampler, but its non-generic value won’t show the actual sample name.
I have a second macro set up to with all the sample names written out as the name of chains. Then the chain selector is assigned to macro 2. When I hover over macro 2, its value shows the sample name.
However, to actually make this work, I have to map a single knob to both macro 1 and macro 2 so that their parameters will change as a single unit. I’d imagine the midi display wouldnt know to only show macro 2’s value when the knob is turned.
Any help with programming midi displays would be greatly appreciated as I have many other examples that I dont know how to solve that are closely related to these.
Midi Displays Parameter Feedback
Re: Midi Displays Parameter Feedback
Doesn't work with custom mappings, as far as I know.
The parameter names and values shown on controllers are provided entirely by their tailor-made remote control scripts. They monitor the corresponding parameters in Live and format the info in a way the hardware controller understands – usually a bespoke sysex format, which is then sent to the unit over the MIDI connection.
The MIDI mapping system, on the other hand, is entirely separate from the remote control scripts system. It involves MIDI notes or cc values sent from the controller to Live and (as feedback) from Live back to the controller. Say a hardware controller button that sends an F#3 note is mapped to a certain parameter by the user. When that parameter is subsequently turned off, Live will send a Note Off message for that same F#3 note back to the controller. The controller then knows (hopefully) to turn the LED for that particular button off.
That's all there is to it, and since MIDI mapping circumvents the remote control scripts system, there's no way to customize or enrich those messages.
So I think the rich feedback you're looking for can only be achieved by a remote control script, not by ad-hoc MIDI mapping. It is possible to write your own custom scripts, or to customize an existing one. So if you know some Python, and you know the sysex format for sending text info to your MIDI display, it might be doable.
Here's an old website with some posts about writing such scripts. These are, as far as I know, the latest available decompiled versions of the built-in scripts (including for the Launch Control series). Beware, though: I've noticed that they contain parsing errors here and there where the decompiling wasn't successful. But they're useful to look around and see how such scripts work.
The parameter names and values shown on controllers are provided entirely by their tailor-made remote control scripts. They monitor the corresponding parameters in Live and format the info in a way the hardware controller understands – usually a bespoke sysex format, which is then sent to the unit over the MIDI connection.
The MIDI mapping system, on the other hand, is entirely separate from the remote control scripts system. It involves MIDI notes or cc values sent from the controller to Live and (as feedback) from Live back to the controller. Say a hardware controller button that sends an F#3 note is mapped to a certain parameter by the user. When that parameter is subsequently turned off, Live will send a Note Off message for that same F#3 note back to the controller. The controller then knows (hopefully) to turn the LED for that particular button off.
That's all there is to it, and since MIDI mapping circumvents the remote control scripts system, there's no way to customize or enrich those messages.
So I think the rich feedback you're looking for can only be achieved by a remote control script, not by ad-hoc MIDI mapping. It is possible to write your own custom scripts, or to customize an existing one. So if you know some Python, and you know the sysex format for sending text info to your MIDI display, it might be doable.
Here's an old website with some posts about writing such scripts. These are, as far as I know, the latest available decompiled versions of the built-in scripts (including for the Launch Control series). Beware, though: I've noticed that they contain parsing errors here and there where the decompiling wasn't successful. But they're useful to look around and see how such scripts work.
Last edited by RobrechtV on Sun Jun 22, 2025 8:00 am, edited 1 time in total.
Re: Midi Displays Parameter Feedback
Thank you for such a detailed response. I’m proficient in python, but am new to sysex. I’m also familiar with a few custom remote scripts, but I have never seen the corresponding LED/midi display output in them. I’ll study up on the links you sent and see where that gets me.
Re: Midi Displays Parameter Feedback
As an example, if you check the link in my signature, you'll find my customized script (based on the Mackie Control one) for the Behringer X-Touch. It has code for formatting the scribble strip text (in MainDisplay.py, if I remember correctly) inherited from the original Mackie Control script, and thus following the Mackie Control sysex protocol, which the X-Touch emulates.
One thing to note is that if you go the remote scripts way, you don't get the ad-hoc flexibility of the MIDI mapping method. With MIDI mapping, you can just point to any parameter you see and map it to a button or dial.
A remote script, on the other hand, is pre-programmed and therefore necessarily more generalized. You can't program in a hard-wired connection to a particular parameter in a particular device in a particular track in a particular project, since that device will not be present (and will definitely not have the same ID) in every Live set.
However, the Mackie Control script (and thus my customized version for the X-Touch) does have a more generalized system for showing and controlling all available parameters for a device, including names and values. It should be in ChannelStripController.py, I think, and it's related to the assignment mode called CSM_PLUGINS.
One thing to note is that if you go the remote scripts way, you don't get the ad-hoc flexibility of the MIDI mapping method. With MIDI mapping, you can just point to any parameter you see and map it to a button or dial.
A remote script, on the other hand, is pre-programmed and therefore necessarily more generalized. You can't program in a hard-wired connection to a particular parameter in a particular device in a particular track in a particular project, since that device will not be present (and will definitely not have the same ID) in every Live set.
However, the Mackie Control script (and thus my customized version for the X-Touch) does have a more generalized system for showing and controlling all available parameters for a device, including names and values. It should be in ChannelStripController.py, I think, and it's related to the assignment mode called CSM_PLUGINS.
Re: Midi Displays Parameter Feedback
Come to think of it: a third option might be Max4Live. I think you could create an M4L device that acts as a middle man between the Live parameter you want to control and your hardware, extracting the text info you want and translating it to a sysex message formatted for your Launch Control.