Dear all,
I've have been using ALSA for a year now and I have been working with several plugins.
Now, I need to set up a device with asymmetric playback and record with dmix and dsnoop plugins.
But, the recording device is at its time a multi plugin with four channels coming from two different devices of the same audio card.
The problem is that It cannot make two applications to record audio simultaneously from the 4 channels.
* If I run:
arecord -D pal_robotics_default -f cd -r 48000 -c 4 > tmp.wav &
arecord -D pal_robotics_default -f cd -r 48000 -c 4 > tmp2.wav
The second call to arecord produces the following error:
> ALSA lib pcm_dsnoop.c:660:(snd_pcm_dsnoop_open) unable to open slave
> arecord: main:682: audio open error: Invalid argument
What I do is to have this sequencie of plugins:
hw_card0_dev0 -> dsnoop (2ch) |
| -> multi (4ch) |
hw_card0_dev2 -> dsnoop (2ch) | |
| -> asym -> plug -> default
|
hw_card0_dev0 -> dmix |
I am concern about using two dsnopp plugins over the same card. Does anyone know if this is a problem?
Regards.
--
Jordi Adell
PS: The asound.conf that I am using is the following one:
defaults.pcm.rate_converter = "speexrate"
pcm.rawjack {
type jack
playback_ports {
0 system:playback_1
1 system:playback_2
}
capture_ports {
0 system:capture_1
1 system:capture_2
}
hint {
description "JACK Bridge";
}
}
pcm.jack {
type plug
slave { pcm "rawjack" }
hint {
description "JACK Audio Connection Kit - ALSA plugin"
}
}
pcm.pal_dev0_48{
type dsnoop
slave{
pcm {
type hw
card "PAL_INTEL"
device 0
nonblock true
}
format S16_LE
rate 48000
channels 2
}
ipc_key 24800
}
pcm.pal_dev2_48{
type dsnoop
slave{
pcm {
type hw
card "PAL_INTEL"
device 2
nonblock true
}
format S16_LE
rate 48000
channels 2
}
ipc_key 24802
}
pcm.pal_play_44 {
type hw
card "PAL_INTEL"
device 0
format S16_LE
rate 44100
channels 2i
nonblock true
}
pcm.pal_play_48 {
type hw
card "PAL_INTEL"
device 0
format S16_LE
rate 48000
channels 2
nonblock true
}
pcm.pal_robotics_96{
type hw
card "PAL_INTEL"
device 0
format S16_LE
rate 96000
nonblock true
channels 2
}
pcm.pal_robotics_mix {
type dmix
ipc_key 24800
ipc_perm 0660
ipc_key_add_uid false
slave {
pcm pal_play_48
period_time 0
period_size 1024
buffer_size 4096
}
bindings
{
0 0
1 1
}
}
pcm.pal_robotics_asym{
type asym
capture.pcm pal_4ch
playback.pcm pal_robotics_mix
}
pcm.pal_robotics_asym_2ch{
type asym
capture.pcm pal_dev0_48
playback.pcm pal_robotics_mix
}
pcm.pal_robotics_default{
type plug
slave.pcm pal_robotics_asym
}
pcm.pal_robotics_2ch {
type plug
slave.pcm pal_robotics_asym_2ch
}
pcm.pal_robotics_file{
type file
slave{
pcm pal_robotics_mix
}
format "raw"
file "/tmp/pal_record.raw"
}
pcm.hw_headset {
type hw
card "PAL_HEADSET"
device 0
format S16_LE
rate 48000;
}
pcm.pal_headset {
type plug
slave {
pcm hw_headset
}
}
pcm.broadcast {
type plug
slave.pcm "both"
}
pcm.pal_4ch {
type multi
slaves.a.pcm pal_dev0_48;
slaves.b.pcm pal_dev2_48;
slaves.a.channels 2;
slaves.b.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,
}
pcm.both {
type route;
slave.pcm {
type multi;
slaves.a.pcm "pal_robotics_asym_2ch";
slaves.b.pcm "jack";
slaves.a.channels 2;
slaves.b.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;
}
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1; # front left
ttable.1.3 1; # front right
}
Jordi Adell
Speech Processing Engineer
jordi.adell@xxxxxxxxxxxxxxxx
www.pal-robotics.com
PAL Robotics, S.L.
c/ Pujades 77-79, 4º4ª
08005 Barcelona
Spain
Tel +34 93 414 53 47
Fax +34 93 209 11 09
Skype: jordiadell.pal-robotics
Facebook - Twitter - PAL Robotics YouTube Channel
P Antes de imprimir este e-mail piense bien si es necesario hacerlo: El medioambiente es cosa de todos.
AVISO
DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos, pueden
contener información privilegiada y/o confidencial que está dirigida
exclusivamente a su destinatario. Si usted recibe este mensaje y no es
el destinatario indicado, o el empleado encargado de su entrega a dicha
persona, por favor, notifíquelo inmediatamente y remita el mensaje
original a la dirección de correo electrónico indicada. Cualquier copia,
uso o distribución no autorizados de esta comunicación queda
estrictamente prohibida.
CONFIDENTIALITY
NOTICE: This e-mail and the accompanying document(s) may contain
confidential information which is privileged and intended only for the
individual or entity to whom they are addressed. If you are not the
intended recipient, you are hereby notified that any disclosure,
copying, distribution or use of this e-mail and/or accompanying
document(s) is strictly prohibited. If you have received this e-mail in
error, please immediately notify the sender at the above e-mail
address.