DirectSound vs WindowsSound drivers and Low Latency Handling

Hi there

With of JUCE 5.4.7/VisualStudio2017/Windows10 + VSTHOST

We experiment some plugins execution under juce: 1/ reverb example called AudioPluginDemo reverb, 2/ external VST3 valhallasupermassive

  1. Both work well when chosing “Windows Audio driver” in the VSTHOST settings. We can settle buffer down to 192 and the sound is ok (latency less than 5 ms)

  2. But if we chose DirectSound the sound is correct only for somewhat large buffer : if we settle down less that approx 2000, the sound become saturated and the reverb part a pure noise. And this is the same for both plugins

  3. If we add JUCE_ASIO define (0) to and recompile (with STeinberg SDK) then DirectSound this is ok, I mean can work low latency

We have to mention that ASIO4ALL is installed on the test PC. This seems to be consistent with the fact that Windows Sound as well as ASIO are often referred to as “low latency driver” but I cannot figure out how it works, hence my questions are:

  • Did we actually selected a ASIO driver based on DIrectSound in 3 (whereas the displayed driver name is the same :“DirectSound”) ?

  • What is the difference in the implementation of those drivers by JUCE driver callback inheritates AudioDeviceCallback that provides a way to access the audio buffer as a whole. I mean there is no way to indicate sub buffer with start sample and length as in processBlock api.

Thanks for your help.