Звук 5.1 в Linux (kubuntu)

Категория: / DEV Блог / Linux
Чем плох линукс? Тем что в нем надо постоянно включать моск, чтобы что-то заработало.
Таже история с многоканальным звуком.
Моя звуковушка определяется в alsa как c0106 (это creative labs audigy / live 24. На самом у меня xfi audio.. эдакий обрубок, выродок семьи или родственник live 24 7.1).

Настройка звука 5.1:

Ставим (лучше ручками из исходников) alsa. На данный момент самые свежие -

alsa-driver-1.0.15  
alsa-lib-1.0.15
alsa-tools-1.0.15
alsa-utils-1.0.15


Установка для вашей карты подробно описана здесь -
http://www.alsa-project.org/main/index.php/Matrix:Main

Для того чтобы алса распараллелила стерео звук на все каналы с редиректом басса для сабвуфера, создаем конфиг ~/.asoundrc

pcm.ca0106 {
  type hw
  card 0
}
 
ctl.ca0106 {
  type hw
  card 0
}
 
pcm.upmix_20to51 {
    type plug
    slave.pcm lowpass_21to21
    slave.channels 3
    ttable {
        0.0 1 # left channel
        1.1 1 # right channel
        0.2 0.5 # mix left and right ...
        1.2 0.5 # ... channel for subwoofer
    }
}
pcm.lowpass_21to21 {
    type ladspa
    slave.pcm upmix_21to51
    path "/usr/lib/ladspa"
    channels 3
    plugins {
        0 {
            id 1098 # Identity (Audio) (1098/identity_audio)
            policy duplicate
            input.bindings.0 "Input";
            output.bindings.0 "Output";
        }
        1 {
            id 1672 # 4 Pole Low-Pass Filter with Resonance (FCRCIA) (1672/lp4pole_fcrcia_oa)
            policy none
            input.bindings.2 "Input";
            output.bindings.2 "Output";
            input {
                controls [ 300 2 ]
            }
        }
    }
}
pcm.upmix_21to51 {
    type plug
    slave.pcm surround51
    slave.channels 6
    ttable {
        0.0 1 # front left
        1.1 1 # front right
        0.2 1 # rear left
        1.3 1 # rear right
        0.4 0.5 # center
        1.4 0.5 # center
        2.5 1 # subwoofer
    }
}


Для тестирования правильности расположения колонок:
speaker-test -D surround51 -c 6

Проверим? Запускаем: alsaplayer --verbose -o alsa -d upmix_20to51 sound.mp3
Скорее всего звука вы не услышите.. Необходимо установить плагины для ladspa.

apt-get install ladspa-sdk blop cmt
#For the low-pass filter you have to install the BLOP plugin set (Debian package: blop; Gentoo package: blop; Ubuntu: blop) and for the identity plugin you need the Computer Music Toolkit (CMT) (Debian: cmt; Gentoo: ladspa-cmt; Ubuntu: cmt).


Для использования в xine добавляем следующие строки в конец файла ~/.xine/config

audio.device.alsa_default_device:plug:upmix_20to51
audio.device.alsa_front_device:plug:upmix_20to51
audio.device.alsa_surround40_device:plug:upmix_20to51
audio.device.alsa_surround51_device:plug:upmix_20to51


Рестартим alsa: /etc/init.d/alsa-utils restart

Я слушаю музыку через Amarok, идем в
Настройки - Движок - Стерео - прописываем наш профиль "upmix_20to51" и выбираем количество колонок 5.1.
Перезапускаем плеер и тестируем новый звук.

Дополнительные ссылки:
http://alsa.opensrc.org/index.php/SurroundSound
http://alsa.opensrc.org/Low-pass_filter_for_subwoofer_channel_(HOWTO)
http://alsa.opensrc.org/index.php?title=DmixPlugin#dmix_.26_surround_sound

UPD Последние версии убунты с pulseaudio

Чтобы не выпиливать pulseaudio, бросаем написание конфигов и пользуемся встроенными средствами - нужно выбрать нужный профиль в настройках звука.
Басс не такой как при использовании конфига выше, но вполе живой и к тому же работают все 5 и 1 колонок.

ubuntu sound 5.1