Como alterar os níveis de áudio da placa de som com os mesmos nomes de controle

1

Estou tentando escrever um script que altera automaticamente os níveis de reprodução / captura de áudio com base no dispositivo conectado.

Estou usando um som MAYA44 USB + com 4 canais de entrada / saída.

Obrigado a uma pergunta semelhante aqui: link

Aprendi a usar o seguinte comando:

amixer -c 2 sset Line,1 50%

O problema que tenho é que parece que o controle de captura compartilha o mesmo nome de um controle de reprodução: Line

Fazendo

amixer -c 2 sset Line 50%

Altera os valores de BOTH controls.

Como mencionado acima, estou escrevendo um script para fazer isso automaticamente, então não quero entrar manualmente no alsamixer e fazê-lo manualmente.

Existe uma maneira de renomear os controles para que não haja um confronto de nomenclatura? Caso contrário, há alguma ferida de sufixo ou prefixo que eu possa adicionar ao valor 'Line' para especificar que eu quero afetar o dispositivo CAPTURE? Usar o pulso de áudio de alguma forma seria outra opção?

Basicamente, como posso alterar os valores de controle de captura sem afetar os valores de reprodução?

Obrigado antecipadamente!

    
por Adam 30.06.2016 / 22:28

1 resposta

2

Eu fiz esta mesma pergunta aqui: link

e recebi a resposta do CL.

Use amixer -c2 controls to list all the low-level controls.

Then you can use amixer -c2 cset .. to select specific controls by their unique ID number.

Executando o comando no meu dispositivo:

>amixer -c 2 controls
numid=7,iface=MIXER,name='Master Playback Switch'
numid=8,iface=MIXER,name='Master Playback Volume'
numid=3,iface=MIXER,name='Line Playback Switch'
numid=5,iface=MIXER,name='Line Playback Switch',index=1
numid=4,iface=MIXER,name='Line Playback Volume'
numid=6,iface=MIXER,name='Line Playback Volume',index=1
numid=9,iface=MIXER,name='Line Capture Switch'
numid=10,iface=MIXER,name='Line Capture Volume'
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'

Eu inicialmente tentei isso, mas não consegui fazê-lo funcionar. Apenas uma vez eu consertei com isso um pouco mais eu percebi que o ID era de fato 'numid = 10' e não simplesmente o inteiro 10 .

    
por 01.07.2016 / 00:07