Closed xyproto closed 2 years ago
Hi Alexander :)
I'm not too familiar with Linux audio but maybe I can help. Otherwise you could check in with the developers of the real PortAudio library (around which this package a just a wrapper).
I don't see anything in the output to indicate that sigourney is failing to open a device.
I see that sigourney is opening the default device. You could try modifying it (or perhaps easier, modifying one of the examples in this repo) to explicitly open the device of interest, in case the default device is not what you expect. Something like:
devs, _ := portaudio.Devices()
dev := deviceOfInterest(devs)
p := portaudio.LowLatencyParameters(nil, dev)
stream, _ := portaudio.OpenStream(p, ...)
Does that make any difference?
Just a very simple C program shows that the error is likely somewhere with PortAudio and PipeWire.
#include "stdio.h"
#include "stdlib.h"
#include "portaudio.h"
// gcc main.c -lportaudio -lrt -lm -lasound -ljack -pthread -o pa_out_index
int main() {
PaError err;
err = Pa_Initialize();
PaDeviceIndex default_output = Pa_GetDefaultOutputDevice();
printf("default output device index %d", default_output);
return EXIT_SUCCESS;
}
which returns
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &alsaBufferFrames )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 923
Expression 'alsa_snd_pcm_hw_params_set_buffer_size_near( pcm, hwParams, &alsaBufferFrames )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 923
Cannot open DB environment: Permission denied
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot open DB environment: Permission denied
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
Cannot open DB environment: Permission denied
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
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
default output device index 26
Thanks @bderrly. I'll close this issue, then.
Hi Gordon,
On my Arch Linux installation I use the latest version of PipeWire (0.3.32).
Pipewire provides supports for (at least) Jack and PulseAudio.
This works great with Firefox, SDL2, and Jack-related applications in general, but it fails when I run sigourney (which uses this portaudio package). I get:
When starting Jack with
qjackctl
first (which I believe uses PipeWire), I get a somewhat briefer error message:But the application does not appear to get an audio device (unless I am testing this incorrectly).
Any advice on this is appreciated.
And thanks for creating the portaudio package!
Cheers, Alexander F. Rødseth