Latency is another word for delay, more specifically the time it takes for an audio signal to enter a system and come back out. If you play you guitar connected to your computer and listen to it in real-time in your monitors, having low latency is crucial. Already at pretty short latency times the sound perceivably comes out delayed and it becomes impossible to play. The effect is a lot like when you sometimes hear an echo of your own voice in a long-distance phone call.
Where Does Latency Come From?
In the complete signal chain there are a lot of steps that add latency:
- Signal travelling from your guitar to your audio interface.
- Analog-to-digital conversion inside the audio interface
- Transmitting the digital signal to the chosen application (like a DAW)
- Processing the signal inside the application
- Transmitting the processed signal to the audio interface
- Digital-to-analog conversion of the signal
- Signal travelling from the audio interface to the speakers and then through the air to your ears
The latency from these sources can never be eliminated entirely, so it’s a constant battle to cut as many milliseconds as possible in each step.
There’s not a whole lot you can do about points 1 and 7, but luckily the problem doesn’t lie there. Electric signals travel through cabels at the speed of light and the delay from the speakers to your ears you’re already used to from when you use a physical amp.
The conversion parts between analog and digital, bullets 2 and 6, are very quick in modern hardware, so no worries there either.
That leaves us with points 3 through 5.
Input and Output Latency
Points 3 and 5 are what usually contribute most to the total latency, especially point 3 (input). Although the actual conversion is quick, there’s an input buffer to ensure a stable input signal. Since the buffer needs to be filled before the signal reaches the application, the larger the buffer the larger the delay and higher the latency.
There is usually also a number of layers inside the operating system that the sound needs to go through (low-level driver, mixer, sound service etc) that each add their own latency.
To get around this, there is a standard for audio drivers in Windows called ASIO, invented by Steinberg. ASIO drivers cut away a lot of the layers in the OS allowing a much more direct and faster access to the audio hardware. Most ASIO drivers also come with tweakable settings, most importantly buffer size. What you want is the smallest buffer size (hence the lowest latency) that provides a stable input without crackles or pops.
Most general-purpose audio interfaces for computers don’t have ASIO drivers. Playing sound from say a game isn’t latency critical at all, especially not the input latency (which is hardest to beat). There is a driver called ASIO4All, which is a generic ASIO driver for any sound card. Although a lot of people have gotten good results with it, it’s basically just a hack. I’ve never gotten it to work properly, audio lockups, crackling sound or even worse – blue screens.
My advice is to make sure the audio device you choose has a real ASIO driver supplied by the manufacturer. Most audio devices design for music production do.
The ASIO driver isn’t used to record and play sounds in Windows (a lot of layers in standard audio drivers aren’t there, remember?) so you can’t use them with any application. An example is Audacity, a popular open software audio application – but unfortunately it can only use the many-layered standard Windows drivers.
All professionalf DAWs (Cubase, Protools, Ableton, Reaper etc) have support for ASIO. Make sure you select that option in the settings for your DAW, or it will use the Windows driver by default.
Once the signal is in your application, what you do with it determines the time it takes before it’s output. Just recording the signal takes virtually no time at all, but when you start adding plugins latency can start to accumulate. This is where the speed of your hardware will matter the most – a powerful computer can run more plugins in the same time than a slower one.
To lower latency, disable or offline any plugins you absolutely don’t need when recording and apply them later to the recorded track. There’s often a difficult tradeoff here – you want monitoring to be as close to the final result as possible. How you play is affected by what you hear – removing distortion for instance (if you apply that as a plugin) would make it impossible to play rock or metal guitar properly.
Most audio devices for music production have a direct monitoring feature, usually in the form of a headphone jack. Using that you can listen to the signal directly when it comes in, and bypass most of the steps (all but number 1) that cause latency. This is great but has one major drawback – no processing of the sound is done. With vocals, that are super sensitive to latency, this is usually fine. Singers can usually perform without reverb for instance. With a guitar recorded from an amp it’s the same, the foundation of the sound is in place and only the extras like reverb or dealy may be missing.
With guitars reamped in software it’s catastrophic however, you’ll only hear the dry signal. Since all amplification, distortion etc. is done in software, you’ll hear nothing that’s similar to the end results. Three solutions: 1) just combat the latency using the tips jabove, it’s entirely doable, 2) split the signal with one path going dry into the computer and the other path going to a physical amp that you use for monitoring, 3) get a device that has the amp sims in hardware (for monitoring) but let’s you record dry (for reamping). I’ve used my POD X3 live a lot to accomplish the last solution.
What About Other Platforms?
Latency of course affect all platforms. Not a Mac user myself I don’t really know how this is solved in MacOS, but I think there is better support for low-latency audio in the OS itself.
In iOS there is built-in support for low-latency audio and with the very limited number of hardware configurations I’ve never had any latency problems running amp sims like AmpKit.
Android suffers from the same problems as Windows, with a plethora of different hardware and no built-in support for direct access to the audio devices. However, Google has announced the next version of Android OS (Jelly Bean) will have this support.
More Tips and Tricks
There’s a lot of little tweaks you can do to optimize you settings for low latency. I’ve never really had to use them, just installing ASIO drivers and lowering the buffer size has always been enough for me. Here’s a few guides if you want to take your tweaking a step further:
And as always, share your own best tips in the comments!