Browse and launch clip within a track with a knob in Ableton Live
Hi,
I'm using Ableton Live 9 with Max for Live.
I'm looking for creating a max patch witch can alow me to browse and launch clips within a track with a infinite encoder knob.
It would be basicly the same thing than a launchpad but just with one knob per track.
Do you think it is possible with Max/MSP or Max for Live ? If yes, may you guide me ?
Regards
Definitely possible, I do something similar with my Lemur. Basically you need to set up your encoder to increment/decrement a counter that will specify the clip slot. I presume you have pushable encoders in which case all you have to do then is set up the push to call a fire function.
The one spanner in the works is the Ableton Live MIDI mapping scheme but there are definitely ways around that. What kind of controller is it that you're using?
How much experience with Max/M4L do you have?
Hello,
Great to read that it is possible. I use Allen&Heath Xone K2 as controllers, upper encoder is infinite. I want use play on select, no fire function by buton but [toggle / legato] on each clip.
I'm a real beginner but I'm not affraid about framework programmation.
Is it possible with just Max for Live (no MSP) ?
Is the patch will be on each track ? or just on the master track, or a controller script ?
What type of "model" should I begin with ?
Sorry for the load of questions, it will be my first "real" patch.
Right ok that all sounds fine apart from switching legato on and off as I don't think that's accessible through the Live API. You won't need any MSP (although MSP patching isn't any more difficult than normal patching really and in some ways can be easier as you don't need to worry about message ordering.)
With regards to actually making the patch you have two options. One create a patch with a live dial that you then map to your controller. The is live dial will school through clip slots but the downside is that you will have a maximum on the clip slots you can access and you wouldn't be able to dynamically change the number of slots plus there's no guarantee that a "click" on your encoder would correspond to one clip slot.
A better approach would be to intercept the MIDI output of the controller (I'm not familiar with the K2 but I presume you can set it up to send inc/dec MIDI commands) thus would be slightly more complicated to setup though.
Objects you want to have a look at are [live.object] (and the Live Object Model) [counter] and [midiparse]
Thanks a lot, I'm going to look at that objects.
For legato, I will manually switch all the clip on and will not use the clic button, only the rotary to switch from clip to clip within a track.
I'll mabye try the first option just because it actualy sound easyer for me. In that case I will duplicate the patch in each track and map the live dial to the rotary encoders, right ?
Ok I would recommend using the click to launch clips rather than just selecting it as scrolling through clips will cause them all to be triggered which could possibly cause problems but it should be ok.
In terms of patching you want something along the lines of [live.dial] -> (path this_device canonical_parent clip_slots $1) -> [live.path] -> [t b l] the l outlet should be connected to the right hand inlet of a [live.object] and the b outlet to a message box saying "call fire" and this is connected to the left hand inlet of the same [live.object]
I hope that makes sense I'm not by my computer just now but I could knock up an example patch if you like? If you have any questions about anything I've said don't hesitate to ask.
Sorry I've just realised you need a [deferlow] after the [live.path] that's what I get for trying to patch in my head lol.
Wahoo, it works with :
8 live.dial
1 M4L.api.FireSelectedClip
1 M4L.api.SetSelectedSceneIndex
8 messages to trigger the good track
1 M4L.api.SetSelectedTrackIndex
Still some little improvments but it is done.
Thanks again for your insights
Doesn't that mean that the scene you fire the clips in is selected for all tracks rather than being separate for each?
If I anderstand well, yes, the fired clip is in the cross of track / scene, always, but each track remember at wich scene it was thanks to the live.dial per track
I go an issue due to the rotary encoder, they have "guts" that is about half a number (it's about 2 guts to go from 1 to 2) so it retrigger the clip ... I must now fine a way to fire the clip only if the value change.
Ah right yes that would work but it may not be the best solution. Mind you if it works and your satisfied there's no problem.
Inserting a [change] object after each dial should solve your retriggering problem.
Yes, surely not the best way, but I'm already happy to have fund a way to do it, thanks to you.
I just tried the [change] but it don't work because the number don't change at every guts and every guts retrigger (even if that don't make the number change)
I'll try to make it better.
nice help, thanks
ps : yes the [change] works, I didn't put it in the good path ;)
Here I'm for now :
Hi,
Ive tried your patch on a Drum Rack track, which the clip toggling seems to be working perfect the only issue is om gettin no audio? When i switch your Patch of the audio comes thru..
Pss super beginner when it comes to max