Проблема такая. Нужно дублировать фронтальные каналы на тыловые, но чтобы при этом можно было выводить звук не с одного приложения. Со встроенной звуковой картой проблемы не было, в alsamixer была соответствующая опция. Но сегодня поставил Audigy SE (чип CA0106) и с ней эта опция отсутствует.
В гугле нашёл конфиги asoundrc, например такие:
pcm.dmix40 {
type dmix
ipc_key 1024
ipc_key_add_uid false # let multiple users share
ipc_perm 0660 # IPC permissions (octal, default 0600)
slave {
pcm "hw:0"
rate 48000
channels 4
period_time 0
period_size 1024 # try 2048 against skipping
buffer_time 0
buffer_size 4096 # in case of problems reduce this
# in case of skipping, try increasing
}
}
### Duplicate 2to4
pcm.ch40dup {
type plug
slave.pcm "plug:dmix40"
slave.channels 4
route_policy duplicate
}
pcm.!default {
type plug;
slave.pcm plug:ch40dup;
}
В таком случае всё равно звучит только фронт. Если заменить slave.pcm «plug:dmix40» на slave.pcm «surround40», то звучат четыре канала как надо, но звук может выводить только одно приложение одновременно, что не годится. Для дублирования каналов был ещё и такой вариант:
### Duplicate 2to4
pcm.ch40dup {
type route
slave.pcm "surround40"
slave.channels 4
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
}
Если заменить в строке 7 pcm «hw:0» на pcm «surround40», то выдаётся ошибка что dmix может выводить только на устройства типа hw.
Pulseaudio не предлагать :D