Controlling Live timelines in real-time from Max
Hi,
I hope this is possible. I'm wondering if you can send a list of midi (note-on, duration, etc.) values from Max to Live to effect the timeline of a given instrument. In other words, I want to know if it's possible to make sequences Max, group them as lists of values, and route them in real-time to Live via M4L, without having to resort to a non-real time method such as recording. Is this too advanced a feature? Is it even possible?
Thank you!
like recording midi coming from a maxpatch into a midi clip in live ?
Yes, but instead of having to record it, I'm looking for a way to input sequences of notes into a midi track in real-time, as if I was using the pen tool in the piano roll view of the sequencer from Live's UI. This means that it would affect the midi clip in real-time but as a whole, instead of relying on the record function which is linear and dependent of time (and timing of notes inputed). Basically, I'm trying to find a way to make a complex midi sequence from Max and relay it to a midi clip in Live, and being able to modify parts of the sequence in Max which would then make a change to that sequence in Live. One-way entanglement. hope I've made myself clear.
Perhaps I'm not explaining myself with sufficient clarity. I think the problem could be simplified as this: Can you send an array, or list, of MIDI values to Live, and insert them into a track's MIDI clip?
sending midi with recording enabled into a midi clip will enable you to send in realtime any sequence coming from any synth be it max or any other piece of sofware or hardware. Of course this is linear and timebased as you mention.
basically you want to create midi events to be triggered in a non-linear future.
May i ask what your max patch is doing/creating? how are your arrays of midi events generated and how do you want to play them in Live ? this will probably lead you to the answer you are looking for .
One way of doing it is to send your data to a [live.step] object which can receive midi data in list format
Thaks Karrlo for your insights. I'm going to explain further: I have created a multi-track sequencer in Max which I process with different algorithms. This sequencer is made of the classic items: counter, line, multislider.
I'm actually making a whole song with this sequencer, and thus, the sequencer has grown too big (it actually is a fairly big patch), because I'm not relying on loops (imagine how many 16-step loops are in a regular song). Now it is getting impractical to work like this, and I think that if I could send these whole sequencer lists (which are nothing more than note-on and velocities) to Live, I would have the flexibility of a real timeline to work both on a macro and micro-scale. I would still like to work the sequence blueprints from Max and adjust on each side when necessary.
So, in the end I just want to have an identical copy of my multislider sequences to appear in real-time in a Live MIDI clip. If I modify a step, it should appear in the Live clip immediately, and without having to use the record function.
Now I see that the live.step object works similarly. If I mimic the list syntax of this object I can perhaps accomplish my goal. Now the problem is, how do I connect to Live? Is this a M4L instrument or effect? I hate these kinds of questions, which you can learn spending some time researching; but if I do it is because I'm on a very serious deadline. Thanks.
Thing is, if you have a step sequencer iterating through a multislider, yet in some manner want the values of the multislider to get sent to Live, then you'll have to somehow preempt the processing of the sequencer itself...
If you think about it it you somehow need to calculate all the functions of your realtime sequencer down into a non-realtime process; I don't even think we can tell you if that's possible before seeing it, I suspect it is, but I don't know.
There definitely is support for setting/getting individual midi notes in a given clip in Live with maxforlive, though, so that's good.
Wetterberg: I think I'm not explaining myself clearly enough, perhaps the problem lies in my use of the real-time concept. Suppose I have a multislider with 16 sliders and two values: note-on, and note-off. The 16 sliders represent each step of a sequence. Basically, I just want to find a way to set individual MIDI notes in a given clip in Live from Max. Kind of if you had 2 multisliders connected to each other. If I modify one, the other will also display these changes. Only this time, the second multislider would be a Live MIDI clip.
Natural add-ones would be: modify the number of sliders and immediately modify the length of the Live clip. Or, set a loop start and end values from Max to Live.
BTW, which objects or elements in Live should I look at in order to set the MIDI notes of a given clip, in a step-linear fashion?
There are multiple ways to connect with Live, MIDI, OSC.
i am still a little puzzled why you don't want to record your incoming MIDI since you want your notes printed in a MIDI clip ?
i guess you want to control the length of a loop, overwriting midi notes, changing durations on the fly etc..
did you check the M4L monosequencer in Live's the max midi effects folder ? did you see the tutorial videos made on the instrument ? i think it can answer many of your issues. and maybe you'll end up using just this instrument. it is very versatile.
the [m4l.api.*] group of abstractions have several examples of processing midi notes directly in the clip.
i guess you want to control the length of a loop, overwriting midi notes, changing durations on the fly etc..
Exactly. I'm gonna check the monosequencer since none of the M4L.api abstractions handle this issue directly or in the automated fashion that I expect for on-the-fly editing, and without having to constantly select the clips to be set with new MIDI info. Thank you both!
... but the monosequencer doesn't operate directly on the clip data, which is what you wanted, right?
Strange, my last post got deleted. Anyhow, I just finished playing a bit with the Monosequencer and you're right, it seems to operate on a different layer than the clip data. I guess I'll have to dig deeper than I thought. The whole idea was to edit sequences on the fly from 4 different multisliders and have that data automatically sent as MIDI to 4 pitch values in a clip in Live.
I will have to see if this works sometime this week, because this seems to be more than an staying up late affair. At least I wouldn't bet on it.
EDIT:
Nevermind, I worked it out.