WASAPI/ASIO動作時、画面が滑らかにスクロールしない
せなさん
tp://yyagi.com/DTXC_28821_20140420.zip
すみませんが、まずはこれをお試しいただけませんか。
Config.iniで、動的なミキサー制御の有効/無効を切り替えられるようにしました。(といっても、Config.ini周りのソースで注釈化していたのを戻しただけなんですが・・・)
Config.iniの、ASIOの設定のあたりに、
DynamicBassMixerManagement
という設定があるので、これの0/1を切り替えて試してみてください。初期値は1(動的制御する)です。
ウチでは、これを0にすると、なんとなくスクロールが滑らかになったように感じました。(その代わり、ギター曲など、チップ音の種類が多い曲データの演奏がひどいことになります)
チケット化ありがとうございます。
提示していただいたDTXC_28821_20140420にてDynamicBassMixerManagementのオンオフを試みましたが、当環境では変化がありませんでした…。
確かに若干の変化はあるような無いような…?しかしDSoundの滑らかさには及ばずでした。
チップ音の種類が多い曲データでも特に変わらず、でした。
せなさん、ご確認いただきありがとうございました。
これであまり効果がないとなると、やっぱりすぐには対応できそうにないです。ごめんなさい。
BASS.NETの使い方を色々と試してみる必要があるので、対策には時間がかかります。
次のリリース(099)には対策が間に合いそうにありませんが、その次では何とかしたいです。
せなさん、遅くなってごめんなさい。これを試していただけませんか?
tp://yyagi.com/DTXC_28821_20140508.zip
一時的に、WASAPI/ASIO時の演奏タイマーの作りを、DirectSoundと同じものにしてみました。 (無理やり作ったものなので、音ズレが発生する可能性があります)
これでスクロールが滑らかになるようであれば、WASAPI/ASIO時の演奏タイマーの作り方の問題ということになります。
やぎ。さん
こんばんは、早速確認してみました。遅くなっただなんてそんな!対応ありがとうございます。
おおお、ぬるぬる動作しますー!DSoundと同じような動き方でスクロールしてくれます。すごい!
今回のバージョンだと、垂直同期ON時にガックガクになっちゃいます。OFF時には滑らかなスクロールになり、正しく演奏される事を確認しました。
自分の環境で3、4曲試した感じでは音ズレは発生しませんでした。
まさに自分が待ち望んでいたものです…ありがとうございます!
連投ごめんなさい。5、6分経つとスクロールがガッタガタになります。(見てすぐに分かる程度)
とりあえず報告までです。
何度もごめんなさい・・・
この現象は以前のVerでも、垂直同期を切った時に起こる現象みたいです。ティアリングなのかな?
その後30秒~1分程度で直るようなので、自分の環境だけかもです。
ご迷惑をおかけしました。
せなさん、ご確認いただきありがとうございました。
このテスト版でスクロールが滑らかになったということは、やはり演奏タイマーの作り方に問題があったということになります。 どう作り直せばいいか、考えてみます。(今回のテスト版のままだと、環境によっては音ズレが出てしまいます)
ところで、ガックガクの件、そちらで出ている現象をまとめると、以下で合ってますか? これも調べてみます。
こんばんは、垂直同期云々の件、大変お恥ずかしい話ですが解決しました。
javaでマスコットキャラクターを表示するソフト、しめじを起動したままにしていたのが原因だったようです…
しめじを終了させ、垂直同期ON・OFFとDSound・WASAPI・ASIOにて滑らかなスクロールが実現できたことを確認しました。
こちらの不手際でご迷惑かけて申し訳ありません。
作り直しの件、おまかせする形になってしまいますが是非ともよろしくお願い致します。楽しみです!
情報ありがとうございました。問題解決してよかったです。
それでは後日、タイマーの改善の方を考えます。
タイマー設計の改善について、実装の前にアイデアをppt1枚にまとめました。(このチケットに添付。)
ぼちぼち、この考え方に基づいた演奏タイマーを実装していきます。(そして、試した結果がダメダメだったなら、要再検討・・・。)
お久しぶりのFROMです。
タイマー考察、拝見させていただきました。
この現象って、WASAPIの時にも発生してますか?
WASAPIでは、「データの総転送量」ではなく「今この瞬間までに再生済みの総データ量」をもとに算出していたと思います。(未確認ですが(ぉぃ
これができないのは、バッファ単位でしか再生済みデータ量を把握できない ASIO と、そもそも現在再生位置がずれまくる DirectSound だけのはず。
そのため、「理想のタイマー値」を「データ総転送量」が下回る現象が発生するのも ASIO と DirectSound だけだと思います。
なので、SSTでは WASAPI 以外は捨てました。
そもそもの発想はWAV再生位置補正機能をデータ転送単位で行うということにあったのですが(正確なタイマーよりも正確な譜面とBGMの同期を優先)、そのせいで小さいガタつきが頻繁に起きるようであれば、この「タイマー取得による再生位置補正」を、元通り一小節に一回程度にしてみてもいいかも知れませんね。
変化量をチェックして傾斜をなだらかにする?というアイデアも面白いと思います。(手段まではよく分かりませんでしたが(汗
私は今は何もお手伝いできませんが、メールは随時見てます。頑張ってください。
FROMさん、ご無沙汰しています。
まず、この現象は、WASAPIの時にも発生しています。
せなさんにおつくり頂いた、WASAPIとDirectSoundでのスクロール比較動画がこれなんですが、 http://senamih.com/crs/data/dtx_60fps.mp4
画面右端にある、WASAPIとDirectSoundのLC部分を切り出したところをコマ送りで比較してみると、 (現時点では単純にmultimediaタイマーを使っている)DirectSoundと比較して、 件のタイマーを使っているWASAPIは、先行/後退の両方があるようです。
当面は、DirectSoundと同様に、multimediaタイマーを使いつつ再生位置補正を入れるやり方を 選べるようにしようかなと思います。(いい加減099をリリースしてしまいたいので、この問題に対しては まずは暫定策を出しておいて時間稼ぎしたい)
なお、変化量から傾きを変える(または再生速度を変える)のは、昔知人が作った動画再生ソフトで 実績があります。ただ、10年以上前の話で、その知人とは連絡が取れてませんけどね(汗;;;;
ここ1か月ほど、仕事があれだったんですが・・・復活しました。さて。
tp://yyagi.com/DTXC_28821_20140617.zip
CONFIGURATION/System/UseOSTimer で、WASAPI/ASIO時に従来のタイマーを使うかOS標準タイマーを使うかを選択できるようにしました。
OS標準タイマーだとスクロールが滑らかになりますが、音ズレが出るかもしれません。 (だからOS標準タイマー使用時だけ、AdjustWavesの機能と併用できるようにしました)
これでご確認いただけますか。OKなら、099ではこれでお茶を濁します(苦笑
こんばんは。
早速DLしてみました!UseOSTimerのオンオフでスクロールの滑らかさが変わることが確認できましたー!
ありがとうございます!
ですが、どうやらDTXMania起動時にしかUseOSTimerのオンオフが働いてない?ようで、
起動中にConfigをいじっても反映はされないようです。(仕様であれば大丈夫です!)
例えばオフの状態で起動して、起動中にオンにしても効果が現れず、
一旦終了して起動すると滑らかになっております。説明下手でごめんなさい!!
tp://yyagi.com/DTXC_28821_20140618.zip
すみません。直しました。
ASIO WASAPIともに修正確認しましたー!
ありがとうございました!!個人的に一番気になってたので嬉しいですヽ(゚∀゚)ノ
ご確認いただきありがとうございました。
それでは、099時点ではこれでお茶を濁させていただいて(汗; そのあと真面目にタイマー改善を考えます。
一旦こちらのチケットは完了とします。
タイマー改善は、引き続き #33959 (WASAPI/ASIO使用時の演奏タイマー改善) のチケットでフォローします。
ikanickさんからのコメントをチケット化する。
再生ドライバがASIO/WASAPIの時のプレイ画面が、FPS60より少しがたついてしまいます。
VSyncWaitを切っても同じで、切った場合の表記FPSは1000以上、切らない場合は60を安定して走査しています。
DSoundに設定した場合はVSyncWait有無に関わらずぬるぬる(FPS60相当で)動きますし、ASIO/WASAPIの時とFPSの差異はありません。
ディスプレイ2台(参考までにTNとIPS)で確認しましたが同現象が起きました。
がたつきの程度を動画に収めたいのですがスペックが足りず…
プレイに支障は無いのでDSoundにてプレイしております。
自分の環境だけかもしれませんが…。解決策等あれば教えていただけると嬉しいです。
発生PCスペック
あちらでの助言をこちらに引用させていただきます。
以上、よろしくお願い致します。
フォーラム ユーザフォーラム [#72561] からの引用