さて、前回の続き。
前回はマイクロフォンデバイスを繋げ、きちんとA/Dされた音声信号が流れてきているよね、帯域分割できたよね、という所までで終わっています。
今回は、それをいよいよウェブダッシュボード「オーディオ・ヘルス・モニター」上へ投影していこうという計画です。
一足飛びに実装へとはいかず、まず最初にやったことは、肥大化したコード構造の整備です。
今後も徐々にデータ、変数、スイッチなどが増えていくことを想定して、
- ファイル分割とまでは行かないまでも
- 必要な変数、スイッッチャ、配列、Jsonはコード前段へ配置いた
- 本コードは、それらから情報読み出してきて使うだけ
- ウェブリフレッシュは2000msとし、フロントの負荷は軽く
そんな感じでタスク分離を行いました。最も高負荷なのはやっぱりI2Sの信号処理をしているパートかな。でもチャッピー曰くセンサー2個ならまだ楽々だそうです。
次にやったことは、マイクで拾った信号処理、フロントエンドのビジュアライズです。
- 各バンド信号の平滑化(自然に見えるよう)
- 各バンドのレベル較正テーブル(後日、実測してさらに高精度化)
- 6本のバーグラフを表示し、スペアナ風で直感的なレベル表現。
整備したとはいえ、コードは長大・・・ 今回の全コードは [こちら] です。
そして、得られたウェブ表現がこちら。

まだファン近傍にマイクを置いたわけじゃないから、私の声のスペクトルを表現しているだけですが。
う〜ん。。。。
まだまだ詰めの甘いところはあるにせよ、ここまで来れたのは感無量です。大満足。
「オーディオ・ステータス・モニター」として、かなり「本格的な」表現が出来てきたと思います。
さーて、次に行くのはどこか。候補はこんな感じですが: 楽しさしかありません。
- 絶対較正済のマイクロフォンと比較し、音圧レベル較正(:マイクロフォンキャリブレーション)
- WiiM UltraのAPIへアクセスし、「WiiMの動作ステータス」「現在再生中の曲情報」などを表示。

シリコンパワー ノートPC用メモリ DDR4-2400(PC4-19200) 8GB×1枚 260Pin 1.2V CL17 SP008GBSFU240B02
Synology NASを拡張した時に入れたメモリーがコレ!永久保証の上、レビューも高評価。もちろん正常に動作しており、速度余裕も生まれて快適です。

フィリップス 電動歯ブラシ ソニッケアー 3100シリーズ (軽量) HX3673/33 ホワイト 【Amazon.co.jp限定・2024年モデル】
歯の健康を考えるのならPhilipsの電動歯ブラシがお勧めです。歯科医の推奨も多いみたいです。高価なモデルも良いですが、最安価なモデルでも十分に良さを体感できる。