CoreAudioの基礎その1

2010/10/31

DTMやってる人ならおなじみだとは思うけど、OSXになってからオーディオ周りが「Core Audio」で統一された。 iphoneで音を鳴らす方法はいくつかあるが、とりあえず概念的なものはここの記事が分かりやすい。 楽器アプリの作り方 CoreAudioは、以下のフレームワークから形成されている。

・AVFoundation:オーディオプレイヤーを利用するためのフレームワーク ・Audio Toolbox、Audio Unit:OSX独自のフレームワーク ・OpenAL:ゲームアプリケーション等、OpenGLのサウンド版みたいなもので3D音響が扱える

作成するアプリによって利用するフレームワークが変わってくる。

System Sound Service

Audio Toolboxに含まれる一番シンプルなサービスで、短いサウンドを再生するのに適している。 SystemSoundIDを割り当てて、オーディオファイル(.aif)を再生する。

Audio Queue

サウンドデータのバッファを複数用意してキューを作成し、コールバックで音を再生する。 再生する前に、メモリに必要最小限のデータを用意するので効率が良い。 しかしこの方式だとデータを用意する時間、いわゆる「レイテンシー」が発生する。

OpenAL

標準化されたAPIが多数用意されており、オーディオ管理には3つの要素から構成されている。 ・Buffer ・Source ・Listener 再生ファイルはリニアPCMの方式で受け渡す必要がある。