Using a gamepad as a Hardware Control Surface in Ableton Live.

Dylan Perez's icon

I am new to Max for Live, Been searching around for a while through old forum posts, tutorials, youtube videos, etc and so far haven't come across anything that actually implements a solution to the following problem:

I've been trying to figure out a way to use a microsoft xbox wireless controller for pc as a control surface for Ableton Live 11 (Suite). For clarity when I say a control surface, what I mean is using it to activate controls in Ableton Live that you would normally map to midi cc or computer keyboard, I do not mean using the controller to play a synth plugin through a Max for Live script.

I've been able to find a multitude of examples on how to use the controller as a midi instrument to play a synth through Max, I have not been able to find a single example on Windows of anyone being able to use the controller to actually control Live's UI.

The issue I'm personally running into is this: While I can easily get the controller connected and transmitting data into a Max patch, I have not found a way to use that data to control UI parameters.

Even after filtering the button presses, and converting the data messages into the correct midi cc messages, and passing those into midiout in a max patch, they have no effect on Live's UI.

I believe the issue here is that in order to use midi cc to control Live, you have to setup a control surface and here is our first major issue - there is no control surface for an Xbox Controller.

So it seems there is a simple solution: Create a control surface script.

Then we run into the second problem, even if we have a control surface script, when we go into Live's preferences to assign it, there is no way to select the xbox controller as input or output for it, because Live doesn't recognize the xbox controller at all (I imagine because it isn't a midi device by default).

Can any of you point me in the right direction to resolving this?

Source Audio's icon

you mentioned all problems allready.
I see 2 options as non live user.
1 make max app that acts as xbox hid to midi and create c.surface script
you'll need some virtual midi to link both apps in windows.
2 make max4live device to receive xbox and control what you want
using usual LOM scripting etc