régler le volume maximum possible dans pulseaudio

26

Parfois, du son / film / musique sur mon système Ubuntu_12.04 est à lui seul très faible volume. Désormais j'augmente le volume de la sortie son. Je peux utiliser le paramètre suivant (voir capture d'écran) entrez la description de l'image ici

Il semble donc que pulseaudio soit capable d'augmenter le volume au-delà du maximum qui semble possible en utilisant simplement les boutons "augmenter le volume" de la machine. Mes questions sont de savoir comment je peux ajuster Pulseaudio pour permettre une plus grande plage ou un volume max plus élevé en augmentant ???

Surtout avec du matériel audio qui est à un volume très faible au départ, il serait bien de pouvoir augmenter rapidement le volume de sortie (mise sous tension) à un réglage plus élevé que ce qui est peut-être nécessaire pour d'autres matériels déjà assez bruyants.

humanANDpeace
la source

Réponses:

24

Le niveau de volume maximal possible que nous pouvons obtenir en faisant glisser la commande de volume à plus de 100% est d'env. 153% au-dessus de la limite maximale normale. Pourvu que nous ayons réglé le volume ALSA avec alsamixer à 100, ces 100% sont 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 encore ce niveau en définissant le niveau du puits à l'aide de la commande follwing dans un terminal:

pacmd set-sink-volume <sink> <value>

Remplacez <sink>par le nom ou l'index de votre évier comme indiqué dans:

pacmd list-sinks

La limite inférieure est <value>évidemment 0, un volume linéaire de 100% est une valeur de 65536, tout ce qui est supérieur sera encore amplifié. Une valeur de 512000 conduira ainsi à une sur-amplification de 781%.

Il s'agit d'une méthode très grossière pour amplifier la sortie sonore de niveau variable, car une suramplification entraînera non seulement un écrêtage et une distorsion laide, mais peut également endommager vos haut-parleurs.

Par conséquent, ce serait une meilleure façon de normaliser votre sortie audio. Consultez la question suivante sur la façon de procéder avec pulseaudio:

Takkat
la source
J'ai utilisé pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150% - car je ne pouvais pas encore réussir avec pacmd. Quoi qu'il en soit, l'idée a déjà beaucoup aidé. De cette façon, il est possible d'augmenter le niveau de sortie à plus de 100% ou 153% autorisé par l'interface graphique, merci.
humanityANDpeace
2
Votre excellente réponse a permis de régler le volume sur des valeurs plus élevées (comme une amplification de 781%), ce qui est excellent. Une partie de ma question est également de savoir comment changer l'échelle utilisée à l'origine afin qu'elle ne soit pas de 0% à 100% (via l'interface graphique) mais de 0% à 781%. Des informations supplémentaires sur la façon d'y parvenir, peut-être? ce serait en plus génial! merci
humanityANDpeace
Aucune idée comment augmenter cette valeur pour le curseur de volume. Il peut être codé en dur, donc ne peut pas être changé autre que le patch de la source et la recompilation.
Takkat
Ne fonctionne pas: un programme peut toujours le rendre à 100% même si je le règle à 12% de cette façon.
panzi
J'ai eu mes haut-parleurs d'ordinateur portable détruits en utilisant le volume à 150% le permet également. J'ai dû les remplacer. Veuillez noter que l'éventuel avertissement de dommage est justifié.
brett
7

J'ai essayé cette commande:

pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150%

et ce fut très utile. On peut changer le 150% à n'importe quelle valeur.

whahmad
la source
Vous devez mentionner qu'il désactive le contrôle du volume.
le
4

Démonstration vidéo


j'utilise

pactl set-sink-volume 0 100%

D'où 0vient le numéro de récepteur pacmd list-sinkset 100%est le volume non boosté par défaut. Vous pouvez entrer des valeurs supérieures à 100% pour obtenir un boost audio ( 200%par exemple).

Mina Michael
la source
il désactive le contrôle du volume.
le
Pourquoi? non ça ne marche pas. Je viens de l'essayer et ça va. Le fait est que cela augmente le volume au-dessus du volume maximum que la barre de volume peut atteindre. Une barre pleine serait probablement d'environ 150% peut-être, donc 200% ne peut pas être fait avec la barre. @Green
Mina Michael
2

Voici un petit script pour faire le calcul et régler le volume pour vous (passez simplement le volume en argument). Par exemple: vol 105va régler 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 $@
    
Sparkida
la source
1

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) ne sauvegardait pas le paramètre de volume maximum.

pacmd set-sink-volume 0 99999

s'il n'y a qu'une seule carte son, c'est probablement 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 étant 100%. Lorsque j'utilisais le 99999, je photographiais dans l'obscurité. 153% serait en fait 100270 atteignant le même résultat que l'utilisation de l'interface graphique.

Antonios Hadjigeorgalis
la source
0
#!/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
MarkL
la source
1
Merci pour votre réponse. Si possible, pourriez-vous modifier votre réponse pour en savoir un peu plus? Il est toujours utile pour les gens de savoir pourquoi une solution est censée fonctionner, au lieu de simplement copier et copier aveuglément du code qu'ils ne comprennent pas. Cela permet également d'adapter les solutions à différents problèmes.
Henning Kockerbeck