2013年9月20日金曜日

iOS7の新しいオーディオ機能「Inter-App Audio」とは?


当初 iOS 6 で実装が予定され、その後採用が見送られたアプリ間のオーディオストリーム入出力機能「Inter-App Audio」は iOS 7 の標準機能として API が実装されたようです。


inter-app AudioはDTM向けの機能で一連のアプリのオーディオストリーム(楽曲トラックなど)出力を他のアプリの入力として連結して作曲したりするものです。



オーディオストリームのルーティング入出力機能は、すでにサードパーティ製アプリの Audiobus が同様の機能を実現していて、対応する音楽アプリも日に日に増え続けています。ただ Audiobus はオーディオストリームの制御に特化していて、現時点では MIDI の制御には対応していません。


他に同様の機能を実現しているアプリに、iOS 版の JACK があり、こちらはオーディオストリームと MIDI 両方の制御に対応していますが、対応アプリが少なくあまり普及していません。


Inter-App Audioの詳細についてはnlogアプリの開発者がtwitterで解説をしています。 まずInter-App AudioはCoreAudioのようなOSのAPIですので、AudioBusのように独立したアプリは不要です。

Inter-App AudioとAudioBusは似たような機能に思えますが、まず接続構成(トポロジー)が異なります。
Inter-App Audioはアプリをhostとnodeの明確な関係にわけるようで、hostから星形にnodeを伸ばしていく方式とのこと。対してAudioBusはチェーンのようにアプリをつなげていきます。トポロジー的にはUSBとFireWireみたいな違いともいえるかもしれません(USBがInter-App Audio)。

Inter-App Audioではnodeがレンダラーとなるようです。シンセアプリやエフェクトアプリなんかはnodeですね。またhostとnodeはどうやらメモリ共有できるようです。そのため連携によるレイテンシーは実質ないといってよいようですが、この辺はシステムでの実装の強みです。nodeはhostにプロジェクトとしてまとめられますが、おそらくhostアプリからnodeアプリをfork(プロセス生成)するんではないかと思います。

プログラミング的にはCoreAudioのAUプラグインのように扱えるということ。エフェクトnodeなどがありますのでそうなんでしょう。 UI的にはAudioBusのような外から見えるUIは提供されていないようですが、アプリ間のタスクスイッチングはできるということ。Inter-App AudioはAudioBusと共用できるもの、使い分けするものとされています。

注目はInter-App Audioでは曲データの同期や再生位置、コントロール情報も交換できるようです。AudioBusってDAW向きかと思ってましたが、Inter-App Audioは音楽再生アプリ間で同期をとってなにかできそうです。
さっそく本日IK MultimediaとヤマハがInter-App Audioに対応したアプリをリリースしました。

0 件のコメント:

コメントを投稿