足音が見えた後に聞こえる
Windows は既定で、オーディオを 10 ミリ秒のバッファー単位でサウンド カードに渡します (Microsoft 自身の数値です)。ほかのすべてはその上に積み重なります。各ミリ秒がどこから来るのか、どれを取り除けるのか、そしてマイクを開くヘッドセットで大幅に悪化する理由を説明します。
Windows は既定で、アプリケーションとサウンド ハードウェアの間で 10 ミリ秒のバッファー単位でオーディオを受け渡します。これは推定ではなく Microsoft 自身の数値です: 「既定では、Windows 10 以降のすべてのアプリケーションが、オーディオのレンダリングとキャプチャに 10 ms のバッファーを使用します」。ほかのすべて (エフェクト、空間処理、リサンプリング、ワイヤレス接続) は、この下限の上に加わります。足音が銃口の閃光より後に聞こえる場合、加わったもののどれかが原因である可能性があります。以下のセクションで 1 つずつ取り上げます。
音がたどる経路と Microsoft 自身の数値
Microsoft の Low Latency Audio の文書は、レンダリングの経路を段階に分け、Microsoft が管理する段階に数値を示しています。要約すると次のとおりです:
| 段階 | かかる時間 | 出典 |
|---|---|---|
| ゲームがオーディオをバッファーに書き込む | — | — |
| オーディオ エンジンがそれを読み取って処理し、エフェクトをオーディオ処理オブジェクト (APO) として読み込む | Windows 10 以降は 1.3 ms。それ以前は浮動小数点のアプリケーションで約 12 ms、整数のアプリケーションで約 6 ms | Microsoft |
| チェーン内の各エフェクトが、それぞれの時間を加える | 「APO のレイテンシは、APO 内の信号処理によって異なります」。固定の数値はなし | Microsoft |
| エンジンが、ドライバーが読み取るバッファーに書き込む | 既定で 10 ms。最小値はオーディオ ドライバーが宣言する | Microsoft |
| ドライバーがそれをハードウェアに渡し、ハードウェアがさらに処理する場合がある | デバイスごとに異なり、公開されていない | — |
| スピーカーまたはヘッドホン | 物理現象 | — |
この文書から、覚えておく価値のある事実が 2 つあります:
- 10 ms は決まりではなく、既定値です。 Windows 10 以降、ドライバーは扱える最小のバッファーを宣言し、アプリケーションはそれを要求できます。Microsoft の例: 標準の HDAudio ドライバーは「128 サンプル (2.66ms@48kHz) から 480 サンプル (10ms@48kHz) までのバッファー サイズをサポートするよう更新されています」。
- 要求できるのはアプリケーションだけです。 「アプリケーションが小さなバッファーを使う必要がある場合は、新しい AudioGraph の設定か WASAPI の
IAudioClient3インターフェイスを使う必要があります」。ゲームに小さなバッファーを要求させる Windows の設定もレジストリ値もありません。私たちのものも含め、これを代わりに行えるチューニング ソフトウェアはありません。
ここから興味深い結果が 1 つ生まれます。Microsoft によると、あるアプリケーションが小さなバッファーを要求すると、「同じエンドポイントとモードを使うすべてのアプリケーションが、自動的にその小さなバッファー サイズに切り替わり」、そのアプリケーションが終了するとエンジンは 10 ms に戻ります。つまり、同じ出力で低レイテンシのアプリケーションがすでに動作していると、ゲームが気づかないうちに、ゲームが使うバッファーが小さくなることがあります。
原因 1: マイクを開く Bluetooth ヘッドセット
Bluetooth ヘッドセットを使い、そのヘッドセットで会話もしている場合は、この原因が当てはまります。これは言い伝えではなく、文書化されている動作です。
Windows はステレオを A2DP で再生し、マイクにはハンズフリー プロファイルを使いますが、この 2 つを同時には使えません。Microsoft の Bluetooth Classic Audio のページによると、Windows 11 では、「アプリケーションが入力 (マイク) エンドポイントを開いた」とき、または「アプリケーションがカテゴリを Communications に設定した出力 (再生) ストリームを作成した」ときに、Windows は A2DP から HFP に切り替えます。HFP は 8 kHz (狭帯域) または 16 kHz (広帯域) のモノラルで動作し、「Windows は、現在選択されているプロファイルに合わせて、必要に応じてオーディオを自動的にリサンプリングします」。そのため、ボイス チャットがマイクを開いた瞬間に、48 kHz で再生されているゲームの音は、電話並みの品質の接続に合わせてリサンプリングされます。
ヘッドセットの音がメニューでは問題ないのに試合ではひどくなるのは、このためです。同じオーディオの経路ではないのです。
対処方法:
- 競技プレイには有線のヘッドセットか、専用の USB レシーバーを持つ 2.4 GHz のワイヤレス ヘッドセットを使います。これらは経路が 1 つのままで、プロファイルを切り替えません。
- Bluetooth を使い続ける必要がある場合は、別のマイクを使います。そうすればヘッドセットの入力エンドポイントを開くものがなくなり、デバイスは A2DP のままになります。
- 実際にどのコーデックが使われているかを確認します。Windows は、両側がサポートする最初のコーデックを aptX Adaptive、AAC、aptX Classic、SBC の順に選びます。Windows のバージョンごとの対応表は、同じ Microsoft のページにあります。
- デバイスのペアリングがうまくいかない場合や、エンドポイントがまったく表示されなくなった場合は、別の障害です。その修復カードは Bluetooth です。
Bluetooth 接続では、両方向でエンコード、送信、デコードの時間が加わります。チップセットやアダプターを問わず当てはまる単一の数値を公開しているベンダーはないため、私たちも数値は示しません。ベンダーの文書から確かに言えるのは、上記の仕組みとプロファイルの切り替えです。判断するにはそれで十分です。
原因 2: 変換が必要なサンプル レート
ゲームが 48 kHz で出力し、デバイスが 44.1 kHz に設定されている場合 (またはその逆の場合)、エンジンはリサンプリングを行います。これは処理であり、無償ではありません。Windows には、「オーディオ エンジンでのリサンプリングを避けることが重要な」場合にアプリケーションが設定できるフラグがあります。Microsoft が開発者に回避する方法を用意するほど、この変換は実際に存在するということです。
対処方法:
- スピーカー アイコンを右クリックしてサウンドの設定を開き、出力デバイスのプロパティを開きます。
- 既定の形式を見つけ (通常は詳細タブにあります)、ハードウェアの文書に別の指示がない限り 24 ビット、48000 Hz に設定します。ゲームも Windows も 48 kHz で動作しています。
- ヘッドセットに専用の設定ソフトウェアがある場合は、そちらも同じレートに設定します。
- 何かを再生して、まだ動作することを確認します。特定のアプリケーションが動かなくなった場合は、設定を元に戻してください。この変更は元に戻せるもので、そのためにアプリケーションを使えなくする価値はありません。
原因 3: オンになっていると知らなかったエフェクト
経路上のすべてのエフェクトはオーディオ処理オブジェクトで、Microsoft 自身の言葉では、そのレイテンシは内部の処理によって異なります。立体音響、仮想サラウンド、「拡張機能」、ラウドネス イコライゼーション、ヘッドセット メーカーのイコライザー、ミュートされていない 2 つ目の出力は、どれも段階を加えます。
ゲーマーにとって興味深いのは空間処理です。これは間違いではなく、本当のトレードオフだからです。方向を判断しやすくするために存在し、同時にチェーンの段階の 1 つでもあります。原則ではなく、耳で判断してください。
対処方法:
- 出力デバイスのプロパティを開き、拡張機能やエフェクトのタブを探します。すべてをオフにして、聞いてみます。
- 立体音響を一時的にオフにして、通常のステレオで 1 ラウンドプレイします。方向がわかりにくくなり、タイミングが良くなったなら、自分にとってのトレードオフがわかったことになります。
- ヘッドセットのソフトウェアのイコライザーとバーチャライザーも、同じようにオフにします。1 つずつ行います。
- なくて困ったものだけを、再びオンにします。
ここに正解はありません。正解があると言う人は、お使いのヘッドセットとご自身の耳でテストしたわけではありません。
原因 4: 排他モードで得られるものと失うもの
アプリケーションはデバイスを排他モードで開くことができ、Microsoft はそれが何を意味するかを正確に説明しています: 「データはオーディオ エンジンを経由せず、アプリケーションから、ドライバーが読み取るバッファーに直接送られます。ただし、アプリケーションがエンドポイントを排他モードで開くと、ほかのアプリケーションはそのエンドポイントを使ってオーディオをレンダリングもキャプチャもできなくなります」。
Microsoft 自身の排他モードのページは、さらに率直です: 「排他モードのストリームはオーディオ エンドポイントを占有します。システムのサウンド、通知、ほかのアプリケーションのオーディオはすべて無音になります」。
このページには、現在に関わる重要な注意点もあります。Windows 10 以降、IAudioClient3 を使うと共有モードのストリームでも非常に短い周期を使えます。これは「システムのサウンドのミキシングと相互運用性を保ったまま、排他モードに匹敵するレイテンシを実現します」。そのため、排他モードは 2010 年のころのように自動的に有利なものではなくなっています。
Windows のチェックボックスアプリケーションによりこのデバイスを排他的に制御できるようにするは、何かを排他モードにするものではありません。要求したアプリケーションにそれを許可するかどうかを決めるだけです。有効のままにしても何も失いません。無効にすると、それを必要とするアプリケーションが排他モードを使えなくなります。
ボイス チャット、ブラウザー、システムのサウンドも必要なゲームでは、排他モードはたいてい割に合いません。探しに行く前に、そのことを意識してください。
w0a がここで行うこと、行わないこと

