前記事では、サウンドデータを36ms毎に区切って画面表示をしていると説明しましたが、その後メモリをやりくりした結果 256x256画素で深さ1ビットのバッファをもうひとつ確保することができたので、このふたつのバッファにプロットデータを蓄え、36ms間隔で交互に表示することができるようになりました。結果として、画面上には72ms分のサウンドサンプルに相当するデータが表示されていることになります。
10月末にリリース予定の新しいアルバム(N-SPHERES)が先行予約可能になっているので、予約購入してプレリリースされている Function.wav を早速再生してみました。この曲は7分もあるのですが、他の曲も3分から6分かかるので、Play/Pause の制御と、Next/Prev の操作ボタンを作りました。画面の中央部分にPlay/Pauseボタンが用意されているのですが、再生中は非表示状態になっているもののボタン押下の検出ができるようにしています。ボタンが押されると曲の再生が休止され、次の画像のように Play, Next, Prevボタンが表示されます。
再生を再開したり前後の曲を選択すれば、これらのボタンは非表示状態に戻ります。また、曲名表示部分をクリックするとMusic Playerデモと同じように曲名リストを表示する機能も付け足しました。
コードの大半は Music Playerデモからの流用ですし、アイコンデータもデモから拝借利用させてもらっています。