Hallo,
[I'm slowly taking this over to pd-dev...]
guenter geiger hat gesagt: // guenter geiger wrote:
Strangly enough the last time we did latency tests using the OSS layer for ALSA, we discovered that the OSS layer showed by far better performance than the ALSA implementation. (Because it uses blocking I/O, which gives better time resolution) So there should be no reason not to run pd under OSS until we have time to fix the ALSA I/O (which should be supported by portaudio actually)
I couldn't get Pd and OSS-emu work together with my M-Audio Quattro in 4-channel mode. :( That's my personal reason. To use the Quattro this way some .asoundrc magic is needed, and at least I couldn't transfer this to OSS-devices.
Regarding portaudio:
I came a little bit farther along in activating the ALSA interface of Portaudio in Pd. I replaced all portaudio files except the pablio directory with current PA-cvs.
I then had to edit the Makefiles by hand, replace PA_USEAPI_OSS -> PA...ALSA, add "-lasound" to the final linking and remove -Werror. After that Pd compiled and ran, but it couldn't open the ALSA sound devices. The error message is:
ALSA lib pcm_hw.c:1078:(snd_pcm_hw_open) open /dev/snd/pcmC2D0c failed: No such file or directory ALSA lib pcm_hw.c:1078:(snd_pcm_hw_open) open /dev/snd/pcmC2D0p failed: No such file or directory ^- this also happens with the test programs and might be harmless input device 0, output device 0 nchan 2, flags 3, bufs 8, framesperbuf 256 ALSA call at line 381 succeeded ALSA call at line 388 succeeded ALSA format: 10 ALSA call at line 423 succeeded ALSA call at line 426 succeeded Error executing ALSA call, line 429 Error number -9993 occured opening portaudio stream Error message: Illegal combination of I/O devices
I guess, that maybe my main card, the M-Audio Audiophile is creating this error. It is a stereo card, but the chipset (ICE1712) has 10 in- and 12 out-channels. The line numbers above refer to pa_linux_alsa.c where it fails at line 429, which says:
/* ... set the number of channels */ ENSURE( snd_pcm_hw_params_set_channels( stream, hw_params, channels ) );
The three alsa-enabled pa_test programs do work, for example patest_sine, even when compiled with Pd's pabilo changes.
Maybe this rings a bell with someone?
ciao
On Mon, 26 May 2003, Frank Barknecht wrote:
.....
I guess, that maybe my main card, the M-Audio Audiophile is creating this error. It is a stereo card, but the chipset (ICE1712) has 10 in- and 12 out-channels. The line numbers above refer to pa_linux_alsa.c where it fails at line 429, which says:
/* ... set the number of channels */ ENSURE( snd_pcm_hw_params_set_channels( stream, hw_params, channels ) );
The three alsa-enabled pa_test programs do work, for example patest_sine, even when compiled with Pd's pabilo changes.
Maybe this rings a bell with someone?
Yes, all bells. I see myself spending evenings on trying to figure out what is happening with our beloved advanced sound architecture.
To be honest, I do not know how to proceed. One thing would be to fix portaudio, the other to incorporate ALSA and JACK from 0.36.
The cleaner solution would be to help to fix portaudio, but this would mean to learn the internals of the system. I do not have too much time for doing that at the moment, so it might take some weeks/months until I can even think of starting it.
Anyone who wants to step ahead is very welcome...
Guenter