Non-linear Ableton sync (DJing your Live tracks)

kcoul's icon

This is an idea I've wanted to try for a long time and now want to try and tackle.

It works like this:
- You have two laptops each running a copy of Ableton
- You have a single controller like an Akai APC40 that is connected to one laptop, but the two laptops are connected by ethernet and you can relay half the control surface to the laptop that isn't connected to it by USB (half the faders, half the knobs, half the buttons, etc)
- The audio output of one laptop feeds into the input of the other laptop, and both are summed together before leaving the output of the other laptop and on to the sound system
- The cross fader can fade between the audio outputs of the two laptops

*** Most importantly, You have a custom M4L switch that's really big and let's you toggle the PLAY button to whichever laptop you wish. When you press the PLAY button, the laptop that it's directed to will start it's transport and fall immediately into sync with the other laptop, but non-linearly.

In other words, if the laptop that was playing its Ableton track currently was coming up to say, measure 129, the laptop you were cuing would start at measure 1 exactly as the currently playing laptop arrived at measure 129, no sooner, no later.

Is something like this technically possible? I'd like to build my live PA in a way that lets me DJ my own tracks, I have all tracks on both laptops so I can pick any one at any time and mix it into the track that's playing.

This would be a dream come true to achieve and I am willing to go as deep as necessary, remap the APC controls and force Ableton's transport to behave the way I want to accomplish this.

Any tips towards feasibility analysis and if it's a green light, how I might get started would be much appreciated!

Of course, if I can do this, I will share it as a module in some upcoming open source software I have been working on for quite a few years now. (I'll explain more about that software in a future post).

monetus's icon

I don't see why it wouldn't be possible, as long as your latency abides. Off the top of my head though, I would think that you would want to make exceptions in the patch for the common ways people like to mix in songs(e.g. scratching or cueing in, tempo changes). It would be nice if it was a safety net able to work with a turntable rather than being restricted to auto-jogging on the controller. (I say that simply to relieve the contention that I expect would arise). I play midi-guitar a bunch though, and that might let me get tricky with footswitches. I might not mind diving into the ableton api to figure that one out

Wetterberg's icon

It's definitely possible. It's a huge project, but that's your perogative - it's max, yay!
I'd start by looking here:
http://showsync.info/index.php/tools/livesync/

Tj Shredder's icon

For sure the easiest way to do it would be within a single Live session. I am not the big Live user, but what I have seen, this is what Live is about in general. Arm the clips in sync, the clips you armed will start on the next bar. You can have two areas for filling the clips and assign them to different mixer channels/outputs - all is prepared for cross fades...

To do the same with two laptops should be possible as well, just send osc messages to start and stop the Live instances. Could even be triggered by the crossfader (you wouldn't even need big cue buttons...;-)

I once had a Max/MSP project I had to split to two computers because back then (ten years ago) the processing power of one computer was not sufficient (for DJ-ing I can't imagine to hit that limit even with such old hardware...;-).
This was very hard to tackle, I would always try to do it within one machine. Much less to carry, less cabling, less hassle...

Stefan

dtr's icon

Reading this I had the same thought as Stefan. But perhaps Kcoul means mixing 2 Live sets (sequence of clips, automation, etc), not rendered stereo audio tracks?

monetus's icon

Restricted to cueing, tempo, and one computer, It would be so much easier to make. But were I to go through the trouble of synchronizing every ableton parameter over two computers, I would have selective exposure for what I might want to mix

kcoul's icon

That Livesync link looks relevant, thanks Wetterberg. For some, I might need to clarify. I can now illustrate thanks to info I had but was not released until this past week:

What I'm looking to do is very similar to this but without Traktor. I submix my tracks on an 8-bus console and wind up with 4 stereo channels per track, just like Stems. I'm not interested in buying into their format until it takes off. In the meantime, I'd like to "DJ" my own music without necessarily having to plan out a set list ahead of time. I really want to be able to try and react to what the crowd wants. I have at least 3 different sub-genres in each of the projects I'm doing so I don't want to be locked into one track ordering.

But at the same time, I want to have the kind of control Stems would give you, and even more. It's hard to describe all of what I'm doing in one post. I'll try to get to the point:

In Ableton if you are digging through your sample library and you cue a clip, if you have it set right it doesn't just start as soon as you click. It waits and starts with not only the downbeats aligned, but the major downbeats aligned. I want to get the same effect when DJing two instances of Ableton.

So suppose I have a matching library of Ableton projects on each computer, and they always have exactly 4 audio tracks that are from the bus mixes I made, (plus a bunch of graphics/lighting control tracks but that's besides the point), then using the bridging tool I make with Max, I can load up any project on the computer that's not playing currently, hit start and that project will defer playback until the computer that's playing arrives at a major downbeat, at which point the two tracks will start playing perfectly synchronized.

I think I could do this all with my APC40 and a fully separated Max transmitter app that sits on one computer independently of Ableton. The other computer has a Max receiver app that relays the portion of the APC faders/knobs/transport messages that get relayed to it on to the instance of Ableton on that computer.

Funny, after fully talking my way through this I think I see how I can build this.

What I will do is share the transmitter/receiver Max apps when they are completed.

The downside of trying to do it all on one machine is mainly that my laptops are a bit out of date (2010/2011 models) and also I'd like to have the symmetry of having one laptop on each side and the APC in between, so it feels as much like DJing as possible.

This will be a node in a larger program I'm working on called GestureLab that I'll be making a new thread about when I'm ready to release the open source software :) I'm working with dancers using Playstation Move controllers to modify sound and graphics in realtime, it's an exciting project.

Thanks for all the advice and the Livesync link!

Cameron Angeli's icon

Not sure if you ever figured this out, but I have done something similar with one computer, one ableton.

There is a set of patches from Isotonik - Launch Sync 2 - which will allow you to define a specific list of tracks to launch (rather than the entire row) when you press the full row launch button on a controller.

I use one launchpad and one push. Once the patch is configured correctly on each control surface, I can use the full row play buttons to play only half of the tracks when pressed on one of the surfaces. So, if you have all of your songs organized into 8-track stems, you would have 16 tracks total. Then you would list all of your songs vertically in the first 8 tracks, and again vertically in the second 8 tracks. So you now have two identical columns of songs.

Then, if you route group 1 to a stereo pair, and group 2 to a stereo pair - you can use the ableton crossfader on those pairs to send what you want to the master out.

Alternatively, the two stereo pairs can be routed out of separate external outs (ie 1-2 & 3-4) and then you can play out of a standard DJ mixer with DAC (like a Pioneer 900) which will allow you to have analog mixing and FX. -

Further, if you are working with surround sound - like i am - you could send each individual track out of it's own audio out to your 360 panner. The fader will transition between each of the 8 pairs from song to song.

hope this helps!

kcoul's icon

Thanks Cameron. Ableton's Link keeps falling out of sync for me even in the absolute best conditions (ad hoc wired network on CAT6 cable) so I will give your approach a try. I am adding surround audio layers in some cases and also live visuals so I really want to move on frofrom this issue!