Focusrite ASIO driver and Callback Timing error (solved)

MT32-Sound Pad Lite
Post Reply
Vincent Burel
Site Admin
Posts: 2008
Joined: Sun Jan 17, 2010 12:01 pm

Focusrite ASIO driver and Callback Timing error (solved)

Post by Vincent Burel »

Despite Focusrite offers very good hardware audio boards, the ASIO driver (especially for USB devices) is not exactly programmed in the respect of the ASIO principles (and real time DSP rules).

Focusrite ASIO buffering is not real, and the callback mechanism does not respect buffer timing rules. It seems Focusrite ASIO driver works internally with bigger buffer than the ASIO buffer size. Then it is obliged to call the process function several times in the same time frame.

The MT32-SPLITE (and MT64 or MT128) application shows the problem in its ASIO page, when selecting Focusrite ASIO Driver. For example with Focusrite Saffire USB, even with a big buffer size (942 samples) the ASIO driver is sometimes calling the process function twice and consequently is producing timing error (red peak).
MT32FocusriteSaffire942smp.gif
MT32FocusriteSaffire942smp.gif (177.7 KiB) Viewed 101653 times
We also have Focusrite Scarlett 18i20 connected on a MT128-PRO (64bits) on WIN7 64bits. We set down the latency to 89 samples buffer size (producing a global latency of 13.9 ms which is much bigger than expected for this buffer size). And we can see that the timing errors are more important if the buffer size is smaller. (similar problem reported on Scarlett 2i4 MK2).
MT32FocusriteScarlett89smp.gif
MT32FocusriteScarlett89smp.gif (177.39 KiB) Viewed 101653 times
The consequences are usually not hearable in this case, but can disturb other streams, possibly synchronized to this main audio stream. It may concern MIDI sequencing, Display/Video and all real time slave processes based on the time regularity of the ASIO callback.

The problem is more present with Voicemeeter Virtual ASIO Drivers (allowing to connect a DAW or ASIO instrument to it), which are strictly synchronized on the Voicemeeter Main Stream (given by output A1 device), that can be driven by a focusrite ASIO driver.

Since ASIO interface is based on a double buffer swap principle, it is important to have enough time between buffer swap to process it and respect real time constraints. With Focusrite ASIO driver, the buffer swap can be done without respecting this timing and then will produce an audio cut/crack on the DAW source connected to Voicemeeter virtual ASIO driver.
VoicemeeterVirtualASIODriving.jpg
VoicemeeterVirtualASIODriving.jpg (130.96 KiB) Viewed 101653 times
Conclusion: if you have such problem with Voicemeeter or any other ASIO applications and USB focusrite audio board, you may forward this topic to Focusrite Support… Hope it will encourage them to update their ASIO driver…

Possible Workaround: the issue can be not there for some remarkable couple of values (samplerate, buffer size) for example at 48000 Hz, 240, 192 or 128 samples buffer size could work correct. At 44100 Hz i guess unusual 147 or 441 samples buffer size could work too…

SOLUTION: Voicemeeter NOV 2022 versions offer new Virtual ASIO drivers able to support this timing callback stability error.
mipsou
Posts: 25
Joined: Sun Jul 01, 2018 5:08 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by mipsou »

For a Focusrite Scarlett 18i20 2nd gerenation, you can adjust the buffer to 288
Image

I use insert and i've adjust buffer to 576. The sound in insert is clean.
After i have 1 crack per 5 minutes. it's my best setting.
Vincent Burel
Site Admin
Posts: 2008
Joined: Sun Jan 17, 2010 12:01 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by Vincent Burel »

thanks for the tip!

This timing error given by Focusrite ASIO drivers (an many others driver of USB audio devices by the way) are just impossible to understand today! In 2019, i cannot explain how audio programmers could not manage a 5ms callback timing correctly, just incredible !).
mipsou
Posts: 25
Joined: Sun Jul 01, 2018 5:08 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by mipsou »

