Control Surface "MaxForLive" ?
Hello,
While looking at the list of Control Surface in Ableton preferences (Link/MIDI -> Control Surface) I found out there is a "MaxForLive" control surface.
I can not find any documentation online about what possibilities this brings.
Maybe I am not using the right search keywords?
Would anyone know what it allows?
Would anybody know how, as a developer, how I can leverage this "type" of control surface?
I know about developing Instrument and Midi/Audio effect devices with max for live.
But what about a control surface?
Thanks!
I don't know if this is helpful to you, but it might be... In Ableton's parlance, a "control surface" is actually a script in Python that runs under the control surface plugin model and can interact with Ableton using it's API, which is really the same as the Max4Live API, just in Python. This plugin layer runs in a low priority thread in Live, handling input from midi controllers but then doing stuff to live directly in Python (arming tracks, selecting tracks, etc etc), without needing any kind of midi mapping from the end user. The document model is the same as the Max4Live API and there are pretty mych Python functions corresponding to the Max4Live objects. Ableton doesn't document this API to regular users, presumably because they don't want to have to support it and have chosen to support it through Max instead of Python for normal users. But they do for hardware developers, and when you see a control surface for a given controller, that's all it actually is: a Python script. To Ableton's credit however, they also don't tell regular users not to use the Python API, and they don't issue take downs or anything to sites that publish how to make these, so long as it's non-commercial. If you do some google hunting, you can find blog posts detailing the Python API and even Python sources for decompiled control surfaces. It's pretty fun really, I made control surface scripts in Python for doing live techno and was able to make my cheap novation generic USB midi devices be just as powerful as the dedicated fancy ones, and work exactly the way I wanted. It would be cool if they officially supported this for end users, but being in the software business myself, I can totally understand not wanting to be on the hook for support and API stability for the tiny fringe of users that want that kind of stuff.
HTH!
Here's a video from Stray that might give you some insights:
After watching the video VALIUMDUPEUPLE recommended I thought it might be helpful to have the link to this video here as it goes into more details on implementation:
I am also struggling with the 'maxforlive' control surface.
I set up the 'maxforlive' control surface with midi in and out set to my control surface.
I'd like to monitor and manipulate the midi that my controller is sending within a max patch. I think the 'grab_midi' function is what I should be looking at, but I can't wrap my head around how to observe the midi.
Here's my non-working code:
If anyone has any pointers, I'd be grateful.
Thank you!
Try this, with that script you have to register the control first then grab/get. There's a confirmed bug with Ableton support about the way the controls are released so you need a work around which I haven't tested but this should be one way to get it working. I haven't tested this patch so if its wonky the problems with the "property none" message probably. Should get you started at least.