Using M4L for interactions with MIDI Controllers like Launchpad/APC40.

JRHeaton's icon

Is there a part of the API/LOM for properly handling input/output messages with these devices? I see under ControlSurface basically nothing, yet on the LOM graph there are things like ButtonMatrix which I can't find out how to properly access.

Or, is the proper way to basically log incoming midi messages from the controller, save them, and do it all manually?

Example question: How would I go about figuring out how to receive messages of me hitting the track arm buttons on my APC40?

And just for the record, my intention is to use the clip launch matrix on the APC40 as note input as you can in user1 mode on the Launchpad, but I can't even fathom how to go about receiving those events by using the Live Object Model/API.

Lee's icon
JuanSOLO's icon
Max Patch
Copy patch and select New From Clipboard in Max.

When working on an APC40 patch I use this handy piece of patching I got form Darren Cowley.
I put it in the patch I am working on and select the APC40 as the control surface.
From there I use the other 2 menus for "controls" and "components"
This out puts the paths messages to access these controls and components id's through the live.path.

Once I have the control number, or component number, I use the LiveAPI Explorer to see what calls are available.
http://www.maxforlive.com/library/device/331/live-api-explorer

in the LiveAPI Explorer I choose
control_surfaces
components or controls
then the number I want to know about.
At the bottom right you will see what kind of calls to send etc.

Also I have an APC40 MatrixModes patch posted here.
http://www.maxforlive.com/library/device/1420/apc40-matrix-modes

When you open it up you will see a sub patcher called 'p APC40_MATRIX'
Inside that, there are little b patcher boxes called 'APC40 Matrix Button,' each one is identical on the inside.
You can look in there to see what kind of calls I am using to do different things with LED's etc.

That said, my MatrixModes patch is very flexible, cheap on CPU, you can use multiple instances each doing different things.
There's really no need to build yourself another "note mode" unless you really want to, OR if you can help me do it better, that would be GREAT!