I lowered the buffer-size to 56 instead of 72 like in my tests above. Now the latency looks much better! It’s as good as the Behringer.
So, @brad could you give us some background-informations about the “granularity”? I haven’t found much about this in the internet. Why can I not set the buffer-size to 64 like with other audio interfaces? Or does the driver count it up by 8 though if I set it to 56 it means 64 in reality?
Just an observation. The first graph shows what appears to be a switch bounce of 1 millisecond; the third graph shows one that lasts about 750 microseconds. I had read that a switch can bounce “up to 400 microseconds” before it settles down. I guess the person that quoted that didn’t realize that some switches can bounce much longer before settling down to an On state. Doesn’t matter much to humans, but microprocessors are pretty darn quick. Thanks for the graphs.
Strange thing… because the Focusrite Interface comes with an application called “ASIO Control Panel”. Here I can set the samplerate as well as the buffersize. And here I can choose from the “normal” values like 32, 64, 128, etc. pp. But Cantabile shows a completely different list.
When I checked with Cantabile and changed the buffer size, then the selection was reflected in the Focusrite control panel, i.e. it was possible to select something that was not on their official list.
Looking into this further, it appears the ASIO spec is vague on exactly what the granularity means, especially if the minimum value is not a multiple of the granularity. I’ve pasted a screen grab of the relevant section below for reference.
This is what @FantomXR’s asio driver is returning:
asio - getBufferSize returned min=8 max=1024 pref=56 gran=16
Which could be interpreted two ways. Either:
a) starting at 8 and increasing by 16 ie: 8, 24, 40, 56, 72, 88, 104 etc…
b) multiples of 16 between 8 and 1024. ie: 16, 32, 48, 64, etc…
Note that the driver is returning 56 as the preferred buffer size, which is not a valid buffer size if you take the second interpretation - that to me suggests the first interpretation is what they mean, and what Cantabile uses.
IMHO: the driver should be fixed to return something less ambiguous.
thanks for your detailed answer.
But could you explain, why Cantabile seems to be quite unique in what it returns from the driver? I ask this because I would bet on the Focusrite Support would ask exactly this because the other hosts seem to give access to the “standard” buffersizes.
Because the spec doesn’t say how a host should treat an ambiguous response from the driver and I’m interpreting it one way (I think the correct way) and perhaps others differently.
I’ve posted a question to the ASIO developer forum to hopefully get some clarification.
now I have the new Scarlett 8i6 3rd Gen next to me.
It is exactly the same behavior. I get those strange values as posted above. When I click on “ASIO Control Panel”, the Focusrite Panel opens and I can set a “standard” value like 16, 32, 64, 128, etc. pp. But those values do not show up in Cantabiles buffer-size-settings. If I confirm everything and run Cantabiles audio-engine, the focusrite-symbol in the task bar tells me that the buffer-size got overwritten with the size from the Cantabile-Audio-Engine-Setting.
Hm… I don’t know if it’s just a cosmetic thing or if there is something wrong… but I thought it’s worth reporting.
Update. I’ve not checked this myself, but apparently this beta driver resolves this issues with incorrect buffer sizes reported by the Focusrite driver: