web-dev-qa-db-fra.com

Comment appliquer un plugin LADSPA à un flux PulseAudio?

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

15
ændrük

Ajouter un plugin LADSPA à pulseaudio se fait avec module-ladspa-sink .

Nous installons ce module en tant que récepteur de sortie. Nous pouvons définir le module de traitement et envoyer le signal traité à ce récepteur nouvellement créé.

Chargez le module LADSPA:

Ce module peut être chargé à 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 à l'aide de 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 utilisé (voir exemple ci-dessous).

Pour appliquer le processeur LADSPA, nous choisissons le récepteur de sortie parmi "Paramètres du son ..." et pouvons désormais écouter le flux traité. Les options de contrôle ne peuvent pas être modifiées au moment 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 de module pour le déchargement, nous pouvons émettre:

 pacmd list-modules

Pour décharger un module, nous devons soit redémarrer le serveur de son avec pulseaudio -k, soit le décharger avec le numéro d'index #:

pacmd unload-module <#>

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

Charger le module LADSPA au démarrage:

Après avoir trouvé les options appropriées, nous voudrons peut-être l'exécuter par défaut. Cela peut être fait en l'incluant dans le fichier de configuration /etc/Pulse/default.pa à 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 particulier pour vous donner une idée sur la façon de le faire. Dans cet exemple, nous voulons appliquer un décalage de tonalité à notre sortie audio à l'aide du plugin TAP tap_pitch ( tap-plugins - Install tap-plugins ). 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, accédez à la documentation du plugin (ici plug-in TAP pitch shifter ). Nous trouvons ici une belle table de quatre contrôles pertinents que nous devons appliquer dans la commande control=:

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 d'un octave vers le bas à partir de mon collecteur principal alsa_output.pci-0000_00_14.2.analog-stereo (remplacer par votre collecteur) dans le collecteur de sortie ladspa_out avec un décalage d'un demi-ton de -12, soit un décalage de vitesse de -50%, et avec un asséchage ( non traité) niveau de mélangeur 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 les paramètres appropriés nécessiteront quelques essais jusqu'à ce qu'ils soient corrects.

19
Takkat