Enabling/Disabling Ableton Live tracks

Aug 9, 2012 at 3:23pm

Enabling/Disabling Ableton Live tracks

Greetings,

I’m working in a patch which is sending midi notes to Ableton Live synthetizers. Currently I’m just using a midiout set to channel “From Max 1″ and manually switching in Ableton the ‘armed’ track whenever I want my patch to sound through one synth or the other. Thing is, I would like to be able to change the selected Synth from my Max interface without having to go to Live’s window, how is this done? Do I have to create extra channels?

Thanks in advance

#63920
Aug 10, 2012 at 5:16am

Why not get Max for Live instead so you’ll get full(er) control over the stuff you can do in Live?

#230509
Aug 10, 2012 at 1:20pm

I have max for live but I don’t think it is made for working with big patches (perhaps I’m wrong), I’m sending this midi values from quite the patch, not just a simple sequencer.

#230510
Aug 13, 2012 at 2:36am

any idea anyone? :(

#230511
Aug 13, 2012 at 9:26am

Put the synthesizers on different Live tracks and set midi input to different midi channels.
Then you can select the synth by sending on the corresponding midi channel.

#230512
Aug 13, 2012 at 12:58pm

Thank you broc,

I figured that’d be the way, but I’m not sure how to create new channels. However, I think I just found how “;#SM create outport;”, although I still have one question though: With that message, the input arguments are

and respectively, what do I have to put in drivername? Coreaudio (I’m in mac OSX)? Whats the midi channel limit or recomended amount?

thanks again

#230513
Aug 13, 2012 at 4:59pm

Remember that a single midi port like “from MaxMSP 1″ can send on 16 different channels. So you don’t need other ports unless you want to use more than 16 synths.

#230514
Aug 22, 2012 at 8:18am

If your patch is too big / cumbersome to drop into M4L, you could try a combo solution – your patch send some data to a simple M4L device that handles the record-enable stuff. Have a look at the Live Object Model reference and [live.path] and [live.object]. You can use a “set arm 0/1″ message to remotely arm/disarm tracks. A slick way to interface this from your main Max patch is to send osc messages via {udpsend} that get parsed out in the M4L device with a [udpreceive]. This way you can send messages like “track 1 arm 1″. Otherwise you could do it with MIDI i suppose, but that’s much more tedious.


{
"boxes" : [ {
"box" : {
"maxclass" : "comment",
"text" : "< - use these messages to toggle arm",
"frgb" : [ 0.027451, 0.027451, 0.027451, 1.0 ],
"patching_rect" : [ 377.0, 366.0, 190.0, 18.0 ],
"id" : "obj-219",
"fontname" : "Arial Bold",
"numinlets" : 1,
"numoutlets" : 0,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "comment",
"text" : "< - select a live track by number",
"frgb" : [ 0.027451, 0.027451, 0.027451, 1.0 ],
"patching_rect" : [ 270.0, 279.0, 167.0, 18.0 ],
"id" : "obj-218",
"fontname" : "Arial Bold",
"numinlets" : 1,
"numoutlets" : 0,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "message",
"text" : "set arm 0",
"outlettype" : [ "" ],
"patching_rect" : [ 316.0, 357.0, 54.0, 16.0 ],
"id" : "obj-87",
"fontname" : "Arial Bold",
"numinlets" : 2,
"numoutlets" : 1,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "live.object",
"outlettype" : [ "" ],
"patching_rect" : [ 191.0, 432.0, 60.0, 18.0 ],
"id" : "obj-211",
"fontname" : "Arial Bold",
"color" : [ 0.984314, 0.819608, 0.05098, 1.0 ],
"numinlets" : 2,
"numoutlets" : 1,
"fontsize" : 10.0,
"saved_object_attributes" : {
"_persistence" : 0
}

}

}
, {
"box" : {
"maxclass" : "message",
"text" : "set arm 1",
"outlettype" : [ "" ],
"patching_rect" : [ 317.0, 379.0, 54.0, 16.0 ],
"id" : "obj-212",
"fontname" : "Arial Bold",
"numinlets" : 2,
"numoutlets" : 1,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "live.path",
"outlettype" : [ "", "", "" ],
"patching_rect" : [ 216.0, 397.0, 51.0, 18.0 ],
"id" : "obj-215",
"fontname" : "Arial Bold",
"color" : [ 0.984314, 0.819608, 0.05098, 1.0 ],
"numinlets" : 1,
"numoutlets" : 3,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "number",
"outlettype" : [ "int", "bang" ],
"patching_rect" : [ 214.0, 278.0, 50.0, 18.0 ],
"id" : "obj-216",
"fontname" : "Arial Bold",
"numinlets" : 1,
"numoutlets" : 2,
"fontsize" : 10.0
}

}
, {
"box" : {
"maxclass" : "message",
"text" : "goto live_set tracks $1",
"outlettype" : [ "" ],
"patching_rect" : [ 215.0, 311.0, 118.0, 16.0 ],
"id" : "obj-217",
"fontname" : "Arial Bold",
"numinlets" : 2,
"numoutlets" : 1,
"fontsize" : 10.0
}

}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-216", 0 ],
"destination" : [ "obj-217", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-212", 0 ],
"destination" : [ "obj-211", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-87", 0 ],
"destination" : [ "obj-211", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-217", 0 ],
"destination" : [ "obj-215", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-215", 1 ],
"destination" : [ "obj-211", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
]
}

#230515
Aug 22, 2012 at 8:23am

Doh!!! Excuse the sloppy code pasting up there… Let's try this again with an image this time. Just create a new Max MIDI Device in your Live session and reconstruct this simple patch to see how to drive arm / disarm using Live API.

[attachment=201925,4323]

Attachments:
  1. armtracks.png
#230516

You must be logged in to reply to this topic.