Hi Rick –
Since our CoreAudio driver is a user-space plugin rather
than a kext, there are some limitations that we imposed on it to make it play
better with client apps. One thing we did was to only allow the sample rate and
buffer-size to be changed by a client if that client is the only one connected
to the Server (aka Manager app). We did this for buffer-size changes because
our user-space model doesn’t support different clients running at
different buffer-sizes, and we encountered some clients that were not listening
for a “buffer-size changed” notification, which would cause them to
crash when another client changed the buffer-size. We saw the same thing for
sample rate changes, albeit not a crash, just slow/fast audio. So, although
these are actually client app bugs, we opted to insulate ourselves against
them. This decision is probably worth revisiting on our end, especially the sr
part.
So, if there’s more than 1 client attached to the
Server/Manager, then you can’t change the sr.
Also, the Manager app is not really a control panel, it’s
an actual server app that allows multiple clients to stream audio to our
hardware. When it’s launched, it owns our hardware, and PT can’t
use our HW, so we take pains to only launch it when it’s really needed.
This is one reason why it’s not published as the official control panel
for our device.
One more thing: The Mbox2 uses a native IOKit-based driver,
so it doesn’t need the Server/Manager app (and all its associated
baggage). Hallelujah.
Hope this helps,
-Ted