Como salvar as configurações de volume para saída digital (S / PDIF)?

4

Em Sound Settings , posso escolher entre saída analógica e digital. Quando eu escolho "Digital Output (S / PDIF)" eu tenho que diminuir o volume toda vez que eu inicializo. O que eu poderia fazer para salvar essas configurações automaticamente (no desligamento)?

Estas são as configurações quando eu desligo:

E parece que isso após a inicialização:

O que é salvo automaticamente é se escolho a saída analógica ou digital, e também as configurações de volume da saída analógica ficam armazenadas.

Cartão e chip, configurações

Eu não uso uma placa de som extra; Eu tenho o mainboard ASRock M3N78D e lshw imprime seguinte:

*-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

A partir de alsamixer mostra-me "Chip: VIA VT1718S".

Esta é a saída 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

Esta é a saída 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

Esta é a saída 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]

Curiosidades

Quando eu alterno para "Analogue Output" enquanto ouço música, os alto-falantes conectados à saída digital também podem ser usados, mas o volume é 100% e não posso ajustá-lo - somente quando eu voltar para "Digital Output" ou se eu usar alsamixer e dim "PCM".

Quando escolho "Saída digital" em Configurações de áudio e inicio alsamixer , alterar o volume "Mestre" não causa nenhum impacto. "S / PDIF" e "S / PDIF D" são mostrados lá também, mas ambos estão ajustados para "00" e eu não posso modificá-los ...

Quando eu ajustar o volume para um nível normal (ou seja, 40%) e executar sudo alsactl store e reinicializar, o ícone de volume no painel não mostrará 100%, mas o som vem com 100% - até eu rolar para baixo acima do ícone: Então ele salta imediatamente para 39%.

    
por Jakob 12.07.2012 / 10:47

5 respostas

2

Eu tenho o mesmo problema. Analog é salvo / restaurado, mas SPDIF é sempre o golpe total após a inicialização. Eu não gosto muito de uma solução alternativa para configurar o volume para zero ou baixo no login, já que estou mais irritado com o som de inicialização na tela de login, apagando as minhas janelas. Eu realmente não encontrei a solução, mas as coisas melhoraram. Foi o que eu fiz:

  • Eu achei que talvez o problema tenha origem no fato de a saída analógica ser o dispositivo 0 do cartão 0, enquanto o digital é o dispositivo 1 (do cartão 0). (Chip XiFi ou algo assim) e armazenar / restaurar procedimento armazena apenas o primeiro. No entanto, alsactl store / restore (re) armazena o estado 'complete' com todos os níveis de volume.
  • Eu concluí que ele também não salvando / restaurando o estado da saída SPDIF (cartão: 0, dispositivo: 1) como 'alsactl store' / '... restore' não tem efeito no canal spdif. Permanece onde está em.
  • executar 'alsactl store' depois de selecionar SPDIF no painel de controle de som me fornece um arquivo /var/lib/alsa/asouns.state diferente. Não sabe ao certo o que isso leva, mas talvez ela também veja controles de volume diferentes dependendo de qual saída está selecionada no painel de controle?
  • alsactl -f /var/lib/alsa/asound.state loja parece funcionar (me dá um novo asouns.state)
  • alsactl -f /var/lib/alsa/asound.state restore me dá: "alsactl: set_control: 1464: Não é possível gravar o controle '2: 0: 0: Reprodução IEC958 Padrão: 0': Operação não permitida"
  • Eu descobri que a IEC958 é a verdadeira saída digital.
  • Parou o meu leitor de música: Erro desaparecido
  • Pavucontrol instalado, saída padrão selecionada
  • removido /var/lib/alsa/asound.state
  • reinicializar
  • O controle deslizante de volume
  • agora está restaurado em uma reinicialização, o volume real não é

Talvez ajude alguém ... pelo menos remova seu asound.state e veja se isso ajuda.

    
por Tijs van Roon 21.09.2012 / 00:43
0

