Today I was attempting to determine the hardware audio latency of a MacBook Pro (late-2009 model, 2.8GHz dual-core 17″). This was to plug in to the Driver Error Compensation setting under Preferences > Audio in Ableton Live 8. I was following the Driver Error Compensation tutorial that ships with Live, and hooked the headphone output to the line input on the side of the MacBook. I used a straight-through 1/8″ TRS cable – two of them, in fact, which I also verified for correct wiring with a meter, after discovering a few disturbing facts.
First, something is out of phase, either the input or the output. When the output waveform zigs up, the recorded waveform zags down. That could be troublesome in certain circumstances.
Second, the actual latency changes every time you disconnect and reconnect the cable plugged in to the headphone jack. Apparently, the Mac is reconfiguring its drivers, so that it knows what’s connected where, or something. But when it does this, the latency changes! A lot! While the cable is connected, it doesn’t seem to vary, but since the connector is so delicate (and over-engineered, sigh..) it is easy to accidentally dislodge the cable a tiny bit, which is enough to trigger this problem.
Each of the two screenshots above show the playback waveform (top) and the recorded waveform (bottom). You can see the phase difference, and I included two examples that were on the more extreme ends of the range of latency. The time scale along the bottom is in fractions of seconds. You can see that the latency has changed from approximately 0.0025s to 0.0225s – that’s a 20ms difference! Why the heck does it do this?
Moral of the story: buy a professional audio interface for any serious recording work.
thx for sharing the test.
my audiointerface is faulty, and i really wanted to record pads from my synthesizer, and the line input was my only option.
too bad that the latency varies so much, but i guess i can configure it under one session so i can get my stuff in to Live so i wont forget it.
What do you mean by your interface is faulty?
If you want to record, you can do so with the built-in audio. The biggest trouble is the latency is unpredictable – but ONLY when you disconnect and reconnect the wire, physically, from the jack. If you leave it plugged in, and measure the latency, it will stay the same. So, hook up your gear, fire up Ableton, and record. You’ll probably get it done without too much trouble.
Thx for sharing. This is exactly what I was looking for. And now I’m hesitating to buy one. 🙂 what was the buffer size in your tests? Or in other words, what’s the ave latency you can get from macbook alone; without compromising audio quality?
I just loaded up a track with a pile of FX and a heavyweight piano sample, and it worked fine down to around 30 samples (6ms) – quite decent. Seems it can push the internal interface just as well as an external; you simply have quality issues, and that wonky issue I posted about. I have not tested external interface for that behaviour, though. Not sure at what point in the system it’s happening… Anyhow I use an old M-Audio Audiophile USB sound interface someone gave me, which is much better quality and works fine. I wouldn’t recommend using the internal one for anything critical, but it does work if you need it. External interfaces are very inexpensive for basic ones, and you’ll get a far better baseline quality.
Much appreciated! I’ll check out m-audio cards as well.