<説明>
GR-SAKURA-FULLボードにはmicroSDカードコネクタが標準装備されており、またライブラリによってファイルアクセスも簡単に行えるようになっています。
このGR-SAKURA-FULLボードを使ってmicroSDカードに格納されているソングファイルを1曲再生するものを作ってみました。
本来はタイマー割り込みを使ってテンポの刻みを生成しデルタタイムを待つべきですが、今回はdelayMicroseconds関数を使って待つことにしました。
そのためテンポに誤差が生じていると思いますが、それっぽく聞こえているのでヨシとさせてください。
ここにサンプルスケッチを公開します。
このプログラムには制限がかかっています。
SMFフォーマット=0、タイムベース=480、ファイル名固定=song.mid、100KB以下のファイル等
故に、タイムベースを可変にしたり、複数ファイルの読み込み対応、読み込みサイズ制限を無くすなど工夫をすればもっと良いものになろうかと思います。
ソングファイル名を、"0.mid"、"1.mid"のように数字にすると複数ファイルの連続再生も簡単かもしれません。
ファイル読み込みバッファをリング構造(リングバッファ)にすれば、読み込みサイズ制限が取り外せるかもしれません。
いろいろとチャレンジしてみてください。
<制作後記>
はじめてGR-SAKURAボードのプログラム(Arduinoも含め)を書きました。
ライブラリが揃っているのでファイルの読み込みやシリアルアウトが簡単にできることを実感しました。
(普段はそれすら自前でゴリゴリ書いてますんで)
もっと簡単に書けるのかもしれないですが、そこはGR-SAKURAボード初心者ということでご勘弁ください。m(_
_)m
|