Eu não sei de nenhuma maneira de fazer isso "corretamente", mas você pode adicionar um script de inicialização para fazer o trabalho. Usando o programa "amixer", eu posso produzir uma saída que lista as configurações das saídas de som entre 0 e 64, incluindo o canal "Master". Logo antes de desligar, isso poderia ser analisado (usando regex, talvez?) Para armazenar o volume em um arquivo. Quando o sistema é inicializado novamente, o comando "amixer set CHANNEL VALUE" pode ser emitido para definir o volume para o valor armazenado.

Ao adicionar isso a um script de shell (normalmente um trabalho de inicialização em /etc/init.d), você pode fazê-lo automaticamente, o que deve fazê-lo parecer perfeito. Eu usei esses scripts de inicialização antes para fazer outras coisas, e não vejo nenhuma razão para isso também não resolver o problema.

Detalhes:

O primeiro passo seria criar um script de shell capaz de alterar o volume. No momento não tenho tempo nem todo o conhecimento detalhado para escrevê-lo para você, mas se você sabe um pouco sobre scripts, ou se você pode encontrar um bom tutorial, não deve ser tão difícil. Eu ficarei feliz em ajudar se você tiver problemas. Abaixo está um modelo que você pode usar.

#! /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 "" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo "Usage: avolumesaver {start|stop}"
        exit 1
esac

exit 0

Basicamente, a função de início é chamada sempre que o sistema é iniciado e a função de parada é chamada antes de desligar. Você pode fazer o que precisar dentro dessas funções. Você deve abrir um editor como root ("sudo gedit" no terminal) e depois salvar o arquivo como "/etc/init.d/avolumesaver". Depois de fazer isso, você precisará emitir os seguintes comandos:

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

A primeira linha tornará o script executável. A segunda linha converte em um trabalho inicial. Tecnicamente, isso significa simplesmente que alguns links simbólicos são criados, mas é uma boa idéia usar update-rc.d e não tentar adicionar os links você mesmo.

Depois de fazer isso, você pode editar o arquivo /etc/init.d/avolumesaver até conseguir o que deseja. Você pode testar a funcionalidade sem realmente reinicializar emitindo o seguinte comando (depois de torná-lo um trabalho inicial):

service avolumesaver start
service avolumesaver stop
    
por Kalle Elmér 17.07.2012 / 23:03
0

Eu fiz uma pergunta semelhante aqui . Talvez isso possa ajudar.

Define o nível de volume para um determinado valor após cada login. Funciona com o PulseAudio e a saída digital.

  1. Copie o arquivo de configuração de pulso padrão para seu local de origem:

    cp /etc/pulse/default.pa ~/.pulse

  2. No seu arquivo de configuração, localize a seguinte linha:

    load-module module-always-sink

    Imediatamente após a linha acima, adicione a seguinte linha:

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

    O nível de volume é um número em um intervalo de 0,6555. Por exemplo:

    set-sink-volume 0 32768

por kiaplayer 27.07.2012 / 14:17
0

Espero que isso ajude alguém. Eu sempre tive esse problema e corrigi-lo no Ubuntu 13:10 (Pear Os 8). dentro do arquivo /etc/pulse/default.pa há uma linha para selecionar alsa sink..that é a chave para mim.Isso é o que eu tive que mudar o meu para fazê-lo economizar 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

Agora, no módulo módulo de carga de linha-dispositivo alsa-sink = hw: 0,1 talvez seja necessário alterar a localização do PCM usando exemplos de aplay -l aqui link

seus números serão hw: X (número do cartão), X (número do dispositivo)

Espero que os outros leiam isso e façam o som funcionar, já que isso tem sido uma dor enorme para mim por anos.

    
por user225078 13.12.2013 / 12:43
-1

Tente comentar as seguintes linhas em /etc/pulse/default.pa :

load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
    
por Cumulus007 18.07.2012 / 21:55