После этой статьи стоит рассказать, как настроить параметрический эквалайзер под 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)


  1. unkle_Jah
    12.09.2021 14:33
    +1

    Простите, я правильно понял: чтобы прибавить басов (или какие-либо ещё манипуляции со звуком произвести) надо не только заклинание в консоли ввести, но и альзу перезапустить? Вы серьёзно?


    1. mikhailian Автор
      12.09.2021 14:34
      +1

      Ага. Welcome to the real world, @unkle_Jah.


  1. 9a75sd
    12.09.2021 16:04
    +1

    Это пригодилось бы больше для Embedded Linux, но тогда нужны программные интерфейсы, чтобы можно было этим эквалайзером управлять, причем без перезапуска ALSA


    1. mikhailian Автор
      12.09.2021 16:20

      Я описал программный аналог MiniDSP или усилителя на SigmaDSP, с которым используется Sigma Studio.

      Тут интерфейсом служит Room EQ Wizard.


  1. DenisDangerous
    13.09.2021 09:10
    -1

    Самое главное, зачем? Страдал эквалайзерами лишь до покупки норм аудио железок. Когда у тебя недорогая, но уже добротная карточка, а не интегрированный реалтек, и неплохие наушники в районе 2к+ рублей, а не затычки за 300р, уже даже не хочется что там крутить, хочется наслаждаться музыкой, как ее задумал создатель, и чем дороже и качественнее аппаратура, тем меньше хочется что то там крутить.


    1. 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 — и ваша акустическая система звучит (в теории) намного лучше.


      1. AlanKaye
        13.09.2021 11:33

        А ещё лучше будет audiolense с конвольвером.


        1. mikhailian Автор
          13.09.2021 11:59

          Софт софтом, а всё упирается в железки: колонки, АЦП и микрофон. Ну и в то, насколько софт учитывает характеристики этих железок.


          1. MockBeard
            14.09.2021 12:09

            Да, без хорошей аппаратуры софтовые примочки это для баловства. А если есть деньги на такие мониторы, как на КПВД, то и на остальное железо тоже найдется )))


      1. vitmeat
        13.09.2021 13:14

        Этот бы коммент, да в начало статьи =)


        1. mikhailian Автор
          13.09.2021 13:19
          +1

          Кто же знал, что в хабе Звук надо объяснять, чем параметрический эквалайзер отличается от традиционного.

          По мотивам этого комментария в черновиках новая статья ждёт, с моей кармой смогу опубликовать только через неделю.


          1. Punk_Joker
            14.09.2021 16:31

            Но ведь есть еще хаб Настройка Linux, а вот тут уже не каждый знает о нюансах со звуком)


    1. vtc
      14.09.2021 10:19

      Ну а так зачем вам эквалайзер в наушниках? Он нужен тем, что случает через акустическую систему.