Estou tentando criar um dispositivo padrão asym que usa dmix e dsnoop. Um aplicativo que estou usando continua a ter acesso exclusivo a um microfone USB e a uma saída de áudio. Também gostaria de enviar meu microfone para o áudio-out ao mesmo tempo, então preciso forçar o aplicativo a usar um dispositivo que possa atender a vários processos criando um dispositivo padrão que permita isso (o aplicativo tenta abrir uma entrada e saída no dispositivo padrão primeiro).
Aqui está o .asoundrc que tenho atualmente:
pcm.inout {
type plug
slave.pcm {
type asym
playback.pcm {
type dmix
ipc_key 4323
slave.pcm: "hw:0,1"
}
capture.pcm {
type dsnoop
ipc_key 5432
slave.pcm "hw:1,0"
}
}
}
ctl.inout {
type hw
card 0
}
pcm.!default "inout"
ctl.!defualt "inout"
Mas, quando eu executo o aplicativo, ou alsaloop -C default -P default -c 1 -t 50000
eu recebo isso:
ALSA lib pcm_direct.c:1524:(_snd_pcm_direct_get_slave_ipc_offset) Invalid type 'dmix' for slave PCM
Além disso, vejo que um dispositivo dmix é criado automaticamente pelo ALSA quando executo aplay -L
, mas não sei como usá-lo. alsaloop -C default -P dmix:0,1 -c 2 -t 50000
não apresenta nenhum erro, mas eu não ouço nada através dos fones de ouvido.