たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

Windows AudioGraph

オーディオの入出力・ルーティング・処理を担うWinRT高レベルAPIs1.

入出力のマイク・ファイル指定、合成音の入力化などが可能.
UnityやWebにあるノードベースオーディオとだいたい同じ機能を提供.
音響効果の差し込みも可能.

Audio graphs - UWP applications | Microsoft Docs

WASAPIとの対比

  • shared/exclusive: shared-modeのみ.
  • 音響効果: callback (event-driven) モードで動作. AudioEffectオブジェクトに効果を実装し、Graph生成時にノードへeffectsを差し込む.
  • ファイル入出力: AudioGraphはデフォルトサポート.
  • 優先度制御: ベストの形を暗示的に提供. 高レベルAPIらしくてgood

AudioEffect

ノードへアタッチされ状態を持ち、packet処理ごとにcallbackで呼び出される音響効果.
IAudioEffectDefinitionを実装し、ON/OFFの制御が可能.
状態を持てるので1秒遅れエコーの実装等が可能.

Quantum/Buffer

Quantum: 1度に処理されるサンプル集合.
デフォルトで10msec分, DesiredSamplesPerQuantumで希望値設定可能.
AudioGraphのSamplesPerQuantumで現在値確認.
バッファサイズは直接指定がない. SamplesPerQuantum分のバッファで、毎回フルサイズ転送してると思われる.


  1. “This section provides detailed information about the Windows Runtime (WinRT) APIs. … Windows.Media.Audio” Windows Developer. Windows UWP Namespaces