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