Your shopping cart is empty.

Creating a "free" mapping for custom devices

Submitted by pag on Fri, 01/18/2019 - 09:01
Control Surface Studio User

Ok, so here is my problem : I have created a custom MIDI Controller (you can check it here :, it's a pedal board for Live's looper).

It connects to a M4L device to "speak" to Live, through Live 10's MaxForLive Control Surface Script (the M4L patch "grabs" 10 different CCs (CC10 to CC20) in order to communicate with the controller).

In order to create a CSS Script that works with my device, I have to assign those 10 CCs to "fake" functions that are armless, so that I can grab them. For instance, I have assigned CC10 to Volume on Track 1000, CC11 is Pan on Track 1000, and so on...
So, my question is : would it be possible to have a new type of mapping that could be used freely by the user. A kind of M4L mapping that is actually mapped to nothing, but only creates a "channel" for a controller to speak to a M4L device.

Does that make sense ?

5 Responses


John Carney
Forum Admin

I'm not really sure what you mean.
Do you want to add mappings that don't actually do anything in Live? if so I'm not sure how that would 'speak to a M4L device'.

Control Surface Studio User

Within Max For Live, you can "grab" controls from Control Surfaces.
For instance, I can "grab" the first knob from Push2 (which is CC71), and make it control whatever I want within my M4L device. When I'm done, I just "release" it, and it goes back to normal behavior.

Say I create my own Arduino based controller, and a Max For Live device it sends data to, on a set of CCs. I would like to have a Script that creates all these CC mappings (but that are actually not mapped to anything), and then the M4L device would assign them to whatever I want.
That way I know my controller will "speak" to the M4L patch, and only to that.

Is that clearer now ?

John Carney
Forum Admin

A little clearer but I'm not sure how this would work yet.
If you create a script in Control Surface Studio with just normal mappings, are you able to do what you need but with the normal mapping attached also.
Example, if you create 10 let's say Volume mappings and set them to all of the different CCs you require. Can you further assign them with the M4L Device? - but they also control the volumes.

Control Surface Studio User

If CC1 to 10 are mapped to Volume of tracks 1 to 10 and I "grab" them within the m4l device, moving them will no longer change the Volumes (until I "release" these CCs, which is another function I can call within the device).
However, if my controller is connected, but the m4l device is not loaded, the CCs will not be grabbed, and they will control the Volume.

So let's say my Arduino controller is meant to control a m4l device that produces video effects, and I use a joystick to send MIDI data to the m4l patch. I'm going to create a few mappings in order to get the MIDI from the joystick, but they are just meant to control specific things inside the m4l device. I don't want them to control other parameters in Live.
That's why I would need to be able to create some kind of "open" mapping.
I don't even know if such a thing is possible.

John Carney
Forum Admin

I don't think this would be possible with CSS.
In order to avoid the 'duplicate mapping' issue which our Web App was dogged with, CSS doesn't actually attach controls to functions inside Ableton. Each time you turn/press/etc a button or knob, it updates the value of a function which keeps controls outside of Live's framework restrictions.
So using this method, controls are never actually attached to mappings in Ableton.