サウンドカードの音とび対策をいろいろと
うちのサウンドカードはONKYOのSE-150PCI(Envy24HT)なんですが、こいつがドライバのせいなのかどうなのか、オンラインゲームをプレイしてるとよく音とびするんです。
主に負荷の高そうなときと、ちょうど効果音が鳴るタイミングで。
もう1枚のサウンドカード(SB Live!)では何の問題もなし。
ただ、こいつは出力48kHz縛りがあるので、できれば150PCIが使いたい。
Envy24で調べてみたら、同じように音とびしてる事例がちらほらと出てきますね。
とりあえず書かれてたPCI Latency Timerの調整をやってみました。
PCI Latency Timerの調整方法には
・BIOSで設定
・PCI Latency Toolで設定
があり、PCI Latency Toolを使ったほうがデバイス個別に設定ができるし、効果が大きかったとのことで、こちらを使用しました。
PCI Latency Toolの最新は3.1v2でしたが、最新版ではAGPグラフィックカードのLatencyを変更できないので、今回は3.0b3を使用。でもできるなら最新版を使ったほうがよさそうです。
設定方法は、
・リストから該当するものを選んで右クリック→メニュー「Change Setting(s)...」を選択
・Latencyを入力するダイアログが出るので、設定したい値を入力してOK(New Latency欄に、入力した値が表示される)
・適用するためにメニュー「Settings」→「Apply」を選択(Latency欄に変更値が反映される)
・最後に、メニュー「Settings」→「Save」を選択して保存しておく
次回起動時にも自動で設定を反映させたければ、メニュー「Settings」→「Apply on Startup」にチェックを入れておく。
やろうとしていることは、
・AGPカード(GeForce6800LE)のLatencyを下げる (248→128)
・サウンドカード(SE-150PCI)のLatencyを上げる (64→128)
うちの環境では、BIOS設定値の64が各デバイスに振られていて、AGPのGF6800LEだけ248に設定されていました。
このグラフィックカードのLatencyを下げてやることで占有時間を減らし、サウンドカードにも十分な処理時間をあててやることで音とびを解消できる(かもしれない)らしい?
サウンドカード自体のLatencyを上げてやることでも同じ効果が期待できるそうです。今回はSE-150PCI自体もLatencyを上げてみます。
適用すると↓のような感じ。

これでうまくいくかなーと思った矢先。
foobar2000とかで音楽再生したら、サウンドカード(Envy24なんたらかんたらのところ)だけ、Latencyが64に戻ってしまいます……。
※実際には「戻る」ではなく「64になる」だけど

何故かサウンドカードだけ書き換わります。
挙動からしてEnvy24のドライバが何かやってそうにも思えます。
BIOSで全デバイス128に設定しようが、再生すると64に書き換えられてしまうので。BIOS設定値に戻るならまだしも、64固定とかむちゃくちゃだ。
仕方ないので、Latencyはサウンドカードは64、AGPは128で使うことにして、別の設定をいじることに。
tuneappでプライオリティコントロールのところをいじります。
切り替え間隔:短い、フォアグラウンド優先:3倍となってましたが、フォアグラウンド優先の方を等倍に変更。

