“The sound is coming too late”
“There’s a delay when I play the guitar”
These are the most common reactions when a guitar player tries to play the guitar using a software effect processor either on a computer or a mobile device.
It’s like the ping in a multiplayer game. There’s a delay between your inputs and results depending on how much ping you have. Same with the music related softwares. Especially on the mobile platform.
So, what causes this latency?
Your input which is your guitar signal is an analog “real-world” information and it needs to be converted to digital information in order to be processed by the processor. This conversion is called “analog to digital conversion” or shortly A/D. Analog signal is converted to digital data by “sampling”. This sampling procedure takes 1ms (0.001 seconds).
This processing step could take 1ms to 50ms depending on how heavy the process is. Then this processed data goes to another converter. This converter converts digital data into analog signal so that we can hear it through the headphones or speakers. This step is called “digital to analog conversion” or shortly D/A. This step also takes 1ms.
The best case scenario is 3ms round-trip latency in total, 1ms A/D + 1ms process + 1ms D/A = 3 ms.
…In an “ideal world”.
The Android world is not that ideal. There are some other steps involved in this round-trip.
Our nerves cannot detect the differences that occur inside the 20ms window. Which means, if your latency goes higher than 20ms, you start to notice it. If it is under 20ms, it feels like instantly.
If you want to play the guitar through software, you want to have latency less than 20ms otherwise it doesn’t feel like “you” are playing it and it’s not fun at all.
To overcome these extra steps that cause latency, we need to bypass some of them using our converters. That means using an external audio card via USB connection.
When you use a USB Audio Card, these latency values go around 10ms. Now that’s fun.