Jak zastosować wtyczkę LADSPA do strumienia PulseAudio?

15

Chcę zastosować wtyczkę LADSPA do wszystkiego, co jest przesyłane strumieniowo przez domyślny zlew PulseAudio. Jak mam to skonfigurować?

ændrük
źródło

Odpowiedzi:

19

Dodanie wtyczki LADSPA do pulseaudio odbywa się za pomocą modułu-ladspa-sink .

Instalujemy ten moduł jako odbiornik wyjściowy, w którym możemy zdefiniować moduł przetwarzający i jesteśmy w stanie wysłać przetworzony sygnał do tego nowo utworzonego odbiornika.

Załaduj moduł LADSPA:

Ten moduł można załadować w czasie wykonywania za pomocą:

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

Nazwę głównego zlewu można odczytać za pomocą następującego polecenia:

 pacmd list-sinks

Podaj nazwę przetworzonego zlewu, tak jak pojawi się na liście wyników w sink_name. Wszystkie dalsze opcje zależą od używanej wtyczki (patrz przykład poniżej).

Aby zastosować procesor LADSPA, wybieramy ujście wyjściowe z „Ustawień dźwięku ...” i możemy teraz słuchać przetworzonego strumienia. Opcje sterowania nie mogą być zmieniane w czasie wykonywania.

Zwolnij moduł LADSPA:

Będziemy musieli rozładować moduł i załadować go ponownie dla różnych opcji. Aby znaleźć indeks modułu do rozładunku, możemy wydać:

 pacmd list-modules

Aby zwolnić moduł, albo ponownie uruchamiamy serwer dźwięku, pulseaudio -kalbo usuwamy moduł z jego numerem indeksu #:

pacmd unload-module <#>

Zobacz także referencyjne wiki z pulseaudio .

Załaduj moduł LADSPA przy uruchomieniu:

Po znalezieniu odpowiednich opcji możemy chcieć uruchomić go domyślnie. Można to zrobić, dołączając go do /etc/pulse/default.papliku konfiguracyjnego ładowanego przez demona podczas uruchamiania:

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

Przykład:

To jest przykład jednego specjalnego przypadku, który daje pomysł, jak to zrobić. W tym przykładzie chcemy zastosować zmianę wysokości dźwięku do naszego wyjścia dźwięku za pomocą wtyczki TAP tap_pitch ( wtyczki tap Zainstaluj wtyczki tap ). W przypadku tej wtyczki dodatkowe opcje potrzebne do załadowania do Pulse Audio są następujące:

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

Aby znaleźć odpowiednie opcje sterowania, przeglądamy dokumentację wtyczki (tutaj TAP zmieniacz pitch wtyczki ). Tam znajduje się ładna tabela czterech istotnych elementów sterujących, które musimy zastosować w control=poleceniu:

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

Pozostawienie opcji pustej spowoduje użycie domyślnej w tym przypadku.

W ten sposób następujące polecenie zastosuje przesunięcie o jedną oktawę w dół od mojego zlewu głównego alsa_output.pci-0000_00_14.2.analog-stereo(zamień na zlew) do zlewu wyjściowego ladspa_outz przesunięciem półtonowym wynoszącym -12, tj. Przesunięcie szybkości -50%, oraz z suchym (nieprzetworzonym) poziomem miksera od -90dB i mokrej (przetworzonej) poziomu 0dB.

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

W przypadku niektórych wtyczek dokumentacja może być niekompletna lub odpowiednie ustawienie będzie wymagało sporo eksperymentów, dopóki nie będą prawidłowe.

Takkat
źródło
1
Jak mogę zastosować jeden z tych filtrów (wykonanych z modułu ładowania modułu pacmd-ladspa-sink *) na wejściu mikrofonu? Mogę więc uruchomić filtr dla całego systemu i dotyczy to Mumble, Teamspeak, Skype, Games. Chcę, aby inni ludzie tutaj filtrowali dane wejściowe, to nie jest dla mnie (tylko).
braindamage
@braindamage nie może przetestować tego tutaj (bez mikrofonu), ale spróbuj użyć profilu dupleksowego dla głównego zlewu lub spróbuj z <nazwa_źródła> .monitor jako głównego.
Takkat