You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, if both input and output devices are available, but the ASIO Host Application only opens channels for one direction (i.e. input or output), FlexASIO will still open a full-duplex PortAudio stream. In other words, FlexASIO calls Pa_OpenStream() with both input and output devices even if the ASIO Host Application calls createBuffers() with a set of ASIOBufferInfos that are all input channels, or all output channels.
Ideally, FlexASIO should not open a device that it's not going to use, because that increases the likelihood of clock mismatch issues.
As part of #22 I will introduce a way to disable one side of the stream. This helps, but ideally FlexASIO should just figure this out on its own.
The text was updated successfully, but these errors were encountered:
Note that this enhancement, on its own, will not help with audio format negotiation, because FlexASIO will still attempt to open a stream in canSampleRate(), but at this point FlexASIO doesn't know which direction will be used yet. This probably means FlexASIO should stop trying to open a stream in canSampleRate() and instead should act as if any sample rate is supported; this would probably result in a net improvement to user experience, especially when using WASAPI Shared (see #23).
Actually, I just thought of an even better way to solve the above problem: in canSampleRate(), try to open two streams: an input-only stream and an output-only stream. Return false only if both streams fail to open. This will still allow canSampleRate() to return mostly accurate information, in the sense that it will still accept a sample rate if there is any way to make it work.
Currently, if both input and output devices are available, but the ASIO Host Application only opens channels for one direction (i.e. input or output), FlexASIO will still open a full-duplex PortAudio stream. In other words, FlexASIO calls
Pa_OpenStream()
with both input and output devices even if the ASIO Host Application callscreateBuffers()
with a set ofASIOBufferInfo
s that are all input channels, or all output channels.Ideally, FlexASIO should not open a device that it's not going to use, because that increases the likelihood of clock mismatch issues.
As part of #22 I will introduce a way to disable one side of the stream. This helps, but ideally FlexASIO should just figure this out on its own.
The text was updated successfully, but these errors were encountered: