サウンドドライバ 'Humming Cat' for WonderWitch

内部文書
ドライバおよび周辺部の構造
製作動機
どうでもいいこと
資料
ファンクションコール一覧
リソースパックフォーマット
リソース形式スコアデータ資料
hcmml.exe説明書(旧仕様です)
更新履歴

ドライバおよび周辺部の構造

サウンドドライバ '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文字に収まらないから…。そんな理由でαレベル (あるいはそれ以下)のものをβと称して公開したのでした。
ごめんなさい、石投げないで下さい。


戻る