text to midisysex
Hi, i am building a script that will act with touchOSC via midi.
And i would like to send the name of a parameter from ableton when it was changed.
So i add a listener:
self.song().tracks[0].devices[0].parameters[1].add_name_listener
and my action would be:
self._send_midi(X)
where X should be some kind of transformation from:
self.song().tracks[0].devices[0].parameters[1].name
that should be a text, like “LFO” into:
into midiSysEX.
Can you suggest a solution for this reaction?
Hi, I use this to send parameter labels to Open Stage Control:
SYSEX_START = (240, 126, 3,)
val = self.song().view.selected_track.view.selected_device.parameters[loop_number].value
valStr = tuple([ord(c) for c in self.song().view.selected_track.view.selected_device.parameters[loop_number].str_for_value(val)],)
SYSEX_END = (247,)
sysexMsg = SYSEX_START + tuple([loop_number],) + valStr + SYSEX_END
self._send_midi(sysexMsg)
I use different numbers in SYSEX_START to distinguish between track name, device name, parameter name. In this example “3” for parameter name. In Open Stage Control I then filter by this number where to put the text (parameter name label).
Hi, you’re right I confused it with parameter values, sorry. For parameter names I use:
self._send_midi(tuple([240, 126, 2, loop_number] + [ord(c) for c in self.song().view.selected_track.view.selected_device.parameters[loop_number].name] + [247]))
Hexadecimal just didn’t work in my case, that’s why I use decimal for midi sysex. Maybe I’ve done something wrong.
And I use a loop in CSS to get all the parameter names of the selected device at once.
And take it with a grain of salt: I have zero programming experience – just trial and error… 😉 Regards, mj
you are my hero!)
how can tracks[1].color be sent as hex? i can figure out…
Sign up
User registration is currently not allowed.
thank you!!
can you please comment – what is
[loop_number]
?
as i suppose there should be smth like
parameters[1].name
to get parameter name label, right?
according to
https://docs.cycling74.com/max5/refpages/m4l-ref/m4l_live_object_model.html#DeviceParameter
parameters[1].value
will give us Linear-to-GUI value between min and max.
And why do you put val in valStr?
shouldn’t it be like:
valStr = tuple([ord(c) for c in self.song().tracks[0].devices[0].parameters[1].name])
and why you sysex message looks like 240, 126, 3 instaed of F0 52 00 4F 28 20 37 ?
thank you, waiting for your answers)))