Encontrei uma resposta completa (que está bem de acordo com a resposta de Permat e Ramesh) em link :
ciaranhearne: "Basically I had to define Dmix as a plugin before I could use it"
Enquanto isso funcionou muito bem com apenas alsa, eu não conseguia trabalhar / pulsaudio / apulse (para skype). Quando eu definir o pulso para usar dmix diretamente funcionou, mas ele aproveitou o dispositivo exclusivamente e já não funcionou. Deixar o pulso usar os pcms mais longe do cartão não funcionou.
A solução foi criar dois dmixes. Agora eu tenho
- Uma maneira de inserir permanentemente plugins do ladspa (um limitador no meu caso)
- o dispositivo padrão funciona (o firefox está feliz)
- não pulseaudio
- o skype ainda funciona por meio do pulso
export APULSE_PLAYBACK_DEVICE=plug:duplexPulse
apulse skype
Aqui está o meu .asoundrc como é agora
#--------------------------------------------------
# Cards
#--------------------------------------------------
pcm.audiophile {
type hw
card 0
}
ctl.audiophile {
type hw
card 0
}
#--------------------------------------------------
# Normal alsa
#--------------------------------------------------
pcm.!default {
type plug
slave.pcm "duplex"
}
pcm.duplex {
type asym
playback.pcm "ladspa"
capture.pcm "dsnooper"
}
# --- ladspa chain ---
pcm.ladspa {
type ladspa
slave.pcm "dmixplug"
path "/usr/lib/ladspa";
plugins [
{
label fastLookaheadLimiter
input {
#InputGain(Db) Limit (db) Release time (s)
controls [ 9 -3 10]
}
}]
}
pcm.dmixplug {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1234
slave {
pcm "audiophile"
period_size 1024
buffer_size 4096
rate 44100
}
}
pcm.dsnooper {
type dsnoop
ipc_key 2048
ipc_perm 0666
slave.pcm "audiophile"
slave
{
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}
#--------------------------------------------------
# special entries for pulseaudio/apulse
#--------------------------------------------------
pcm.duplexPulse {
type asym
playback.pcm "dmixerPulse"
capture.pcm "dsnooper"
}
pcm.dmixerPulse {
type dmix
ipc_key 1234
slave {
pcm "audiophile"
period_size 1024
buffer_size 4096
rate 44100
}
}