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!
very welcome! I figured I owed you guys after all the support requests haha.. I was able to play with this over an evening and feeling really positive about it! I can finally have a midicake preset/template :)
I left ableton cycling for 20-40 mins just triggering program changes on midicake and the drums: both stayed locked in without any resets the whole time. Harmony as well, cake always came in together with the others. A bit more jitter vs ableton's clock, but nothing really noticeable to my ears that would make it feel loose.
I was even able to put enough pressure on the system where the ableton gui was barely functional (lagging input by 2-10s) and even in that state audio came through strong and changes always came in together across devices. I never had to trigger a reset :)
Small Caveats: Part of the pressure might be a memory leak or something in Clock over time. Need to make another project to see how it goes. (It might also have been the massive collection midi/audio files I accumulated while testing)
Undo Clogging: Clock clogs up undo history while transport is running, I contacted the dev but just to be aware of if you're trying to a/b things while playing
Fun Bonuses: Instant half/double times There's some clock fills that I don't understand but I think worked with cake. I will test it later and see
This is awesome work, Logan! I'm looking forward to exploring this setup. It's going to be an excellent resource for others looking to do the same. Thank you. Fantastic job!
Since my original post I've found a rather nice M4L device called Clock. This allows you to setup the timing delays for MidiCake while leaving 'Delay Compensation' enabled and you can freely add limiters without requiring clock shifts. I get a bit more tempo wobble now, but I'd much rather have that than constantly chase sync every time I work on the project. It also has nice options for hot resyncing to keep things locked in.
Here's my current config:
Ableton Global Options:
Delay Compensation: YES
Reduced Latency When Monitoring: NO
Midi Config: MidiCake Arp - Sync: NO Clock Track: Add Clock device, set output to midicake.
Keep Latency: Enable for Cake Input Tracks.
That was all it took for me to get arp tracking consistently. However, the one final little piece was getting harmonies to send out early to the cake.
Harmony Sync on 1: Clock has a sample shifter, so I just sent the cake 1000smpls into the future, and set it's imput track back -1000smpls. Add all the limiters you want and you don't need to reconfigure cake.
WARNING: The image was missing a step when I tried to go back and track photos. The Harmony track in the photo will NOT work. You need to send to midicake via External Instrument. (Just drop it in that track, and don't configure an audio input) Device: https://nukemodular.gumroad.com/l/qjpEU https://maxforlive.com/library/device/6651/clock