Parfois, certains sons/films/musique sur mon système Ubuntu_12.04 ont un volume sonore très faible. J'augmente désormais le volume de la sortie audio. Je peux utiliser le réglage suivant (voir capture d'écran)
Il semble donc que pulseaudio est capable d’augmenter le volume au-delà du maximum possible en utilisant simplement les boutons "Augmenter le volume" de la machine. Ma question est de savoir comment je peux ajuster Pulseaudio pour permettre une plus grande plage ou un volume maximum plus élevé ???
Surtout avec certains contenus audio dont le volume est très faible au début, il serait agréable de pouvoir augmenter rapidement le volume de sortie (mise sous tension) à un niveau supérieur à celui nécessaire pour un autre matériau déjà très puissant.
Le niveau de volume maximal que nous pouvons obtenir en glissant la commande de volume à plus de 100% est d’env. 153% au-dessus de la limite maximale normale. Si nous avons réglé le volume d'ALSA avec alsamixer sur 100, ces 100% représentent le niveau au-dessus duquel l'audio sera écrêté ou déformé. Cela se produira également lors de l’amplification à 153% avec le curseur.
Néanmoins, il est possible d’augmenter davantage ce niveau en le définissant à l’aide de la commande suivante dans un terminal:
pacmd set-sink-volume <sink> <value>
Remplacez <sink>
par votre nom de collecteur ou index de collecteur, comme indiqué à partir de:
pacmd list-sinks
La limite inférieure de <value>
est évidemment 0
, un volume linéaire de 100% est une valeur de 65536
, toute valeur supérieure sera encore amplifiée. Une valeur de 512 000 entraînera donc une suramplification de 781%.
C'est une méthode très grossière pour amplifier une sortie audio de niveau variable, car une suramplification conduira non seulement à un écrêtage et à une distorsion laide, mais peut également endommager vos haut-parleurs.
Ce serait donc un meilleur moyen de normaliser votre sortie audio. Voir la question suivante sur la procédure à suivre avec pulseaudio:
J'ai essayé cette commande:
pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150%
et c'était très utile. On peut changer les 150% en n'importe quelle valeur.
J'utilise
pactl set-sink-volume 0 100%
Où 0
est le numéro de récepteur de pacmd list-sinks
et 100%
est le volume non optimisé par défaut. Vous pouvez entrer des valeurs supérieures à 100% pour obtenir un boost audio (200%
par exemple).
Voici un petit script pour faire le calcul et régler le volume pour vous (il suffit de passer le volume en argument). Par exemple: vol 105
définira le volume à 105%.
Créer un fichier
$> file=/usr/bin/vol;Sudo touch $file && \
Sudo chmod u+x $file && Sudo chown $USER:$USER $file && \
gedit $file
Copier et coller:
#!/bin/bash
SetPacmdSinkVol()
{
#default index of 0 - can be changed
local mySinkIndex=0
#if you want to ignore pacmd output
local ignoreOutput=true
local num=$1
local vol=$((num * 655));
vol=$((num * 36 / 100 + vol));
echo -e "\033[0;32mVol - ${num}:${vol}\033[0;m"
if $ignoreOutput; then
pacmd set-sink-volume $mySinkIndex $vol > /dev/null
else
pacmd set-sink-volume $mySinkIndex $vol
fi
}
SetPacmdSinkVol $@
J'ai inséré la ligne suivante dans un script shell et l'ai configurée pour s'exécuter au démarrage, car l'ordinateur portable de mon père (12.04 32 bits) n'enregistrait pas le paramètre de volume maximal.
pacmd set-sink-volume 0 99999
s'il n'y a qu'une seule carte son, il s'agit probablement de l'index 0 et vous n'avez pas besoin de taper le nom complet. Je vois ci-dessus que la valeur est basée sur 65536 soit 100%. Quand j'ai utilisé 99999, je tirais dans le noir. 153% seraient en réalité 100270 obtenant le même résultat que l’utilisation de l’interface graphique.
#!/bin/bash
FILE=/tmp/currentVolume
interval=15
minVolume=10
maxVolume=140
if [ -f "$FILE" ];
then
CurrentVolume=$(cat $FILE )
else
CurrentVolume=50
fi
if [ $CurrentVolume -lt 60 ]; then
interval=3
Elif [ $CurrentVolume -lt 80 ]; then
interval=5
Elif [ $CurrentVolume -lt 110 ]; then
interval=10
else
interval=15
fi
if [ "$1" == "UP" ]
then
CurrentVolume=$(echo "$CurrentVolume + $interval" | bc)
if (( $(echo "$maxVolume < $CurrentVolume" | bc -l) ))
then
CurrentVolume=$maxVolume
fi
else
CurrentVolume=$(echo "$CurrentVolume - $interval" | bc)
if (( $(echo "$minVolume > $CurrentVolume" | bc -l) ))
then
CurrentVolume=$minVolume
fi
fi
echo "CurrentVolume:" $CurrentVolume >> /tmp/currentVolume.log
echo $CurrentVolume > $FILE
for i in {1..20}
do
pactl -- set-sink-volume $i $(echo $CurrentVolume)%
done