So syncing between ableton and external gear has proven to be quite the general quagmire largely stemming from the various physical and digital systems involved in audio conversion processing.
I decided to dig in and see if I could get midicake to really lock in on the beat in a way I can quickly add to projects and it lead to some interesting discoveries I thought would be helpful to others to know so you don't have to also feel crazy. Hoping others might also have some tips or thoughts to add.
Midicake Tempo Wobble
My arp usually gets a lot of wobble, but switching to audio sample rate of 48khz locked it in and with ableton leading I see significantly less tempo drift. Not sure if this is related or a false indicator. Latency
Adding latency ANYWHERE in your ableton project will put delays on the notes received in ableton regardless of 'Reduced Latency When Monitoring' or 'Keep Latency' settings for a given track.
This is not in any way unique to midicake, I could reproduce it on multiple devices.
This means that if you configure the latency by either adjusting track delays or shifting the control clock from ableton, you will need to update it every time you add a latency causing device to your project. This can be an ok way to work, just good to remember later as you build out a project.
(duplicating a few limiters with a long lookahead is a good way to see this)
Unfortunately, here lies a special quirk where adjusting track delays can also affect latency which requires adjusting track delays which affects latency which requires adjusting track delays which affects latency (...) Delay Compensation The only way I was able to get consistent timing that I could set and forget was disabling delay compensation which means you'd have to manage your tracks with audio delays (track delay is disabled when delay compensation is removed) HOWEVER, if you do this, routing midi internally will add delays unless 'Keep Latency' is enabled on both tracks, but receiving direct from midicake will be on beat.
Delay Compensation: NO, Keep Latency: OFF
No Delay Compensation and Keep Latency Enabled Requires Clock Shift
This config is consistent for Midicake Input, and for internal ableton midi routing, but requires shifting the midiclock in ableton's midi settings.
Leading Chords
The end goal is to send a chord track out to midicake and get back four lanes. To ensure harmonies change on the downbeat, I had the most success by leading 5ms. Not sure yet how to do this without delay compensation. Hopefully this helps anybody else out there navigating this, if anybody else has tips let me know!
Ok after another terabyte of audio files, I feel confident to say that it's currently impossible to overcome physical latency within ableton if you want to use that input internally. (ie: if you have a hardware sequencer, your plugins will always be out of sync by the amount of physical latency with ableton plugins) I made a test project for ableton but also found some old forum threads that made me not hopeful they will fix things. BitWig: This was the final straw, it took 10 minutes to sync my synth and I've even got the midicake synced sending midi through bitwig out to virus and back and it's all perfectly locked in. Neither device has ever been tighter timing wise. And you can change the tempo without your project falling apart lol Minimize Latency: Seek to minimize latency in ableton, you will never compensate it, so minimize for best results Return Tracks: These are a good way to guarantee plugins sync to main clock, they will also reveal the implicit issue in ableton software. Your audio will be late by the amount of physical latency, but the plugin clocks will be on time and for me this is better. Ext Inst / Ext Audio: The delays on these devices does not translate to 'wait 12ms for this audio', ableton reads this as 'the audio is already coming 12ms ago'. This means all subsequent plugin clocks in the chain shift forward by that amount. In this manner, the gap between your external gear and plugins will never be resolved, you will never be able to bridge the gap between plugin clocks and your external gear. Early Midi If your latency / DEC is over 10ms you'll likely want to manually manage sending midi early to compensate. Instead of adding a delay buffer, drag the start of your clips in by that amount (clipping the first notes) and from there you can use clips as normal although dropping the first beat if it is before the start