Tutorial: MAX For Live Clips

 

This tutorial will introduce you to the capabilities that Max for Live provides in terms of performing actions or receiving input on clips. In addition, there is a short tutorial on using the send and receive object in MAX. As always, the patch that was created for this tutorial is available on the forums in the Tutorial area. Check out the video after the jump

Max For Live Clips tutorial from max4live on Vimeo.

 

 

Your rating: None Average: 5 (3 votes)
xpm
Offline
Joined: 09/28/2009
Nice, glad to know we're

Nice, glad to know we're gonna have some decent control over clips!
I have one question though, is it possible to set the clip start rather than loop start within m4l? I have some ideas about using m4l extensivley with my monome, and would really find that function to be important.

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
when a clip is not looped it

when a clip is not looped it loop_start returns clip_start and the same for loop_end.

dlf
Offline
Joined: 10/06/2009
patch tutorial

sorry, i can't seem to find this patch in the tutorials area … could you point a link ? cheers, g.

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
Sorry... I meant to post it

Sorry... I meant to post it before..

Here is the link

http://www.max4live.info/content/tutorial-max-live-clips-0

rpaske
Offline
Joined: 09/28/2009
Jumping around within a clip

Thanks for the great tutorial, Mike - very informative. From what you said a couple days ago over on the Beta Discussion Board I assume that it's still not possible to get a clip's current playing position. I also assume that this means that the current playing position can't be set either. Both functions would be very useful for what I'd like to do. For example, I'd like to have an 8-bar MIDI looping pattern within a clip of let's say 16 bars. The first 8 bars would be the main looping part and the 8 bars after that would contain 1 or 2-bar variations on that looping pattern - fills if you will. I'd like to be able to jump out of the main 8-bar loop on an exact bar boundary to a 1 or 2-bar variation, and then jump back into the main 8-bar loop, also on an exact bar boundary. It would seem that with "get_clip_position" and "set_clip_position" this would be possible. I could probably create a workaround by jumping out of one Live channel into another and back again but I like the idea of keeping all of the material in a single clip.

Any thoughts on the feasibility of this idea?

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
You can get the current

You can get the current global playing position from the metro object. This will give you your global tempo. I was playing around with the idea of triggering a metro object when you trigger a clip. You could then use the observe loop_jump to tell you when the clip has restarted which in turn you would restart the clip metro. You can then perform various action on the timing from the clip metro in order to get different divisions of time. I hope this makes sense. IT's kind of a work around, but i think it will work. I keep meaning to create a demo of that theory, but other things get in the way. Maybe I will play with it this weekend and post a patch of my findings. It's something that is critical for a lot of things I do with M4L too....

rpaske
Offline
Joined: 09/28/2009
Current Play position with metro

Thanks, Mike. Since my application would only need to know exact bar boundaries would it work to use transport to get the exact bar-beat-tick position and then determine the position within the clip of a pre-determined length from division by that pre-determined clip length? For example, if an 8-bar loop were playing at transport position bar 64-beat 1-tick 1, the clip would be at 64/8 or bar 8-beat 1-tick 1. If that is known then a bit of code could cause a jump out for one bar to to clip position bar 11-beat 1-tick 1 and then back to clip position bar 1-beat 1-tick 1 which would correspond to transport bar 65-beat 1-tick 1. If this would work then I could jump out of my 8-bar loops to 1 or 2-bar fills whenever desired by a footswitch press or whatever.

Btw, I've been using Live for the last 5 years but haven't done any Max programming since 1994 so I'm just getting re-acclimated to the rigor involved. ;)

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
The problem with using master

The problem with using master tempo without creating another metro that starts with a clip is that there is no guarantee that the master tempo has not started before the clip has. Remember you can start the transport at anytime, even without launching a clip. That is why i recommend starting a metro and then dividing that metro into the various divisions that you need. Another option, if you don't care about the current playing position in a clip is just to set the loop_start and/or loop_end to move to a specific part in a clip. This method does not care about current playing position and will just jump to a finite position in the clip. I will definitely put together some examples. I just got the Launchpad in yesterday and i need to demo some M4L patches, so i will make that part of it.

Mike

rpaske
Offline
Joined: 09/28/2009
transport/metro

Thanks for your response. I see your point regarding the potential problem of the transport not being in sync with a clip start time, however my method of using Live is to set up scenes containing sections of a song which I advance with a footswitch. For example I might have an 8-bar looping intro which I can play as long as desired before footswitching into the next scene which might be a 32-bar AABA looping structure. This section could be followed by an 8-bar looping outro. I set it so that I can click anywhere in the last bar of a section and Live will move to the next section at the next bar line. In this scenario I start the song by hitting the footswitch on Scene 1 which always contains multiple clips across a number of channels (tracks). The transport starts as soon as I hit the footswitch. I can then footswitch my way through the song from there. This way I can keep both hands on my synth keyboard.

I like the idea of just moving loop_start to jump in and out of my main looping sections and my fill bars.

Btw, after I typed my previous message I realized that I'll need to use a modulo division by 8 and use the remainder to determine the number of the current bar in an 8-bar phrase.

I look forward to seeing what you come up with metro. Thanks again.

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
Although I haven't tried

Although I haven't tried it... You can set cue points in the song and then observe them and jump to them. That may work for you.

rpaske
Offline
Joined: 09/28/2009
Jumping to Cue points

Setting cue points, observing, and then jumping to them is another good idea to try. Right now I'm still working on using MFL to improvise within 8-bar clips based upon the notes contained in those clips. So far, so good. When I reach an acceptable plateau with this first round of endeavor I'll tie it off and move on to the jumping around within the clips idea. My concept here is to allow MFL to improvise most of the time (and I'll improvise with it) but then to play certain fills whenever I feel the need for pre-composed parts to be heard. MFL provides a means to do this kind of thing within Live, a very exciting prospect indeed.

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
sounds like you are doing

sounds like you are doing some interesting stuff. I can't wait to see what you come up with.

rpaske
Offline
Joined: 09/28/2009
Well, it's not ready for

Well, my improvising accompanist isn't ready for prime time yet but I'll keep you posted as it evolves.

ytsek (not verified)
color_index

Hi,

When I try get color_index I get an error no property called 'color_index'
All other gets work fine. The color_index is the one I'm interested in the most at the moment. Any ideas?

Thank you.

mchenetz's picture
mchenetz
Offline
Joined: 09/17/2009
Can you post the patch in the forums under M4L programming?

IF you select the contents of the patch and then go to edit-> copy compressed and paste it into a topic on the M4L programming forum then i can take a look at it and then comment. There could be many reasons. I would love to help you out.

ytsek (not verified)
Thanks for your help. But I

Thanks for your help. But I found the cause.
The developers removed color_index. There is now a property color with a RGB value.
http://forum.ableton.com/viewtopic.php?f=35&t=126725

Should have search the forum before asking here.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Lines and paragraphs break automatically.
  • You may insert videos with [video:URL]

More information about formatting options