AudioOut
AudioOut はゲストの PCM を Windows のデバイスで 48 kHz で再生します。レガシーのポートはそれぞれ独自のストリームとキューを持つため、音楽と効果音が一緒に鳴り、アンダーランでもサンプルの順序が保たれます。
2026年10月10日 までのリポジトリノート
ポートとホストのデバイス
タイトルはバッファを送信し、その呼び出しがおおむねバッファが鳴る時間だけ続くことを期待します。その待ち時間は、サンプルを捨てるスリープではなく、ホストのデバイスが空きを作ることから生まれます。AudioOut、AudioIn、AudioOut2 は、ペース配分されたポート、キュー、スピーカーのメタデータ、接続されたプライマリーの状態を公開します。バッチはすべてのポートを検証してから聞こえる分量を一度だけ送信するため、無音の補助ポートが時間を何倍にもすることはありません。
レガシーの AudioOut のポートは、別々の Windows のストリームと PCM のキューを持ちます。音楽と効果音を同時に鳴らせます。バッチ出力は各アクティブなポートを送信します。アンダーランの後もアクティブなリングはサンプルの順序を保ち、短いフェードで再開時のクリック音を消します。WinMM のデバイスは本物の PCM を先に送り込み、1 ミリ秒のタイマー周期を使います。
遅延
通常の予備は 42 ms から始まり、実行中のタイトルが実際にデバイスを枯渇させたときだけ、4 バッファずつ最大約 170 ms まで増えます。PPSA25872 の計測済みプロファイルは 128 ms から始まります。このタイトルのミキサーは起動時やシーン処理中に約 100~120 ms 止まることがあるためです。この大きな予備をほかのタイトルに課すことはありません。
有限でないサンプルは、デバイスに届く前に置き換えます。この無害化はスピーカーを守るものです。すでに NaN を溜め込んだフィルターを修復することはできません。Subnautica でその値を生んでいた畳み込みのバグは、ACM のページで説明しています。
出力がある環境
デバイスを開けなかったことはタイトルに報告しません。サウンドカードがないことはホストについての事実です。呼び出し側はペース配分された無音の待機にフォールバックし、タイトルのタイミングは進み続けます。実行中にデバイスが失われた場合も同じです。出力は Windows で実装しています。ほかのビルドではポートを無音のまま、正しいペースで保ちます。
デコードしたプレビュークリップを直接フォールバックでミックスする機能は、既定では無効です。プレビューをタイトル自身の AudioOut のミックスと並べて鳴らすと、エコーとして聞こえるからです。PS5_AUDIO_FALLBACK_MIX=1 でこのミックスが有効になります。ランチャーはサウンドの設定でデバイスをミュートでき、それは PS5_AUDIO_DISABLED として届きます。
実装済みのこと
- ペース配分された AudioOut、AudioIn、AudioOut2 のポートによる 48 kHz のホスト再生。
- レガシーのポート用の別々の Windows のストリームにより、同時に鳴る音楽と効果音の順序を維持。
- 42 ms から始まり、デバイスが枯渇したときだけ約 170 ms まで増える予備。
- 有限でないサンプルの置き換えと、デバイスが開けないときのペース配分された無音のフォールバック。
まだ足りないこと
- ホストへの出力は Windows のみです。
- コントローラーの振動をオーディオのハプティクストラックから駆動することはしません。
- 無害化は、すでに汚染されたフィルターの履歴を再構築しません。
関連するしくみ
これらのページについて