Hi,

Caution!! Pro Tools do not support non standard buffer size.

With Focusrite Scarlett 18i20 2nd gerenation connected to Voicemeter, i can't use Pro Tools.

Source: http://avid.force.com/pkb/articles/en_U ... e/en406455
How can I resolve the error, 'Audio device is configured with an unsupported buffer size', when launching Pro Tools with a third party interface?

Pro Tools 9 currently only supports the following buffer sizes, 64, 128, 256, 512, and 1024 samples. If your audio interface does not support these buffer sizes, then you will not be able to use it with Pro Tools. Your audio interface should have a control panel where you can adjust its buffer size. This is where you can see what buffer sizes it supports.

Some interfaces may support multiple buffer sizes where only some of them are compatible with Pro Tools. If this is the case, you will need to first change the buffer size to one that will work with Pro Tools (see above) and then relaunch Pro Tools.
praisetracks
Posts: 2
Joined: Tue Mar 05, 2019 10:44 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by praisetracks »

Vincent Burel wrote:thanks for the tip!

This timing error given by Focusrite ASIO drivers (an many others driver of USB audio devices by the way) are just impossible to understand today! In 2019, i cannot explain how audio programmers could not manage a 5ms callback timing correctly, just incredible !).
I have been experiencing this as well even with the latest Scarlett 4i4 3rd gen!
Does not work well with Voicemeeter at all and looking at this thread there is good reason.

I am going to try running these tests and forwarding them to Focusrite as I am currently working on a review for the 4i4 3rd gen and like you said it it is hard to understand why they have let this issue persist for so long without addressing it.

I was able to get things looking clean using a 96 buffer size at 48000 sample rate but it is not sustainable when using it in the context of producing in the DAW (Cakewalk by BandLab for instance).

Also their so called Loopback feature does not tie into other applications and in the current state cannot be used reliably with Voicemeeter so it is a shame as the other aspects of the interface are very nice.

I will be following this and forward any feedback I receive from Focusrite as well.

All the best,
Simeon
PraiseTracks.com
Vincent Burel
Site Admin
Posts: 2008
Joined: Sun Jan 17, 2010 12:01 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by Vincent Burel »

To be precise, Voicemeeter can work with this, but can have problem to synchronize its virtual ASIO driver if the callback timing is not respected by the ASIO driver connected to output A1. Then the problem for Voicemeeter is located on virtual ASIO driver only, it means on possible DAW connected to Voicemeeter Virtual ASIO driver.

Independently from this, it seems that many USB-ASIO driver are built with the same confusing issue between the ASIO buffering (set by the device panel), the ASIO buffering asked by the app, and the buffering possibly used by the Windows Driver. And it sounds like the problem comes when the device current buffering is not adapted to the one used by the audio interface used by the client application...

Because, sometimes, in some cases or some configuration, it works ok!
Yes, computer is nomore determinist since a long time now :-)

So to have more chance to make it works with Voicemeeter, first set the ASIO buffer in the Device panel to 256 or 512 samples min.
Then ask Voicemeeter System settings to use default buffering given by the device.
jack
Posts: 5
Joined: Tue Apr 09, 2019 4:45 pm

Re: Focusrite ASIO driver and Callback Timing error.

Post by jack »

This almost makes it sound like multiple companies use the same consultant to create and update the ASIO driver.

I'm in the market for a new audio interface - are there any you've come across that have good drivers?
Vincent Burel
Site Admin
Posts: 2008
Joined: Sun Jan 17, 2010 12:01 pm

Re: Focusrite ASIO driver and Callback Timing error (SOLUTION)

Post by Vincent Burel »

yep, possible... usually RME device has very good driver (made by RME it self)
but i did not test any USB device (only PCI , PCIe).

SOLUTION: Voicemeeter NOV 2022 versions offer new Virtual ASIO drivers able to support this timing callback stability error.
Post Reply