Автоматическое переключение предустановок эквалайзера на основе аудиовыхода (внутренний динамик или внешний)

Приведенные ниже факты основаны на опыте работы с Ubuntu 13.10 на 64-битном ноутбуке.

Контекст / проблема: плохие динамики

Как многие знают, динамики для ноутбуков имеют «очень неравную частотную характеристику», как сказал бы профессионал в области звука. Нормальные люди говорят: «Они звучат очень плохо ».

Решение первого шага: эквалайзер

Эквалайзинг обеспечивает ценный обходной путь , значительно улучшая качество звука за один раз. Например, я установил PulseAudio Equalizer из Web Upd8 .

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

Оставшаяся проблема: кривая эквалайзера зависит от выхода.

Значения эквалайзера привязаны ко всей цепочке, хотя, как правило, только динамики являются основным источником неравного отклика.

Это означает, что у меня есть два профиля эквалайзера:

  • один для динамиков ноутбука (с дико меняющейся кривой эквалайзера)
  • другой (гораздо более плоская кривая, поэтому отключение эквалайзера часто приемлемо), когда внешнее стерео подключено, например, к разъем 3,5 мм.

Текущая ситуация на практике: автоматическое включение / отключение звука, хорошее, но недостаточное

  • При подключении разъема 3,5 мм к внешней стереосистеме внутренние динамики автоматически отключаются, а громкость регулируется Ubuntu стек. Это хорошо, но недостаточно.
  • При отсоединении внутренние динамики автоматически активируются снова. Это хорошо, но недостаточно.

Улучшение: не только автоматическое отключение звука, но и автоматический выбор кривой эквалайзера

Было бы намного лучше применить правильную предустановку эквалайзера при отключении / подключении разъема 3,5 мм. Подключите внешний стерео, плоская кривая выбрана. Отключите стерео, внутренний динамик получит кривую коррекции.


Вопросы

Как быстро и грязно взломать? Как определить разъем штекера из сценария?

Как выполнить чистую настройку: назначьте кривую выравнивания для внутреннего динамика, а не только для подключения.

Например, скажем, я подключил аудиоустройство USB и воспроизводил аудио через него. Быстрый и грязный хак изменит кривую эквалайзера всякий раз, когда разъем 3,5 мм отключен / подключен, хотя звук фактически продолжает поступать на аудиоустройство USB, а не на внутренний динамик, что делает изменение кривой эквалайзера неуместным.

В «чистой» настройке профиль эквалайзера был бы аккуратно назначен внутреннему динамику, что сделало его более надежным. Независимо от ситуации, он будет всегда (и только) применяться при необходимости.

Кто-нибудь работает над этим? Любой намек?

Спасибо за ваше внимание.

3
задан 13 April 2017 в 15:25

2 ответа

Поскольку у меня есть подобная проблема, я сделал "быстрый и грязный" сценарий Python, который использует DBus-события pulseaudio для обнаружения, когда активироваться который профиль эквалайзера.

Установка

Для использования его, необходимо добавить следующую строку к/etc/pulse/default.pa:

load-module module-dbus-protocol

Затем отключите эквалайзер через pulseaudio-equalizer-gtk и нажмите на "Apply settings", теперь закройте GUI.

Загрузка применяется-equalizer.py, сохраняют его где-нибудь и делают его исполняемым файлом.

Выполните его как пользователя (!). Возможно, необходимо установить некоторые дополнительные модули Python. Также можно хотеть автоматически запустить его на входе в систему (я не знаю то, что является лучшим способом сделать это).

Использование

Сценарий создает на порт [1] конфигурации эквалайзера под ~/.config/apply-equalizer и символьными ссылками их, если устройство изменяет выходной порт (т.е. включенные наушники или).

[1]: много звуковых карт имеют различные порты, например, один порт динамика и один порт наушника

Так:

  1. Отключите наушники.
  2. Открытый pulseaudio-эквалайзер GUI
  3. Настройте настройки эквалайзера, пока это не будет звучать хорошим
  4. "Подайте заявку, Настройки" затем присвоят конфигурацию, которую Вы сделали (включая то, если эквалайзер включен вообще) к текущему порту (динамики в этом случае)
  5. закройте GUI и повторитесь от шага 2 для каждого порта, который Вы хотите присвоить (наушники, не включенные)

Теперь настройки эквалайзера автоматически корректируются каждый раз, когда Ваш переключатель между динамиками и наушниками.

2
ответ дан 13 April 2017 в 15:25

Здесь ручное решение для переключения между Equalizor ON (с вашими любимыми настройками) и OFF:

if [ "$(pulseaudio-equalizer status | grep "Equalizer status" | cut -d"[" -f2 | cut -d"]" -f1)" == "enabled" ]; then
    pulseaudio-equalizer disable
else
    pulseaudio-equalizer enable
fi

Сохранить как файл как скрипт bash, создать новый стартер панели, чтобы можно было запустить Сценарий прямо с рабочего стола или панели меню.

0
ответ дан 13 April 2017 в 15:25
  • 1
    Я veeery осторожный, когда я использую dd для прямого доступа к дискам.. так я wouldn' t используют Ваше решение, если я не знаю ТОЧНО что I' m изменение. You' право ре [приблизительно 110] Диск Уничтожает и я can' t позволяют себе сделать это с этими дисками! – Phanindra K 2 July 2015 в 19:47

Другие вопросы по тегам:

Похожие вопросы: