XAudio2 オーディオ グラフ
含まれる効果とその相互接続を持つすべての音声のセットは、オーディオ処理グラフと呼ばれます。 グラフは、クライアントから一連のオーディオ ストリームを入力として受け取り、処理し、最終的な結果をオーディオ デバイスに配信します。 すべてのオーディオ処理は、グラフの量子によって定義された周期性 (Microsoft Windows では現在 10 ミリ秒、Xbox 360 では 5 1/3 ミリ秒) で個別のスレッドで行われます。 各量子ミリ秒では、スレッドは起動し、グラフ全体を通じてオーディオ データの量子ミリ秒を分散します。 基本的なオーディオ グラフを作成する例については、「方法: 基本的なオーディオ処理グラフ を作成する」を参照してください。
単純なオーディオ グラフ:
単純なオーディオ グラフする
クライアントは、実行中にグラフの状態を動的に制御できます。 制御アクションには、入力と出力の追加と削除、内部効果と相互接続の変更、効果に対するパラメーターの設定、グラフの一部の有効化と無効化などがあります。 オーディオ グラフを動的に変更する例については、「方法: オーディオ グラフから音声を動的に追加または削除する」を参照してください。
グラフの処理
グラフ内の任意のオブジェクトに影響を与えるメソッド呼び出しは、グラフの状態の変化に影響を与えたと見なされます。 グラフの状態の変更には、次のものがあります。
- 音声の作成と破棄
- 音声の開始または停止
- 音声の宛先を変更する
- エフェクト チェーンの変更
- 効果の有効化または無効化
- エフェクトまたは内蔵SLC、フィルタ、ボリューム、ミキサーにパラメータを設定する
グラフの状態の変更のセットを組み合わせて、アトミック トランザクションとして実行できます。 これらのアトミック操作は、操作セットと呼ばれます。 詳細については、「XAudio2 操作セットの 概要」を参照してください。
内部データ表現
XAudio2 グラフ内のオーディオ データは、常に 32 ビット浮動小数点 PCM 形式で格納および処理されます。 ただし、チャネル数とサンプル レートはグラフ内で異なる場合があります。 特定の音声がオーディオを処理する形式は、音声の種類と音声の作成に使用されるパラメーターによって決まります。
音声の種類 | パラメーター |
---|---|
IXAudio2SourceVoiceの | ソースボイスがオーディオを送信する音声のチャンネル数とサンプルレート。 |
IXAudio2SubmixVoiceと IXAudio2MasteringVoice をする | InputChannels と InputSampleRate 引数を使用して、サブミックス/マスタリング音声を作成します。 |
書式変換
XAudio2 は、オーディオが音声間を移動する場合に必要なサンプル レートまたはチャネル変換を処理します。次の制限があります。
- 特定の音声のすべての宛先音声が同じサンプル レートで実行されている必要があります
- エフェクト チェーン内のエフェクトは、オーディオのチャンネル数を変更できますが、サンプル レートは変更できません
- エフェクト チェーンの出力チャネル数は、送信先のボイスの数と一致する必要があります
- 上記のルールを破る動的グラフの変更は行われません
入力側では、ソース音声は、任意の有効な PCM 形式または XAudio2 でサポートされている任意の圧縮形式でデータを読み取ることができます。 入力データが圧縮されている場合は、それ以降の処理が行われる前に浮動小数点 PCM にデコードされます。
出力側では、マスタリング音声は PCM データのみを生成できます。 このデータは、入力 PCM データに関して上記と同じ制限を常に満たします。
関連トピック
-
オーディオ グラフ を する
-
方法: 基本的なオーディオ処理グラフ を作成する
-
方法: オーディオ グラフ から音声を動的に追加または削除する
-
方法: サブミックス音声 を使用する
-
方法: エフェクト チェーン を作成する