Ableton Live, The Machinedrum and The Monomachine: Midi Sync Notes
Posted on | June 6, 2010 | 9 Comments
Recently I’ve been (going crazy) getting the timing tight between Ableton and two outboard sequencers — the Elektron Monomachine and Machinedrum. On their own, these silver boxes have amazingly tight timing. They can sync to each other to create a great live setup.
Add a computer DAW into the loop, and you introduce jitter, latency, and general zaniness to the equation. And it’s not trivial — this is obviously-missing-the-downbeat, shoes-in-a-dryer kind of bad. I tested the jitter / latency by ear, as well as by recording audio clips and measuring the millisecond offsets from the expected hit times.
I don’t think this is fundamentally a slow computer / poor setup issue either — I’m running a good interface, using a tiny 32 sample audio buffer. The rest of the setup is an i7 Intel Mac running OS X 10.6.3, Ableton Live 8.1.3, Emagic Unitor 8 midi interface and an Elektron TM‑1 TurboMidi interface for the Machinedrum.
Below is a journal of what’s working, what isn’t, and my theories on why…
Method 1: Ableton Live as Master, using External Instruments
This seems like the way Ableton would want you to set this up. It’s what the External Instrument is made for — routing midi to- and audio from- an outboard MIDI device. However, it has a number of drawbacks when working with these machines:
- Latency depends on whether they are in “active” monitoring mode. I didn’t realize that in Ableton, having a track in “Auto” monitor mode — but not record armed — has different latency than having it in “In” monitor mode, or having it record armed in “Auto” mode. This makes it hard to monitor a beat coming from the outboard sequencer, yet have record armed for another track in the song: the audio for the outboard gear will sound late.
- If you try to get around this by leaving the track set to record monitor “In”, it’s like leaving your device always record armed, which can make it hard to avoid sending undesired MIDI events along.
- The Machinedrum’s internal tempo fluctuates +/- a few BPM.
Sync is done pretty standard: Ableton output sync is enabled for the TurboMidi interface the Machinedrum is plugged into, with a trial-and-error tuned MIDI clock sync delay of around ‑9 ms, and “Song” MIDI clock type. I still found that this method — even in Record armed mode — had slightly higher latency values than the methods listed below.
Method 2: Machinedrum or Monomachine as MIDI Master
Why not flip it around? Set the Machinedrum to send MIDI clock and transport control, tell Ableton to listen to sync on the TurboMidi input, and hand-tune the MIDI clock sync delay until things line up. I ended up with an delay value of ‑26 ms — pretty large! This method works as expected, but still has some issues I don’t love:
- Ableton is having to try and lay stuff down while its tempo is shifting — it has problems syncing to incoming MIDI clock steadily. So your clips end up with basically random, non-integer tempos as their default Seg. BPM values.
- Timing jitter / error seems to accumulate over a few beats, steadily drifting earlier and then locking back to the downbeat.
- When it’s on, it’s close — but when it’s off, it strays pretty significantly. Some sequencer starts will be tight, others might not be.
- You can’t start/stop Live from anything except the outboard gear.
- You can’t skip around in the Arrange in Live — all song-position information comes from the outboard master.
- Apparently Live’s mixer latency compensation is irrevocably disabled when using external sync.
No dice.
Method 3: Machinedrum Internal Sync Only, Receiving Transport Control From Live
Nice idea — it would mean the MD could use its own rock-steady notion of what a given BPM means, yet I could start/stop the sequence from Ableton, and jump around in the Arrange window.
This didn’t work very well — I ended up getting start offsets that made the MD run substantially behind Ableton, and without any subsequent clock updates that would sync things back up.
Method 4: Live as Master, using discrete MIDI & Audio Tracks
This is how I’m rolling for now. It seems to have the best blend of controllable integration into the Live workflow, acceptable latency and jitter, and flexible MIDI recording and playback for all tracks of the outboard gear.
- Live sends Sync out to Machinedrum and Monomachine. In my setup I’m using a MIDI clock delay of ‑9 ms for both.
- I create audio tracks for each input from the MNM and MD, and set them to Monitor “In” mode for lowest latency.
- Midi is routed via dedicated MIDI tracks — one per channel I need to send to. If you don’t want Live to bake in latency on recorded midi clips, make sure monitor mode is set to “Off” for these.
Here’s the Monomachine portion of the setup: (click image for full size)
Using this setup, I’m getting jitter of less than 1 ms. Strangely, it seems to alternate back and forth within that range every other quarter note. I’m not getting perfect phase-sync on every downbeat, but at least the “band” is reliably, roughly in time now.
Misc Notes
- The Machinedrum’s TurboMidi mode doesn’t seem to have a substantial effect on all of this. I’ve noticed that it seems to slightly delay or rush the overall timing, which I’ve compensated for in the MIDI clock delay parameter when I’m using it. However, it doesn’t seem to have any better or worse jitter performance than non-TurboMidi enabled mode.
- If you want to be tight like Hybrid or BT, then get ready to drag some warp markers on your bounced audio tracks until everything’s all sample accurate. Or sequence your drums using audio hits in the Arrange timeline. I’m fine with things being pretty darn close for now.
- Switching Ableton to use “Pattern” mode MIDI clock seemed to result in clock drift over the course of each measure. By the end of the measure beats were all over the place (relatively speaking — they were still within 5 ms of the correct time).
That’s it. If you’ve read this far and have any tricks to get this stuff working better (without resorting to expensive hardware panaceas), please let me know! In my next blog post I’m going to write about Ableton’s interaction between latency compensation, different methods of monitoring, and MIDI Clock output.
Comments
9 Responses to “Ableton Live, The Machinedrum and The Monomachine: Midi Sync Notes”
Leave a Reply
June 6th, 2010 @ 8:26 am
[…] Continue reading here: Ableton Live, The Machinedrum and The Monomachine: Midi Sync Notes … […]
November 1st, 2010 @ 11:55 am
thanks matey : )
between your advice and page 90 of the Mnm(Mk1)‘s manual (“MONOMACHINE AND MIDI” — think it’s on page 91 in the MK2’s manual, “TEMPO SYNC”), I got this working.
Thank you
Admittedly, I’ve now forgotten how I did it (have been busy at school last few months). But i’ll re-do it and take notes (for myself).
November 1st, 2010 @ 12:03 pm
PS. and the other good reference was the following part in Ableton’s (Live 8) reference manual:
“Synchronization and ReWire” chapter 29 of the Ableton reference manual, in particular, “29.1.1 Synchronizing External MIDI Devices to Live”… page 495 in Live 8’s manual
July 12th, 2011 @ 11:47 pm
Thanks for posting this up!
If you have added any new thoughts to this great piece of information please post.
I have been pulling my hair out trying to get this stuff sorted for a very long time, it became so frustrating I stopped producing for some time now 🙁
My soundcard is in getting fixed, I cant wait to try and get this sorted, I hope I don’t have to go down the path of spending big bucks on a sync-lock device and a midi merger!
If you have any ableton templates you want to share for MD and MnM set please post.
Cheers again!
Peace
August 4th, 2011 @ 12:01 pm
Any one who hasn’t figured this out yet, on Machine Drum at least you need to have BOTH ‘Tempo In’(set to ‘external’) AND ‘Cntrl In’ (set to ‘on’) Then, and only then will Machine Drum lock to Ableton (or any other DAW I imagine)
August 9th, 2011 @ 3:24 am
Cntrl is irrelevant of the sync issue, it just sets up how machinedrum responds to start and stop or midi messages, I still have the same problem regardless of how Cntrl is set up.
March 29th, 2012 @ 5:46 pm
All you have to do to fix scenario one is enable strict delay compensation.
Go to AppData\Roaming\Ableton\Live 8.2\Preferences
and create a text file called Options.txt
put this in it: ‑StrictDelayCompensation
All done. No more timing mess when tracks are armed or not.
February 13th, 2013 @ 2:26 pm
Mate, I feel your pain — I have an Elektron
OT and have the same clocking issues, been trawling the web for a solution as it really limits the potential of the OT and kind of negates the whole reason for having it. Only thing I have come across other than lots of clocking idiots who don’t seem to understand the fundamental problem is the Inner Systems stuff — that looks like it will work but it’s not cheap
January 25th, 2015 @ 5:22 am
T.H.A.N.K.S. !!!!!1!eleven