How I got Hapax and Ableton Live into nearly perfect sync with M4L

The Problem: Like many producers, I use Hapax with Ableton Live. However, the synchronization of Live and Hapax remains an issue: If I slave Live to Hapax or other external clock, I get wonky timing. Specially after receiving transport signals, Ableton Live likes to lose track of the clock, resulting in pitched effects from any clock synced effects like delays. The alternative is to sync Hapax to Ableton. But then I need to keep track of Ableton transports, figure out how to start or stop the DAW or adjust the BPM. All this, while I just want to focus on using the Hapax instead of looking at the screen or fiddling with Midi Bindings. Specially in my use case, I don’t use Ableton for sequencing, only for recording, effects and mastering, this gets into the way.

My solution: I decided to try and clock Ableton Live by routing the cv clock output from the Hapax through my audio interface and writing a Max 4 Live device to translate this input into bpm and transport commands. While the CV tools already offer a comparable functionality, they suffer from similar problems as the midi synchronization, namely they drift quite a bit at transport. Also, they are not optimized for my setting, where I don’t have a special dc-coupled interface nor do I want to sacrifice two audio channels, one for clock and one for transport. After some time of tinkering, I came up with a device that produces a very stable and precise clock and derives transport signals from the starting and stopping of the cv clock signal.

How I tested it: I created two identical midi tracks with identical drum sets. One was triggered from the Hapax, the other from Ableton Lives internal sequencer, which both played the same drum sample in identical quarter notes. Starting the Hapax, both samples were played in sync so perfectly, it was impossible to distinguish them as different sounds. There were no phasing effects, as you would have them, if their timing varied as a result of jitter. I then left and let the sequencer run for about 22 Minutes. There was still no audible discrepancy between the sounds, and I could still make out no phasing.

For me, this solves the problem. It also allows me some conveniences, like separately turning on and off transport and clock sync. As a little caveat, the clock, because I buffered it to minimize drift, takes about a bar to precisely detect a new timing, so it’s not very useful for people who record tracks with varying bpm. However, I don’t think this is really more feasible with other forms of synchronization, aside from expensive specialist devices, perhaps. Once it has detected a tempo, the clock remains stable, even when transport is halted and restarted.

So, why am I writing this? I was thinking to put a little more effort into this and maybe publishing the device for a little tip or something. But beforehand, I would like to know if there is actually any interest in this. Also, perhaps someone with a DC coupled audio interface could help me test this, I would like to know if the way how I treat the signal still works with such an interface or if it needs a special setting.

5 Likes

Well that’s cool!
But my take on this is that there shouldn’t be any sync problems. If there are some it needs some fix.

Sure, but I don’t think there is anything squarp can do about it. I believe the problems I described are due to a mix of the limitations of the aged midi protocol and Abletons somewhat shoddy implementation. My hardware plays along nicely to the clock of the Hapax.

I would have expected more people to be interested in this, but I finished the device anyway. You can download it unter the following link:

https://www.sendspace.com/file/ts2a8x

5 Likes

this is awesome - thanks for posting. currently don’t have an audio interface but will definitely be giving this a try once I get a new one.

Let me know how it works for you once you tried it. I am actually working on it again, because there is a delay issue when recording, where live takes some miliseconds to actually start recording after it is prompted to.

Hey I would love to try ur max unit. But th send space file is down. would it be possible to upload it again?
cheers :slight_smile:

1 Like

Hi metajon, sorry for the delay. Here is a dropbox link which should be a more stable solution. Let me know if it works: Dropbox - hapax_syncer.amxd - Simplify your life

2 Likes

@exmachina Just got my Hapax last week, finally had time over the weekend to get hooked up to all my various synths and doodads, so will be trying this out soon. In my weekend testing, I didn’t have clock drift issues but it definitely takes Ableton 5-10 seconds to lock into the same tempo as Hapax when slaving Ableton to Hapax via usb midi.

FWIW I DO have a dc-coupled interface (expert sleepers ES-6 which then connects to my soundcard via adat) so would be happy to compare that to your M4L solution. Bummer about that is I would then need to devote a Hapax output (either midi out 4 or a gate output) to just sending analog clock but I suppose that is what it is.

In any case, thanks for whipping up this solution, I’m excited to try it out!

1 Like

A problem you might run into, is that ableton live starts a few miliseconds too late when recording, simply because of the live api, which runs on low priority. This can lead to the beginning of the record being cut off by a bit. I get around this by also using the midi-sync feature of my device and start the transport from ableton. Because the clock is still synced from hapax via cv, the clock is reliable and stable

Ah thank you! The problem is that I run an Apple Silicon. And Max says some plugins are not working with it

1 Like

Ah, this might be the midi library l used. Sorry, I did not develop with Mac in mind. If you like to tinker, you can remove the midi objects in the device.

2 Likes

Yes it works now well!

2 Likes

Tried sync’ing via analog clock and the Clock In m4l device from the CV Tools package - it was not particularly effective. I was being a bit lazy because I didn’t set up a second clock for Transport but I found that the tempo would switch between 120.2 and 120.4 with each clock pulse. And bottom line, it just doesn’t seem that practical because I would need to occupy two clock outs from Hapax (one for tempo, one for transport) and two inputs on my ES-6 just to get this working. I’m not too keen on that.

Will try your M4L device soon!

1 Like

Thank you so much for making this!

I currently do it the other way round, sending a clock signal (as an audio clip) from a DC-coupled out on my interface to the Hapax Clock In.

It works well, but it would be far more convenient the other way if it works well.

However I’m on Mac M1 too and cannot get it to open.

I’m going to ask metajon if he can send me the file if he got it working. I’ll let you know how well it worked if I can get it running.

Thanks again!

Hi metajon,

Would you be able to upload the modded version please?

I’m on Mac M1 too and I’d love to try it out.

Cheers!

Hey you just can delete the op’s inside the max patch.
Its really easy they will be have a red mark or so.
Hope that helps

Appreciate the advice. I’m not that clued up on Max tho!

I’ll probably just carrying on doing it the other way (audio from Ableton to Hapax). A bit convoluted but works well enough.

syncing with any DAW works without a hitch the way it is described in the manual: an audio square wave over a dedicated audio connection to hapax cv1 input and set your sync settings. its sample accurate! without fail. tempo changes and everything. restarts when you stop/start. who could ask for more?

1 Like

I have not had this experience using cv input. I still have between .04 and -06 ms variation. it fluctuates. maybe it is sending a sample accurate ping but the communication between the pc, ableton, and hapax, is inconsistent. so it makes sense to me that people are always investigating alternatives.