AudioUnit

昨日はCoreAudioの低レベルAPIであるAudio Hardware Abstraction Layerを使うことを検討していたんですが、

  • ネイティブエンディアン32ビット浮動小数点数フォーマットしか使えない
  • サンプリングレートを変更するとシステム全体に影響する(っぽい)
  • 入力と出力が混ざったインタフェースなので、SinkとSourceに分離しにくい

といった問題から、上位APIのAudioUnitを使うことにしました。
AudioUnitはある程度フォーマットを変換してくれるようで、必要に応じてAudioConverterを使って変換もできます。
インタレースの変換も可能なので昨日の問題も解決です。
今日の差分
仕様を勘違いしていた箇所があってpcm_sinkはまだ動いていません。
pcm_sourceはまだ空実装です。