2008-06-04
AUGraphも使える!
オーディオ |
Audio Unit(AU)を簡単な使いたいという方のために、AUGraphという仕組みがあります。
簡単に言うと、複数のAU(AUGraphの中ではNodeというオブジェクトでラップされます)をチェーン状につなげて、一連の処理を定義することができるというもので、たとえば、音声ファイルを再生するAU -> フィルターのAU -> 出力のAUというAUGraphを作ることで、フィルターをかけてファイルを再生するという処理が実現できます。
AUGraphに関しては、My Codex Lexter http://nagano.monalisa-au.org/?p=40 がまとまっています。 (この人すごいなぁー! リスペクト)
iPhoneでも、このAUGraphの仕組みを使うことができます。ただし、iPhoneとOS 10.5以上から、AUGraphのAPIが変わっているので注意が必要です。
具体的には、上記のMy Codex Lexterで、AUGraphNewNodeで新しいNodeを作っているのに対して、iPhone上では新しいAPI - AUGraphAddNodeを使う必要があります。この辺は、ヘッダ(AudioToolboxフレームワークの、AUGraph.h)をチェックして、どのAPIが変わったのかを調べてみることをオススメします。
iPhoneにおけるAudio Unitのサポート
オーディオ |
Audio Unitとは、OS Xから導入されたシステムレベルのオーディオプラグインのアーキテクチャです。平たく言うと、システム全体で使えるVSTプラグインのようなもの。
OS Xだけではなく、そのサブセットであるiPhoneにも同じ仕組みが用意されています。ただ、今のところ、iPhone用のAudio Unitを自作して、インストールすることはできないとのこと。もともとインストールされているものを使うことになります。残念!
iPhoneにインストールされているAudio Unitは、以下の5個ののみのようです。
- AUConverter
ファイルフォーマットの変換
- TimePitch
ピッチシフトやタイムストレッチに使える
- AUiPodEQ
その名の通り、イコライザー (EQ)
- AU3DMixerEmbedded
オーディオの定位に使える
- RemoteIO
音声入出力のためのAudio Unit. OS Xで言うところの、AudioDeviceOutputかな。
このうち, TimePitchはかなり使えそうですね。語学学習用に音声のテンポを上下できるアプリケーションなど、いろいろと用途がありそうです。
逆に、AudioFilePlayerなどのGenerator系、DLL Synth(QuickTime音源), パンニング系、エフェクト系などは、iPhoneにはインストールされていません。特に、ディレイ/リバーブ/フィルタなどのエフェクト系がごっそり抜けているのが残念。せめてフィルタくらいつけて欲しかったなぁ。
再生のテンポを制御するアプリ作ってるんですが、
TimePitchこれを使って制御ができなかったのですが、
何か情報ご存知でしょうか?
私も「My Codex Leicester」こちらのサイト参考にしてました。
渡すパラメータがおかしいのかな。。
AudioComponentFindNextで探してみたけど,出てこなかったです。