How can I programatically load a Live set?
Old Maxer wrestling with migrating my performance rig to M4L here with a question, one I’m hoping has a simple answer.
My performance consists of discrete songs, with different synths, effects, etc etc. In my old Max rig each song had a separate patch & I had a master patch called "setlist" which loaded and unloaded song patches according to what button I pressed on a midi controller. This allowed me to switch songs without ever going near the computer and worked very well.
Now I’m using Live, a piece of software designed specifically for live performance, and so far I can find no way to replicate this behaviour. The whole system seems designed with the idea that you have one file which corresponds to your entire performance. I DO NOT want to do this – I do not want one colossal file with the 50 or so songs I have ever performed live sitting inside it. I don’t want to have to load this monstrosity every time I want to make a new song. I just want to switch between Live sets without having to click File -> Open on my laptop between each song.
Does anyone have any idea how I can do this? So far my best guess is to make a plugin which uses a shell object to fire an applescript to unload the current set and load the new one…but oh my god that is so filthy, and also I’ve never used applescript in my life.
Any brilliant suggestions gratefully received.
This is the same thing that I’m wrestling with actually. Although I started on Ableton Live and am trying to move all my stuff over to Max.
Unfortunately this is the way live works.
You can’t load up multiple sets (without using multiple versions of live) and there is no way to dynamically load sets.
Also since the program is 32bit it is advised by many users to simply force quit Live and reopen to switch sets since this flushes out the RAM and prevents Live from crashing due to exceeding the 4GB RAM limit.
For me this means I can only really do 45mins to an hour long set with my current set up continuous music. (yes that’s all tracks in a clunky huge live set).
I would say hopefully they will address this in Live 9 but saying that has already got pretty old.
Let me know if you find a solution.
Did you check out the poly~ object’s dynamic loading feature – works great for swapping out instruments and fx. I believe it can be done in m4l. Good luck!
Farfisavox – Wow, the situation is worse than I thought! In 2012 I have to reload my DAW between songs? Maybe the Live manual should say "WARNING, do not attempt to use this software for anything other than minimal techno jams".
mike fonte – Thanks for the suggestion, but even if I can get my effects & instruments dynamically changing between songs I still really want to avoid having all my clips in the same set. I want my scenes to be thing like "verse" and "chorus" not "song 28".
Thanks both for your replies.
Simonbreak, I hear you. One last thought that’s not really a solution, but…I went to an Ableton clinic with’s Beck’s Keyboard Player. He said he kept shortcuts to his Ableton sets, in one folder in his Ableton Browser, and actually just changed changed sets between songs. Not a very exciting answer, I know. I wish Ableton was more performance oriented in that way (like with the ability to hot swap things with midi control!). The one good thing about that approach though, is avoiding the "giant patch syndrome". The bad thing obviously, is the 5-15 sec of dead space in the middle of a performance…awkward!
Thanks Mike, I may just end up resorting to that. Would really rather not touch my computer during the gig but there comes a point where you just have to say "maybe in Live 9…."
A 64bit version of Live might be worth the wait. If what I understand is correct, that there is not really a limit to RAM in the 64bit environment. The days of bouncing tracks, turning off plugins, audio glitching, etc. could be over.
Sorry I’m not offering that much technical help. Just being chatty, ’cause I think about these issues a lot.
I was thinking about building a small "grid-based" looper in Max. A patch that could load loops, play and mute them on the downbeat, with a visual feedback grid, etc. A sorta "Live for Max" concept. I wonder, Farfisavox, if you are playing back synchronized loops now in Max?
Hiya to anybody interested in this post, I actually came up with a solution to this problem!
My solution was to make an M4L plugin which uses a udpsend object to communicate with a very simple server I wrote in Ruby. The server waits for a next, previous or reload command and then uses the shell "open" command to load the requested set from a list of available sets (an, ahem, setlist).
In OS X this seems to work very well, although my sets are not huge & complex beasts like some people’s. You have to wait a few seconds for the set to load but a few seconds gap is acceptable for my purposes. Anyway, if this is useful to anyone please let me know and I will upload it on the forum.
I will be very interested…. Thanx a lot
We’ll all be interested in how this works for you live. Abe has been dinged for this for years; you are certainly not alone.
I am always spooked by having to load new sets, because it breaks the flow for us ambient types. My solution has been to run more than one laptop (also makes for a crash backup), but this is not optimal.
benoit & ztutz, done: http://cycling74.com/forums/topic.php?id=41172
I usually run two instances of Live ("Live" and Live "Copy") and route them through Soundflower, respectively to channels 1-2 and 3-4.
Then I have a little mixer patch (see attachment) which allows me to mix between the two sources. And this works fine. The only uncomfortable thing is that I need each time to switch between windows to open the next live set, and it may take some time and create confusion.
I was looking to a solution like yours, so I can open live sets from the Max interface, I think I’ll just need to implement it in a Max abstraction and it should work, what do you think?
LSka, you can certainly make a simple patch in Max which will load & unload Live sets by sending "open" commands to the shell. However, as far as I can see (on OSX, I don’t know abut Windows) it is impossible to use the shell open command from a Max 4 Live plugin, so you would have to have full Max running at the same time as M4L/Live. I did something similar but using a Ruby program instead of a Max patch, see my post before yours for the link.