3月の頭に、processingでお絵かきをしてみたことがあった。それは音楽ファイルのビジュアルプレイヤーのUIの基本構造を描いてみたものだった。そのprocessingのデータは、tsukimiを使用してMoonlight上で走らせてみることはしなかった。tsukimiはかなり不完全なもので、移植版では明らかに動かなかったし、音楽を再生させるためのC#コードも何一つ存在していなかった。
今週、SMFのプレイヤーがある程度実装できて、同期版のプレイヤーは多少のレイテンシを覗けば問題なく動作しているので、ビジュアルプレイヤーを作る作業を再開することにした。
まずは、processingで描いたUIをMoonlight上で動作させなければならない。XAMLやC#で書き直すことも出来なくはないが(実のところ勉強しなければ出来ないのだけど)、それよりむしろtsukimiを使ってprocessingでデザインを試行錯誤しながら進める方が楽しいだろうと考え、tsukimiの実装を進めることにした。
ただ、インポータがビルドできないので、本来なら自動生成できるコード部分は手作業で作って、ランタイム部分にのみ手を加えていく作業だ。もっとも、手作業といっても、tsukimiの仕様上、ほとんどprocessingのコードをそのままコピペできるようになっているので、これは大した手間にはならなかった。
数十件の問題を修正して、とりあえずそれらしいUIは出るようになった。これがprocessing版:
これを現在のtsukimiで実行するとこうなる:
コードはこれだけ。短いものだ: processing, tsukimi-hC#
xapも試しに実行できるようにしておいた。
もちろんまだ枠組みしかないので、何が再生できるわけでもないし、少なくともSilverlightではSMFを再生することは(カスタムメディアストリームだけでソフトウェアMIDIを再現するような変態的なコードを書かない限り)不可能だ。SMFプレイヤーとしては、あくまでGtk.Moonlightのような環境で動かすことを前提としている。
こういうのが動くと、Linux環境でのMIDIいじりも楽しくなってくるんじゃなかろうか。
Leave a comment