Last month BentoSan posted a great tutorial about routing Traktor audio into Live in Windows. It’s here and I recommend you at least skim his article if you haven’t already read it, it has plenty of relevant links. Here is how to do exactly the same thing on a Mac, using free software.
What to expect:
- Routing of the audio of each Traktor deck into Live.
- MIDI clock sync from Traktor to Live. Allows to use Live VST beat synced. Allows to start armed clips in Live on the beat.
- Record your set in audio directly in Live.
- Low latency and excellent stability.
What you need:
- JackOSX 0.77: http://www.jackosx.com/
- Traktor 3: I use 3.2.2.020, but this should work with 3.3
- Live 7.05: http://www.ableton.com/free-trial
- The zipped T3 setup archive: One ‘Traktor Setup.als’ file and one .jks file
The only piece of software you really need to own here is Traktor. If you don’t have Live, you can still do a lot of things with the free demo. The demo of Live isn’t time-bombed in any way, only saving is disabled.
Very smart and generous move from Ableton if you ask me.
1. Installing Jack
Jack rocks. SoundFlower isn’t too bad, but I had endless problems with it. It also lacks the incredible routing flexibility that Jack has.
- First, if you already have SoundFlower or the Instant Hijack functionality of Audio Hijack Pro installed, you have to uninstall them.
- Install Jack. Restart.
- Open the JackPilot app located in Applications/Jack/. Keep it in your dock, you will need it often.
2. Setting up Jack preferences
- Open the preferences of JackPilot . In the ‘interface’ popup, select your soundcard, and put the sample rate as high as it can go. If you own a good card that is. Firewire is best.
I have a M-Audio Firewire Audiophile, and have had zero problems with a 88200 Hz sample rate. This allow me to have reduced latency (5.5 ms). The downside is that it may take too much CPU. A 30-50% CPU Load in Jack is ok.
To further lower the latency, you may try later to lower the buffer size. It didn’t work for me. For now, leave it at the default value (usually 512 samples).
You should see the correct number of In and Out of your soundcard listed in the two popups below that.
- In the ‘Virtual Input Channels’ box enter 10. In the output, enter 8. UNCHECK ‘Auto-Connect with physical ports’. Hit Save.
- Hit the ‘Start’ button in the little ‘JackPilot’ window with the CPU Load bar.
3. Setting up Traktor
- Go to the preference pane of Traktor. Open ‘Audio Setup’, ‘Soundcard’, and select JackRouter as your interface. Hit ‘Apply’.
- Open the ‘Output routing’ section, choose ‘External Mixer’ and assign each deck to a pair of JackRouter cables. 1&2 for deck A, 3&4 for deck B, etc…
- Lower the main out of Traktor to -6dB (in the ‘Master’ detail pane). It will help getting the audio levels sane in Live.
You are done setting the audio for Traktor, we will come back to the MIDI setup later. Quit Traktor and restart it so its prefs are stored.
4. Setting up Live
- Open Live preferences. Go to the ‘Audio’ section. Select JackRouter as your input and output audio device.
- Hit the ‘Input Config’ button. Turn on every stereo pair there is (from 1/2 to 9/10).
- Hit the ‘Output Config’ button. Turn on as many stereo pair as your soundcard has physycal outputs. If you have a soundcard with 4 stereo out, for example, turn them all on. Mine has 2 stereo out.
- We’re done setting up the audio in Live. Quit Live.
- Double click on the provided ‘Traktor Setup.als’. This will load a pre-configured setup.
5. Setting up JackPilot
- Hit the ‘Routing’ button. The window you see is the equivalent of a patch bay, and allows you to do any kind of routing. For now we want instant gratification, so just load (apple-L) the provided ‘Traktor – Live.jks’ file
- Play a track in Traktor. You should hear it. Notice that it is routed through Live.
6. Setting the MIDI clock
You will need:
- Midi Monitor: http://www.macupdate.com/info.php/id/9950/midi-monitor
- iPMIDI: http://www.nerds.de/en/ipmidi_osx.html
- Faith, and a bit of luck
Let me put this straight: getting Traktor to output a MIDI clock is difficult. The good news is that once it works, it keeps on working. The good folks at NI did put in the release note of the soon to be T3.4: ‘Support for virtual MIDI ports under Mac OS X’, so hopefully this will soon be solved.
I am unable to tell you at this moment how to make this work in a 100% foolproof way. Rest assured that you will manage to make it work.
- Go to the Audio MIDI setup app, located in Applications/Utilities/. Choose the ‘MIDI Devices’ tab. Then doubleclick on the ‘IAC driver’. Check the ‘Device is online’ button.
- Go to Traktor, quit and relaunch it, and in the preferences, choose your habitual soundcard instead of JackRouter. This will speed things up for now.
- Go to the ‘External Sync’, ‘MIDI clock’ tab, and choose ‘Apple Comp, IAC 1′ as your MIDI interface. Check the ‘Send MIDI clock’ button. Hit ‘Apply’
Do you see some activity in the MIDI monitor window? It should output a constant stream of ‘Clock’ messages. If you are lucky, that is.
It doesn’t? OK, install iPMidi. Restart, relaunch Traktor, and MIDI monitor.
Go back to the ‘MIDI Clock’ preference pane in Traktor. Now choose ‘nerds.de ipMIDi’ as your interface. Hit apply. Do you see some movement in MIDI monitor?
If you don’t, then restart, relaunch and cry if it still doesn’t work. There is an effing bug in there, you just have to massage Traktor the right way so it finally deign to output a MIDI clock.
It works, trust me. Alternate between IAC and iPMIDI, check and uncheck this ‘Send MIDI clock’ button, and hit ‘Apply’ every time you do something. And restart, pray Goddess, quit Traktor, relaunch it until you finally have it. It is vital that Traktor has a good working sound output for this to work, so check that you can play tracks.
I don’t know which combination finally did it, but it worked straight on my iMac (beginner’s luck I guess), and I only became aware of the problem when I tried to duplicate my setup on the MacBook.
Please let me know how this went for you, I hope this isn’t a bug which is somehow dependent of my particular config (meaning that you perhaps need to have 10.5.2 or an Intel Mac or T3.2 for it to work).
In any event, you can wait until T3.4, it should solve the problem. Personally, I love T3.2, and am used to it, and I know that many people feel the same way.
Editors note: I am currently beta testing T3.4 and virtual midi ports have been included in the new version so theoretically that should simplify this process. We will update this as more info becomes available.
- You then have to go to the Live MIDI sync prefs and check the ‘sync’ button for the interface that worked in outputting MIDI clock in Traktor.
So, how does this Jack thing work?
It is very simple once you know how. Open the routing section of JackPilot:
- Here, in the left ‘Send’ (or source) column, Traktor has been selected with a single click. It outputs sound into Live in the ‘Receive’ (or destination) column. That’s why Live appears in red.
You then have in the third column the list of all the virtual connections. You can see that Traktor is outputting 8 mono connections to the 1-8 Live inputs.
Here ‘Live’ in the receive column has been selected with a single click. You can see that it is linked to ‘Traktor’ and the system (physical) inputs.
This allows recording audio from your soundcard in Live. Just plug the record out of your mixtable into the first stereo input of your soundcard, and look at the ‘Record’ track in Live. You should see your program. Don’t turn on that track, you will get feedback.
- To make a connection, select the source with a single click, then wait a bit and doubleclick on the destination. If there was already a link made, it will be deleted.
For example, I have a soundcard which has 2 stereo out:
Here you see the connections from Live to them. But you may have more outputs than me… In this case, select the send ‘Live’, doubleclick on the receive ‘system’, wait, and doubleclick on it again. Jack will break the connections first, then auto re establish them as fully as it can, you should see as many ‘system playback’ connections as you have physical outputs.
Be careful, Jack doesn’t do any sanity check, so you can get feedback if you somehow create a loop.
The Traktor setup in Live
I have made a two assumptions so far: that you have two stereo outs and a mixtable. This is reflected in the setup I’ve provided for Live:
Here each Traktor deck enters in a separate Live track. Audio then goes to sends only. Deck A&C are routed to send A, decks B&D to send B. The sends then output directly to the physical outs. You should modify this layout to adapt it to your configuration. If you don’t have a mixer, route everything to the same send. If you have 4 outs and a mixer, make more sends.
I’ve added 4 audio tracks, and put a comp and eq on each tracks, so that if you don’t own Live (buy it!) you don’t have to redo everything from scratch every time :)
How does it perform?
Beautifully! The latency is really low, the stability is excellent. It doesn’t use that much CPU.
I wouldn’t play live with it just yet though. I recommend that you try to break it any way you can and really test it well before gigging in public with it.
- If you want to do some optimization, you can remove connections from Jack. In the JackPilot window, the red number shows the number of virtual cables Jack is currently using. Remove the system captures if you don’t need them, for example. You can also try to output directly from Live to your soundcard, instead of re-routing through Jack. Select your soundcard in Live as the output and delete the connections in Jack.
- Turn on the Master clock in Traktor, slave all decks. Hit the ‘send’ button, it will start armed clips in Live. Turning it on and off send Start and Stop messages to Live. The clips will start on time! Adjusting the tempo in the Master clock of Traktor will keep everything in sync.
Watch out when you load a new track in Traktor, if you have your ‘Reset deck controls when loading Track’ pref turned on it will unslave the deck. Mayhem will ensue.
- Sometimes the send button in Traktor gets stuck: You can’t turn it on or off anymore and you will have to quit Traktor and relaunch it if you still need the MIDI sync. I’ll try to investigate what causes this. If you ever have a problem in a live situation, just play a MP3 in Live, then put the tempo in Live back to what it originally was, usually 120 (the tempo will suddenly switch to what it was when Live looses the external MIDI clock…). Relaunch Traktor and then reload the .jks file in JackPilot.
- The start order is as follows: First launch and start Jack, then Traktor and Live. Open the routing section of JackPilot and load (apple-L) the .jks file. If you don’t follow this, you may have to quit everything, and possibly re-select JackRouter as the soundcard in Live.
(and I want that Belvario smart mixer for Live 7!)