dimanche 21 août 2011

How to perfectly sync and beatmatch Ableton Live and MixMeister (or Traktor or VirtualDJ or any other dj software)


In this tutorial I will show you how MixMeister (or any other DJ software with a Midi Clock Output) can be not only perfectly synchronized and beatmatched, but redirected and included into Ableton Live so that you can directly edit the output with Live effects and controls.

You will need :

- Ableton Live (tested on 8.x)
- MixMeister (tested on 7.4.x)
- Virtual Audio Cable (shareware)
- LoopBe1 (freeware) [you can use LoopBe30 if you want to redirect more than one software]
[- Asio4All optionnally if you want to redirect multiple DJ softwares to Ableton Live or if you want to be able to use your mic at the same time]

Some other tools that can be of great help :
- Midi OX (http://www.midiox.com/) : a swiss army knife for midi. You can do almost anything you want with it (can probably replace LoopBe30 but I couldn't figure out how, and I don't need it in my setup anyway, but it can be useful for people that have more complex midi needs).

This tutorial is made for Windows 7, but Mac OS X users can use almost the same process but with different softwares :

- Jack OS X (http://jackosx.com/) or SoundFlower (http://code.google.com/p/soundflower/) instead of Virtual Audio Cable
- IP Midi OSX (http://nerds.de/en/ipmidi_osx.html) instead of LoopBe1

Procedures may change a little (some may even be less troublesome, eg: Traktor supports virtual midi output on MacOSX so no need for IP Midi OSX).

There are a few great tutorials on the subject made by Dubspot, you can find here an example of how to sync Ableton Live and Traktor on Mac OSX (doesn't work exactly the same on Windows as there's no virtual midi output in the Windows version of Traktor as of now) :

Another nice tutorial made by DJ Tech Tools but a little older, showing how to sync Ableton Live and Traktor on Mac OSX but without the virtual midi output of Traktor, so this tutorial should work for other dj softwares on Mac OSX :

And a tutorial made for Windows which is presenting how to sync Ableton Live and Traktor on Windows :

Ok now let's begin.

How to redirect Audio from MixMeister Fusion 7.x into Ableton Live 8.x

1- Install Virtual Audio Cable (alias VAC)
Note : On Windows 7 or Vista, you will have to turn off Digital Driver Signing Enforcement.
See : http://www.techspot.com/vb/topic127187.html
To briefly summary (if link is down) :
cmd.exe > Run as administrator > bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS
(DDISABLE is NOT a typo).
Download and run Driver Signature Enforcement Overrider
Click on Enable Test Mode and click Next.
Install VAC
Run Driver Signature Enforcement Overrider again and select Sign a System File and sign C:\Windows\System32\vrtaucbl.sys
Reboot (for VAC to install the sound driver)

2- Configure VAC
Launch the Control Panel (vcctlpan.exe, NOT the Audio Repeater - there may be a way to use the Audio Repeater but I didn't use that).
You can change the number of cables on the top left corner of the window. Choose another number and click Set (note: on Windows 7 the window will crash, but the setting will be affected and you just have to reboot to see the change).

2bis- Asio4All v2 (optional, permits multiple inputs and outputs to be programmed in Ableton Live, but not necessary in this exact setup, might be if you want to add a mic in).
Note: don't forget to switch to Expert mode (by default on simple mode, click on the mechanical tool) and activate Virtual Audio Cable inputs and outputs.
Note2: Each VAC input and output will be represented by "ASIO4ALL v2 - VirtualCable x 1 + VirtualCable x 2" in MixMeister and x*10-11/x*10-20 on Ableton Live. So for example if you have 3 cables and want to configure MixMeister, you'll have to set on "ASIO4ALL v2 - VirtualCable 3 1 + VirtualCable 3 2" and Ableton Live on stereo input 19/20.

3- Configure MixMeister
Menu Tools > Audio Output Configuration
Main Output (speakers) : Line 1 (Virtual Audio Cable) [ou ASIO VAC 1 1 + 1 2]
Preview Output (headphones) : your preview soundcard

4- Configure Ableton Live
Add an Audio track and put it in Ext.In 1/2 and monitor IN.
In Ableton Live Preferences > Audio :
Driver type : MME/DirectX [or ASIO]
Audio in : Line 1 (Virtual Audio Cable) Wave [or ASIO]
Audio out : whatever soundcard you have for output [or ASIO]
[if ASIO is selected, you have to click on Config input and config output to select your channel as described above in the ASIO4All chapter.]

Cache memory : about 2048 samples (because above it will create some clipping because the input flow is continuous with MixMeister and Live will have a hard time precaching to much informations ahead of time, so a low cache is better and below it will not have enough data to provide a continuous flow). If you use special Live devices like aurex's, you should need a higher cache (because of the device overload), like 4096 samples.
Cache memory input : about 2048 samples (or 4096 for aurex's devices).
Driver error compensation : try some tests as advised in the Ableton Live included tutorial or you can leave this as it is if you don't want to bother (but tweaking it can be very useful!).

5- Press play in MixMeister (the live performance play button of course), and you should hear it in Ableton Live !

Midi Clock sync (tempo sync with perfect beatmatch)

1- Install LoopBe1

2- Configure MixMeister
In MixMeister, in Tools > Options > Midi
Midi Clock Output : LoopBe1

3- Configure Ableton Live
In Ableton Live Preferences > Midi Sync
At the row "Input: LoopBe Insternal MIDI" click ON in the Sync column.

Now a button EXT should appear in the top left corner of Live, just at the left of the tempo BPM and TAP button. Activate it.

4- Play MixMeister and Enjoy ! The LEDs next to the EXT button in Live should blink to show that Midi Clock is received.

5- Tweak the clock to sync perfectly (to do everytime before mixing)
Play a mix in MixMeister.
Add a sample clip in Ableton Live and play it at the same time as MixMeister.
You should hear both tracks (MM and the Live clip).

In Ableton Live Preferences > Midi Sync, click on the arrow at the left of the row "Input: LoopBe Insternal MIDI" to develop the sync options.

Adjust the Sync delay (like -18 or -50 or -100 or more or less, depending on your hardware and configuration). Tweak so that it is in perfect beatmatch with a midi track you play on Ableton Live.

Before mixing (what you need to do everytime just before starting to play your set)

1- Always edit the Memory cache samples (not input, just the normal one) : just tweak it to a random value and set it again to your value. This is necessary else Ableton Live will produce a BIG audio bug (sound will be harsh and uncontiguous).

2- Always start the MixMeister play on the first beat of a measure (else Ableton Live will have no way to know if it's the 1st beat or 3rd beat or whatever beat of the measure, it only gets the BPM from the Midi clock output).

3- ATTENTION ! If MixMeister mainstream play button is stopped, Ableton Live will stop too! , so you'd better leave MixMeister with a loop in background and mute its channel in Ableton Live or you can disable EXT button in Ableton Live and it should be ok, it should not stop when MixMeister will stop (maybe there's an option to tweak this behaviour ?).


DJing with two different softwares can still be very cumbersome, even nowadays when technology is everywhere. Even if now a few facilities are provided by some softwares, there's a great deal of effort to be produced by the different actors of the sector to create some norms and more importantly apply them (some exist already but just aren't implemented).

Meanwhile, thank's to some ingenious souls, it's possible to interface these different piece of audio softwares together and make them all work as one, and when it works, it works great.


Creative Commons License
How to perfectly sync and beatmatch Ableton Live and MixMeister (or Traktor or VirtualDJ or any other dj software) by GBO is licensed under a Creative Commons Attribution 3.0 Unported License.