VS1053
MP3デコーダICだが、MIDI音源の機能も持っている #音源IC 秋月でも買える
VS1053bでMIDIデータの生成をするためには、Real time MIDI機能というものを使います。VS1053bのGPIO0をL, GPIO1をHレベルに固定してブートすれば、何もしなくてもシリアルポートで受信したMIDIデータを再生してくれるという嬉しいバカチョン機能です。早速、SMF0に変換したDOOMの音楽データを流し込んでみたのですが、頻繁に再生が止まってしまい使い物になりません。長くても45秒くらいでおかしくなって、短い場合には、再生を始めて数秒で止まってしまいます。配線ミスかと思って確認したものの、問題はなく、同じような経験をしている人がいないか検索したところ、シンセアンプラグドさんが同じような経験をされており、どうやらチップの問題らしいことが判明。
VS1053bをMIDI音源として使っている人は少ないのか検索しても解決策が見つからないので、 本家のフォーラムを読み漁ったところ次のことがわかりました。
元々のreal time midi機能は、入力のバッファが短く、ノート数が多いとバッファが溢れて音の再生が止まったり、鳴りっぱなしになったりすることがある。使い物にならん。
解決策として、"Real-Time MIDI input" というアプリケーションが提供されているので、これをVS1053bのRAMにダウンロードして、ROMで提供されているオリジナルファームの代わりに走らせる。
VS1003b/VS1033c/VS1053b Real-Time MIDI Input Application
と、まぁ、これだけのことだったのですが、データシートだけでなくアプルケーションノートはひと通り読まないといけないということを改めて、認識しました。VS1053bって、何種類もパッチ/アプリ/プラグインが用意されているなんて全く知らなかったので、ちょっとした驚きです。一番、驚いたことは、マイコン無しでVS1053bにSDカードをつなげてMP3プレーヤを作れるというアプリが用意されていること。VS1053bが内蔵するDSPをプログラムすることで、マイコン無しでもプレーヤが作れるようです。
いずれのモジュールもGPIO0,GPIO1が引き出されていないようで、VS1053bをリアルタイムMIDIモードで起動することはできないようです。
ですが、調べてみるとGPIOを使用せずともSPI通信経由でVLSI社が提供するプラグインを適用するとリアルタイムMIDIモードを起動することもできるようです。つまり、SPI通信可能なマイコンを併用するならばGPIO0,GPIO1が引き出されていない中華モジュールでも支障ないことになります。
まじか!inajob.icon