How to control the Push LCD with sysex messages
Adam Murray
May 15 2013 | 6:37 am
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!
Max Patcher
In Max, select New From Clipboard.
In Max, select New From Clipboard.
Anyway, here's the patcher (only works in stand-alone Max/MSP!):