コントロール名が同じサウンドカードのオーディオレベルを変更する方法

コントロール名が同じサウンドカードのオーディオレベルを変更する方法

接続されているデバイスに応じて再生/キャプチャオーディオレベルを自動的に変更するスクリプトを作成しようとしています。

私は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

関連情報