воскресенье, 04 декабря 2011
Я не очень понимаю смысла испоользования по умолчанию PulseAudio в качестве микшера звуковых потоков. Думаю, это лишняя прослойка в звуковой подсистеме. Лично мне он не нужен, поэтому я захотел его удалить.
Как элегантно удалить PulseAudio. Способ прекрасно работает для Ubuntu 11.04. Но я не об этом.
Для воспроизведения звука я частенько использую различные устройства, у которых довольно сильно различается АЧХ, а настроить её в самом устройстве невозможно (наушники, колонки ноутбука и т.п.). Поэтому мне нужен эквалайзер, который бы прозрачно работал для всех звуковых потоков, а не только в музыкальном проигрывателе.
читать дальшеРаньше я использовал возможность подключения LADSPA плагинов к ALSA, но это довольно неудобный способ (например, невозможно регулировать параметры плагина в реальном времени). И тут я узнал, что "пока я спал, прошло 12 лет" уже написан модуль ALSA (Alsaequal), к которому так же можно подключать LADSPA плагины, но регулировать их параметры в реальном времени. "Вот оно, счастье!", - подумал я. Но, как частенько бывает в Linux, всё оказалось глючным не так просто. А именно, некоторые приложения не хотели воспроизводить звук, выдавая ошибку: "Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_equal.so", что оказалось легко поправимым, нужно только подключить PPA с исправленным модулем и установить его. Всё заработало. Но не совсем всё.
Я использую сборку Ubuntu для архитектуры amd64, с возможностью запуска 32-х битных приложений. И настроив эквалайзер, я понял, что для воспроизведения звука, 32-х битные программы используют 32-х битную версию ALSA. Тоесть, пришлось установить так же 32-х битную версию модуля Alsaequal (есть исправленный в том же PPA), но использовать настройки 64-х битной версии он отказался. Пришлось настраивать отдельно эквалайзер ещё и для 32-х битных приложений. Да. Но тут меня ждало ещё одно открытие, модуль есть, а вот настроить как? Все микшеры 64-х битные и попасть в настройки 32-х битных модулей просто не могут. Пришлось выдернуть 32-х битный alsamixer из пакета alsa-utils_1.0.24.2-0ubuntu8_i386.deb, а так же libtinfo.so.5.9 из пакета lib32tinfo5_5.9-2_amd64.deb, после чего положить эти два файла в одну папку (ещё и переименовать/создать сссылку libtinfo.so.5->libtinfo.so.5.9) и запустить ./alsamixer, после чего перенести настройки эквалайзера так же и в 32-х битную его версию. Теперь, кажись, всё работает. ))
Кстати, круча конфиги, узнал, что на моём Acer Aspire 5553G нормально не работает запись звука со встроенного микрофона. Вернее, работает она как-то через не то место странно. А именно, моно микрофон воспринимается системой как стерео устройство (не знаю, где именно эта ошибка, в аппаратуре, или в драйверах), поэтому звук при записи в моно-режиме (как это делают всякие системы голосового общения по сети) взаимоуничтожается (ведь на самом деле канал один, и похоже, что второй канал создан из противофазы первого) и остаётся только шум, и никакого полезного сигнала. Но это оказалось легко решить с помощью конфигурационного файла .asoundrc
Теперь то уж почти всё работает...
Вот мой .asoundrc, если кому интересно.
ctl.equal {
type equal;
#controls /etc/.alsaequal.bin
}
pcm.plugequal {
type equal;
slave.pcm "plug:dmix:SB";
#controls /etc/.alsaequal.bin
}
pcm.equal {
type plug;
slave.pcm plugequal;
}
#pcm.mego
pcm.!default
{
type asym
playback.pcm
{
}
capture.pcm
{
}
}
pcm.int_mic_mono {
ipc_key 1057;
type dsnoop;
slave {
pcm "hw:0,0";
channels 2
}
bindings.0 0
}
ctl.int_mic_mono {
type hw
card 0
}
и ссылки:
alsa.opensrc.org/Dsnoop
www.thedigitalmachine.net/alsaequal.html
launchpad.net/~vvladxx/+archive/alsaequal
@темы:
Компьютеры,
PulseAudio,
Ubuntu Natty 11.04,
ALSA,
Alsaequal,
Linux,
Статьи