Ableton Live MIDI Sync

MIDI Syncing Ableton Live or any other software application with another MIDI source has always been a challenge. For some time OverSoft and I have been tying to sync two Ableton Live systems. But also Native Instruments Traktor Scratch Pro is on the sync list. After a number of tests and different configuration settings in both hardware and software, I think I've found all the ingredients to get the perfect MIDI sync.

MIDI Setup Challenges

The setup that OverSoft and I use has some challenges. We use two physical systems that do require some connection. Seconds, I'm running Microsoft Windows and OverSoft runs Apple Mac OS. Mac OS has good MIDI support and is famous for the low latency fast Audio/MIDI interfaces.

Windows doesn't provide much MIDI support in the core of the operating system and overall has a slightly higher latency.

MIDI Hardware

To sync we have been using a number of hardware MIDI devices connected via USB. We have tried various combinations to get a stable MIDI sync. We also have tried to use an external MIDI clock signal from the Pioneer EFX-1000, DJM-800 and the Allen & Heath Xone:4D. Neither gave a sync that was stable enough and those sync methods all use the MIDI Beat Clock to sync.

MIDI Sync Options

There are actually two ways to sync when using MIDI. The most commonly used method is the MIDI Beat Clock signal. Ableton Live, Traktor Scratch Pro and most MIDI hardware support this signal. The other method is MIDI Time Code (MTC) which uses SMPTE Time Code values from the film industry.

Major difference between MIDI Beat Clock and MIDI Time Clock is that the first is build around musical measures like beats and the second around a time line.

MIDI Beat Clock

The MIDI Beat Clock signal works pretty simple, it sends 24 tick signals for each quarter note. A start signal is send to indicate when to start playing. From that moment on, the MIDI slave has to keep track of the ticks.

The problem is that small delays in the tick signal cause speed (BPM) variations. Missing ticks can make a MIDI slave run out of sync. The BPM value tends to jump around all the time with sometimes deviations of over 2 BPM.

Once the MIDI slave has gone out of sync it requires a re-sync. There is no way to detect that it is out of sync because the MIDI Beat Clock uses a relative value that every slave needs to keep track of.

A re-sync has to be done manual. But applications like Ableton Live will simply wait for a new start signal to be triggered. When the MIDI Beat Clock master is Ableton Live, there is no way to retrigger the start signal without interrupting audio playback.

MIDI Time Code (MTC)

The MIDI Time Code signal sends an absolute time position according to the SMPTE Time Code standard. This means that at any time all MIDI slaves know where they should be. Even if there is a short interruption, the next correct SMPTE Time value will tell the software where it should be.

Because MIDI Time Code is not telling anything about beats you can sync MIDI slaves with different BPM values. Thus every MIDI slave maintains its own tempo which is synced to the MIDI Time Code position of the master.

MIDI MTC Support

The support for MIDI MTC is less then MIDI Beat Clock. Ableton Live does support receiving it, but not sending. Native Instruments Traktor Scratch Pro doesn't support it at all.

So for sending this signal, I'm going to need a peace of software or hardware. MIDI-OX is the perfect candidate that supports both Windows and Mac OS and can send both MIDI Beat Clock and MIDI MTC and even a synced combination of the two.

Hardware

Since all physical MIDI hardware is adding delay to the signal it is preferred to avoid that as much as possible. In Mac OS is has already been possible to sent MIDI data via Ethernet to another Mac OS device. Ethernet is fast, has a low latency and is build into all computers these days.

MIDI Over Ethernet Software

The problem is that Windows doesn't have native support for MIDI via Ethernet. So third party software is required to achieve this. Fortunately there is a piece of software available that runs on both Mac OS and Windows. It is called Wac.NetworkMIDI and it is even free. Will Crossland is the creator of this great peace and you can download it from his website.

On Windows you need MIDI Yoke to setup virtual MIDI ports. MIDI Yoke is also available for free.

wac Network MIDI

Test Setup

I just did a test using two times Ableton Live 8.0.x on two Windows systems. One of them is an old laptop which I connected via the Wireless network. This is not recommended of course but a perfect test setup. Since a wireless network has more delay then a wired network and also more drop-outs of packets. I used the Wac.NetworkMIDI software and MIDI Yoke for the virtual MIDI ports. As MIDI MTC source I used MIDI-OX.

Test Result

I configured both Ableton Live instances to use the external MIDI MTC sync signal and to run at 130 BPM. Once I started the MTC signal in MIDI-OX, all I needed to do was compensate for the connection delay. The result was a perfectly stable sync with noticeable packet drops from the wireless network. But the best is that after each packet drop, Ableton got perfectly back into sync.

Tutorials

I'll write a tutorial on how to exactly configure everything and get this perfect MIDI sync in Ableton Live. I'm also testing with Traktor Scratch Pro which seems to be getting also close to a perfect sync, even though it doesn't support MTC. Keep an eye on my site for the upcoming tutorials on MIDI syncing Ableton Live and Traktor Scratch Pro.

OverSoft VS. House Container

Of course I informed OverSoft right away to take the new sync for a test ride! So new mixes are on its way! We will then also do the Novation Launchpad VS. AKAI APC 40 Battle.