ASIO Thread Question

Under ASIO in config, I see that use floating point data is checked by default. But there is another option use separate thread for processing which is unchecked.

I’m trying to educate myself here. Under what circumstances should we use a separate thread? Or not? I find the theory behind all this quite interesting.

Many thanks. Cheers, Alec M

According to BASS_ASIO_Init

The ASIO driver is accessed via a COM object using the single-threaded apartment model, which means that requests to the driver go through the thread that initialized it, so the thread needs to exist as long as the driver remains initialized. The thread should also have a message queue. If device initializing and releasing from multiple threads is required, or the application does not have a message queue (eg. a console application), then the BASS_ASIO_THREAD flag can be used to have BASSASIO create a dedicated thread to host the ASIO driver.

Reading that again, I think it is a good idea to turn that option on, because mAirList does in fact use multiple threads, and initialization doesn’t always happen from within the main thread. I think I will make the option mandatory.

Interesting. Thanks for the explanation.

Cheers, Alec M