컨트롤 이름이 동일한 사운드 카드의 오디오 레벨을 변경하는 방법

컨트롤 이름이 동일한 사운드 카드의 오디오 레벨을 변경하는 방법

연결된 장치에 따라 재생/캡처 오디오 레벨을 자동으로 변경하는 스크립트를 작성하려고 합니다.

저는 4채널 입력/출력이 가능한 MAYA44 USB+ 사운드를 사용하고 있습니다.

비슷한 질문 덕분에:볼륨을 설정하는 터미널 명령?, 다음 명령을 사용하는 방법을 배웠습니다.

amixer -c 2 sset Line,1 50%

내가 겪고 있는 문제는 캡처 컨트롤이 재생 컨트롤과 동일한 이름을 공유하는 것 같다는 것입니다.

여기에 이미지 설명을 입력하세요.

행위

amixer -c 2 sset Line 50%

두 컨트롤의 값을 변경합니다.

위에서 언급했듯이 저는 이것을 자동화하기 위한 스크립트를 작성하고 있으므로 Alsamixer에 들어가서 수동으로 수행하고 싶지 않습니다.

이름 충돌을 피하기 위해 컨트롤 이름을 바꾸는 방법이 있습니까? 그렇지 않으면 영향을 미치려는 CAPTURE 장치를 지정하기 위해 "Line" 값에 접미사 또는 접두사를 추가할 수 있습니까? 펄스 오디오를 어떤 방식으로 사용하는 것이 또 다른 옵션인가요?

기본적으로 재생 값에 영향을 주지 않고 캡처 제어 값을 변경하려면 어떻게 해야 합니까?

답변1

나는 여기에 같은 질문을 했습니다. https://raspberrypi.stackexchange.com/questions/50596/how-to-change-audio-levels-of-sound-card-with-same-control-names

CL에게서 답변을 받았습니다.

amixer -c2 controls모든 하위 수준 컨트롤을 나열 하는 데 사용됩니다 .

amixer -c2 cset ..그런 다음 고유 ID 번호로 특정 컨트롤을 선택할 수 있습니다 .

내 장치에서 명령을 실행합니다.

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

처음에는 이것을 시도했지만 제대로 작동하지 못했습니다. 추가로 수정한 후에야 이 ID가 실제로는'숫자=10'정수뿐만 아니라10.

관련 정보