Arduinoとスペクトラムシールドで楽曲認識ができるのか

Arduinoとスイッチサイエンスから発売されているSparkFun社製のスペクトラムシールドを使って楽曲認識を行う装置を思いついたので数か月前から製作しています。

 

使用するのはこのシールド

スペクトラムシールド

MSEGQ7というスペクトルアナライザーが2台シールドの組み込まれています。

このICによって3.5mmオーディオジャックからのステレオ音声を7つの帯域の成分に分けて、各成分ごとの大きさを返してくれます。

(返してくれる帯域は63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz, 16kHz)

このシールド、使ってみるとわかるのですが一つのピンで7つの帯域の解析結果を出力するためにバンドパスフィルタ→ピークディテクター→マルチプレクサという構成をしています。

つまり、このマルチプレクサでどの帯域の情報を出力するか制御しているのですが少し挙動がおかしいです。

どうおかしいかというと、同じ音声を入力した際に各帯域ごとに作られた配列(Arduinoのスケッチ内に記述)に同じような値で同じ順番で情報が入らなければならないのに、なぜか実行ごとに配列が2つずれる…。それだけじゃなく返ってくる値も不自然なものがある…

まぁ簡単に言えばマルチプレクサがうまく機能してないのでは?と思ったわけです。

実は解決の糸口が少し見えていて実験して成功したら書こうかなと思っています。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top