# 6 channel dmix: pcm.dmix00 { type dmix ipc_key 1024 ipc_key_add_uid false ipc_perm 0666 slave { pcm "hw:0,0" channels 2 period_size 1024 buffer_size 4096 } } pcm.dmix01 { type dmix ipc_key 2048 ipc_key_add_uid false ipc_perm 0666 slave { pcm "hw:0,1" channels 2 period_size 1024 buffer_size 4096 } } pcm.dmix02 { type dmix ipc_key 3072 ipc_key_add_uid false ipc_perm 0666 slave { pcm "hw:0,2" channels 2 period_size 1024 buffer_size 4096 } } pcm.dmix6 { type multi; slaves.a.pcm "dmix00"; slaves.a.channels 2; slaves.b.pcm "dmix01"; slaves.b.channels 2; slaves.c.pcm "dmix02"; slaves.c.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; } ctl.dmix6 { type hw card 0 } # upmixing: pcm.ch51dup { type route slave.pcm dmix6 slave.channels 6 ttable.0.0 1.2 ttable.1.1 1.2 ttable.0.2 1 ttable.1.3 1 ttable.0.4 0.4 ttable.1.4 0.4 ttable.0.5 0.4 ttable.1.5 0.4 } #pcm.duplex { # type asym # playback.pcm "ch51dup" # upmix first # capture.pcm "hw:0" #} # change default device: pcm.!default { type softvol slave.pcm "ch51dup" control { name "Software Master" card 0 } } ctl.!default { type hw card 0 }