Voicemeeter latency and windows 10 small buffers
Posted: Thu Apr 25, 2019 7:32 pm
I have made some round trip latency mesurements with "RTL Utility" on different sound cards, using the device in windows audio and in asio when available, all configured to 44.1KHz.
Asus Xonar DX, Asus Xonar U7, Sound Blaster Recon3di : jack-jack cable from headphone output to line input.
RME Multiface 2 : internal buffer : 32 samples, spdif loopback
VoiceMeeter : VBCable max latency 1536 samples, output A on RME Multiface 2 using ASIO Hammerfall DSP
Here are my best results (the latency is almost 20ms varying with windows audio, I just retained my best mesurement) :
Asus Xonar DX windows audio 91ms
Asus Xonar DX XONAR DX ASIO 32ms
Asus Xonar DX ASIO4ALL v2 buffer 512 52ms
Asus Xonar U7 windows audio 58ms
Asus Xonar U7 ASUS U7 ASIO 47ms
Sound Blaster Recon3di windows audio 43ms
Sound Blaster Recon3di (no asio driver)
RME Multiface 2 windows audio 65ms
RME Multiface 2 ASIO Hammerfall DSP 2ms
VoiceMeeter : internal virtual loop back in VoiceMeeter
VoiceMeeter windows audio 76ms
VoiceMeeter VoiceMeeter virtual ASIO 2ms
VoiceMeeter : spdif loopback on the RME Multiface 2
VoiceMeeter windows audio 102ms
VoiceMeeter VoiceMeeter virtual ASIO 5ms
I am a little confused with those results.
I expected VoiceMeeter virtual loop back to have the lowest latency, followed or equaled by the RME Multiface 2. And it's true in ASIO.
Unfortunately, I need to use the windows mixer (videos and games), and the best windows audio latency is achieved by my cheapest, integrated sound card : Sound Blaster Recon3di.
I have tried to reduce the VBCable max latency below 1536 samples, but then I hear cracks.
I found this article from Vincent Burel :
https://www.linkedin.com/pulse/finally- ... ent-burel/
"We can say that finally WIN10 could work correct for real time audio application maybe if using VirtualLock in application and/or maybe with the next RS4 update"
And this article from microsoft :
https://docs.microsoft.com/en-us/window ... io#samples
"In Windows 10, the latency has been reduced to 1.3ms for all applications"
"By default, all applications in Windows 10 will use 10ms buffers to render and capture audio. If an application needs to use small buffers, then it needs to use the new AudioGraph settings or the WASAPI IAudioClient3 interface, in order to do so. However, if one application in Windows 10 requests the usage of small buffers, then the Audio Engine will start transferring audio using that particular buffer size. In that case, all applications that use the same endpoint and mode will automatically switch to that small buffer size. When the low latency application exits, the Audio Engine will switch to 10ms buffers again."
And finaly my questions :
- Is there anything I could do to get a better latency with voicemeeter ?
- Would it be possible for voicemeeter to force the windows audio engine to enter (and stay) into the "small buffer mode" ?
Asus Xonar DX, Asus Xonar U7, Sound Blaster Recon3di : jack-jack cable from headphone output to line input.
RME Multiface 2 : internal buffer : 32 samples, spdif loopback
VoiceMeeter : VBCable max latency 1536 samples, output A on RME Multiface 2 using ASIO Hammerfall DSP
Here are my best results (the latency is almost 20ms varying with windows audio, I just retained my best mesurement) :
Asus Xonar DX windows audio 91ms
Asus Xonar DX XONAR DX ASIO 32ms
Asus Xonar DX ASIO4ALL v2 buffer 512 52ms
Asus Xonar U7 windows audio 58ms
Asus Xonar U7 ASUS U7 ASIO 47ms
Sound Blaster Recon3di windows audio 43ms
Sound Blaster Recon3di (no asio driver)
RME Multiface 2 windows audio 65ms
RME Multiface 2 ASIO Hammerfall DSP 2ms
VoiceMeeter : internal virtual loop back in VoiceMeeter
VoiceMeeter windows audio 76ms
VoiceMeeter VoiceMeeter virtual ASIO 2ms
VoiceMeeter : spdif loopback on the RME Multiface 2
VoiceMeeter windows audio 102ms
VoiceMeeter VoiceMeeter virtual ASIO 5ms
I am a little confused with those results.
I expected VoiceMeeter virtual loop back to have the lowest latency, followed or equaled by the RME Multiface 2. And it's true in ASIO.
Unfortunately, I need to use the windows mixer (videos and games), and the best windows audio latency is achieved by my cheapest, integrated sound card : Sound Blaster Recon3di.
I have tried to reduce the VBCable max latency below 1536 samples, but then I hear cracks.
I found this article from Vincent Burel :
https://www.linkedin.com/pulse/finally- ... ent-burel/
"We can say that finally WIN10 could work correct for real time audio application maybe if using VirtualLock in application and/or maybe with the next RS4 update"
And this article from microsoft :
https://docs.microsoft.com/en-us/window ... io#samples
"In Windows 10, the latency has been reduced to 1.3ms for all applications"
"By default, all applications in Windows 10 will use 10ms buffers to render and capture audio. If an application needs to use small buffers, then it needs to use the new AudioGraph settings or the WASAPI IAudioClient3 interface, in order to do so. However, if one application in Windows 10 requests the usage of small buffers, then the Audio Engine will start transferring audio using that particular buffer size. In that case, all applications that use the same endpoint and mode will automatically switch to that small buffer size. When the low latency application exits, the Audio Engine will switch to 10ms buffers again."
And finaly my questions :
- Is there anything I could do to get a better latency with voicemeeter ?
- Would it be possible for voicemeeter to force the windows audio engine to enter (and stay) into the "small buffer mode" ?