thanks Jason - this sounds promising, and I'll give it a try on my system.
-Dave
David Merrill wrote:
> yes, I've heard that alsa has the ability to create a single,
"virtual > sound card" from multiple individual cards, but so far I
haven't been
> able to make this work - I'm interested though, to hear from anyone
> who has done it. also heard a rumor that new versions of jack may be
> able to connect to multiple cards at the same time - again, I don't
> have specific info, but am curious to hear if anyone has done it.
David,
In my audiopint setup, I'm using 4 USB iMics in a cheapo USB 1.1 hub. I
use all 4 stero inputs and the one single stereo output of the first
iMic. I haven't confirmed it, but I'm confident that fully duplexed
stereo on all 4 devices would go over the theoretical 1.1 bandwidth (my
setup does not).
I multiplex the 4 cards into a single virtual card using the attached
asoundrc (which should be named as ~/.asoundrc).
I am successfully using this 8-in-2-out virtual card with jackd 0.103.0
(realtime) and pd 0.40-2 (realtime). Jackd > 0.102.20 is required to
pick up MMAP_COMPLEX, which allows memory mapping multiple multiplexed
cards (??). My jackd usage is:
jackd --realtime -d alsa -C capture8 -P iMic1 -p64 -n2
and then I make sure I start pd with -jack -inchannels 8 -outchannels 2
(and other less relevant params). I'm pretty sure the clocks aren't
exactly synchronized (I would appreciate confirmation or refutation),
but it hasn't really caused me any pain yet, even though I should likely
back -p64 down to -p128.
I'm pretty sure I had limited success getting pd to work in alsa mode
with the given .asoundrc...but to be honest, my focus was on jack first.
-jason
http://noisybox.net
pcm.iMic1 {
type hw
card 0
}
ctl.iMic1 {
type hw;
card 0;
}
pcm.iMic2 {
type hw
card 1
}
pcm.iMic3 {
type hw
card 2
}
pcm.iMic4 {
type hw
card 3
}
pcm.capture8 {
type multi;
slaves.a.pcm hw:0
slaves.a.channels 2;
slaves.b.pcm hw:1
slaves.b.channels 2;
slaves.c.pcm hw:2
slaves.c.channels 2;
slaves.d.pcm hw:3
slaves.d.channels 2;
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave a;
bindings.1.channel 1;
bindings.2.slave b;
bindings.2.channel 0;
bindings.3.slave b;
bindings.3.channel 1;
bindings.4.slave c;
bindings.4.channel 0;
bindings.5.slave c;
bindings.5.channel 1;
bindings.6.slave d;
bindings.6.channel 0;
bindings.7.slave d;
bindings.7.channel 1;
}
ctl.capture8 {
type hw;
card 0;
}
_______________________________________________
PD-dev mailing list
PD-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev