[alsa-devel] 1010lt (ice1712) asoundrc for 6 virtual mono cards question
Dear Alsa developers,
I want to use a 1010lt (ice1712 driver) as 6 analog mono duplex cards.
I want to use the /etc/asound.conf (.asoundrc) to split the card (that has 8 in and 8 out - but I use just 6 in/out), with minimal latency.
I mean, I want to record and play (duplex) from/to each virtual card concurrently and from separate application instances.
My app works with S16_LE, 8000, mono.
Is the following asound.conf (.asoundrc) correct and efficient for this?
I got spikes of cpu load (at 5-6%) on each virtual card any roughly 256 seconds when using a(play|record) to record or play from/to any channel, and the spikes cumulate with the number of virtual cards concurrently in use (eg. if I use 6 virtual cards concurrently I got spikes of 30% cpu load each 256 seconds).
I need to create ctls? It would behave better if I use an asym to link toghether each couple of input and output?
Any hints?
Thanks a lot in advance, Giovanni
that is the /etc/asound.conf I'm using:
pcm.capt { type dsnoop ipc_key 223456 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 12 format S32_LE } } pcm.capt3 { type plug slave.pcm capt ttable.0.2 1 } pcm.capt4 { #used type plug slave.pcm capt ttable.0.3 1 } pcm.capt5 { type plug slave.pcm capt ttable.0.4 1 } pcm.capt6 { type plug slave.pcm capt ttable.0.5 1 } pcm.capt7 { type plug slave.pcm capt ttable.0.6 1 } pcm.capt8 { type plug slave.pcm capt ttable.0.7 1 }
############################# ############################# pcm.s3 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 2 } } pcm.play3 { type plug slave.pcm s3 }
pcm.s4 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 3 } } pcm.play4 { type plug slave.pcm s4 }
pcm.s5 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 4 } } pcm.play5 { type plug slave.pcm s5 }
pcm.s6 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 5 } } pcm.play6 { type plug slave.pcm s6 }
pcm.s7 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 6 } } pcm.play7 { type plug slave.pcm s7 }
pcm.s8 { type dshare ipc_key 123456789 slave { pcm "hw:0,0" rate 8000 period_time 0 period_size 320 channels 10 format S32_LE } bindings { 0 7 } } pcm.play8 { type plug slave.pcm s8 }
On Fri, 13 Apr 2007, Giovanni Maruzzelli wrote:
Dear Alsa developers,
I want to use a 1010lt (ice1712 driver) as 6 analog mono duplex cards.
I want to use the /etc/asound.conf (.asoundrc) to split the card (that has 8 in and 8 out - but I use just 6 in/out), with minimal latency.
I mean, I want to record and play (duplex) from/to each virtual card concurrently and from separate application instances.
My app works with S16_LE, 8000, mono.
Is the following asound.conf (.asoundrc) correct and efficient for this?
Use dsnoop bindings rather than routing (ttable) for capture too, otherwise alsa-lib works with all channels internally.
I got spikes of cpu load (at 5-6%) on each virtual card any roughly 256 seconds when using a(play|record) to record or play from/to any
aplay|arecord is not very good test. Use latency test code - available in alsa-lib/test directory.
Jaroslav
----- Jaroslav Kysela perex@suse.cz Linux Kernel Sound Maintainer ALSA Project, SUSE Labs
participants (2)
-
Giovanni Maruzzelli
-
Jaroslav Kysela