検証編
データはこちら(44100Hz,16bit,2ch,tempo 120,12小節)
↓
http://idolmaster.ddo.jp/sound/test.wav
120bpm,12小節なので、もちろん曲はぴったり24秒。
で、以下のようなスクリプトでこれを演奏してみる。
全12小節だが、8小節の終わりまで行ったら、4小節終わりまで戻る。
つまり、5小節目〜8小節終わりの繰り返しに設定。
実行ファイルとソースのパックはこちら
#include "dsoundex.as" ds_init ds_load "test.wav",1 si = stat ds_loop 1 repeat getkey flag, 27 if flag : end getkey flag, 32 if flag : stop ds_getp 1 sp = stat cls pos 0,0 mes "現在の演奏ポイント:" + sp pos 0,32 mes "バッファサイズ:" + si await if sp>2822400 { sp=1411200 ds_setp 1,sp } loop stop
……むむ!?
なんか遅れがある感じ……??
う〜ん……シビアなタイミングで演奏ポイントを設定すると、遅延が生じるみたいだ。
今後の課題か。
※追記
if文の、
sp>2822400
って条件を、
sp>2816000
ぐらいにするとちょうどいい感じ……って、それじゃあ試行錯誤と変わらないよ orz
(それにマシンのスピードによって遅延の状況が変わっちゃう気がする)