MIDIプレイヤを作る以上、JetPlayerが前提にしているような「JetCreatorで.midを.jetに変換する」というモデルは採用できない。SMFをそのまま再生できるようにしなければならない。
JetCreatorはPythonアプリだし、wxPythonまで使っている。Pythonクラスなら、サーバサイドに持っていって変換サービスを呼び出す形にもできるのではないかと考えたが、JetCreatorで使われている各種PythonクラスのAPIは公開されていない。読んですぐ使えるようだったらその辺は気にせず使おうかとも考えたが、ソースがごちゃごちゃしていたのでやめた。
というわけで、次に.jetファイルのフォーマットを(バイナリエディタで)眺めて、単純な.jetファイルならコードで作れそうだと判断して、javaでコンバータを書いてみた。基本的に、1つだけのセグメントをもつ.jetファイルというかたちで、単純なヘッダ部分を付け加えただけのものだ。
これを今度はファイルシステムから読み込んで再生できるようにしなければならない...というところで昨日はさらにあれこれ試行錯誤していたのだけど、結局再生までテストできたのは今日になってからだった。web上にはJetPlayerはエミュレータ上では再生までしてくれないみたいなことが書かれているのも見かけたのだけど、ちゃんと再生してくれた。
ちなみに、エミュレータにも入っている音楽プレイヤーは、どうやらSMFの再生もサポートしているようだ。再生してみたら、JetPlayerと同じように再生した。MediaPlayerのAPIで再生できるということかもしれないが、標準でそこまで出来るのならMIDIデバイスに命令を直接送信するAPIも用意してもらいたいところだ...
Leave a comment