Can a max patch control transport of ableton?
I am considering purchasing Ableton and Max4live and this is one of the clinchers… Specifically I would be looking to send to markers and looping various sections.
(my previous post must have been to the wrong forum, http://cycling74.com/forums/topic.php?id=28029#post-139067 )
Hope you can help, Thanks
couldn’t find anything directly about that in the docs:
if it were possible it would be here:
i might try the "Song" properties(‘current_song_time’ etc. and it looks like looping is in there, too, so you might not do markers, but rather reset the loop and current positionings creatively…)
maybe you could get a demo and try it all out?
or hopefully someone with more experience with that particular technique will answer, as i’m a bit too lazy/busy right now to try it myself…
(it’s hard staying ‘Noob4Life’ but i do my best ;-) )
Thanks Mr Noob4life – interestingly it may be better to use Reaper and somehow figure out how to send messages to the API.
Although where i start is another series of posts altogether, albeit on the cockos forum (great title!)
‘It’s tricky to rock a rhyme!’
and please feel free to just call me ‘noob’(that goes 4 everyone!) :)
(or ‘Mr.&Mrs. Noob’ as I choose to remain ‘unaffiliated’ in a web environment ;)
to rock a rhyme that’s right on time.
Hence the current project!
Consider it done Noob.
To answer the original question: No, it seems you can’t.
There is a transport object in Max which can be used to control the global transport. Yet when I try to control a rewire slave it you seemingly need to utilize the rewire~ object and send an int into its left inlet to start the (then) so called ‘rewire transport’.
Fun thing is that the reference guide for transport (http://cycling74.com/docs/max5/refpages/max-ref/transport.html) does imply this to be possible.
(afaik starting a master transport on a rewire master also starts the transports on the slaves, not so here).
Anyway; when using the examples there in M4L it does not start Live’s transport. Making me assume right now that this isn’t possible.
And as usual when I’m relaxing with a beer I’m talking before testing..
Ok: the real answer to the original question is: "yes you can", sorry for the confusion.
With the "is_playing" property of the Song class you can check the state of Live’s transport (‘observable’) and trigger it (‘set’).
Also see: http://cycling74.com/docs/max5/refpages/m4l-ref/m4l_live_object_model.html#Song (check the property list).
As for me: I need some sleep that that I start talking some common sense again :P
You can get it to start playing and you can trigger any specific loops you want. So given a quantisation, if say you have a beat tracker in max doing a pulse, a message could trigger your loop on the next pulse point at the required tempo.
What I’ve not seen is any control over Live’s warp markers so althought this may be possible(?) I doubt it is at present, but neither would it be so useful to you.
Re beat tracking – I’ve done classes of the comb filter beat tracker and will post up to you later this week after porting into a max object.
In order to control Live, you use a live object, observe a property and then send a message. The one to fire clips is weird, you need to send "set fire" message not just "fire"
try looking in Live->Library->Lessons->clipOperations.amxd if you get hold of a copy.
Wow – thanks for all the help. This is way over my head the the moment as I have yet to get my hands dirty with MAX4Live, but I’ll hand the the dissertation in and then I am free to crack on. Will report in as soon as possible with a little more than confused thanks…
there is an example in extras->M4L Live Api Abstraction Overview. Here it is M4L.api.ToggleTransport in the Global area.
thanks johannes – looking forward to trying it out
And the answer is … a maxpatch included in the system, namely:
Nothing to it gentlemen,,,
and to answer to the second part of the question, you can also observe and get to cues with m4l api objects.
I believe there are some things you can midimap to that you can’t get through the live API, for example the pitch of a clip. It’s on my to do list to work on: create a virtual midi out from Max, midi map a CC to it and so use this workaround to control certain parameters from Max that you can’t get to through the API. Not pretty but it works.
Thanks for your help all – I have finally had some time to put together the patch in this post: http://cycling74.com/forums/topic/tempo-control-patch-for-your-perusal/
It actually works!
I should mention that looping functions are not yet included, but one step at a time.