sending MIDI notes to Live from control surface script

Discuss Live-ready controllers other than Push.
Post Reply
odisfm
Posts: 4
Joined: Tue Sep 17, 2024 6:53 am

sending MIDI notes to Live from control surface script

Post by odisfm » Tue Sep 23, 2025 9:47 pm

Hey folks, I've been writing my own control surface script and am struggling with getting MIDI note data to Live.
By using a button matrix of PlayableControl elements and setting their mode to playable I can send notes to Live.

I am using a Push 1 as the hardware. I need to tranlslate the notes it sends (36-99) into something more musical like you see with the factory Push script. So I set each PlayableControl's identifier to the relevant MIDI pitch, and this works, but it causes conflict: if I map the bottom-left pad from note 36 to say note 120, if there is another control that already listens for note 120 then either that control or the translated pad wont work.

So I'm looking for help with one/both of the following:

1. I see there is a method

Code: Select all

_set_pad_translations()
on the ControlSurface class. By looking at the decompiled scripts it takes input like:

Code: Select all

self.set_pad_translations(((0, 0, 12, 15), (1, 0, 13, 15), (2, 0, 14, 15), ...
. But no matter what I suppply I cant get it to have any noticeable effect.

2. Can I programatically send MIDI to the control surface that is then used by Live for note data? I can construct a note on message like (144, 36, 127) and send it to the cs with

Code: Select all

self._receieve_midi_chunk(((144, 36, 127),))
, which seems to work just like pressing a pad with note 36, EXCEPT that note is not usable by tracks in Live. (physically pressing that same pad works)

appreciate any help!!

Post Reply