Solution for ITB-OTB clock sync and latency in Ableton

EDIT: Ultimate solution here Solution for ITB-OTB clock sync and latency in Ableton - #10 by jbone1313.
EDIT: Ultimate solution here Solution for ITB-OTB clock sync and latency in Ableton - #10 by jbone1313.
EDIT: Ultimate solution here Solution for ITB-OTB clock sync and latency in Ableton - #10 by jbone1313.

In the excellent Hardware fun vs. DAW productivity thread, some said the ITB-OTB clock sync and latency issues in Ableton drove them away from attempting to sync their hardware to Ableton.

I struggled with this for years.

It does not have to be this way.

I think I found a way to solve all the variable latency problems you have when monitoring synced hardware through Ableton, and I also solved the problem of the variable latency you have when sequencing plugins in Ableton from OT (or another synced hardware MIDI sequencer).

This requires no special clocking devices.

I would love to hear any thoughts or comments you have.

Bear with me…

First, here is a statement of the problem:

If you are monitoring, through Ableton, hardware slaved to Ableton, then Ableton adds latency to what you hear and what you record. This latency is variable. So, if you add a plugin with 200ms of latency, then 200ms of latency is added to what you hear and what you record when monitoring through an Ableton audio track. The same problem happens when you are sequencing plugins in Ableton from the OT (or another synced hardware MIDI sequencer), as Ableton does not delay compensate the MIDI clock it sends. This is easy to test, and it is clearly demonstrated in this guy’s video.

Important note, his solution is not what we need, since it does NOT account for the variable latency of the set based on Ableton’s latency algorithms.

If you turn monitoring off, then what is recorded in Ableton no longer has this latency. That’s great, but then how do you monitor your hardware? The obvious answer is to monitor the hardware directly, outside of Ableton. BUT, that is no good either, because then we lose the ability to use VST effects on our hardware. :frowning:

Now, here is epiphany I had, which is the key to solving all these issues:

You can route your synced hardware through Ableton, and if you send that audio through Ableton’s External Audio Effect to an output outside of Ableton (by, say, routing to a spare output on your sound card through OT), the PDC latency is NOT added! Or, more precisely, Ableton sends the audio from the External Audio Effect early. That is why they have that device; it is so that you can use external hardware effects with delay compensation.

Here is an example to illustrate: Suppose I sync my Analog RYTM to Ableton, and I want to add Ableton’s reverb effect to it. Here is what I do.

  1. MIDI sync RYTM to Ableton.
  2. Add an audio track which receives audio from RYTM.
  3. Add reverb effect.
  4. Add External Audio Effect AFTER reverb effect. Set “Audio To” some output on your sound card.
  5. If you are using a sound card which supports loopback, route the audio back to another audio track in Ableton. Turn monitoring off on that track.
  6. Hit play and record the RYTM on that track.
  7. NOTICE THE RECORDED AUDIO IS IN SYNC EVEN AFTER RUNNING IT THROUGH ABLETON! (Plus the round-trip latency of your sound card, which is not a big deal, since that is fixed, and you can compensate for that using MIDI clock sync delay).

OK, so we know now that you can route synced hardware through Ableton, process the audio, and it is free of variable latency if using the technique above.

If you happen to be using the Octatrack with other synced hardware; you want to sequence VSTs; and, you are syncing hardware from OT, then you do not need to loopback.

Here is what you do:

  1. Sync OT to Ableton. Ableton is master.
  2. Monitor OT directly through your sound card.
  3. Monitor all your OT triggered instruments (software and hardware) through Ableton’s External Audio Effect; set the audio output of those tracks to “sends only;” send that audio to OT; and, then monitor it through OT.
  4. If triggering external instruments from Ableton, use the External Instrument device.
  5. Monitor all your Ableton triggered instruments (software and hardware) directly; i.e., send that audio directly to OT; do not send it through the External Audio Effect.

With the above steps, you can have the golden setup WITH EVERYTHING IN SYNC! No VARIABLE latency in the recorded or monitored audio! Of course, you will have latency when you play instruments, but there is no way around that in any case.

  1. You can sequence your software from OT’s sequencer.
  2. You can sequence your software from Ableton’s sequencer.
  3. You can sequence your hardware from OT’s sequencer.
  4. You can sequence your hardware from Ableton’s sequencer.
  5. You can process your synced hardware through Ableton.

