Forums > Max For Live

How to control the Push LCD with sysex messages

May 14, 2013 | 11:37 pm

I haven’t found any info on this, so tonight I reverse engineered my Push LCD screen. An invaluable tool was MIDI Monitor (http://www.snoize.com/MIDIMonitor/), which allows me to spy of the Push "Live Out" MIDI port.

 

A single 77 byte sysex message sets the text for a single line. Each line on the LCD has 68 characters. The sysex message format looks like (in decimal format):

240 71 127 21 {line} 0 69 0 {ASCII char1} {ASCII char2} … {ASCII char68} 247

 

the value of the {line} byte is:

24 for line 1 of the LCD

25 for line 2

26 for line 3

27 for line 4

 

For the ASCII characters, the value must be between 0 and 127. From 32-126, it matches standard ASCII character sets (http://www.asciitable.com/). The other values are various other characters. All 128 numbers in this range are printable on the LCD (unlike standard ASCII).

 

Patchers speak louder than words, so try the patch below for yourself. Note, this only works in stand-alone Max/MSP. Live & Max for Live do not allow you to send sysex messages  (unless you hack on the Python remote scripts, but the point of all this is to avoid that and just use Max).

 

There is one workaround for the lack of sysex support in Live that I know of:

Create a patcher in stand-alone Max/MSP
Setup your midiin/midiout in the stand-alone patcher to talk to the Push
Add a send or receive object
Create a MFL device with a corresponding send/receive object
Leave the MFL device open for edit

Alternately you could probably do something with networking protocols, but timing will possibly be worse? That last bullet point is annoying, but seemingly necessary. I can’t get MFL send/receive to talk to Max stand-alone send/receive otherwise. It’s really not ideal, but workable… in the meantime, if this is something you want to do, pester Ableton about adding sysex support!

 

Anyway, here’s the patcher (only works in stand-alone Max/MSP!):
<code>

– Pasted Max Patch, click to expand. –

</code>


May 15, 2013 | 2:46 am

Here are externals for unlimited midi communication of M4L devices (Mac only)

http://cycling74.com/toolbox/midi-inout-for-maxforlive/


May 16, 2013 | 9:04 am

Those external look promising, however I am under the impression they only work with certain versions of OS X (maybe not Mountain Lion?) and not Windows. Of course, my workaround has its own problems. There’s no ideal solution right now AFAIK.


May 16, 2013 | 12:35 pm

The latency of UDP/OSC messages sent or received from an M4L device depends on Live’s audio buffer (eg. 12ms @512 samples). So it’s quite usable for sysex data.


May 16, 2013 | 9:55 pm

That is a good point. I was trying to take a purist approach and only use MIDI, as that’s what I want to do even though the software doesn’t quite support it yet. I’ll keep networking protocols in mind as a backup plan.


Viewing 5 posts - 1 through 5 (of 5 total)