Low latency performance with Focusrite Scarlett 6i6

The Virtual Audio Mixer discussions and support...
Post Reply
rallfo
Posts: 2
Joined: Thu Nov 19, 2015 9:11 am

Low latency performance with Focusrite Scarlett 6i6

Post by rallfo »

First thanks for the awesome work you do on Voicemeeter and the virtual audio cables for Windows. :)

I have a Focusrite Scarlett 6i6 running on Windows 10 64bit. I would like to use the Voicemeeter ASIO host / virtual ASIO device feature to route the output of Ableton Live both to my audio interface's outputs as well as a virtual sound device (for streaming) with minimum latency.

I have succesfully got this setup working well using Jack for Windows and an ASIO buffer-size of 16 samples. However attempting to replicate this setup using Voicemeeter directly causes stuttering or buffer under/overruns with ASIO buffer sizes below 256 samples.

So my question / observation is: does Voicemeeter have performance issues at small buffer sizes or have I misconfigured something?

Here is the setup that does work for me:
Jack for Windows
- portaudio backend with a buffer size of 16 samples (-d"ASIO::Focusrite Scarlett ASIO" -r48000 -p16)
- realtime scheduling with highest priority (-R -P95) and clock-sync mode (-S)

VB-Audio ASIO Bridge
- 1536 sample buffer
- connect to JackRouter virtual ASIO device

Then routing the audio appropriately within Jack from Ableton to the ASIO Bridge, the end-to-end buffer size is reported as 16 samples with a loopback latency of <6ms (measured using a loopback XLR cable and test tone in Ableton).

So basically I would like to be able to use Voicemeeter with the same level of performance. Unfortunately any buffer size below 256 samples (>25ms latency) causes distortion of the signal, but it is very regular sounding like a buffer alignment issue or something... I have tested using both of Voicemeeter's virtual ASIO devices and the ASIO insert device. I have tried using Ableton Live, Audacity and Adobe Audition and all have the same results suggesting it is not specific to my DAW.

Something else:
When I first tried using Jack, the smallest stable ASIO sample size without stuttering was about 64. I then enabled HPET in my BIOS (X99 Haswell-E system) and in windows (bcdedit /set useplatformclock true) - QueryPerformanceFrequency now returns 14.3 Mhz. Jack and ASIO Bridge now happily work with 16 sample buffers with very good performance. Does Voicemeeter Banana use HPET?
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Low latency performance with Focusrite Scarlett 6i6

Post by Vincent Burel »

Well, under Windows i know no ASIO board able to run stable below 64 samples buffering in real situation.
and many of this board offering 64 smp buffer, are running a fake real time, i mean they send 2 or more buffers at once, and if you analyse the callback timing, you see that the "real interrupt" is much bigger or not stable...

We have several Focusrite board here (the saffire 6 and 18i20 USB) and i don't recommend to go below 128 samples. Our driver analyzer shows that the callback scheduling is not very stable. and real latency of this board is 6 to 10 time the buffering size... anyway its ASIO driver does not allow to go below 40 sample as far as i know.

Voicemeeter has been designed and validated to support buffer size from 128 to 1024 samples.
it should work with any ASIO driver able to run stable with this buffering size.
rallfo
Posts: 2
Joined: Thu Nov 19, 2015 9:11 am

Re: Low latency performance with Focusrite Scarlett 6i6

Post by rallfo »

Thanks for replying.

I'm not sure what to say other than this hardware does appear to be succesfully running at 16 samples buffering using the current build of JACK and the beta 3.2.2 Focusrite drivers.

Image

The box Scarlett 6i6 itself is directly connected to an Intel USB 3.1 port on the PCH of an X99 motherboard, the Focusrite beta driver release notes specifically mention enabling support for 16 sample buffers on "powerful cpus" and it appears that JACK synchronises against the HPET clock source on the same PCH when it is enabled (in the BIOS and windows bcd), so these latencies seem plausible (?)

And as I mentioned before connecting an XLR cable from the output to the input and playing a test sound shows a total end to end latency of ~7.7ms on the waveform. I would like to run any tests on my setup that would help determine whether the driver is "faking it" as you said. I do notice a significant improvement in monitoring voice and keyboard playing through headphones compared to 128 buffer size though.

However USB drivers faking their performance aside, as you know Focusrite and other manufacturers are releasing thunderbolt ASIO boards this year which definitely are designed to support <2ms end-to-end latencies on supported chipsests at a hardware level.

So it would be very cool if the performance of Voicemeeter itself at low (<15ms) latencies could match that of JACK for audio routing, whether for my setup or the new thunderbolt audio interfaces!
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Low latency performance with Focusrite Scarlett 6i6

Post by Vincent Burel »

i don't know this new generation of driver, but you can see that it makes no sens to run it with 16 samples buffer for a 6.2 ms latency!
It makes more latency than with an RME board running with 64 samples buffer!
what is the sense to deal with 16 smp buffer = 0.3ms to finally have 6.2 ms latency ? (it makes around 20 internal buffers !?!)
this way to work just takes more CPU power and stress the scheduler for nothing.

Again, Voicemeeter is designed to work with buffer size from 128 to 1024 samples (64 samples can work, but we not recommend it),
and if you want to go down 10ms latency, you can use ASIO driver working with 3 buffers of 128 samples (= 3x 2.6 ms)...
but focusrite is not good example for this.
Post Reply