2010-09-11

Music Shield 届きました


思ってたよりはるかに小さいな…
下がAudrinoの基板、その上にくっつく形でMusicShieldですね。
SDはmicroSD、Audrinoのポートは全部埋まってるようにみえるので、このままでは液晶はつきません、かな?
Mega使えばそこらは解決できそうではありますが…

ともあれ、使ってみようかと思います。普通に再生できたらI2S出力だな…

===追記===

とりあえず、2GBまでのmicroSDということなので、携帯電話の中に入ってたmicroSD1GBを抜き出してセットアップ。
適当なFLAC 44.1/16データを入れた処、あれ?ならない…???

なんでかしら…と思って弄って、シリアルモニタを表示させたら…あらー、全部のファイルを舐めて、再生可能なファイルを探してるんですね…どーりで…大量にある写真データを順番に舐めてました。

当該のファイルまでたどり着いたら、鳴り始めましたが、切れたりするなw

ソフトウェアに問題がありそうな感じがするので、見てみます。

とりあえず、鳴ったぞ、というご報告まで

===追記の追記===
UMSSort使って最初にFLACが来るように配置しなおしてやったら、普通に再生するようになりました。

ただ、変化量の大きい処?は音が乱れますね、処理速度不足とかでしょうか?

アプリケーションのソース見てみないとだなー

8 件のコメント:

bunpei さんのコメント...

Music Shieldに使われているVS1053bについては、SDTrans192の製作者であるChiaki様が、ある意味「プロ」でして、既にI2Sを試しておられます。
http://www.chiaki.cc/Transport/rev70i2s.html

これのI2Sは16bitなので、Buffalo IIのデフォールト設定である24bitと適合せず、うまく音が出ないかもしれません。私がChiaki様のRev7.0-I2Sで試したときは駄目でした。この場合、私は試しておりませんが、Buffalo IIのレジスタを16bitに書替えればうまくいくと思います。

ところで、VS1053bはMP3などを直接受け付けてくれる優れものなのですが、FLACは未対応です。このMusic Shieldでは、FLACについてのみ、Arduino側のCPUでFLAC->PCM展開を行なっているのだろうと思います。

ひよひよ さんのコメント...

ソフトでやってるのはありありですね、重い処は思いっきり処理が乱れるようです(笑)

BuffaloII側のレジスタ書き換えの準備も進めているので、うまくいけば、纏めて処理可能かもしれずと思いつつ…もしくはもうちょっと軽いDACに放り込んでもいいかなぁ、とか…

なにせ、デジタル出しのできるDAP自体、ものが殆どないというのが現実なので、44.1/16であっても、I2S経由でSPDIF出力できてくれれば、それだけで使えるシーンがありそうだ、と…

ともあれ、音は出始めたのが確認できたので、弄っていこうと思います^^

bunpei さんのコメント...

Chiaki様の話では、実はこのVS1053bにサウンドデータを流し込んでやるときにWAVが一番むずかしいんだそうです。MP3の場合は圧縮しているだけに、データ転送量がすくなく送り出すほうもゆっくりでいいのですが、WAVではMAXとなります。
Chiaki様の場合は8ビットの8051系MCUのプログラムをアセンブラで書いておられるのですが、WAV対応のために特別な改善が必要だったそうです。
今回はその上、FLAC->PCM変換をソフトでやっているのでさらにCPUの負担が増えることになります。
おそらくMP3を再生したら問題なくいくと思いますよ。

ひよひよ さんのコメント...

FLAC関係のパッチ自体がモジュール化されて配置されているようなので、まずはその付近を読んでみます。そこらが効率悪そうなら、書き換える方向で…

Arduinoがどの程度の性能かですね、後は…

どうもmicroSDのIO性能も影響ありそうで…

bunpei さんのコメント...

Chiaki様と私は、VS1053bの製造元のVLSI社が出している製品プロトタイプ開発用のボード
http://www.vlsi.fi/en/support/evaluationboards/vs10xxprotoboard.html
を以前に試しています。この場合はMCUがなく、VS1053bのDSPが直接SDメモリカードにアクセスしてサウンドデータを読み出す仕組みなのでWAVも問題ありませんでした。しかし標準のファームウェアはI2S出力をサポートしていなかったため、同社に特にお願いしてI2S出力版を作ってもらいました。無償で提供してくれました。
残念なことにこの製品の場合Hiyohiyo様の目的のFLACは再生できません。

ひよひよ さんのコメント...

まぁ、FLACはあれば便利だな(T51用に大量に持っているので)という観点で^^ALACも同じくらい大量にあるのですが、どっちもきっと重さ的には変わらんだろうなぁ、とか思いつつ…

結局通勤の往復4時間+αで6時間くらいのアルバムを持ち歩けて良質な音質で聴ければ満足なので、WAVで2GBとして3アルバム3時間くらい、SD入れ替えで用は足りるかな、と思ったりしてます。まぁ、FLACの方が容量的には小さくなるので、SDに入れる段で有利かなぁ、とも考えてはいますが…

なんにせよ、これ自体かなり面白い取り組みだと思っていますので、しばらく弄ってみる予定でいます^^

bunpei さんのコメント...

ひとつ書き忘れました。Music Shieldに使われている水晶振動子は12.488MHzではないでしょうか?
この場合、たとえ44.1kHzのWAVまたはFLACを再生したとしてもVS1053bの中で自動的に変換されて48kHzで出力されるはずです。したがってI2Sは44.1kHzではなく48KHzの出力が出てくることになります。

ひよひよ さんのコメント...

ほうほう、やっぱりそうですか。

中にSRCが入ってて入力は必ずSRC通るブロックダイアグラムだよなぁ、と思ってたんですが…

I2Sも192出せるよーな書き方がありますが、どう見ても、48kHzにしたものを192にしてるよなぁ、みたいな…