世の中iOS 5といったらiCloudだSiriだと騒いでいますが、オーディオの新機能も実は結構あります。とりあえずどんなものがあるかだけ書いておきます。
AudioUnitプラグイン
AudioUnitのプラグインがかなり追加されてます。Macでは以前からあるもののサブセット的な感じです。
【Generator】
・ScheduledSoundPlayer
・AudioFilePlayer
【MusicDevice】
・Sampler
音を再生するものはGeneratorとMusicDeviceですね。特にSamplerはSoundFont&MIDI対応のプレイバックシンセなので、SoundFontを作ってしまえばMIDI対応も簡単にできてしまいます。「なんとかピアノ」とか「シンギングなんとか」とか、AVAudioPlayerで無理矢理つくるんじゃなくて、これ使った方が良いです。AudioFilePlayerは、これはこれでいいんですが、使い方が独特ってのもありますし、個人的にはAudioQueueのAudioUnitプラグイン版を作ってほしいなぁと思います。
【FormatConverter】
・VariSpeed
・iPodTimeOther
僕は使ってませんが、VariSpeedつかえば再生スピードの変更も簡単です。AUConverterでも良いんじゃないの?と思うかもしれませんが、VariSpeedならスピードを変えたときにプツっとならずにスムーズに変わります。ただ、すごく速くとか、すごく遅くとか出来ませんので、「Touch the Wave」でやってるようなスクラッチを実現するのは難しいです。
iPodTimeOtherというのは「Touch the Wave for iPad」でも早速使っています。iPodTimeよりもクオリティの上がったタイムストレッチです。
【Effect】
・LowPassFilter
・HiPassFilter
・BandPassFilter
・HighShelfFilter
・LowShelfFilter
・NBandEQ
・ParametricEQ
・PeakLimiter
・DynamicProcessor
・Reverb2
・Distortion
Effectは、半分くらいEQですが、結構増えました。リバーブの追加はうれしいです。
プラグインがこれだけ用意されていると、ようやくAUGraphの便利さが活用できそうです。はっきりいって今までは、RemoteIOだけ使って全部自分で作んなくちゃいけませんでしたから。
MusicPlayer
MIDIシーケンサーです。SMFが読み込めます。中にSamplerを含んだAUGraphを持っているので、入れ替えてあげれば自分で用意した音も鳴らせます。もちろんMIDIメッセージだけ再生させて利用する事も出来ます。
MIDINetworkSession
MIDINetworkSessionがシミュレータに対応してます。実機につながなくてもMacだけでMIDIの送受信ができるので、デバッグが楽になるんじゃないでしょうか。あとiOS4だとMIDINetworkSessionってMIDI使い始めたら勝手にオンになっていたと思うのですが、iOS5だとちゃんとenabledをYESにしたりとかしておかないと使えないみたいです。
Float32対応 (2011/10/23追加)
iOS 5からAudioConverterがFloat32対応になっています。上記でも紹介したAudioUnitプラグインなどは、floatにしか対応していないようです。AUGraphなんかでつなぐ場合はあまり意識しなくても良いのですが、整数で用意したデータを渡すときにはAUConverterを前に挟み込む必要がありそうです。