これから - 新しいフェーズへ

 今後の課題として、ひとつだけ挙げてみます。

Windows.Devices.Midi への対応

 「考察1」の章でも述べましたが、現在の DTXMania が MIDI 入力を扱う方法は、初版(無印版のリリース001)から現在までまったく変わっていません。

 Windows.Devices.Midi は、Windows 10 で導入された新しい MIDI 機能です。これを使うと、MIDI メッセージのタイムスタンプを取得することができるようになり、今よりも入力精度が向上することが期待されます。

 タイムスタンプは TimeSpan 型として提供されるので、理論上は、パフォーマンスカウンタと同じ 100ns(ナノ秒)の精度を持つことができます。ただし、パフォーマンスカウンタから取得しているという記述はどこにもありません。実際はどのタイマーを使ったどの程度の精度のものなのでしょうね。MIDIタイマーとでも言う「第三のタイマー」になるのでしょうかね。まだ使ってないので分からないです。

 しかしながら、Windows.Device.Midi は UWP(Universal Windows Platform)用に用意された機能なので、WinForms を使用する今の DTXMania から使うのは困難というか面倒です。await/async を使った非同期プログラミングも必要になるので、DTXMania をまた一から作り直す相当な覚悟が必要です(編注:これについては実現しました)。ついでに、もしUWP化してしまうと、Windowsストアでしか配布できなくなります。

 さらに Microsoft は、2021年ごろから、UWP の開発を終わらせる(WinUI に移行させる)方向性を打ち出すようになってきました。Windows.Device.Midi は WinUI でも使えるようですが、WinUI 自体の不完全さも相まって、詳細はまだ不明です。

 まあ、今の DTXMania がある程度(無印版と比較して)完成して、余裕が出てきてからの対応になりますね、これは。

最後に

 システムだけでなく人的要素まで巻き込んだ音ズレ戦争は、まだまだ終わりそうにありません。

 これからは、これまでの検証実績を踏まえてソースコードを一から作り直した DTXmatixx をベースとして、DTXMania2、3 へとひとつずつ新しいフェーズへと移行していきます。たぶん。終わるかも。

 「サウンドのズレ」「入力のズレ」「描画のズレ」についても、まだまだ改修や仕様変更が続くかと思います。これらに「音ズレの原則」や Windows の仕様変更も加わり、今後も様々な音ズレ問題が浮上することでしょう。

 ひとまず今ここで言えるのは、音ゲーで音ズレを体験することなく気持ちよく遊ぶためには、常に最新の環境を用意し、常にその環境で譜面を再調整することが肝要だということです。ほんとこれしかありません。

 古い譜面データは、DTXMania の改修や仕様変更とともに、どんどん新しいズレが露見していくことが推測されます。作りっぱなしではもう時代についていけないのです。今や、一度きりの売り切りではなく、継続性を重視したサービスの時代なのです。過去の譜面をどんどんメンテナンスしていきましょう。

 Windows のサウンド機能と私の技術は、まだまだ力不足です。
 DTXmatixx では、Windows 7 や DirectSound などいろいろな互換性を切り捨ててまで、最新の仕様に合わせました。合わせたつもりです。

 願わくば、譜面データの互換性、つまりは「サウンドのズレ」だけでも、今と未来の DTXMania では安定してくれればなあ、と切に願います。

 ご拝読ありがとうございました。