M4L: how to control MIDI Takeover modes?
Q: is it possible to set Ableton Live's MIDI Takeover mode with M4L?
I have found this topic here: https://cycling74.com/forums/midi-takeover/
Yet this doesn't apply to Ableton's Takeover modes but is a work-around which perhaps isn't necessary when using M4L. Hope I am not double-posting.
I am quite new to M4L so please excuse my inexperience here and there.
I have been looking at the Live Object Model reference (LOM; https://cycling74.com/docs/max5/refpages/m4l-ref/m4l_live_object_model.html#bool) to find out whether it is possible to set the way parameters respond to incoming controller values which they are controlled by. In Ableton Live's MIDI/Sync prefs one can set the »Takeover mode« to either
1) »None« — parameter jumps to any incoming value from the assigned controller
2) »Pickup« — parameter remains unchanged until the incoming value matches that of the parameter, a smooth takeover; and
3) »Value Scaling« — parameter changes proportionally to the controller movement before max/mins are reached
That's pretty good, though having assigned multiple parameters to one controller on different banks/channels/presets etc. it is sometimes very important to pickup parameters at their current position before they change, on the other hand however this can sometimes cause mayhem too when a value needs to be changed quickly in a performance but because the controller perhaps hasn't reached the parameter's current position, it ends up not changing anything.
The solution must therefore be to define the algorithm with one's control surface or some other command without having to open the preferences (imagine a simple shift-button which temporarily enables takeover-mode or have every assigned controller function in their own way according to one's need).
Looking at the LOM I was unable to find out whether this can be influenced by Max or not — does anyone have an angle on this?
help much, much appreciated!
Not currently possible I don't think. You can always out a request in to c74 to see if it can be added
thanks LEE for the prompt reply. will see how I can conjure up a work-around for the time being.
Does perhaps anyone know how the algorithm works inside Ableton? This could provide ideas on how to hack it. Cheers for now!
I have found a solution to this.
The patch was made in M4L with JS MIDI I/O so before I paste it here I would probably have to make it Max standalone compatible (with normal ctlin/out etc.).
The controller data is being sent to the parameter in Ableton, unless I hold down an assigned Shift button on the control surface —> this then grabs the previously stored or running automation of the linked parameter in Live and as soon as the controller data matches or exceeds the parameter value the normal data routing is reactivated and automation in Ableton temporarily deactivated when the controller takes over.
An adapted method could enable further takeover modes such as scaling until max/mins are reached by the parameter — to be employed whenever wished during a performance.
I will paste the patch anon.