J'ai une enceinte à côté de mon ordinateur que j'utilise principalement comme amplificateur de casque. À l'occasion, j'ai besoin de l'utiliser comme haut-parleur. Est-il possible de faire passer rapidement la sortie audio de stéréo à mono, soit à l'échelle du système, soit sous forme de plugin pour un lecteur multimédia ?
Réponses
Trop de publicités?-
Trouvez le nom de votre puits audio en exécutant
pacmd list-sinks | grep name:
-
Exécutez ensuite cette commande (en prenant soin de supprimer les parenthèses angulaires du résultat de la commande précédente) :
pacmd load-module module-remap-sink sink_name=mono master=NAME_OF_AUDIO_SINK_GIVEN_BY_PREVIOUS_COMMAND channels=2 channel_map=mono,mono
ou ajouter
load-module module-remap-sink sink_name=mono master=NAME_OF_AUDIO_SINK_GIVEN_BY_PREVIOUS_COMMAND channels=2 channel_map=mono,mono
à /etc/pulse/default.pa
pour qu'il soit exécuté au démarrage.
-
Ensuite, dans Préférences sonores choisissez "Mono" comme sortie, mais n'oubliez pas de réduire les volumes de moitié, puisque deux canaux sont mélangés en un seul, sinon vous aurez de la distorsion. Pour tester, lancez :
speaker-test -c 2 -t sine
La même chose en une seule commande :
pacmd load-module module-remap-sink sink_name=mono master=$(pacmd list-sinks | grep -m 1 -oP 'name:\s<\K.*(?=>)') channels=2 channel_map=mono,mono
-
Pour supprimer le canal mono, il suffit d'utiliser :
pacmd unload-module module-remap-sink
J'ai intégré la réponse 1 dans un perl-script, donc je n'ai pas besoin de me souvenir de ces 2 commandes :
#!/usr/bin/perl
use strict;
my @choices = ();
my $i = 0;
for (`pacmd list-sinks`) {
if( /name:.*<(.+)>/) {
$choices[$i++] = $1;
print "$i:\t$1\n";
}
}
my $choice = $choices[<>-1] or die "invalid choice";
exec (qw(pacmd load-module module-remap-sink sink_name=mono),
"master=$choice",
qw(channels=2 channel_map=mono,mono));
(J'aurais bien annoté cette réponse, mais mon karma est trop faible ;-) )
En complément, après avoir créé votre sink mono avec les réponses ci-dessus, vous pouvez mapper ce script à une touche de raccourci :
#!/bin/bash
if [ "* index: 0" == "$(pacmd list-sinks | grep "*" | sed 's/^ *//')" ];
then pacmd set-default-sink 1 && notify-send "Mono";
SINK=1;
else
pacmd set-default-sink 0 && notify-send "Stereo";
SINK=0;
fi;
pacmd list-sink-inputs | grep index | grep -o '[0-9]*' | while read -r line;
do pacmd move-sink-input $line $SINK;
done;
Cela va basculer entre les puits et remapper le flux actuel vers le nouveau puits (ma
- Réponses précédentes
- Plus de réponses