2012年3月14日水曜日

mbed+VS1002(VS1033D)+☆Bord・OrangeでMP3再生

mbed+VS1002+☆Bord・OrangeでSDカード内のMP3ファイルを再生してみました。
プログラムはこれです↓
http://mbed.org/users/nameless129/programs/MP3_player_on_Orange/m6vq1p

Arduino MP3プレイヤーシールド向けのプログラムを利用しました。
MP3のデコードはmbed単体では不可能なのでVS1002を利用しています。
これは何かというと、MP3ファイルをデコードしてくれるICです。
SDカードのMP3ファイルのデータを転送するだけで勝手にオーディオ信号にデコードしてくれます。
今回は千石で購入したVS1033Dを利用していますが、VS1002と互換性があるので特にプログラムの
変更はありません。
(とはいえVS1002の勉強用にコードを集めただけなので詳しいことはしっかり理解できていません...

プログラムの動作としてはルートフォルダ内のMP3ファイルを最大25個まで連続で再生します。
半角英数のファイル名をつけたMP3で再生ができることを確認しています。
2バイト文字が含まれるMP3ファイルは実験していないので不明ですが、再生できない可能性があります。

2012年3月11日日曜日

mbed+☆board Orange+SDでwavファイル再生

ずっと放置してました。サーセン
PICでSDからデータ読みだしてwavファイル再生できるものを作成していたんですが、
昨日Pickit3が壊れてしまったのでmbedで遊んでました。

んで、日本語で書かれた解説があまりなかったのでwav再生に関するまとめです。
プロジェクト一式がこれ↓
http://mbed.org/users/nameless129/programs/wav_pleyer_on_Orange/m6p2a9

☆board Orangeの評価用プログラムとwave_playerを使わせてもらっています。
sdカードに保存されているtest.wavを再生するだけのプログラムですね。

ただ、wave_playerで対応しているwavファイルの形式がよくわからないです。
ソースコードを見るかぎり22kHzでサンプリングしているwavファイルなら再生できそう?
だったので実験してみました。
結果は以下のとおり



ビット数


8bit 16bit 32bit
サンプ

ング周波数
44.1kHz × - -
32kHz × -
22kHz × ×
16kHz ×
8kHz ×
評価基準としては音楽のスピードが正しく再生されているかどうかです。
音質は基準にしていないです。
結果から考えると、どうやらデータ転送が間に合わなくなるみたいです。
音質はあまりよろしくないですね。

次はMP3デコードICも手元にあるので、MP3再生に挑戦するかもしれないです。