2007年03月27日
3D Mixer Unitと戯れる
現在、某ソフトウェア会社にインターンシップに行っており、会社の主力商品のMac版の開発に向けた、基礎研究なんぞをさせて貰っている。就活もロクにせずにね。
その主力商品というのが音声処理を行うソフトのため、Mac版ではCore Audioを使う必要がある。なので基礎研究はCore Audioが中心だ。既に音が出る段階までは出来てるので、今日は5.1chとかのマルチチャンネルに対応すべく、3D Mixer Unitの検証をした。
例によって資料は殆どない。Technical Note TN2112: 3DMixer Audio Unitだけが唯一の資料と言ってもいい。珍しく日本語版もある。一応、/Developer/Examples/CoreAudio/Services/にAUMixer3DTestという名前通りのサンプルもあるが、規模が割と大きい上にC++の機能がバリバリ使われてて、わけがわからんw
実装は、このTNがかなり分かり易かったため、結構すんなりとできた。Audio File Player Unitと組み合わせて音が出ことを確認。この成果は、そのうち公開できるかと。
ちなみに、件のソフトはC++で書かれているため、今回作った検証アプリもメインはC++で書き、UIだけはCocoaで書いた。それゆえObjective-C++を(初めて)使ったが、Objective-Cクラスのインスタンス変数として持ったC++クラスって、コンストラクタ/デストラクタが実行されないんだね。今のところ格段問題は無いけど。