n2kd FM Driver v1.0a (beta 1)

タグ: #music  #release 

ベータ版扱いですが n2kd の新バージョン v1.0a を公開しました。 前回の進捗報告の記事での見通しの記述から追加で1年オーバーしました。 もしも新バージョンの公開を待ってくださっていた方が居ましたら大変遅くなってしまい申し訳ありません。 上述の記事では v0.2 系として公開する予定でしたが、旧バージョンの v0.1.2 系で気になっていた部分は結構直した(と思う)ので、思い切って v1.0 系にしたのと、ドライバ本体と MML コンパイラのソースコードも公開することにしました。

n2kd の実装が進んだのは昨年秋の M3 への参加が大きく、その時は PMD を使いましたが、自作のドライバがあるのだから自作のドライバで曲を書きたいという気持ちが大きくなりました。 結果、冬に入ってからドライバの実装を本格的に再開して、取り敢えず公開しても良さげと思えるところまで来ました。 やはり、必要は発明の母でしょうか。

v1.0 系は v0.1.2 系と比べると結構変わっている箇所が多く、また開発が中断を挟みつつ長時間に亘ったため、差分を自分でも全部直ぐ思い出せないのですが、(前回の進捗報告の記事と重複するものも含めて)大きな変化を挙げると以下のようなものがあります。

  • 複数音源対応
    • 複数の音源チップを使って演奏する曲データを表現できるようになりました。
    • ただし、ドライバがサポートしている音源チップは現状 OPL3 のみですので、OPL3 を複数使った曲データしか作れません。
  • PC/AT 互換機対応
    • OPL3 向けのドライバである以上、PC/AT 互換機で動かないのはちょっと名が泣くような気がしたので対応させました。
  • テンポ管理機能の拡張
    • v0.1.2 系では PC-98x1 シリーズで動かす際にテンポ管理に OPN(A) が必須でしたが、OPN(A) がない時にシステムタイマをテンポ管理に使うようにしました。ただし、仕様上 OPN(A) でテンポ管理する場合と完全に同じテンポでは演奏できません。
  • MML 文法の機能拡張と整理
    • 色々やりました。
  • VZ エディタ用コンパイル & 演奏マクロを作成
    • VZ エディタが公開されていたので、あった方が便利だろうと思い、(やや制約がある出来ですが)マクロを書きました。面白かったですが大変でした。

今後は、秋以降実装ばっかりしていましたし、実際に使わないと気付かないバグがまだある可能性は否定できないので、n2kd を使った曲を幾つか書いてみようと思っています。 また、曲データファイルのフォーマットの仕様説明やドライバの内部実装の解説など、技術方面の記事も書けたらいいなと思っています。


投稿一覧に戻るトップに戻る