flipswitchingmonkey / FlexASIO_GUI

Simple configuration GUI for FlexASIO
MIT License
336 stars 26 forks source link

FlexASIO GUI should not arbitrarily override FlexASIO defaults #11

Closed dechamps closed 3 years ago

dechamps commented 3 years ago

It seems that FlexASIO GUI will always set bufferSizeSamples, suggestedLatencySeconds, wasapiExclusiveMode and wasapiAutoConvert, even if the user never touched them.

In general, this is not a good idea, especially for suggestedLatencySeconds, because the default in FlexASIO GUI (zero) is not the same as the FlexASIO default (3x buffer length). This can lead to the user getting confused as to what the real "default" is. This in turn can cause FlexASIO to fail, as suggestedLatencySeconds = 0 is less likely to work than the default. See dechamps/FlexASIO#110 for an example.

There is a similar problem for bufferSizeSamples, which FlexASIO GUI initially overrides to 256. In fact, if the user changes the backend to DirectSound without touching the buffer size, this will very likely result in FlexASIO failing to initialize, because DirectSound inputs are known to fail with such small buffer sizes.

There are very good reasons why the FlexASIO defaults are the way they are. FlexASIO GUI should not mess with them.

flipswitchingmonkey commented 3 years ago

Hi, I'm not actively working on this currently since I've been working on a Mac mostly right now. I'll keep it in mind for when/if I pick it up again.

Zacchino commented 3 years ago

Indeed, I had Buffer checked by default with the 0 value on both in/outputs. Which makes FlexAsio show an error code when using it with Bitwig in my case. PS: I'm using the latest FlexAsio GUI version.