web-dev-qa-db-fra.com

Comment sauvegarder les réglages de volume pour la sortie numérique (S / PDIF)?

Dans Sound Settings je peux choisir entre une sortie analogique et numérique. Lorsque je choisis "Sortie numérique (S/PDIF)", je dois baisser le volume à chaque fois après le démarrage. Que puis-je faire pour enregistrer ces paramètres automatiquement (à l'arrêt)?

Ce sont les paramètres lorsque je ferme:

enter image description here

Et cela ressemble à ceci après le démarrage:

enter image description here

Ce qui est sauvegardé automatiquement, c’est que j’ai choisi la sortie analogique ou numérique et les réglages de volume de la sortie analogique sont également enregistrés.

Carte et puce, paramètres

Je n'utilise pas de carte son supplémentaire; J'ai le carte mère ASRock M3N78D et lshw imprime ce qui suit:

*-multimedia
          Beschreibung: Audio device
          Produkt: MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio
          Hersteller: NVIDIA Corporation
          Physische ID: 7
          Bus-Informationen: pci@0000:00:07.0
          Version: a1
          Breite: 32 bits
          Uhr: 66MHz
          Fähigkeiten: pm bus_master cap_list
          Konfiguration: driver=snd_hda_intel latency=0 maxlatency=5 mingnt=2
          Ressourcen: irq:21 memory:fbd78000-fbd7bfff

Le démarrage de alsamixer me montre "Puce: VIA VT1718S".

Voici le résultat de aplay -l:

**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: NVidia [HDA NVidia], Gerät 0: VT1718S Analog [VT1718S Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 1: VT1718S Digital [VT1718S Digital]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 2: VT1718S HP [VT1718S HP]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

Ceci est sorti de pactl stat:

Server-Name: pulseaudio
Server-Version: 1.1
Standard-Sample-Angabe: s16le 2ch 44100Hz
Standard-Kanalzuordnung: front-left,front-right
Standard-Sink: alsa_output.pci-0000_00_07.0.iec958-stereo
Standard-Quelle: alsa_input.pci-0000_00_07.0.analog-stereo

Voici le résultat de amixer:

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 42
  Mono: Playback 0 [0%] [-63.00dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 253 [99%] [0.40dB]
  Front Right: Playback 253 [99%] [0.40dB]
Simple mixer control 'PCM Loopback',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 24 [77%] [1.50dB] [off]
  Front Right: Playback 24 [77%] [1.50dB] [off]
Simple mixer control 'Front',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 39 [93%] [-4.50dB] [on]
  Front Right: Playback 39 [93%] [-4.50dB] [on]
Simple mixer control 'Front Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 31 [100%] [12.00dB] [off]
  Front Right: Playback 31 [100%] [12.00dB] [off]
Simple mixer control 'Front Mic Boost',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 3 [100%] [30.75dB]
  Front Right: 3 [100%] [30.75dB]
Simple mixer control 'Surround',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Center',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 42
  Mono: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'LFE',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 42
  Mono: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Side',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Line',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'CD',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 0 [0%] [-34.50dB] [off]
  Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958 Default PCM',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 28 [90%] [25.50dB] [on]
  Front Right: Capture 28 [90%] [25.50dB] [on]
Simple mixer control 'Capture',1
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 0 [0%] [-16.50dB] [on]
  Front Right: Capture 0 [0%] [-16.50dB] [on]
Simple mixer control 'Digital',0
  Capabilities: cvolume penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 120
  Front Left: Capture 60 [50%] [0.00dB]
  Front Right: Capture 60 [50%] [0.00dB]
Simple mixer control 'Dynamic Power-Control',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'OFF' 'ON'
  Item0: 'OFF'
Simple mixer control 'Input Source',0
  Capabilities: cenum
  Items: 'Front Mic' 'Rear Mic' 'Line' 'CD' 'Stereo Mixer'
  Item0: 'Front Mic'
Simple mixer control 'Input Source',1
  Capabilities: cenum
  Items: 'Front Mic' 'Rear Mic' 'Line' 'CD' 'Stereo Mixer'
  Item0: 'Stereo Mixer'
Simple mixer control 'Loopback Mixing',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Rear Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 31 [100%] [12.00dB] [off]
  Front Right: Playback 31 [100%] [12.00dB] [off]
Simple mixer control 'Rear Mic Boost',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]

Bizarreries

Lorsque je bascule sur "Sortie analogique" tout en écoutant de la musique, les enceintes connectées à la sortie numérique peuvent également être utilisées, mais le volume est alors de 100% et je ne peux pas l'ajuster - uniquement lorsque je repasse en mode "Numérique". Sortie "ou si j'utilise alsamixer et dim" PCM ".

Lorsque je choisis "Sortie numérique" dans les paramètres audio et que je lance alsamixer, la modification du volume "Master" n'a aucun impact. "S/PDIF" et "S/PDIF D" y sont également affichés, mais les deux sont réglés sur "00" et je ne peux pas les modifier ...

Lorsque je règle le volume à un niveau normal (c.-à-d. 40%), que je lance Sudo alsactl store et que je redémarre, l'icône de volume du panneau n'indique pas 100%, mais le son est livré à 100% - jusqu'à ce que je fasse défiler l'écran au-dessus. l'icône: Ensuite, il passe immédiatement à 39%.

4
Jakob

J'ai le même problème. L’analogique est sauvegardé/restauré mais SPDIF est toujours complet après le démarrage. Je n'aime pas trop la solution consistant à régler le volume à zéro ou à faible au moment de la connexion car je suis surtout ennuyé par le son de démarrage à l'écran de connexion, qui fait exploser mes fenêtres. Je n'ai pas vraiment trouvé la solution, mais les choses se sont améliorées. C'est ce que j'ai fait:

  • Je pensais que le problème provenait peut-être du fait que la sortie analogique est le périphérique 0 de la carte 0, alors que numérique est le périphérique 1 (de la carte 0). (Puce XiFi ou quelque chose) et la procédure de stockage/restauration ne stocke que le premier. Cependant, alsactl store/restore (ré) enregistre l'état "complet" avec tous les niveaux de volume.
  • J'ai conclu qu'il ne sauvegardait pas/ne restaurait pas l'état de la sortie spdif (carte: 0, périphérique: 1), car 'alsactl store'/'... restore' n'avait aucun effet sur le canal spdif. Il reste où son à.
  • l'exécution de 'alsactl store' après la sélection de SPDIF dans le panneau de configuration du son me donne un fichier /var/lib/alsa/asouns.state différent. Vous ne savez pas à quoi cela aboutit, mais peut-être qu’alsa verra des commandes de volume différentes en fonction de la sortie sélectionnée dans le panneau de commande?
  • alsactl -f /var/lib/alsa/asound.state store semble fonctionner (me donne un nouvel état asouns.state)
  • alsactl -f /var/lib/alsa/asound.state restore me donne: "alsactl: set_control: 1464: Impossible d'écrire le contrôle '2: 0: 0: Lecture IEC958 Par défaut: 0': Opération non autorisée"
  • J'ai pensé que IEC958 est la sortie numérique.
  • Arrêté mon lecteur de musique: erreur disparue
  • pavucontrol installé, sortie sélectionnée par défaut
  • supprimé /var/lib/alsa/asound.state
  • redémarrer
  • curseur de volume est maintenant restauré sur un redémarrage, le volume réel ne semble pas

Peut-être que cela aide quelqu'un… au moins, supprimez votre asound.state et voyez si cela vous aide.

2
Tijs van Roon

J'espère que cela va aider quelqu'un .. J'ai toujours eu ce problème et je viens de le corriger sur Ubuntu 13:10 (Pear Os 8). à l'intérieur du fichier /etc/Pulse/default.pa, il y a une ligne pour sélectionner alsa sink .. c'est la clé pour moi.C'est ce que j'ai dû changer pour que le mien économise des volumes ...

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
load-module module-alsa-sink
load-module module-alsa-sink device=hw:0,1
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

Maintenant, sur la ligne module de chargement module-alsa-récepteur = hw: 0,1, vous devrez peut-être modifier l'emplacement de votre PCM à l'aide des exemples aplay -l ici https://wiki.archlinux.org/index.php/PulseAudio/Exemples

vos numéros seront hw: X (numéro de carte), X (numéro de périphérique)

J'espère que les autres liront ceci et feront fonctionner leur son, car cela me fait très mal depuis des années.

0
user225078

J'ai posé une question similaire ici . Peut-être que cela pourrait aider.

Il définit le niveau de volume sur une valeur particulière après chaque connexion. Cela fonctionne avec PulseAudio et sortie numérique.

  1. Copiez le fichier de configuration Pulse par défaut vers votre domicile:

    cp /etc/Pulse/default.pa ~/.Pulse

  2. Dans votre fichier de configuration, localisez la ligne suivante:

    load-module module-always-sink

    Immédiatement après la ligne ci-dessus, ajoutez la ligne suivante:

    set-sink-volume 0 {your-volume-level-here}

    Le niveau de volume est un nombre compris entre 0 et 65535. Par exemple:

    set-sink-volume 0 32768

0
kiaplayer

Je ne connais aucun moyen de le faire "correctement", mais vous pourrez peut-être ajouter un script de démarrage pour faire le travail. En utilisant le programme "amixer", je peux produire une sortie qui répertorie les réglages des sorties sonores comprises entre 0 et 64, y compris le canal "Master". Juste avant de fermer, cela pourrait être analysé (en utilisant regex peut-être?) Pour stocker le volume dans un fichier. Lorsque le système est redémarré, la commande "amixer set CHANNEL VALUE" peut être émise pour régler le volume sur la valeur stockée.

En ajoutant ceci à un script Shell (généralement un travail de démarrage dans /etc/init.d), vous pourriez le faire automatiquement, ce qui devrait le rendre transparent. J'ai déjà utilisé ces scripts de démarrage auparavant et je ne vois aucune raison pour laquelle cela ne résoudrait pas votre problème.

Détails:

La première étape consisterait à créer un script Shell capable de modifier le volume. À l'heure actuelle, je n'ai ni le temps ni toutes les connaissances détaillées pour l'écrire pour vous, mais si vous connaissez un peu les scripts, ou si vous pouvez trouver un bon tutoriel, cela ne devrait pas être si difficile. Je serai heureux de vous aider si vous avez des problèmes. Vous trouverez ci-dessous un modèle que vous pouvez utiliser.

#! /bin/sh

start(){
    # This function is called on startup
    # This is where you will need to read the volume from a file and call amixer
}

stop(){
    # This function is called on shutdown
    # This is where amixer is called and the volume is saved to file
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo "Usage: avolumesaver {start|stop}"
        exit 1
esac

exit 0

Fondamentalement, la fonction de démarrage est appelée à chaque démarrage du système et la fonction d'arrêt avant de s'arrêter. Vous pouvez faire tout ce dont vous avez besoin dans ces fonctions. Vous devez ouvrir un éditeur en tant que root ("Sudo gedit" sur le terminal), puis enregistrez le fichier sous "/etc/init.d/avolumesaver". Après cela, vous devrez exécuter les commandes suivantes:

chmod a+x /etc/init.d/avolumesaver
update-rc.d avolumesaver defaults

La première ligne rendra le script exécutable. La deuxième ligne le convertit en une nouvelle tâche. Techniquement, cela signifie simplement que des liens symboliques sont créés, mais c'est une bonne idée d'utiliser update-rc.d et de ne pas essayer d'ajouter les liens vous-même.

Cela fait, vous pouvez éditer /etc/init.d/avolumesaver jusqu’à ce que vous obteniez ce que vous souhaitiez. Vous pouvez tester la fonctionnalité sans redémarrer réellement en lançant la commande suivante (après en avoir fait un travail upstart):

service avolumesaver start
service avolumesaver stop
0
Kalle Elmér