Where's My Device, ASIO?


#1

Hi Jules,

Several DAWs I use let me enable/disable devices straight from the ASIO4All panel (opening them right away when enabled, and closing them right away when disabled)… And so I would like to point out that with the “extra” JUCE applications, toggling devices to an “enabled” state doesn’t always “open” them, leaving one or many recently enabled devices in an “Idle” state (and therefore not showing up in the “active input/output channels” lists of a AudioDeviceSelectorComponent).

The solution is to switch to another driver, and back to ASIO, to get the device to finally appear…

Here’s an example with the PluginHost.

The debug Output window gives me the following when this situation happens:

ASIO: error: create buffers 2 - Invalid Mode
ASIO: error: create buffers 2 - Invalid Mode
ASIO: error: Can't create i/o buffers - Invalid Mode
ASIO: error: Can't create i/o buffers - Invalid Mode

#2

Messing with the code; it seems the device needs to wholly reopen every reset request to avoid this.

But, another related issue arises: the BigInteger objects used to present active input and output channels don’t get updated in the AudioDeviceManager… where they need to at least reflect the loss of devices. (otherwise things like a Graph still get the wrong number of inputs and/or outputs!)


#3

Here’s a possible series of changes that you can make in order to get the most current list of available channels from ASIO: [diff].

(Ignore the extra semi-colon)


#4

Much obliged! Will have a look at this today…