Grids + Display + Buttons + Encoders to control Ableton Live

Trying to wrap my head around the best way to do this. This is also sort of an educational project, so bare that in mind.

Struggling with the best way to combine the grid with the other hardware (display + buttons + encoders) and then use the combo as a remote device in ableton (using python remote scripts to interface and do stuff).

My initial thought was:

  1. grid plugged into arduino due’s otg usb (use monome host library for communicating), externally powered.

  2. arduino sketch handles i/o (grids, as well as other stuff) and communicates to computer via serial (well serial over usb, via 2nd usb port on due). Mainly via serial.print(), as decoding strings in python is easy.

  3. Python remote scripts (using pyserial to communicate with arduino due) handles interfacing between Live and Hardware. Trickiest part, for me, being the need for threading (say via asyncio, which I find confusing) to be able to poll and update hardware, via ser.read() and ser.write().

The alternative being multiple max for live devices for the various controller functions, however unclear on best way to have the other, non grid hardware work in combo with grid within the patches. Well other than using serialosc for grid, and serial communication with arduino board, which might be enough, although m4l device only approach is a bit limited, may still require python scripting.

Any thoughts?

Well so far I’ve after some brushing up on python (I LOVE PYTHON!!) I’ve begun digging into ableton live remote scripting land. My goal is to write a remote script as described in step 3 above. Its a bit of a no mans land because of the lack of documentation, but there is an extensive framework for writing remote scripts. Below are some of the more popular and useful resources, in case it helps anyone else.

General overview of remote scripting (note: older version of live)

Example project / tutorial-ish
https://forum.ableton.com/viewtopic.php?f=1&t=200513

Ableton python framework unofficial reference:
http://julienbayle.net/AbletonLiveRemoteScripts_Docs/_Framework/frames.html

Live api unofficial reference:
http://julienbayle.net/PythonLiveAPI_documentation/Live9.1.xml

Decompiled remote scripts:

big shout out to Hanz and Julien!

3 Likes

Hi @dillo , curious to know if you could share your progress on that script? Especially step 3 that you described, communication Python remote script -> Arduino and updating hardware. Really difficult to find precise information!