PowerPoint

縦軸: 演奏データ転送量(棒グラフ),
演奏タイマーから取得した時刻(折れ線グラフ)
本来、演奏タイマーの値は、サウンドの再生に用いているタイマーの値をそのまま取得して用いるべきであるが、
アプリからはどのタイマーがサウンド再生に用いられているのかがわからない。
そのため、サウンドデバイスに演奏データが何バイト転送されたかを常時監視し、そこから逆算してサウンド再生用のタイマー
値(タイマー取得時刻)得ている。
演奏データ転送量
理想的なタイマー動作
096~098のタイマー動作
099のタイマー動作
しかしこのやり方では、どうしてもタイマー値が離散的になり(棒グラフ参照)、そのままではタイマーとして用いることができない。
そこで、離散値の間を、システムタイマーで補間することで、タイマーとして使っている(青い折れ線グラフ)。
しかし、Release 096~098のタイマーは、「演奏データの転送量が更新されるたびに、タイマー取得時刻を転送量基準で初期化
し直す」ため、演奏データの転送が発生したタイミングでタイマー取得時刻が一気にずれて、その結果スクロールのがくつきに
至っていた。(青折れ線と棒グラフが交わるところを参照。)
そこで、演奏データの転送量が更新されても、タイマー取得時刻の更新は行わず、以後のシステムタイマーによる補間の
傾きを増減することで、がくつきを抑える方法を提案する。
傾きの増減は、本来のシステムタイマーの傾きをベースにして、プラスマイナス20%に抑える。
(傾きが無限に大きくなるような補正はしない。最大で+20%とする。)
青折れ線が急に下
がっている
=ゲーム内時間が
逆行している
=演奏画面でスク
ロールが戻る
横軸:
時間