行うこと。 「レジストリ調整」ページのオーディオグループには、オーディオ スレッドの優先度 (MMCSS) という項目が 1 つだけあります。これは、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Audio にあるマルチメディア スケジューラの Audio タスクの Scheduling Category を High に設定します。項目ごとの説明はオーディオの調整のページにあります。
仕組みを正確に理解してください。スケジューリングの優先度を上げても、バッファーは小さくなりません。期限が来たときにオーディオ スレッドが実行中である可能性が高くなるだけです。負荷の高い PC では、遅れたバッファーと、それに伴う音の乱れがなくなり、それは耳で聞き取れます。アイドル状態の PC では、得られるものは何もありません。
行わないこと。 バッファー サイズは変更しません。それを要求できるのはアプリケーションだけです。サンプル レートも変更しません。オーディオ ドライバーもインストールしません。立体音響にも触れません。また、インターネット上のあらゆるオーディオ チューニングの一覧に載っている SystemResponsiveness も書き込みません。10 未満の値はどのみち既定値と同じように扱われ、すでに 10 に設定されている PC で 0 を書き込むと悪化することを、私たちは測定で確認しました。古いツールがこの値を変更していた場合は、「Fix」ページで Windows の既定値に修復できます。
関連するスイッチが「最適化」ページにもあります。ゲームのスケジューラ プロファイルを「High」カテゴリに保つ (MMCSS Games) で、これについても同じように正直に説明します。このスイッチが影響するのは、実際にマルチメディア スケジューラのタスクを登録するタイトルとオーディオ スタックだけです。登録しないゲームには影響しません。まさにこの理由から、製品はこのスイッチについてフレーム レートの主張をしていません。
オーディオ スタック自体が壊れている場合 (音が途切れる、デバイスが消えた、古いツールがスケジューリングの値をおかしな状態にしたなど) は、オーディオの修復カードがオーディオ サービスを再起動し、Windows の既定値を書き戻します。これは調整ではなく修復で、変更したのが w0a かどうかには左右されません。
ソフトウェアにできないこと
- ゲームに小さなバッファーを要求させることはできません。それはアプリケーションのコードの中で、アプリケーションが決めることです。
- ワイヤレス接続のエンコードとデコードの時間を取り除くことはできません。
- 何かがマイクを開いたときに、Windows が Bluetooth ヘッドセットをハンズフリー プロファイルに切り替えるのを止めることはできません。この動作は設計どおりで、文書化されています。
- ドライバーが宣言する最小のバッファー サイズを取り除くことはできません。それがハードウェアにできることの限界です。
残るのは、実際に自分で変えられるものの短く正直な一覧です: 伝送方式 (有線かワイヤレスか)、サンプル レート、エフェクト、オーディオ スレッドが時間どおりにスケジュールされるかどうか。この 4 つを順に見直せば、取り除けるものはすべて取り除いたことになります。
関連記事
クリックから画面のピクセルが変わるまでの十数段階のうち、ソフトウェアが受け持つのは 3 つだけで、残りはファームウェア、ディスプレイ、ゲームが受け持ちます: 入力遅延を減らす方法: ソフトウェアで短縮できるもの、できないもの
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。