[linux-audio-user] Re: [Ardour-users] multiple unsynced cards

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-user] Re: [Ardour-users] multiple unsynced cards
From: Patrick Shirkey (pshirkey_AT_boosthardware.com)
Date: Fri Sep 13 2002 - 08:45:59 EEST


Patrick Shirkey wrote:
> I just managed to get the code from Jeorn working on my crappy cards
> here. (it also allows me to use a crappy card and my quattro together or
> I guess even all three for eight channels i/o ;)
>

Yep :)

----
jackd -v -d alsa -d ttable -p 2096
jackd 0.37.2
Copyright 2001-2002 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

10578 waiting for signals creating alsa driver ... ttable|2096|2|48000|swmon new client: alsa_pcm, id = 1 type 1 @ 0x8068c40 fd = 18 port alsa_pcm:in_1 buf shm key 0x4d2fd393 at offset 8384 bi = 0x8065c18 registered port alsa_pcm:in_1, offset = 8384 port alsa_pcm:in_2 buf shm key 0x4d2fd393 at offset 16768 bi = 0x80668e0 registered port alsa_pcm:in_2, offset = 16768 port alsa_pcm:in_3 buf shm key 0x4d2fd393 at offset 25152 bi = 0x8065288 registered port alsa_pcm:in_3, offset = 25152 port alsa_pcm:in_4 buf shm key 0x4d2fd393 at offset 33536 bi = 0x805b968 registered port alsa_pcm:in_4, offset = 33536 port alsa_pcm:in_5 buf shm key 0x4d2fd393 at offset 41920 bi = 0x805b978 registered port alsa_pcm:in_5, offset = 41920 port alsa_pcm:in_6 buf shm key 0x4d2fd393 at offset 50304 bi = 0x805b638 registered port alsa_pcm:in_6, offset = 50304 port alsa_pcm:in_7 buf shm key 0x4d2fd393 at offset 58688 bi = 0x805b648 registered port alsa_pcm:in_7, offset = 58688 port alsa_pcm:in_8 buf shm key 0x4d2fd393 at offset 67072 bi = 0x8062620 registered port alsa_pcm:in_8, offset = 67072 registered port alsa_pcm:out_1, offset = 0 registered port alsa_pcm:out_2, offset = 0 registered port alsa_pcm:out_3, offset = 0 registered port alsa_pcm:out_4, offset = 0 registered port alsa_pcm:out_5, offset = 0 registered port alsa_pcm:out_6, offset = 0 registered port alsa_pcm:out_7, offset = 0 registered port alsa_pcm:out_8, offset = 0 -- jack_rechain_graph(): client alsa_pcm: inprocess client, execution_order=0. load = 0.0277 max usecs: 24.201, spare = 43641.801 load = 0.0294 max usecs: 13.581, spare = 43652.418 load = 0.0291 max usecs: 12.610, spare = 43653.391 load = 0.0308 max usecs: 14.157, spare = 43651.844 load = 0.0322 max usecs: 14.708, spare = 43651.293 load = 0.0330 max usecs: 14.767, spare = 43651.234 load = 0.0306 max usecs: 12.286, spare = 43653.715 load = 0.0307 max usecs: 13.442, spare = 43652.559 load = 0.0304 max usecs: 13.156, spare = 43652.844 load = 0.0289 max usecs: 11.928, spare = 43654.070 load = 0.0287 max usecs: 12.428, spare = 43653.570 load = 0.0280 max usecs: 11.933, spare = 43654.066 load = 0.0282 max usecs: 12.409, spare = 43653.590 load = 0.0289 max usecs: 12.899, spare = 43653.102 load = 0.0299 max usecs: 13.461, spare = 43652.539 jackd: pcm.c:5247: snd_pcm_mmap_commit: Assertion `frames <= snd_pcm_mmap_avail(pcm)' failed. ----

asoundrc

----

# create a virtual eight-channel device with two soundcards: # This is in fact four interleaved stereo streams in # different memory locations, so jack will complain that it # cannot get mmap-based access. see below.

pcm.multi { type multi;

slaves.a.pcm "hw:0,0"; slaves.a.channels 2; slaves.b.pcm "hw:1,0"; slaves.b.channels 2; slaves.c.pcm "hw:2,0"; slaves.c.channels 2; slaves.d.pcm "hw:2,1"; 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.multi { type hw; card 0; }

# this creates a 4channel interleaved pcm stream based on # the multi device. jack will work with this one. pcm.ttable { type route; slave.pcm "multi"; ttable.0.0 1; ttable.1.1 1; ttable.2.2 1; ttable.3.3 1; ttable.4.4 1; ttable.5.5 1; ttable.6.6 1; ttable.7.7 1;

} # see above. ctl.ttable { type hw; card 0; }

----

> So that makes at least two people who have done this. > > > > As proof: > ---- > jackd -v -d alsa -d ttable -p 2096 > jackd 0.37.2 > Copyright 2001-2002 Paul Davis and others. > jackd comes with ABSOLUTELY NO WARRANTY > This is free software, and you are welcome to redistribute it > under certain conditions; see the file COPYING for details > > 10562 waiting for signals > creating alsa driver ... ttable|2096|2|48000|swmon > new client: alsa_pcm, id = 1 type 1 @ 0x80674f0 fd = 14 > port alsa_pcm:in_1 buf shm key 0x2bda717e at offset 8384 bi = 0x80668c0 > registered port alsa_pcm:in_1, offset = 8384 > port alsa_pcm:in_2 buf shm key 0x2bda717e at offset 16768 bi = 0x80668d0 > registered port alsa_pcm:in_2, offset = 16768 > port alsa_pcm:in_3 buf shm key 0x2bda717e at offset 25152 bi = 0x80668e0 > registered port alsa_pcm:in_3, offset = 25152 > port alsa_pcm:in_4 buf shm key 0x2bda717e at offset 33536 bi = 0x80668f0 > registered port alsa_pcm:in_4, offset = 33536 > registered port alsa_pcm:out_1, offset = 0 > registered port alsa_pcm:out_2, offset = 0 > registered port alsa_pcm:out_3, offset = 0 > registered port alsa_pcm:out_4, offset = 0 > -- jack_rechain_graph(): > client alsa_pcm: inprocess client, execution_order=0. > load = 1.6610 max usecs: 1450.590, spare = 42215.410 > load = 2.5081 max usecs: 1465.084, spare = 42200.918 > load = 2.9317 max usecs: 1465.084, spare = 42200.918 > load = 1.6190 max usecs: 133.742, spare = 43532.258 > load = 0.9726 max usecs: 142.456, spare = 43523.543 > load = 0.6519 max usecs: 144.597, spare = 43521.402 > load = 0.4909 max usecs: 144.091, spare = 43521.910 > load = 0.4293 max usecs: 160.522, spare = 43505.477 > load = 0.3765 max usecs: 141.332, spare = 43524.668 > load = 0.3551 max usecs: 145.723, spare = 43520.277 > jackd: pcm.c:5247: snd_pcm_mmap_commit: Assertion `frames <= > snd_pcm_mmap_avail(pcm)' failed. > ---- > > Here's the asoundrc I use: > > ---- > # create a virtual four-channel device with two soundcards: > # iiuc, this is in fact two interleaved stereo streams in > # different memory locations, so jack will complain that it > # cannot get mmap-based access. see below. > > pcm.multi { > type multi; > > slaves.a.pcm "hw:0,0"; > slaves.a.channels 2; > slaves.b.pcm "hw:1,0"; > slaves.b.channels 2; > # slaves.c.pcm "hw:2,2"; > # slaves.c.channels 1; > > > 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 b; > # bindings.4.channel 4; > # bindings.5.slave b; > # bindings.5.channel 5; > > } > > ctl.multi { > type hw; > card 0; > } > > # this creates a 4channel interleaved pcm stream based on > # the multi device. jack will work with this one. > pcm.ttable { > type route; > slave.pcm "multi"; > ttable.0.0 1; > ttable.1.1 1; > ttable.2.2 1; > ttable.3.3 1; > > } > # see above. > ctl.ttable { > type hw; > card 0; > } > ---- >

-- Patrick Shirkey - Boost Hardware Ltd. For the discerning hardware connoisseur http://www.boosthardware.com http://www.boosthardware.com/LAU/guide/ ========================================

"Um...symbol_get and symbol_put... They're kindof like does anyone remember like get_symbol and put_symbol I think we used to have..." - Rusty Russell in his talk on the module subsystem

_______________________________________________ linux-audio-user mailing list linux-audio-user_AT_music.columbia.edu http://music.columbia.edu/mailman/listinfo/linux-audio-user


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Sep 13 2002 - 08:53:42 EEST