All with compensated latency!

This is HUGE!

It sounds complicated, but once you set it up, you never have to think about it again.

With this technique, we are exploiting Ableton’s External Audio Effect to latency compensate the things that need it. AND, we are exploiting the fact that Ableton does not latency compensate the MIDI clock it sends to synced hardware. So, when you monitor in the way I described above, the PDC latency is effectively cancelled out.

Tip: If you want a good way to test this, add a new audio track to your set. On that track, add an External Audio Effect. Set that device’s Hardware Latency setting to 200ms. That way, you will have 200ms of latency to your set, which makes it easy to see when things are not right.

Ultimately, each case is different, but the key is knowing how Ableton deals with delay compensation and knowing when to use the External Audio Effect.

Side note: I think none of this complexity would be necessary if Ableton would simply allow the option to automatically delay compensate its MIDI clock.

I think these principles are applicable to any hardware. Just adapt to your needs. I used the OT in one of the examples above, since that’s what I use.

It’s complicated to explain in words, but it’s dead simple once you set it up.

Side note: Ableton’s jitter does not bother me. It’s pretty solid compared to other DAWs. I think they have a chapter in their manual about it. I do have an ESX-8MD, but I no longer use it, because again, the jitter does not bother me.

Happy syncing!

9 Likes

Well, I think I discovered an even better solution for all this, and I updated the OP to refer to this post accordingly.

  1. Turn on Reduced Latency When Monitoring.
  2. Do not place any latency inducing devices in any signal path through which you are monitoring machines you are syncing or instruments you are playing or triggering with a hardware sequencer, EXCEPT for External Instrument device.
  3. The External Instrument device does not seem to add latency to the INSTRUMENT tracks on which they are placed.
  4. Latency inducing devices are completely fine in any other signal path, including monitoring already recorded audio.

I had long ignored the Reduced Latency When Monitoring setting, because I thought it caused other problems, but it does not.

Reduced Latency When Monitoring basically means Ableton is recording what is “played” vs what is “heard.” So, e.g., if you are playing a guitar through a plugin, it will record what you play, before the latency, instead of what you hear after the plugin (which is the default). I do wish they allowed that setting on a track-by-track basis.

And, if you are monitoring a drum machine, it will make sure you hear it and record it before the latency.

10 Likes

I’m finding this isn’t making any difference at all.

Nothing on the tracks, just audio in. same delay with or without the compensation enabled.

This I feel is just part and parcel of monitoring hardware to DAW. I think it’s just the case that I’d have to record using monitoring off on a second channel

I am not using hardware these days, and it has been a moment since I have dealt with this, but this solution is for the VARIABLE latency problems as highlighted in the video in the OP.

There is always some FIXED latency when using synced hardware, because physics. However, fixed latency for synced hardware is easy to deal with; one can set a negative MIDI clock sync delay for each device in Ableton’s MIDI preferences.

For completeness:

Do note that the fixed latency depends on your buffer settings, so if you change those, then you will need to readjust your MIDI clock sync delay. But, presumably you are not changing your buffer settings often. Or, if you do, then you are doing that after you have finished writing and have moved into the mixing phase where you need the extra CPU power afforded by a higher buffer setting.

In other words, when composing with hardware, you might use a lower buffer setting. Once you are all done composing, you might raise that buffer to get more CPU for use with CPU-intensive plugins in mixing. But, because you are mixing, you do not need to worry about your synced hardware, since presumably, you have printed the audio from that hardware. If you do not need the extra CPU when mixing, then no need to raise the buffer. Workflow.

4 Likes

Make sure u use an external instrument device in ableton

3 Likes

Ahhhhhh! Yes I see… thanks for pointing out the variable vs fixed.

“because physics” - succinctly put! haha

My current setup is all the playing is happening in the hardware and I’m just recording it into Ableton. So no sending midi out for a signal to come back in, I use a multi clock playing the sample for syncing so … Holy shit… using the external Audio effect on the sample send to compensate for the delay… it works… amazing!!!

2 Likes

Welcome to Ableton sync enlightenment. :slight_smile:

I used to use a hardware syncing device like the Multiclock, but since I figured out the above, I quit using it. IMO, the main justification for continuing to use a hardware syncing device is to avoid jitter. But, in my experience, a little bit of jitter is not a problem at all.

That said, when I was using a hardware syncing device, the correct way was indeed to hook it up with the External Audio Effect.

2 Likes

Thanks muchly, the negative Midi idea got me there! woop!

Yeah I just found the jitter too much with MD and A4 and Norns just jumping around. 3 of them going slightly out (to sometimes wildly)from bar to bar got too much. still it was a a fair amount of money to be able to just press space bar to get everything going at once.

2 Likes

From what I can tell, this is now a complete non-issue in Live 12, and Ableton finally properly addressed the issue.

Live 12 introduces the “Keep Latency” feature on each track. If you disable that for tracks on which you are monitoring and recording synced hardware, then the recorded audio will line up properly. The only thing you need to set is a little NEGATIVE MIDI Clock Sync Delay in Live’s preferences, and that is not an issue, because that latency is FIXED given your current buffer size.

The big reason why this was an issue previously is it was very difficult to deal with the VARIABLE latency induced by plugins, which again is not an issue anymore in Live 12.

In short, in Live 12, turn off “Keep Latency” on the tracks on which you are monitoring and recording your synced gear. Then, measure the FIXED latency amount and set a NEGATIVE MIDI Clock Sync Delay to compensate.

One more thing:

I recently learned of a nifty workaround for Live 11 and probably earlier versions. That is, if, AFTER STARTING THE TRANSPORT, you switch OFF the input monitoring of the track on which you are recording your synced gear, then Live will do the same thing as Live 12 does when Keep Latency is DISABLED. You can even map a key command to do this very quickly and very smoothly. Lastly, someone made a MFL device to handle this automatically.

2 Likes

For me Abelton link with mpc did not work stable, can anyone of you check this via ethernet?

@jbone1313 Thanks for the update on Ableton 12 and your really helpful posts! Can’t wait to try this new feature in Live 12, but still waiting for beta approval though having ordered the update on day 1…

I’m still struggling with the following issue, maybe someone here can comment on this.

Mixed use of MIDI CC/notes from Ableton with built in sequencer of synth:
I’ve been experimenting with different sync setups and have also used the ERM Multiclock. I also found that a good MIDI interface does not perform notably worse when it comes to clock stability. If you want to sync more than 4 external devices with sequencers and need to shift the clock for each device, I found that a MIDI interfaces with more ports (or using different interfaces that you might already own) even offers an advantage, but let me explain this and please correct me, if I’m wrong:

I am using Ableton as my Master clock and sequencer, I mix and record 10+ external hardware devices in Ableton with internal FX to keep latency low.

I am getting perfect sync when using the external instrument device to compensate the latency per track and only one master midi clock like the ERM Multiclock. But in this scenario I have to decide beforehand if I want to use Ableton to send notes and set the hardware latency correspondingly OR if I want to use the internal sequencer of a connected piece of hardware and set the hardware latency value to match this. But I wanted to trigger MIDI notes via Ableton while using e.g. the LFOs and sequencer on my Alesis Andromeda at the same time in sync. I’d also like to be able to trigger my TR-8 via MIDI from Ableton, but switch to program the internal sequencer of the TR-8 directly while playing my live set without having to readjust anything.

I was able to achieve this using these two laborious approaches:

  1. Set a negative clock delay with sync turned on for the corresponding MIDI out port in Ableton’s preferences. Then set the hardware latency of my external instrument device to match the MIDI note latency.

But this does not stay in sync for a longer time (50 minute live set) and I also have to adjust the negative sync delay for the MIDI out port quite often. Naturally, always, if I change the buffer size or add devices with latency to the set.

  1. with the ERM or a single clock source: I set the hardware latency of the external instrument to sync to the external sequencer and then move the starting point of the MIDI clip to the right, so the notes trigger in sync.

Especially the latter seems rather clunky, but I had tried to achieve the same effect by adding a negative track delay to the track containing the external instrument with no effect. Then I tried to send the MIDI notes from a pure MIDI track with a negative sync delay to the track with the external instrument - also no effect. Finally, I tried to send the notes directly to the MIDI port of the Andromeda (without external instrument) with negative track delay - some effect, but no matter how high the track delay, recordings are always a little too late.

While both of these methods are working, they’re not really intuitive.
Does anyone have a suggestion on how to optimize this or see an error in my approach?

Thanks in advance :slight_smile: