またも自己解決の難しい問題が発生してしまいました。
mciにて、
使用曲のbpm/step(1小説の音符数?)から譜面進行度を求めて
リズムゲーム等に利用しようと思いました。
しかし、一時停止(ポーズ)の処理を挟む度に譜面進行度がズレてしまうのです。
;譜面進行度計算の部分 mci "status "+mci_playalias+" position" ms = stat - ms_shift ;setpos=stat fbt=bpm*ms/60/1000 ibt=int(fbt) ibta=(ibt+ibt_shift)/step ibtb=(ibt+ibt_shift)\step
これはmciの仕様なのではないかと、dmmstatに乗り換えようと試してみたところ
0.25秒毎でしか取得できず、ibtbの値が大雑把になってしまいます。
なので、プラグイン(HSP DirectSound Extension v2.20)を利用してみたところ、
今度は取得した値がbyte単位?で、ミリ秒に換算出来ず、正しい値にならないような…
;bpm160,step16,ビットレート188(kbps)の曲 ;この式だと微妙にずれる fbt=0.0 : ms=0.0 : ibt_shift=-6 ds_getp 0 : bytepos=stat ms=double(bytepos)/188000 fbt=(160.0*4)*ms/60 ibt=int(fbt)+ibt_shift ibta=ibt/16 ibtb=ibt\16
mciなら、一時停止の処理を挟んでも、取得する値が正しくなるようにする方法を
ds_~なら、ミリ秒への換算方法を
教えていただけませんか……