DTXMania 099 series, and DTXCreator: (099g(191022)) | 2019-10-23 00:21 |
DTXMania 100 series, and DTXCreator: (119(211020) and 035(191001)) | 2021-10-20 00:00 |
旧DTXMania=095以前、新DTXMania=096以降、を指します。
●WASAPI/ASIO対応の実装について
http://mainori-se.sakura.ne.jp/sst/wiki.cgi?page=FrontPage
●bassmixでのミキサー管理
このため、サウンドを使用するタイミングの前後で、動的にミキサーへの登録・削除を行うことで、演奏中に同時にミキシングしているストリーム数を減らし、再生負荷を軽くするよう、設計を見直している。
この機能を実現するため、DTXファイルの読み込み時 (正確には、WAVチップ音を読み込んだ後) に、全チップの出現/消失タイミングをパースし、個々のチップの発生前後でミキサー登録・削除を意味する不可視チップを配置している。 DA: ミキサーに登録 DB: ミキサーから削除
具体的な登録・削除のタイミングはチップの種類により異なる。
実際には発音の500ms前にミキサー登録, 消音の800ms後に削除。
実際には発音の500ms前にミキサー登録, 消音の800ms後に削除。
結果的には開発当初の意図とは異なる実装になってしまっている(バグ)が、試しに意図を正確に反映したところかえって(私の環境では)再生負荷が増えてしまったため、096リリース時点では触らずにそのままにしている。
最初は別スレッドにイベントを飛ばして、別スレッド内で適当な時間間隔を空けつつミキサー処理を実施するという実装を試みたが、再生負荷が改善されなかった。しかし、ほぼ同じ処理をメインスレッド内で処理したところ、大幅に再生負荷が改善されたため、現在はメインスレッドでミキサー操作処理を行う設計としている。