前回の、続き、
ポッド4個でボリューム、エレキギターのレガシーなインターフェース?を継承したいとかで、
発想は、せっかく用意した省エネ小型デジタルアンプに、アナログメーターつけて、針がビヨーンビヨーン動くようにしてくれ的な、メーターだけで、かなりの大きさになり、、
今の自分には、割り込み用のLoudnessボタンを一つ用意しないと、スマートなものはできそうにありません。
苦肉の策として、今回、投げ出さないで、トライした結果を載せておきます。
ボリュームとADCの値段、もったいないので、没ネタにして、「Up:Down」×4組のボタンを用意して、余計な操作なしに、ダイレクトに音量に反映できたほうがよさそうです(チャタリングの問題で、ずっこけて、居たり、するかも)。
https://ameblo.jp/math-physics/entry-12816904698.html
テキトーに、USBポートへ繋いだ4個のマイクをALSAでボリューム調整、の、テスト。
ターミナルから、
$ amixer -c*
PnP-USB-Audioは、"Mic."として認識されています。
$ alsamixer
「F6」でサウンドカード選択
「F4」でキャプチャ画面へ
$ amixer -c1 sset Mic capture 70%
(dB)表記もできる、
無事に、ボリュームが70%になりました。この手順を前回のコードに追加で、Pythonのsubprocessで、ボリューム(Bカーブ10kΩ)4個の電圧の値から、4個のマイクの音量を設定するテストをしました。
ボリュームの電圧、(0~3.3V) ÷ 3.3V × 100%で、計算しました。
ローカルなラズパイのGUI起動な状態で、4個の接続に、6秒くらいは、かかりました。
どこをどうするかは、今後の、課題ですが、とりあえず、4個のポッドから、一つ一つ、順番に、電圧の値を読んでいき、その度に、ひたすらALSAの音量を変える操作を無限ループで、繰り返してみました。これ以上、重たい処理は、なさそうなので、これ以下(ダメダメ)、な、処理はあり得ません(ほぼ最終なコードは末尾に載せてあります)。
ALSAの接続に、時間がかかり、処理が、追い付きません。
CPU使用率40%、
#追記23/08/23
とりあえず、本日、最終、
ADS1115の全チャンネルをひたすら読み続ける操作、CPUを14%食らっています。
いじくって、思ったことは、ボリュームをゼロに絞ると、電圧もちゃんと0Vに決まるので、それを音量調整のサインにしました。
P0
P1
P2 _________
P3 ↓
P0 1秒くらいだと、
P1 思う、
P2 ____↑_____
P3
…
ボリュームをゼロに(1~1.5秒)したら、そのチャンネルの音量変更が可能になります。5秒以内に、ボリュームを設定したい音の大きさに合わせます。合わせた後、5~6秒で、セットされます。
ボリューム調整モードに入ると、各チャンネルの読み込みは、中断するので、CPU使用率は5%くらいまで、下がります。
一番、つまみやすい格好で、ポッドを握って、いったん、ゼロにして、元の位置に戻すと、結構狂いなく合ってるので、楽器の奏者ともなれば、そのへんは、器用にできると思います。
ポッドの電圧の値は、アナログなので、毎回違います(ゆらぎ)が、いったん固定すると、変更はポッドをゼロにするまで、更新されません。
次回、以降、サウンドカードを載せて、音を出してみたいと思っています。
本日も、Picsartに、お願い、














