When trying to initially configure ASIO4ALL v2 by selecting the sample rate 88200 Hz, or 176400 Hz, I get the “Device didn’t start correctly” message. (leading me to a “<>” device)
I’m able to switch to the “Windows Audio” device type, and have everything work fine. But what’s befuddling is that when switching back to “ASIO” again, I get the current sample rate, and the two others that give me the alert message, to choose from… and I’m able to select either, successfully configuring ASIO, but with no output!
Initial sample rate list for ASIO:
[attachment=0]ASIO - Initial Sample Rate List.png[/attachment]
List of rates when switching back to ASIO, after going to WASAPI:
[attachment=1]ASIO Broke.png[/attachment]
I tested these rates in other DAWs (FL Studio, Audition, Reaper (x64), Studio One 2 (x64)); those two specific sample rates just don’t work with ASIO4All v2… There might just be a bug in the driver. :?
Is anybody else able to confirm this strange ASIO behaviour?
I'm pretty up to date using git (update once a week or so)
Ok I have looked some more at this.
For once to reproduce in the demo, you need to select the correct driver, enable all outputs (or inputs).
( The bug will also show if you use "Enable Default Input" in your app, as it will enable all I/O)
After enabeling all inputs or outputs, change samplerate from 44100 to 96000, and observe the error message.
I made a quick "fix" in juce_win32_ASIO.cpp just for testing:
This is just copy paste from earlier in the function to reset totalNumInputChans and totalNumOutputChans.
This seems to fix the bug. But I guess Jules will need to look at this since I now got other issues in my app now for some reason. So my "solution" is probably not the correct way to fix it.
Also in the demo, the buffersize combobox de-selects it self for some reason when the sample rate changes
The order in which you call functions when opening an ASIO device is very fragile - when I first wrote this code years ago I remember there were devices that would crash if you didn't ask for their buffer size, etc in the correct order. So I can certainly believe that there may be devices that aren't well-behaved, but not sure what I can suggest as a change, since I can't actually test this myself, and it's largely a case of trial-and-error in finding fixes like this..