[PD] some interesting info regarding RME-Alsa (0.9) and PD (and other 0.35.9 suggestions)

Ivica Bukvic ico at fuse.net
Fri Feb 15 21:15:54 CET 2002


I hope this might be helpful to whomever will be capable of making Pd latest 
Alsa+RME friendly (which now, since Alsa has become incorporated into the 
kernel should be a rather important issue ;-).

I was fiddling with different options, so this is what I could come up with:

On my system there are 2 soundcards es1370 as the primary card, and RME 
Hammerfall as the secondary one.

I am using latest Alsa 0.9.

Here's my .asoundrc file (which should be placed into one's home dir, and 
this one works flawlessly with Ardour):

pcm.rme9652 {
type hw
card 1
}
ctl.rme9652 {
type hw
card 1
}
pcm.dsp1 {
type plug
slave.pcm rme9652
}

(please notice that my card # and dsp# refer to RME being secondary card, 
thus for example, I'd start ardour by saying: ardour -d rme9652 -f 2048 )

Now, as far as the latest 0.35.9 version of PD is concerned, here are a 
couple of suggestions:

the extra/expr~/vexp.h does not find properly some includes which are located 
in the src/ dir. This might be the quirk of my  machine, but the easy fix to 
make a compile error-less would be to change m_pd.h include line of this file 
from:

#include "m_pd.h"

to:

#include "../../src/m_pd.h"

(note: i did do make depend, but that did not resolve this "file not found" 
error)


Now onto the main reason for this e-mail :-)...

This is what I tried with the Pd in its current state:
(note, I am using internal RME brackets with 8 i/o, so I have them specified 
appropriately)

call:
pd -nomidi -alsa -inchannels 8 -outchannels 8 -alsadev 2
yields:
audio I/O stuck... closing audio
[app works, no sound]

call:
pd -nomidi -alsa -alsadev 2
yields:
snd_pcm_hw_params_set_access (input): Invalid argument
Sample width set to 4 bytes
ALSA: set input channels to 14
snd_pcm_hw_params_set_access (output): Invalid argument
alsa: set output channels to 14
pd: pcm.c:866: snd_pcm_writei: Assertion `pcm->access == 
SND_PCM_ACCESS_RW_INTERLEAVED' failed.
Aborted
[app closes]

call:
pd -nomidi -alsa -inchannels 26 -outchannels 26 -alsadev 2
yields:
audio I/O stuck... closing audio
[app works, no sound]

call:
pd -nomidi -alsadev 2
yields:
snd_pcm_hw_params_set_access (input): Invalid argument
Sample width set to 4 bytes
ALSA: set input channels to 14
snd_pcm_hw_params_set_access (output): Invalid argument
alsa: set output channels to 14
pd: pcm.c:866: snd_pcm_writei: Assertion `pcm->access == 
SND_PCM_ACCESS_RW_INTERLEAVED' failed.
Aborted
[app closes]

call:
pd -nomidi -alsa -inchannels 2 -outchannels 2 -alsadev 2
yields:
audio I/O stuck... closing audio
[app works, no sound]

(note: alsadeve 0 and 1 give me the es1370 card, probably since it has one 
device for output and one for input, but I may be wrong about this one)

Finally, if select -soundoutdev and -soundindev flags and specify RME for 
being either primary or secondary (i.e. 0,1 or 1,0), then there are no errors 
and the app works (sound works fine from the es1370), but the RME is pretty 
much dead sound-wise. (I am a bit rusty on PD, but my assumption is that DAC 
3 and up should then refer to RME card, if the es1370 is specified as the 
primary card, and there is no sound coming from it despite lack of errors).

Anyhow, you get the pattern. It seems that there is some issue with the 
interleaved stuff, as well as recognizing the # of i/o and sample width. 
These to me seem to be minor problems, since some properties of the card are 
definitely being recognized (and if I specify no. of channels, the card does 
not report any error, except for the "stuck audio"), so I would hope that 
fixing it should not be that big of a deal. But then again, I never coded a 
driver, so what the heck do I know ;-).

Well, hope this may help getting the RME to work with PD. Cheers!

Ico



More information about the Pd-list mailing list