サウンドドライバ 'Humming Cat' for WonderWitchでは、ドライバ本体IL に何もかもの機能を詰め込まず、サポートライブラリでその分を補う形を 採っています。
具体的には割り込みフックへの接続部分や、リソースアクセス部分などです。
これらの部分は処理が面倒だったり、C言語開発用のライブラリ(libww.lib)
をリンクする必要があったりするので、アセンブラで開発しているドライバ本体
部分とは分けた方がなにかと都合がいいと考えました。
Humming Catのサポートライブラリは、WonderWitchのいろいろな機能の ためのライブラリと合わせてBlack Cat Libraryとして まとめつつあります(まだほんの少ししかできていません)。
Humming Catのドライバ本体はあまり使いやすい形になっていないので、 通常の用途ではサポートライブラリを通して使ってもらい、特殊なことを したいユーザーは頑張って直接ドライバを叩いて下さい、という方針です。
また、割り込みフックへの接続をドライバ本体で行わないのには もう一つ狙いがあります。Humming Catは、通常V-BLANKで動作しますが、 それでは演奏精度が足りないという方への文句封じのために、H-BLANKにも 接続できるように設計しています(ただし未テスト)。その辺りは ユーザープロセス側で適当にやって下さい、ということです。
WonderWitch関連のいろんなWebページを見ていて、「SoundILは重い」と いう話を複数見かけたので、「それならV-BLANKで動くのを作ったらどうか」 と考えたのが一つの理由です。
もう一つは、自分で少しSoundILをいじってみて、どうも動作がおかしい/違う 仕様のほうがいいのではと思うところがあり、自分でドライバを作れば 好きなようにできるよな、と考えたからです。具体的にはスラー/ポルタメント 等の挙動ですが、今回の版ではまだそれらの機能が載っていません。 将来の版で実装する予定です。
Java版MMLコンパイラを作った理由は「Cで書いてたら頭がこんがらがって 収拾つかなくなったので、書きやすそうなJavaに飛びついた」ですが、 それでは情けないので「多くのプラットフォームに対応させるため」と いうことにしといて下さい。
β01版公開当時、あまりにどうしようもないレベルだったためにα版に
しようと思ったんですが、そうしませんでした。
α … hcalpha01.lzh
β … hcbeta01.lzh
αだとファイル名が8+3文字に収まらないから…。そんな理由でαレベル
(あるいはそれ以下)のものをβと称して公開したのでした。
ごめんなさい、石投げないで下さい。