Иногда приходится слушать кино или музыку с очень тихим звуковым каналом и ее громкость силами аппаратного усиления раскачать не всегда получается (особенно если есть посторонние шумы, в метро, например). Да и усиление не всегда помогает, так как раскачать удасться лишь в лучшем случае на половину максимальной громкости. Иногда пользуются программным усилителем (если он есть в каком-то конкретном плэйере), но этот метод кроме перегрузок ничего не дает толком, но если ничего нет, то и это сгодится. А как сделать чтоб и сигнал усилился не по уровню, а по звуковому давлению на ухо, но не был громче 0dB?
Для этого нужно сигнал сжать компрессором, а потом усилить до максимума(нормализовать). Т.е. 2 действия. Но чтоб одним действием сие делать, для этого есть ультрамаксимайзеры.
Значит нам надо повесить оный на выход pulseaudio.
А еще больше хотелось чтоб сие было не глобально, а можно было включать-выключать этот режим нажав на клавишу какую-нибудь...
Вот болел я этим и в конце концов (после нескольких попыток растянутых во времени) окончательно сделал оптимальное (для меня) решение.
Устанавливаем набор плагинов(их там около 100).
sudo apt-get install swh-pluginsИх можно посмотреть и пощупать в audacity. Они там отображаются по номерам.
Из под рута дописываем к дефолтному конфигу пульсаудио новый канал, на который вешаем ультрамаксимайзер.
sudo su - -c "echo 'load-module module-ladspa-sink sink_name=maxi master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=satan_maximiser_1408 label=satanMaximiser control=30,-12' >> /etc/pulse/default.pa"
Данную команду выполняйте только 1 раз (иначе у вас появится еще один аналогичный канал вывода). В случае потребности изменить данные настройки канала просто правьте /etc/pulse/default.pa из под суперпользователя.
Создаем скрипт sink.sh:
#!/bin/bash
function setsink
{
pacmd set-default-sink $1
pacmd list-sink-inputs | grep index | while read line
do
pacmd move-sink-input $(echo $line | cut -f2 -d' ' | tr -d '> ') $1
done
}
if [ -e "/tmp/sink.stat" ]
then
grep 'maxi' /tmp/sink.stat &>/dev/null
if [ $? = 0 ]
then
sink='norm'
else
sink='maxi'
fi
else
sink='maxi'
fi
echo $sink >/tmp/sink.stat
[ $sink = 'maxi' ] && setsink 1 || setsink 0
Данный скрипт при запуске переключает с обычного вывода на ультрамаксимизированный, а при повторном запуске - наоборот.
Далее привязываем данный скрипт к какой-то комбинации клавиш в вашем ГУИ. Я пользую КДЕ4 и штатными средствами привязал к Shift+Alt+V.
Перезапускаем pulseaudio или перезагружаемся.
Теперь по данной клавише у вас будут переключаться громкость с обычной на прогнанную через плагин и назад.
Ультрамаксимайзер выставлен так, что он должен компресить сигнал с уровнем атаки 30мс и порогом -12dB, а потом он разгоняет его до максимума. Можете поменять атаку и порог на свой вкус.
Возможно ваше устройство будет обзываться не alsa_output.pci-0000_00_1b.0 Тогда смотрите вывод команды pactl list и смотрите название вашего устройства (как правило ваше устройство - Card #0) и меняйте /etc/pulse/default.pa , учитывая новое имя устройства.
У меня на двух ноутах с Intel HDA устройство называется так как указано в п.2.
Возможно в выводе pactl list для данной карты нужно будет обратить внимание на раздел
Profiles:
output:analog-stereo: вихід Аналогове стерео (sinks: 1, sources: 0, priority. 6000)
У меня вывод называется analog-stereo, соответственно нужно в /etc/pulse/default.pa в добавленной строчке писать alsa_output.pci-0000_00_1b.0.analog-stereo
ПиСя: Предупреждаю! Если вы порвете свои наушники(динамики) от перегруза или порвете ушные перепонки, я ответственности не несу - все на Ваш страх и риск. Но чтоб сего не произошло, заранее понизьте мастеровую громкость на микшере до 20-30 процентов. Даже на этой громкости эффект будет потрясающим! Лучше для тестирования использовать заранее тихую музыку, что нибудь из классики может быть. Но лучше не на панке или метале это тестить ибо там звук как правило очень плотный и может порвать все что можно, если не уши и не наушники, то мозг точно...)))
Будьте осторожны при переходе на ультрамаксимайзер. Делайте это только тогда когда сигнал действительно тихий.
ПиПиСя:Если нужно визуально контроллировать как усиляется сигнал , то вам поможет программа pavucontrol и ее закладка "Устройства Вывода". Там будет видно какой сигнал по громкости приходит с плэйера на вход плагина и какой выходит с него на вход звуковой карты.