Syncing a Session Box with an Ableton Push 3
So I'm not actually skilled in Max, but I'm just asking this question because I want to know whether or not it's within the realm of possibility, such that I could teach myself Max enough to build it:
I have an APC40 MkII and an Ableton Push 3, and in an ideal world their Session boxes would be linked, such that I could use the arrow buttons on either device to move them back and forth. This would allow me to use the two controllers as one "super-controller" - the APC40 recording and launching clips and controller faders and sends, while the Push acts as my main keyboard and device controller. That's all I really want.
Isotonik has a device that used to do this, but ever since Live 12 came out it has stopped working. I talked to Darren Cowley personally about this over email (and I know he's a member of this forum), and he simply insisted to me that it was "impossible" to make it work again. My guess is that this is because Push 3 is running a different kind of script that is no longer visible in Live preferences, so it's impossible to get it to tell you where the session box is (much less have it be controlled externally). Or something.
I just want to know - is there absolutely no other way of making this work now, whether in Max or Python or something else? I don't need a super-complicated solution; ideally I'd just have a little Max audio effect that can sit on my master channel (alongside my numerous other utility devices), which is preset to have the APC and Push mirror each other. That's it.
Again, I know I'm a total noob and I'm not asking anyone to build it for me, but it would be nice to know if it's something I could work towards. I've even tried getting ChatGPT to write it for me, but nothing has worked so far.
AFAIK, Push now doesn't use control surface script at all. Push 3 never have used it, and Push 2's control surface scripts are now deprecated. All of the functionalities are built inside Live's code.
I don't think there's a Live API for that session box thing, and it seems even less possible to do with MIDI. But it might be possible to write a control surface script that acts like a real controller, but is actually a virtual device that talks to Push. Unfortunately I don't know a lot about control surface scripts, but it is possible to grab data about Push 3's buttons - [live.object] lets you call "grab_control" function that disables default behavior of each control element (button, pad, encoder, etc) of Push and lets you do whatever you want, and if you want to preserve the default behavior, you can also send sysex message to Push to make it send MIDI messages on User and Live Port simultaneously (Live Port is hidden from Ableton Live, and is used for normal Push operations, User Port is normally for User Mode but if you use dual mode Push sends button presses, pads, and more to User Port even outside of User Mode.)
Ableton has put out a detailed specifications of Push 2 on GitHub, and most of them still applies to Push 3 as well. It won't help you write a script you described, but at least it will help you get inputs from Push, which I think would be necessary.