pcm.!default { type plug slave.pcm "plugasym" slave.channels 8 ttable.0 { 0 1 2 1 4 0.6 5 0.1 } ttable.1 { 1 1 3 1 4 0.6 5 0.1 } } pcm.plugasym { #broken type asym # playback.pcm "route51" # playback on all speakers playback.pcm "dmixer" # playback on all speakers capture.pcm "dsnooper" # recording } pcm.route51 { # type plug type route slave.pcm "dmixer" slave.channels 8 #hint { # show on # description "Default device 5.1, using dmix" #} #seems the syntax is "ttable.. " or something like that ttable.0 { 0 1 2 1 4 0.6 5 0.1 } ttable.1 { 1 1 3 1 4 0.6 5 0.1 } #Just another way to do the same thing #~ ttable.0.0 1 #~ ttable.1.1 1 #~ ttable.0.2 1 #~ ttable.1.3 1 #~ ttable.0.4 0.6 #~ ttable.1.4 0.6 #~ ttable.0.5 0.1 #~ ttable.1.5 0.1 } pcm.dsnooper { type dsnoop ipc_key 1026 ipc_perm 0666 slave { pcm "hw:0,0" channels 8 rate 44100 periods 128 period_time 0 period_size 1024 buffer_size 4096 } #bindings { # 0 0 # 1 1 #} slowptr true } pcm.headset { type plug slave.pcm "dmixer" slave.channels 8 hint { show on description "Headset device 2.0 output on side channel, using dmix" } ttable.0.6 1 ttable.1.7 1 } pcm.dmixer { type dmix ipc_key 1024 # the key must be unique, dmix only ipc_key_add_uid false # dmix only ipc_perm 0666 # permissions - octal notation, important for multi-user mixing slave { pcm "hw:0,0" channels 8 period_time 0 period_size 1024 buffer_size 8192 rate 44100 } }