YM2151シールドにmicroSDスロットを追加して、SDからvgmファイルのデータを直接読み取って演奏できるようにしてみた。シールド2段の親亀子亀孫亀状態ww
Arduino UNO R3はRAMが少なくてデータを一度にRAMに読み込めないので、SDから都度1バイトずつ読みながらYM2151に送っているんだけど、遅延なく演奏できているっぽいのが意外だった。
あとは、SD内のファイル一覧を取って、順に演奏していけるようにすればほぼ完成かな…

UNOからSPIでSDカードにアクセスすると、メモリを結構消費するのか、一定回数以上アクセスするとファイルが取り出せなかったり、オープンに失敗したりする。なのでSDの容量に関わらず認識できる楽曲数がかなり限られそう。30曲くらいでも不安定な感じ。

フォロー

制御するファイルを25曲にして、ロードテスト(全曲ループ再生するので、ずっと流しっぱなしにしてみている)をやっている。4周目(約100曲分)でもそのまま動いているので、メモリの制約的にはこれくらいが適正なのかな?

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。