LINUX.ORG.RU

Нормализация звука в pulseaudio


6

2

Надоело подпрыгивать когда наушники на голове и внезапно запустилось что то с выкрученным на максимум звуком. Решил попробовать сделать на пульсе нормализацию звука. Что бы звук со всех каналов приводился к одной громкости насильно. Не вышло.

http://askubuntu.com/questions/95716/automatically-adjust-the-volume-based-on-content

Вот там нашел. Нет такого модуля у меня в пульсе, даже понаставив ladpspa с репов, не нашел нужного модуля. Может быть я не туда рою грунт? Есть ли простое решение вопроса?

If you use only alsa via pulse or not, then you could easily create a default plugin set to amplify your sound by any chosen factor. In your home directory create an .asoundrc file containing something like this:


pcm.!default {
    type plug
    slave.pcm amp
}

pcm.amp {
  type plug
  slave.pcm "plughw"
  ttable {
    0.0=    0.7     #amplication factor
    1.1=    0.7     #amplication factor
  }
}

пробовал?

star_eater
()
Ответ на: комментарий от darkenshvein

этим плеер так то должен заниматься

Не обязательно, может задумал что-то нестандартное. Вон кстати star_eater норм дело предлагает.

Я так уже подумал, было бы шикароно делать тише музыку на плеере автоматом когда тебе в скайп звонят, например.

deep-purple ★★★★★
()
Ответ на: комментарий от darkenshvein

От драйвера устройства, программного плеера, etc., в буфер подается подготовленный отресемплированный сырой PCM с частотой дискретизации (например) 44.1 кГц, где каждый фрейм это 16-bit signed (не будем углубляться в моно/стерео), где тишина это «0», а положительные и отрицательные фазы звуковой волны соответственно имеют ограничения по амплитуде (min/max of int16_t). При нормальзации звука буфер анализируется вперед на N фреймов. При превышении заданного значения (как положительного, так и отрицательного) текущее значение фрейма умножается на некую дельту меньше еденицы. Динамика звуковой волны сжимается. Примерно по такому принципу работают всякие плагины типа компрессоры, лимитеры.

А что?

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Есть earcandy, у меня не заработало, но оно как раз рулит звуком на основе правил.

i3draven ★★
() автор топика

Получилось!

pacmd load-module module-ladspa-sink sink_name=ladspa_sink master=0 plugin=dyson_compress_1403 label=dysonCompress control=0,1,0.5,0.99

dyson_compress_1403 - это надо. В каком пакете с ladspa фильтрами оно было, я не в курсе, поставил почти все, что были (они ставятся в одну папку и мало весят).

Есть еще вариант

pactl load-module module-ladspa-sink sink_name=ladspa_out master=0 plugin=amp_1181 label=amp control=20 20

Не сравнивал и пока не понял толи это, что мне надо. Но, работает уже, дальше дорою.

i3draven ★★
() автор топика
Ответ на: комментарий от i3draven

Хотелось бы все это в пульсе сделать, так как сносить ее не хочу

А зачем тебе пульса? Это ж лишняя прослойка между прилагами и альсой. Пульса вообще задумывалась аки демон для передачи звука по сетке, с какимто мегаудобным апи и все такое, но изза своей навороченности она тупит. Сноси её смело.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

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

В общем оказалось, что «нормализация» это то же самое, что и «динамическая компрессия», а значит искать надо ladspa dynamic compression или normalization. Все находится.

Послушаю как оно будет работать, пока пашет вроде бы и даже похоже нормализует громкость!

i3draven ★★
() автор топика
Ответ на: комментарий от i3draven

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

i3draven ★★
() автор топика
Ответ на: комментарий от i3draven

Итого

В /etc/pulse/default.pa

load-module module-ladspa-sink sink_name=ladspa_output.dysonCompress master=0 sink_properties=device.description=«Compress» plugin=dyson_compress_1403

set-default-sink 2

set-sink-volume 2 15000

В /etc/pulse/daemon.conf

flat-volumes = yes

Нормализованный звук на выходе.

i3draven ★★
() автор топика
Ответ на: комментарий от i3draven

Пардон, недовыделил.

load-module module-ladspa-sink sink_name=ladspa_output.dysonCompress master=0 sink_properties=device.description=«Compress» plugin=dyson_compress_1403 label=dysonCompress control=0,0.25,0.5,0.99

i3draven ★★
() автор топика
Ответ на: комментарий от deep-purple

При нормальзации звука буфер анализируется вперед на N фреймов.

воот. плееры анализируют весь аудиофайл, чтобы получить приличное сглаживание.

darkenshvein ★★★★★
()
Ответ на: комментарий от i3draven

В итоге вышло

load-module module-ladspa-sink sink_name=ladspa_output.dysonCompress master=0 sink_properties=device.description=«Compress» plugin=dyson_compress_1403 label=dysonCompress control=-9.0,0.25,0.5,0.99

-9.0 - это что бы в низкокачественных файлах не стреляло и не хрипело.

set-default-sink 2

set-sink-volume 2 40000

Вполне пашет, дальше надо проверять на практике.

i3draven ★★
() автор топика
Ответ на: комментарий от darkenshvein

Ой да не шути насчет ВСЕГО файла. А если ты слушаешь оперу какого-нибудь Чайковского в 4 частях в WAV 64 бит стерео 96 кГц, на 4-6 часов выступления, ты тоже будешь весь файл анализировать? Не путай глобальную нормальзацию трека с сжатием диапазона.

Буфера в 1 секунду более чем достаточно. Как по твоему работает LADSPA/VST компрессор в реальном времени если ты на него будешь шептать и кричать в микрофон? В будущее что-ли отправляется в то место где ты выдохся и микрофон отключил и анализирует весь «трек»?

deep-purple ★★★★★
()
Ответ на: комментарий от zorg

Тред не читай, сразу отвечай! Выше по треду - работающее решение.

Jameson ★★★★★
()
Ответ на: комментарий от deep-purple

Как по твоему работает LADSPA/VST компрессор

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

darkenshvein ★★★★★
()
Ответ на: комментарий от darkenshvein

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

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.