It’s just part of the ASIO spec and how driver indicates to the host what buffer sizes it supports.
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.
Sounds like an issue with their driver. Do other hosts to the same?
I’ll doublecheck today afternoon (and also reply to your email regarding the BSOD).
I just checked in AsioLinkPro, and got this:
But in Focusrites own control panel I see:
In PianoTeq control panel I get:
In VB3 II the Asio control panel for the Focusrite is:
And Arturia has the same selections available as Focusrite:
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.
Thanks for the input. I had no time today to dig into it. Will do hopefully tomorrow or the day after!!
But this is already very interesting that cantabile seems to be the only host which shows such strange values…
Is it though? Looks like things are all over the place in different apps.
Of course you are right. But in the other hosts it looks like one is able to select the “usual” buffer-sizes like 64, 128, etc.
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.
At least I don’t get a BSOD anymore
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.
Thanks Brad! But please note that it’s a Focusrite interface and no RME!
Oops, got confused with another issue I’m looking into… Corrected the post.
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.
Just noticed there was a reply to my post on the ASIO forum questioning the meaning of the granularity setting in the ASIO spec. See here.
Short answer: Cantabile’s interpretation of the spec is correct and the driver is returning the incorrect values.
@FantomXR - did you say you had a contact at focusrite? Might be worth pointing them to the answer on the Steinberg forum.