Future Wife


Ableton Push 2 Display & Touchdesigner


Driving the Ableton Push 2 Display with Touchdesigner

Ableton recently released a manual describing the protocols used to drive the Push 2 display (in addition to its buttons, encoders, and lights). It's an interesting read, and gives enough information to control the display with the libusb driver library and some C++. Since Touchdesigner can utilized custom DLLs written in C++, I figured I'd try my hand at building something that would allow Touchdesigner to drive the display.

If you choose to try out any of this code, keep in mind that there are probably bugs in it that I haven't found, so do so at your own risk. I wouldn't recommend using this for mission-critical live projects since C++ CHOPs can crash if they're not carefully built (and I don't consider myself a C++ expert by any means).

I should also note that the manual Ableton released points out that sending the Ableton Push 2 your own made-up frame headers and bulk transfers via libusb could result in you accidentally flashing the Push 2, potentially bricking it. This shouldn't happen with my code since it should only send the display frame header, but if you choose to modify it keep that in mind!

That being said, take a look at the github repository below and feel free to fork it to your heart's content - would love to see what an expert C++ libusb programmer could do to robustify this :)