LoginSignup
0
0

More than 1 year has passed since last update.

DSPBufferSizeの具体的なサイズ

Last updated at Posted at 2021-06-19

DSP Buffer Sizeを「Best Latency」にしたらノイズが乗った

 正確に言えばノイズが乗るときと乗らない時がありました。
 これ自体はよくある話ですが、どこを見ても「Good Latencyにしろ」位しかないので少し詳しく調べてみました。
 結論から言えば「SystemSampleRateを下げる」と言う対策をとりました。

DSP Buffer Sizeを測定するコード

 こちらの関数を使います
 GetDSPBufferSize

環境

OS: Windows 10 Pro
CPU: i5 9600K
メモリ: 32GB
オーディオインターフェース: FOSTEX HP-A3(USB接続)

測定結果

bufferLength numBuffers
Best Latency 256 4
Good Latency 512 4
Best Performance 1024 4

スクリプトで設定する

 前述のGetDSPBufferSizeにも書かれていますが、現在はスクリプトからの変更には対応していません。こちらを参照してスクリプトからBufferSizeを設定することは出来ましたが、適切な値でないとクラッシュします。サポート範囲外でもあるので使用しない方が良いでしょう。
SetBufferSize.cs
private void SetBufferSize(int bufferSize)
{
AudioConfiguration ac = AudioSettings.GetConfiguration();
ac.dspBufferSize = bufferSize;
AudioSettings.Reset(ac);
}

具体的な対策

 どうしてもノイズなくレイテンシーが欲しい場合には、「SystemSampleRateを下げる」が私の環境では有効でした。0に設定していましたが、デフォルトでは48000になるようです。CD音源ですら44100ですから、よっぽど音質にこだわるゲームじゃない限りはこの値まで低くしても十分だと考えています。

 他に対策があれば教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0