После этой статьи стоит рассказать, как настроить параметрический эквалайзер под Linux. Просто чтобы посмотреть, что делает MiniDSP и конкурирующие с ним железки.
Для начала вам надо скомпилировать dsp плагин Майкла Барбура под ALSA, подключить и настроить его:
git clone https://github.com/bmc0/dsp.git
cd dsp
/configure --disable-dsp --disable-fftw3 --disable-zita-convolver
make
sudo make install
Естественно, нужно установить среду разработки, в Arch Linux это делается командой pacman -S base-devel, в Дебиане — apt-get install build-essential. После инсталляции появится файл плагина в /usr/local/lib/ladspa, оттуда он будет доступен ALSA.
Затем редактируем файл настройки ALSA /etc/asound.conf: Вот пример более-менее универсального конфига для двухканального звука:
pcm.dsp {
type plug
slave {
format FLOAT
rate unchanged
pcm {
type ladspa
channels 2
path "/usr/local/lib/ladspa"
playback_plugins [{
label "ladspa_dsp"
}]
slave.pcm {
type plug
slave.pcm {
type dmix
ipc_key 1234
slave. pcm "front:CARD=CODEC,DEV=0"
bindings {
0 0 # from 0 => to 0
1 1 # from 1 => to 1
}
}
}
}
}
}
pcm.!default {
type copy
slave.pcm "dsp"
}
В нём настройки пайплайна начинаются с самого высокого уровня вложенности. На вход подаётся интерфейс аудиокарты. У меня — front:CARD=CODEC,DEV=0, ваш можно найти, запустив aplay -L. Выберите тот, который по названию похож на двухканальный интерфейс и подставьте.
После подключается софтовый микшер dmix. Без софтового микшера у вас будет играть только одно приложение в один момент времени. Впрочем, если у вас Pulse Audio или аудиокарточка, которая предоставляет хардверный микшер, он вам не нужен.
Уровнем выше подключается нужный плагин.
Ещё выше — настройка хвоста пайплайна, она обычно не меняется.
Всё. Плагин готов к работе. Настройки записываются одной строчкой в файл /etc/ladspa_dsp/config. Строчка обязательно начинается с effects_chain=, за ней идёт конфигурация эффектов.
Можно начать играться, например усилить басы с помощью
effects_chain=gain -3.0 lowshelf 90 0.9s +3.0
Перезапустите ALSA с помощью alsactl restore и оцените разницу.
Впрочем, вручную эффекты никто не редактирует. Самый популярный софт для рассчёта компенсации АЧХ помещения — Room EQ Wizard. В коде bmc0/dsp уже есть скрипт для конвертации эффектов из Room EQ Wizard в effects_chain.
Впрочем, использование Room EQ Wizard — это тема для отдельной статьи.
Комментарии (13)
9a75sd
12.09.2021 16:04+1Это пригодилось бы больше для Embedded Linux, но тогда нужны программные интерфейсы, чтобы можно было этим эквалайзером управлять, причем без перезапуска ALSA
mikhailian Автор
12.09.2021 16:20Я описал программный аналог MiniDSP или усилителя на SigmaDSP, с которым используется Sigma Studio.
Тут интерфейсом служит Room EQ Wizard.
DenisDangerous
13.09.2021 09:10-1Самое главное, зачем? Страдал эквалайзерами лишь до покупки норм аудио железок. Когда у тебя недорогая, но уже добротная карточка, а не интегрированный реалтек, и неплохие наушники в районе 2к+ рублей, а не затычки за 300р, уже даже не хочется что там крутить, хочется наслаждаться музыкой, как ее задумал создатель, и чем дороже и качественнее аппаратура, тем меньше хочется что то там крутить.
mikhailian Автор
13.09.2021 10:09+2Вы упустили слово "параметрический", в эффекте lowshelf 90 0.9s +3.0 вы просите эквалайзер усилить басы на 3dB в раза начиная с 90 герц со скатом в 0.9, вот так:
И таких эффектов могут быть десятки.
Теперь возьмём гипотетическую ситуацию, в которой вы купили акустическую систему за 100,500 тугриков, а она не звучит и вам советуют провести коррекцию АЧX помещения.
Как это работает? Вы запускаете программу вроде уже упоминавшейся тут REW, которая генерирует звук длиной в несколько секунд с плавно меняющейся частотой от 20 до 20000 Гц и параллельно записываете то, что воспроизвела ваша аудиосистема. Вместо горизонтальной полосы от 20 до 20000 Гц у вас получатся Альпы. Делаете несколько замеров и усредняете результат:
Нажимаете кнопку — и программа генерирует вам в противовес набор эффектов, который в той точке, где находится микрофон, будет создавать впечатление ровной АЧХ:
Вставляете описание этих эффектов в /etc/ladspa_dsp/config — и ваша акустическая система звучит (в теории) намного лучше.
AlanKaye
13.09.2021 11:33А ещё лучше будет audiolense с конвольвером.
mikhailian Автор
13.09.2021 11:59Софт софтом, а всё упирается в железки: колонки, АЦП и микрофон. Ну и в то, насколько софт учитывает характеристики этих железок.
MockBeard
14.09.2021 12:09Да, без хорошей аппаратуры софтовые примочки это для баловства. А если есть деньги на такие мониторы, как на КПВД, то и на остальное железо тоже найдется )))
vitmeat
13.09.2021 13:14Этот бы коммент, да в начало статьи =)
mikhailian Автор
13.09.2021 13:19+1Кто же знал, что в хабе Звук надо объяснять, чем параметрический эквалайзер отличается от традиционного.
По мотивам этого комментария в черновиках новая статья ждёт, с моей кармой смогу опубликовать только через неделю.
Punk_Joker
14.09.2021 16:31Но ведь есть еще хаб Настройка Linux, а вот тут уже не каждый знает о нюансах со звуком)
vtc
14.09.2021 10:19Ну а так зачем вам эквалайзер в наушниках? Он нужен тем, что случает через акустическую систему.
unkle_Jah
Простите, я правильно понял: чтобы прибавить басов (или какие-либо ещё манипуляции со звуком произвести) надо не только заклинание в консоли ввести, но и альзу перезапустить? Вы серьёзно?
mikhailian Автор
Ага. Welcome to the real world, @unkle_Jah.