ASIO multi client support (infinite loop of doom)


#1

Hi guys,

I’d like to have my app use ASIO in a multi client setup where the app can run alongside other ASIO apps. Currently this works great but I get in to trouble when another app decides to change the sample rate for example.

JUCE currently handles all asio setting changes by requesting a restart of the device and unfortunately the restart uses the previous sample rate and block size specified to reopen the device. To make things worse other ASIO apps will do something similar and then an infinite loop of doom ensues with alternating sample rates! I guess at the moment most ASIO apps want to dictate the device settings and insist it.

I’ve hacked this to work fine for my application by calling getSampleRate () and using this new rate to restart the device.

Any chance to add support for external ASIO setting changes nicely?