Wie kann ich ein LADSPA-Plugin auf einen PulseAudio-Stream anwenden?

15

Ich möchte ein LADSPA-Plugin auf alles anwenden, was über die standardmäßige PulseAudio-Senke gestreamt wird. Wie soll ich das einrichten?

ændrük
quelle

Antworten:

19

Das Hinzufügen eines LADSPA-Plugins zu pulseaudio erfolgt mit module-ladspa-sink .

Wir installieren dieses Modul als Ausgangssenke, wo wir das Verarbeitungsmodul definieren und das verarbeitete Signal an diese neu erstellte Senke senden können.

Laden Sie das LADSPA-Modul:

Dieses Modul kann zur Laufzeit geladen werden mit:

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

Der Name der Master-Senke kann mit dem folgenden Befehl gelesen werden:

 pacmd list-sinks

Geben Sie einen Namen für die bearbeitete Senke ein, wie er in der Ausgabeliste in angezeigt wird sink_name. Alle weiteren Optionen hängen vom verwendeten Plugin ab (siehe Beispiel unten).

Um den LADSPA-Prozessor anzuwenden, wählen wir die Ausgabesenke unter "Sound Settings ..." und können nun den verarbeiteten Stream anhören. Steuerungsoptionen können zur Laufzeit nicht geändert werden.

Entladen Sie das LADSPA-Modul:

Wir müssen das Modul entladen und für verschiedene Optionen erneut laden. Um den Modulindex zum Entladen zu finden, können wir Folgendes ausgeben:

 pacmd list-modules

Um ein Modul zu entladen, starten wir entweder den Soundserver neu pulseaudio -koder wir entladen das Modul mit seiner Indexnummer #:

pacmd unload-module <#>

Siehe auch das Referenz-Wiki von pulseaudio .

LADSPA-Modul beim Start laden:

Nachdem wir die entsprechenden Optionen gefunden haben, möchten wir sie möglicherweise standardmäßig ausführen. Dies können Sie tun, indem Sie es in die /etc/pulse/default.paKonfigurationsdatei aufnehmen, die der Dämon beim Start laden soll:

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

Beispiel:

Dies ist ein Beispiel für einen speziellen Fall, um Ihnen eine Vorstellung davon zu geben, wie das geht. In diesem Beispiel wollen wir mit dem TAP-Plugin tap_pitch ( tap-plugins Installieren Sie Tap-Plugins ) eine Tonhöhenverschiebung auf unsere Soundausgabe anwenden . Für dieses Plugin sind die folgenden zusätzlichen Optionen zum Laden in Pulse Audio erforderlich:

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

Um die entsprechenden Steuerungsoptionen zu finden, navigieren Sie zur Plugin-Dokumentation (hier TAP-Plugin-Pitch-Shifter ). Dort finden wir eine schöne Tabelle mit vier relevanten Steuerelementen, die wir im control=Befehl anwenden müssen :

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

Wenn Sie eine Option leer lassen, wird die Standardeinstellung in diesem Fall verwendet.

Mit dem folgenden Befehl wird also eine Tonhöhenverschiebung von einer Oktave nach unten von meiner Master-Senke alsa_output.pci-0000_00_14.2.analog-stereo(durch Ihre Senke ersetzen) auf die Ausgangs-Senke ladspa_outmit einer Halbtonverschiebung von -12, dh einer Ratenverschiebung von -50%, und mit einem trockenen (unverarbeiteten) Mischpegel angewendet von -90dB und einem nassen (verarbeiteten) Pegel von 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

Für einige Plugins ist die Dokumentation möglicherweise nicht vollständig, oder die entsprechende Einstellung erfordert einige Experimente, bis sie richtig sind.

Takkat
quelle
1
Wie kann ich einen dieser Filter (hergestellt aus pacmd load-module-ladspa-sink *) auf meinen Mikrofoneingang anwenden? Ich kann also einen systemweiten Filter ausführen, der sich auf Mumble, Teamspeak, Skype und Games bezieht. Ich möchte, dass andere Leute hier die gefilterten Eingaben machen, es ist nicht für mich (nur).
Braindamage
@braindamage kann dies hier nicht testen (kein Mikrofon), aber versuchen Sie es mit einem Duplex-Profil für die Master-Senke, oder versuchen Sie es mit <Name_der_Quelle> .monitor als Master.
Takkat