signalflow icon indicating copy to clipboard operation
signalflow copied to clipboard

Best approach to integrating with sounddevice and jack_client

Open hockinsk opened this issue 1 year ago • 3 comments

I'm loving signalflow so far, it's streamlined a lot of code for an application i'm working on / converting and much fun. The main limitation though has been the included libsoundio neither supports ASIO or seems to be aware JACK Server is running on Windows. Windows WASAPI is limited to 8 channels it seems and i need 16 output channels. What's the best approach to intercepting the signalflow buffer to take the audio out of https://github.com/spatialaudio/python-sounddevice or https://github.com/spatialaudio/jackclient-python to the ASIO device and JACK instead? Thanks.

hockinsk avatar Nov 14 '24 13:11 hockinsk

Hi @hockinsk, that's great, glad you're enjoying it!

Can you send over a source on the WASAPI channel limitation? I can't find any definitive resources that it should have any limits of that kind, and it seems surprising.

ideoforms avatar Nov 18 '24 17:11 ideoforms

I think the 8 channel limitation is at the Windows OS level. I have used many, many hardware and virtual audio interfaces with Windows over the years, but I've never seen more than 8 channels available natively, you have to use ASIO or Jack to get more i/o. Even virtual audio interfaces like VB-Audio Matrix which offers 512 channel i/o capability will only offer that via ASIO. Via WASAPI it only offers 8 channels per virtual device. I believe the 8 channel limitation is another reason Steinberg came out with ASIO, because it allows more than 8 channels per device.

hockinsk avatar Nov 19 '24 12:11 hockinsk

I have found a 16 channel virtual WASAPI driver, so I think this is possible in WASAPI assuming hardware audio devices drivers work similarly to virtual ones / is allowed by the device.

hockinsk avatar Nov 21 '24 10:11 hockinsk