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
Why not get Max for Live instead so you'll get full(er) control over the stuff you can do in Live?
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.
any idea anyone? :(
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.
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
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.
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" : "
"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" : "
"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" : [ ]
}
}
]
}