spatialaudio / jackclient-python

🂻 JACK Audio Connection Kit (JACK) Client for Python :snake:
https://jackclient-python.readthedocs.io/
MIT License
135 stars 26 forks source link

How To Access Multiple Soundcard? #89

Closed jsl303 closed 4 years ago

jsl303 commented 4 years ago

I have 4 different sound devices with total of 20 inputs and 12 outputs. However, client.get_ports() only returns two system:capture and two system:playback ports. How can I get access to different inputs/outputs in different audio interface?

mgeier commented 4 years ago

I don't know, you'll somehow have to tell the JACK daemon about your devices. The Python module jack can only access the ports that the JACK daemon provides.

Probably your operating system (or your audio subsystem) lets you combine the devices to one "virtual" or "aggregate" device?

See also #87.

HaHeho commented 4 years ago

Probably your operating system (or your audio subsystem) lets you combine the devices to one "virtual" or "aggregate" device?

On MacOS this is possible via the build-in "Audio MIDI Setup". In Windows that might provided by ASIO4ALL. I don't know about Linux derivatives.

However, I have never tested that, particularly in combination with JACK. There might be some difficulties, since JACK is designed to provide low latency to stable audio devices. I have the feeling there will be some hiccups with that, but I would be curious to know if it works. I could also do some testing on above mentioned OS if you find some instructions that you're struggling with.

HaHeho commented 4 years ago

On Linux / ALSA there are these resources in the JACK documentation (they might be quite old) https://github.com/IARI/alsa_jack_gui https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_AlsaInOut

jsl303 commented 4 years ago

On MacOS, aggregate device works! I was able to combine multiple into one and connect in Jack-Client.