Comment puis-je appliquer un plugin LADSPA à un flux PulseAudio?

15

Je veux appliquer un plugin LADSPA à tout ce qui passe par le récepteur PulseAudio par défaut. Comment dois-je configurer cela?

ændrük
la source

Réponses:

19

L'ajout d'un plugin LADSPA à pulseaudio se fait avec module-ladspa-sink .

Nous installons ce module comme un récepteur de sortie où nous pouvons définir le module de traitement et pouvons envoyer le signal traité à ce récepteur nouvellement créé.

Chargez le module LADSPA:

Ce module peut être chargé lors de l'exécution avec:

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

Le nom du récepteur maître peut être lu avec la commande suivante:

 pacmd list-sinks

Donnez un nom au récepteur traité tel qu'il apparaîtra dans la liste de sortie dans sink_name. Toutes les autres options dépendent du plugin que nous utilisons (voir l'exemple ci-dessous).

Pour appliquer le processeur LADSPA, nous choisissons le récepteur de sortie dans "Paramètres audio ..." et pouvons maintenant écouter le flux traité. Les options de contrôle ne peuvent pas être modifiées lors de l'exécution.

Déchargez le module LADSPA:

Nous devrons décharger le module et le charger à nouveau pour différentes options. Pour trouver l'index du module pour le déchargement, nous pouvons émettre:

 pacmd list-modules

Pour décharger un module, nous redémarrons le serveur audio avec pulseaudio -kou nous déchargeons le module avec son numéro d'index #:

pacmd unload-module <#>

Voir aussi le wiki de référence de pulseaudio .

Charger le module LADSPA au démarrage:

Après avoir trouvé les options appropriées, nous pouvons vouloir l'exécuter par défaut. Cela peut être fait en l'incluant dans le /etc/pulse/default.pafichier de configuration à charger par le démon au démarrage:

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

Exemple:

Ceci est un exemple d'un cas spécial pour vous donner une idée sur la façon de le faire. Dans cet exemple, nous voulons appliquer un pitch shift à notre sortie audio à l'aide du plug-in TAP tap_pitch ( tap-plugins Installer des plug-ins ). Pour ce plugin, les options supplémentaires nécessaires au chargement dans Pulse Audio sont les suivantes:

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

Pour trouver les options de contrôle appropriées, nous parcourons la documentation du plugin (ici TAP plugin pitch shifter ). Nous trouvons là un joli tableau de quatre contrôles pertinents que nous devons appliquer dans la control=commande:

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

Laisser une option vide utilisera la valeur par défaut dans ce cas.

Ainsi, la commande suivante appliquera un décalage de hauteur d'une octave vers le bas de mon récepteur principal alsa_output.pci-0000_00_14.2.analog-stereo(remplacez-le par votre récepteur) au récepteur de sortie ladspa_outavec un décalage de demi-tons de -12, c'est-à-dire un décalage de taux de -50%, et avec un niveau de mixage sec (non traité) de -90dB, et un niveau humide (traité) de 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

Pour certains plugins, la documentation peut ne pas être complète, ou le réglage approprié nécessitera un peu d'expérimentation jusqu'à ce qu'ils soient corrects.

Takkat
la source
1
Comment puis-je appliquer l'un de ces filtres (fabriqués à partir de pacmd load-module module-ladspa-sink *) à mon entrée microphone? Je peux donc exécuter un filtre à l'échelle du système et il s'applique à Mumble, Teamspeak, Skype, Games. Je veux que d'autres personnes saisissent l'entrée filtrée, ce n'est pas pour moi (seulement).
braindamage
@braindamage ne peut pas tester cela ici (pas de microphone) mais essayez avec un profil duplex pour le récepteur principal, ou essayez avec <nom_de_source> .monitor comme maître.
Takkat