PyAudio trying to use JACK
Asked Answered
Y

1

7

I'm running PyAudio under Python 2.6.6 and would like it to use ALSA and not JACK.

In [1]: import pyaudio

In [2]: pa = pyaudio.pa

In [3]: pa.initialize()
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
Yelenayelich answered 12/1, 2011 at 18:25 Comment(4)
What happens if you run JACK manually from a terminal, via jackstart ? You may also use qjackctl.sourceforge.net to control the JACK daemon if you like a graphical user interface better. Anyway, post the daemon's startup output.Sawmill
From the docs at http://people.csail.mit.edu/hubert/pyaudio/docs/ I think you'll need to pass pyaudio.paALSA to pa.open() rather than relying on the system to choose.Misstate
Well, I had a similar problem, but the cause was insufficient permissions. On Ubuntu I needed to add myself to the audio group. And the error messages were about the same.Cargo
Related #7089172Gadolinium
P
12

For those who happen to find themselves at this old question via Google:

The message displayed by pyaudio...

jack server is not running or cannot be started

...is informative, not an error. It means that portaudio tried and failed to connect to Jack, but doesn't mean that it gave up on everything.

At that point, you should have a fully functional PyAudio object using ALSA. You can verify this by, e.g., looking at a list of available devices:

>>> import pyaudio
>>> pa = pyaudio.PyAudio()
[...lots of crap from ALSA...]
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
>>> print '\n'.join([y['name'] 
... for y in [pa.get_device_info_by_index(x)
... for x in range(pa.get_device_count())]])
bcm2835 ALSA: - (hw:0,0)
bcm2835 ALSA: IEC958/HDMI (hw:0,1)
USB Audio Device: - (hw:2,0)
sysdefault
dmix
default
Peyton answered 1/2, 2016 at 2:28 Comment(1)
Indeed! And if you want to get rid of the annoying messages, have a look at https://mcmap.net/q/122424/-how-can-the-terminal-output-of-executables-run-by-python-functions-be-silenced-in-a-general-way.Suberin

© 2022 - 2024 — McMap. All rights reserved.