После этой статьи стоит рассказать, как настроить параметрический эквалайзер под 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)
 - 9a75sd12.09.2021 16:04+1- Это пригодилось бы больше для Embedded Linux, но тогда нужны программные интерфейсы, чтобы можно было этим эквалайзером управлять, причем без перезапуска ALSA  - mikhailian Автор12.09.2021 16:20- Я описал программный аналог MiniDSP или усилителя на SigmaDSP, с которым используется Sigma Studio. - Тут интерфейсом служит Room EQ Wizard. 
 
 - DenisDangerous13.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 — и ваша акустическая система звучит (в теории) намного лучше.  - AlanKaye13.09.2021 11:33- А ещё лучше будет audiolense с конвольвером.  - mikhailian Автор13.09.2021 11:59- Софт софтом, а всё упирается в железки: колонки, АЦП и микрофон. Ну и в то, насколько софт учитывает характеристики этих железок.  - MockBeard14.09.2021 12:09- Да, без хорошей аппаратуры софтовые примочки это для баловства. А если есть деньги на такие мониторы, как на КПВД, то и на остальное железо тоже найдется ))) 
 
 
  - vitmeat13.09.2021 13:14- Этот бы коммент, да в начало статьи =)  - mikhailian Автор13.09.2021 13:19+1- Кто же знал, что в хабе Звук надо объяснять, чем параметрический эквалайзер отличается от традиционного. - По мотивам этого комментария в черновиках новая статья ждёт, с моей кармой смогу опубликовать только через неделю.  - Punk_Joker14.09.2021 16:31- Но ведь есть еще хаб Настройка Linux, а вот тут уже не каждый знает о нюансах со звуком) 
 
 
 
  - vtc14.09.2021 10:19- Ну а так зачем вам эквалайзер в наушниках? Он нужен тем, что случает через акустическую систему. 
 
 
           
 


unkle_Jah
Простите, я правильно понял: чтобы прибавить басов (или какие-либо ещё манипуляции со звуком произвести) надо не только заклинание в консоли ввести, но и альзу перезапустить? Вы серьёзно?
mikhailian Автор
Ага. Welcome to the real world, @unkle_Jah.