Page 1 of 2

How to control the Push LCD text with sysex messages

Posted: Wed May 15, 2013 6:28 am
by adamj
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):

Code: Select all

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 :cry: (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
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: Select all

----------begin_max5_patcher----------
2128.3oc2a01aiaiD9yN+JlZb.2cn4xJRQ819kCK59kBr8PAtOtcQfrEiM2H
KYHQkjsE8+dGRJ4UxVxVwRVwn.VNH7MM7gy7vY3P+G2La9hzW34yg2CeFlM6
OtY1LcQpBlU9+yluI7kkwg45lMOg+b5huN+VSUR9KRcwwogQa344fUUUIEaD
IwbotajuWXZgb+REQ5w.G2+Cop6OjlHSB2v007gLQXbUMlAP9ssbibOeN7kx
p1FJWtVjr59L9RooVG66rtEHV9p+3QUeSstyZWWTumbwuqGKBVspz+7laTec
6HAI4b4v.EWuwFUHtd24nPBMr3StDvxxzMa3IxCvk+WpDdNM6QTh9uvGSKVD
ygkwhkOBx0hbHLIB1D9HGxKx3fP9O0.HHSwpwFllolEvu7ye7mgsoYx6pF+X
QBeYZQh9kv5Oda0Bd6dZ79grUKzc+tpAXQwBbpT+E0l5HiovZGGGsZoip6fK
aZP9O8Seb9v.F14.Ls.CdNJ0OhimZ5ayL5hSCH7gnvMvuTjkE9M7cRrg0R41
2+t2sRHWWr3NrauKDaxW2naRqZWzgAhViEH5En0dHVFyWMlZaOIjaY3bjC5+
sMvf1JXPODLb7OGpsaOA8lskqV+h5a.nKA8lhZObE+UL8agY24hwryb0lVTM
cCwebm6p0cdj3PiKkTB4oa3RkXAq4Y7WAiCqE.x4bLVZUiQnHC5uxCiZPNMQ
sywTd1MTYn3I4Y2ySBK2InptG4eaSZjoGiHW1+G2XLDVTjrbMj9.rbMJBKQI
H+8Cim2Yr34cIFaOiSXArIz8qsZ1o6ko2m+sb9KCyCLG6w1Nkg9hpnn70XRO
Pl5CEOqDOJADr0hX9S3BuHMo1TX17vsaqU7rZcQgheMUOPt2tqHQhoHxthx3
OIp5OcWogY3DRhyFzIMMT7hu6bSk3J2MUcsZ1R0VQtl8qX58qX90ls3Z7p3z
kOxipoQhP5VdhHYaFOG09CkkRwtpi3ODVDKuucnpY8ODtj2YmacAc17UYhnz
DkPznmphqdcHgaomb0mL5VjDtskNmiyih7EgYJTsjknBVmKSSiaV0tERzFHL
QrITxkBivRs1MnhMayDFeS1UlgDZc9xrz33FCkolmZolHbsdI+YQjbcCSaUM
XyEaqVBluCihDq34xlkICWk2rjFgYVWIrtwcixOJCXSKcUDCXrAIv1h3XjG7
AcjBOHxxkfqeMVw58tMG55jfnaVyChe0p9KoacqVYP6bOcGeydQd0BZntidc
RkNqhNszv7LQ+FTr6A9xTw7tfO6NgOR6vme+QuCnaiEJ8vubbnzP25YXfb2m
z8MDG+8XHGCBliZrcBmzNgSZ6vo2.fyF9Icb3rTwz0dpwyiwJrMLBdFioCx2
hT+4pCPfmnOSAE6Po26f5.GjPLOr2bE1iFWg6EfpfYY3HHkAXqWeXdWGTEaw
MCivXR9aymNURXudkjNXDYCwDtmluVZ+xr0tNAtSn8qQhmOZVTMVP5b9Ro54
qwmTpydS2JNEs+Ki3bUOs5bpZ8Z0KHixJ+P.hu6tqR0uCu6zuZU8siP4oEYK
qD5RG.flhA54oTjry4+OuyrXu1sVDE0zWai6o4JmcMgUzqUyWqD60SIld0Hw
rdJwdWMRLomRr+HIwvWtodjryyCehGcO9FP6m6CkxLwhBoQkudP3CMdySGO6
qHHrVEhi7x65khwkuHLt7XG102Vh06luChC6nT24vvZdbbpJWQwQ+vvNmUl2
k57aLAQ3QtDGyZWG6mxxAXC6H9ntiZpbnNAsGR0EGGrGHN3Lt3fM6MBGnCDG
F2T6UlY42.bfLPbvdbSwoO8xgCcbx2+XGXP+YKYmAao97GO4Ewv1xb3UzKQJ
eyBiDoqxRK1dTcfzGdPckLTHhSegDO6Ac8SLZAt9ZUBKZso8wxZjPx2T8hpJ
qBhpxU1SgwEMZPcea9LVZ0GiOMiiF1pPYWa.Q6al8HryMyu8IIdkZarxClxn
tQ5RcydTogx3a4gR8wLkiSKPuDoNcI0I2mC+qvD.6lHiCYoOqxampke5m93+
9BbYCXi1kMfV+JaTlJuw9xFzkif+CB72kO8+5J0a5Za2w14VWW2ZahSCL4.e
j8tEmWK3Yuhcqa45iXSNycpP9iEgIq5CJTpx6XcvV3nDK1Troto2Yb2.PPoZ
THTuQLA3JdnjHfxrv3STiMx.B32VfavPumlTqwWmSCyLqx6cg+TdWAZGpbGG
nZzuSqLW50FT4LJPEIXrgJpI0ouIPE59V1.wiQ2JytjLiYtWNdSvMiaGdv7A
V.xiBNDvghtnghA33.NtfiG35fT.fqmxQITSxSqd4QAOavigQSAdtfmG34Cd
AfuE3S.eJ3aC9Lv2A7cAeOv2G7Cf.KHf.ATHvFBXPfCD3BAdPfODDf9eagOD
ke33iM9vvGG7wEe7T2UbUJQ.BAaGAaGAaGAaGgoxqF9fsifsifsifsihsipL
EnWfM2G8Ctp7JY4PLNHSuHas2tAQYB.oe+z3NOyB1kxpvR6niG6smOkMJ7o1
WleMEuIroaDXv8ER32l+AzAJYZB7qE4qgOIdhC+ZZl72lOv673owpin43YBK
x290fH51zL6YF.Z+7iTBSGOuHckEG6FM5fDhbXxPNX8puhydupNxbGa5jmdH
Npig.HSh331G4wwaxfGG+9HOSm5i5tdeZ4we5jG69tdQtdjmITel4cco+rGy
xQvmIRd5i3XMYhi5XhtlTer6ytW6IzWT4oOadMYRCkbcINVWUhi5fBtlDm9X
paOshC8DhydJXWb4w9Txi0zJOjSwDFLcxSeLtbNSwwDjwd+NfTRxd+9e1629
yg+te5527C9d9ya9K6H4MdB
-----------end_max5_patcher-----------

Re: How to control the Push LCD text with sysex messages

Posted: Thu May 16, 2013 2:33 pm
by metastatik
Nice tip. There are also SysEx messages for clearing each line, which can be useful. These are covered in this document on the last page.

Re: How to control the Push LCD text with sysex messages

Posted: Thu May 16, 2013 4:08 pm
by adamj
Thanks for the document. Nice reference.

Regarding the lack of sysex support in Live, someone pointed me to these Max externals: http://cycling74.com/toolbox/midi-inout-for-maxforlive/
However, I am under the impression they only work with certain versions of OS X (maybe not Mountain Lion?) and not Windows. But if it works for you, might be a convenient solution.

Re: How to control the Push LCD text with sysex messages

Posted: Thu Jan 30, 2014 2:55 am
by dorianjames
http://youtu.be/op801hidZhY


this is a proof of concept for using Ableton LCD display in Traktor. Hopefully someone with more expertise can takeit on them selves to write something a bit less tedious.

I apologize for the terrible quality. I don't have a good video cam so this is taken from my phone.

First i made a Traktor Mapping that takes controls from Ableton Push User Port and sends them to Traktor virtual Port (Output).

Image

the mapping:
https://dl.dropboxusercontent.com/u/272 ... ontrol.tsi

Then I used [url="http:/http://www.subtlesoft.square7.net/MidiPipe.html"]midipipe[/url] to take midi CC data from the traktor Virtual Output and triggers Sysex messages from CC#71-78. You can learn more about the sysex message the ableton uses for it's LCD screen from these posts/pages:

http://cycling74.com/forums/topic/how-t ... -messages/
http://julienbayle.net/blog/2013/02/abl ... 11#respond

Take Midi data from Traktor Virtual Output
Image

Use a message factory for each CC#71-78
Image

Writing up the sysex information will be a bit long so just either research it using the links provided or download the midipipe configuration file and unzip it. It may not work for your particular setup though.
Image

then output it to ableton user port
Image

The midipipe file for the configuration:
https://dl.dropboxusercontent.com/u/272 ... e.mipi.zip

I also used sysex librarian for sending the 1st line and 3rd line. it was just easier but this could be done with midipipe as well.


i hope this helps

Re: How to control the Push LCD text with sysex messages

Posted: Thu Jan 30, 2014 3:16 am
by dorianjames
http://youtu.be/op801hidZhY


this is a proof of concept for using Ableton LCD display in Traktor. Hopefully someone with more expertise can takeit on them selves to write something a bit less tedious.

I apologize for the terrible quality. I don't have a good video cam so this is taken from my phone.

First i made a Traktor Mapping that takes controls from Ableton Push User Port and sends them to Traktor virtual Port (Output).

Image



the mapping:
https://dl.dropboxusercontent.com/u/272 ... ontrol.tsi



Then I used Midipipe to take midi CC data from the traktor Virtual Output and triggers Sysex messages from CC#71-78. You can learn more about the sysex message the ableton uses for it's LCD screen from these posts/pages:

http://cycling74.com/forums/topic/how-t ... -messages/
http://julienbayle.net/blog/2013/02/abl ... 11#respond


Take Midi data from Traktor Virtual Output
Image

Use a message factory for each CC#71-78
Image

Writing up the sysex information will be a bit long so just either research it using the links provided or download the midipipe configuration file and unzip it. It may not work for your particular setup though.
Image

Then output it to ableton user port
Image

The midipipe file for the configuration:
https://dl.dropboxusercontent.com/u/272 ... e.mipi.zip

the software is found here:
http://www.subtlesoft.square7.net/MidiPipe.html

I also used sysex librarian for sending the 1st line and 3rd line. it was just easier but this could be done with midipipe as well.


i hope this helps

Re: How to control the Push LCD text with sysex messages

Posted: Fri Jan 31, 2014 1:13 am
by Jeffromusic
You sir are a genius. And I have no idea what is going on. But it would be cool to have the song names on the LCD screen too

!

Posted: Fri Jan 31, 2014 2:44 am
by irrelevance
dorianjames wrote:http://youtu.be/op801hidZhY




i hope this helps

Understatement of the year so far...This is great news! :D Feels like the final piece of the puzzle for Push with Traktor. Thanks.

Re: How to control the Push LCD text with sysex messages

Posted: Sat Feb 01, 2014 9:25 am
by dorianjames
well, this is just a proof of concept. I wish i could tell you this was easy, unfortunately, it's tedious. I definitely didn't see myself being neck deep in hexadecimals all weekend. There are some minor problems that make midi pipe frustrating for this situation.
  • midi pipe has this miniscule scroll box to input individual sysex bytes in. You can't just type them in either. You have to input these one by one by selecting from a drop-down list of 255 options. if you could just import a sysex file, it would make the development of a workflow 10x better. sadly, you can't even arrow key up and down in this scroll box. 8O
  • It has variables but if we had some simple conditionals, it would improve ease of use tremendously.
I'm definitely not ragging on the software by any means. I couldn't do this without it, but for this purpose, I think I we can develope something more purposeful and flexible for this.

also this method is flakey. i get a lot of glitches in starting up and turning on the Push. i'm testing a few scenarios to see if i can come up with some easy solutions to this. I think clearing the screen might help but again this is really time consuming and archaic process. It makes me feel like i'm sequencing midi on a C64.

Jeffromusic wrote:You sir are a genius. And I have no idea what is going on. But it would be cool to have the song names on the LCD screen too
This could be possible. There is some script going around that was used for the denon controllers that could display track names and so forth. I haven't looked into it much but this would be very interesting but first things first.

http://youtu.be/6nkZ4E0p2Nk

Re: How to control the Push LCD text with sysex messages

Posted: Sat Feb 01, 2014 9:51 am
by irrelevance
Interesting stuff dorianjames.

I've loaded up your midipipe and traktor tsi bits and had a play around with midi pipe. I found I could clear the screen from traktor using a modifier condition mapped to another cc from push BUT it only clears the screen on a change of value state (any value change will do such as blend, invert, midi control range, midi range etc) in the traktor options for that modifier.

Also I was pretty hyped I'd be able to have a bar graph for volumes and eq's like in live but can't seem to find the character for that plus I imagine the midi pipe setup to engage each line segment in the lcd might take forever and send me insane before I finish!

Re: How to control the Push LCD text with sysex messages

Posted: Sat Feb 01, 2014 10:40 am
by dorianjames
Interesting stuff dorianjames.
I'm very glad this is useful to someone besides me.

lcd might take forever and send me insane before I finish!
I feel your pain. I used a program called 0xED http://www.suavetech.com/0xed/ to do the quick text to hexadecimal conversion by typing it in. Then i'd read it off that step by step.
Sometimes i would use Sysex Librarian http://www.snoize.com/SysExLibrarian/ to test it. both of those programs are for OSX.

still a ridiculously slow process.

Re: How to control the Push LCD text with sysex messages

Posted: Sun Feb 02, 2014 11:04 am
by irrelevance
Well you've all shown me enough to get by as it is for now so many thanks for that! Pdfs and examples always help :wink:

Re: How to control the Push LCD text with sysex messages

Posted: Sun Feb 02, 2014 11:25 am
by dorianjames
irrelevance wrote:Well you've all shown me enough to get by as it is for now so many thanks for that! Pdfs and examples always help :wink:
i was going to do a video tutorial but I stutter and pause a lot. I tried once but I think It sounded like the worst hype man ever. "uh...uh...umm..yeah" :oops:

i will give it another shot when i have the time off.

I also realized that Bome's midi translator ( http://www.bome.com/products/miditranslator) would be much inputing sysex messages. You can upload a file, but it's kind of expensive ($77). That is why i went with Midipipe.

Re: How to control the Push LCD text with sysex messages

Posted: Sun Feb 02, 2014 11:38 am
by hoffman2k
Stray made some objects to use MIDI from within MFL too.

http://beatwise.proboards.com/thread/1394?page=1

Edit: Oh.. The Atoi and Itoa objects. Forgot about those :)

Re: How to control the Push LCD text with sysex messages

Posted: Thu Jun 11, 2015 6:31 pm
by gustavo bravetti
Hey Adam, great input on controlling the PUSH display using only MAX, I would like to add that an easy way to "send" sysex from MFL is creating a small patch on Max or standalone then send data from MFL using UDP send/receive, I use it since years and is very reliable, I use it also to send to multiple channels devices from MFL.

Re: How to control the Push LCD text with sysex messages

Posted: Wed Sep 14, 2016 9:30 pm
by Nuzzlet
Could someone provide me an example of a working sysex message that sends simple text of some sort to the display? I can't seem to get this to work. I have spent hours on hours trying things out and just cannot seem to get it right. I am sending Sysex with Midi-Ox, and just want the push to say something as simple as "Hi". I am not spending another hour in frustration over this please help!

Ableton won't give me any info on anything related to the push, nor will Akai. I tried the max pach, and I don't even understand how to run it. I am new to all this, all I really wan't to do is use Sysex to write something cool on the LCD. Please!!