これで大分改善されたような気がしないでもない……けど気のせいかもしれない。しばらく様子見。
Envy24のドライバがもう少しマシになってくれればこんなことしなくてもいいのに。
EnMixCPL.iniのコメントが誤字だらけなのも何かの対策なのか、それとも素なのかわかんないし。これは別にどうでもいいことですね。
追記:
様子見たけどやっぱり飛ぶ。
裏でfoobar2000使ってBGM流しつつ、効果音がなるタイミングで飛ぶので、ミキシングが悪いのかなんなのか。
試しに効果音切ってみたら一切音とびしないし。むしろゲーム側が悪いのか?
6800LEのLatencyを64まで下げてサウンドカードと同じ値にしてみると飛びにくかった(ような気もする)ので、サウンドカードの値をいじれればよさそうなんだけど……うーん。
(6800LEを下げすぎると今度はゲームの描画がたまにひっかかるような感じになってたので、やりたくない)
あと試してないのはDirectSoundを無効にするのと、デバイス設定のとこのハードウェアアクセラレータなし。
どちらもどういう効果(または弊害)が出てくるのかよくわからんのでほったらかしです。
主に負荷の高そうなときと、ちょうど効果音が鳴るタイミングで。
もう1枚のサウンドカード(SB Live!)では何の問題もなし。
ただ、こいつは出力48kHz縛りがあるので、できれば150PCIが使いたい。
Envy24で調べてみたら、同じように音とびしてる事例がちらほらと出てきますね。
とりあえず書かれてたPCI Latency Timerの調整をやってみました。
PCI Latency Timerの調整方法には
・BIOSで設定
・PCI Latency Toolで設定
があり、PCI Latency Toolを使ったほうがデバイス個別に設定ができるし、効果が大きかったとのことで、こちらを使用しました。
PCI Latency Toolの最新は3.1v2でしたが、最新版ではAGPグラフィックカードのLatencyを変更できないので、今回は3.0b3を使用。でもできるなら最新版を使ったほうがよさそうです。
設定方法は、
・リストから該当するものを選んで右クリック→メニュー「Change Setting(s)...」を選択
・Latencyを入力するダイアログが出るので、設定したい値を入力してOK(New Latency欄に、入力した値が表示される)
・適用するためにメニュー「Settings」→「Apply」を選択(Latency欄に変更値が反映される)
・最後に、メニュー「Settings」→「Save」を選択して保存しておく
次回起動時にも自動で設定を反映させたければ、メニュー「Settings」→「Apply on Startup」にチェックを入れておく。
やろうとしていることは、
・AGPカード(GeForce6800LE)のLatencyを下げる (248→128)
・サウンドカード(SE-150PCI)のLatencyを上げる (64→128)
うちの環境では、BIOS設定値の64が各デバイスに振られていて、AGPのGF6800LEだけ248に設定されていました。
このグラフィックカードのLatencyを下げてやることで占有時間を減らし、サウンドカードにも十分な処理時間をあててやることで音とびを解消できる(かもしれない)らしい?
サウンドカード自体のLatencyを上げてやることでも同じ効果が期待できるそうです。今回はSE-150PCI自体もLatencyを上げてみます。
適用すると↓のような感じ。

これでうまくいくかなーと思った矢先。
foobar2000とかで音楽再生したら、サウンドカード(Envy24なんたらかんたらのところ)だけ、Latencyが64に戻ってしまいます……。
※実際には「戻る」ではなく「64になる」だけど

何故かサウンドカードだけ書き換わります。
挙動からしてEnvy24のドライバが何かやってそうにも思えます。
BIOSで全デバイス128に設定しようが、再生すると64に書き換えられてしまうので。BIOS設定値に戻るならまだしも、64固定とかむちゃくちゃだ。
仕方ないので、Latencyはサウンドカードは64、AGPは128で使うことにして、別の設定をいじることに。
tuneappでプライオリティコントロールのところをいじります。
切り替え間隔:短い、フォアグラウンド優先:3倍となってましたが、フォアグラウンド優先の方を等倍に変更。

これで大分改善されたような気がしないでもない……けど気のせいかもしれない。しばらく様子見。
Envy24のドライバがもう少しマシになってくれればこんなことしなくてもいいのに。
EnMixCPL.iniのコメントが誤字だらけなのも何かの対策なのか、それとも素なのかわかんないし。これは別にどうでもいいことですね。
追記:
様子見たけどやっぱり飛ぶ。
裏でfoobar2000使ってBGM流しつつ、効果音がなるタイミングで飛ぶので、ミキシングが悪いのかなんなのか。
試しに効果音切ってみたら一切音とびしないし。むしろゲーム側が悪いのか?
6800LEのLatencyを64まで下げてサウンドカードと同じ値にしてみると飛びにくかった(ような気もする)ので、サウンドカードの値をいじれればよさそうなんだけど……うーん。
(6800LEを下げすぎると今度はゲームの描画がたまにひっかかるような感じになってたので、やりたくない)
あと試してないのはDirectSoundを無効にするのと、デバイス設定のとこのハードウェアアクセラレータなし。
どちらもどういう効果(または弊害)が出てくるのかよくわからんのでほったらかしです。
この記事のトラックバックURL
http://atai.blog48.fc2.com/tb.php/16-5b5d2878

