Music TO GO!

2013年09月19日

iOS7の新オーディオ機能Inter-App Audioについて

iPhone登場以来の大幅なアップデートであるiOS7が公開されました。iOS7のメインはフラットデザインとA7と組み合わせた場合の64bit化です。
スマートフォンは登場時はおもちゃのような電子デバイスでしたが、いまやパソコンをもしのぐようなIT世界の中心存在になっています。スマートフォンの内部も当初はせせこましいものでしたが、そろそろ新時代に向かうための全面的な手直しが求められています。それがAppleの場合はiPhone5Sに見られるA7とiOS7の64bit化です。これは単に64bitというだけではなく、ARMアーキテクチャもOS内部も近代化されています。そのためメモリが4GBでないから64bitは必要ないというわけではありません(演算系のレジスタやポインタも64bit化されています)。
本記事でもiOS7のオーディオ的な側面でミュージックアプリなど表面的なものではなく、内部的なオーディオ関連機能を紹介します。

まずiOS7で興味深いのはiPadでしか使えなかったカメラコネクションキット経由のUSB DACの再生が、iPhoneでもできるようになったことですが、iPad同様におそらくバッテリーから給電できる(バスパワー使わないセルフパワータイプ)xDuoo XD-01なんかではバスパワー問題を解決してうまく使えそうです(iOSにおいてはカメラコネクションキットがUSB OTGケーブルと同じです)。
ただこの辺はまたそのうち別の形で紹介することにもなると思いますので今回は略します。


もう一つは前にも書きましたがInter-App Audioです。
http://vaiopocket.seesaa.net/article/366058362.html
これはオーディオアプリ同士を連携させるための機能で同様な機能にはAudioBusがあります。
http://vaiopocket.seesaa.net/article/306285593.html

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に対応したアプリをリリースしました。
http://www.macotakara.jp/blog/category-54/entry-21177.html
これはたとえばTENORI-ONがコントロールするhostで、Synth Arp&Drum Padのような楽器アプリがnodeなんでしょう。もうInter-App Audio対応は始まっていますね。
posted by ささき at 22:18 | TrackBack(0) | __→ iPod, iPhone, iPad | このブログの読者になる | 更新情報をチェックする

この記事へのトラックバック