Как я могу применить плагин LADSPA к потоку PulseAudio?

15

Я хочу применить плагин LADSPA ко всем потокам через стандартный приемник PulseAudio. Как мне это настроить?

ændrük
источник

Ответы:

19

Добавление плагина LADSPA в pulseaudio выполняется с помощью модуля-ladspa-sink .

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

Загрузите модуль LADSPA:

Этот модуль может быть загружен во время выполнения с помощью:

pacmd load-module module-ladspa-sink sink_name=<yourname> master=<sinkname> plugin=<plugin> label=<label> control=<option1>,<option2>,[...]

Имя основного приемника можно прочитать с помощью следующей команды:

 pacmd list-sinks

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

Чтобы применить процессор LADSPA, мы выбираем выходной приемник из «Настройки звука ...» и теперь можем прослушивать обработанный поток. Параметры управления не могут быть изменены во время выполнения.

Выгрузите модуль LADSPA:

Нам придется выгрузить модуль и загрузить его снова для различных вариантов. Чтобы найти индекс модуля для выгрузки, мы можем выполнить:

 pacmd list-modules

Чтобы выгрузить модуль, мы либо перезапускаем звуковой сервер, pulseaudio -kлибо выгружаем модуль с его индексом #:

pacmd unload-module <#>

Смотрите также справочную вики от pulseaudio .

Загрузите модуль LADSPA при запуске:

После того, как мы нашли соответствующие параметры, мы можем захотеть запустить их по умолчанию. Это можно сделать, включив его в /etc/pulse/default.paфайл конфигурации, который будет загружен демоном при запуске:

.ifexists module-ladspa-sink.so
.nofail
load-module module-ladspa-sink <options>
.fail
.endif

Пример:

Это пример одного особого случая, чтобы дать вам представление о том, как это сделать. В этом примере мы хотим применить сдвиг высоты тона к нашему выводу звука, используя плагин TAP tap_pitch ( tap-plugins Установить плагин ). Для этого плагина дополнительные параметры, необходимые для загрузки в Pulse Audio, следующие:

plugin=tap_pitch # as from /usr/lib/ladspa/ without .so
label=tap_pitch  # defines which label of a plugin to use

Чтобы найти соответствующие параметры управления, мы просматриваем документацию плагина (здесь TAP plugin shift pitch shift ). Там мы находим хорошую таблицу из четырех соответствующих элементов управления, которые мы должны применить в control=команде:

control=<semitone>,<rate>,<dry>,<wet>

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

Таким образом, следующая команда применяет сдвиг высоты тона на одну октаву вниз от моего основного приемника alsa_output.pci-0000_00_14.2.analog-stereo(замените его на приемник) к выходному приемнику ladspa_outс полутоновым сдвигом -12, то есть смещением скорости в -50%, и с уровнем сухого (необработанного) смесителя. на -90дБ, и влажного (обработанного) уровня 0дБ.

pacmd load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=tap_pitch label=tap_pitch control=-12,-50,-90,0

Для некоторых плагинов документация может быть неполной, или для соответствующей настройки потребуется некоторое экспериментирование, пока они не станут правильными.

Takkat
источник
1
Как я могу применить один из этих фильтров (из pacmd load-module module-ladspa-sink *) к моему входу микрофона? Таким образом, я могу запустить общесистемный фильтр, и он применим к Mumble, Teamspeak, Skype, Games. Я хочу, чтобы другие люди здесь фильтровали входные данные, это не для меня (только).
Braindamage
@braindamage не может проверить это здесь (без микрофона), но попробуйте использовать дуплексный профиль для основного приемника или попробуйте <name_of_source> .monitor в качестве основного.
Таккат