# 6 channel dmix: pcm.dmix-front { 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.dmix-sur { 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.dmix-clfe { 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.dmix-six { type multi; slaves.a.pcm "dmix-front"; slaves.a.channels 2; slaves.b.pcm "dmix-sur"; slaves.b.channels 2; slaves.c.pcm "dmix-clfe"; 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.dmix-six { type hw card 0 } # upmixing: pcm.ch51dup { type route slave.pcm "dmix-six" slave.channels 6 ttable.0.0 1.2 ttable.1.1 1.2 ttable.2.2 1 ttable.3.3 1 ttable.4.4 0.4 ttable.5.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 }