その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

iOS のオーディオ/サウンド処理について学べる書籍10冊+α

Core Image や vImage や OpenCV、それらをラップする各種ライブラリの充実のおかげで、画像処理まわりは高度な処理をずいぶん簡単に高速に実装できるようになってきましたが、オーディオ処理(音声処理)まわりはいまだに再生や録音などの基本的なところから一歩踏み込もうとすると途端に敷居が高くなるイメージがあります。


たとえば2年ほど前にリリースした『i聖徳太子』は、「左右のイヤフォンから別々の音を再生する」という非常にシンプルなアイデアですが、たったこれだけのことでも AVAudioPlayer やMPMusicPlayerController とかだけでは実現することができず、OpenALやAVAsset等を使用して実現しています。


で、もうちょっとオーディオ処理まわりを勉強してみたいなと思い、まず手元にある書籍で参考になりそうなものを洗い出してみました。


以下、(だいたい)出版年月順に並べています。

iOS Core Frameworksテクニカルガイド

iOS Core Frameworksテクニカルガイド
Shawn Welch
インプレスジャパン
売り上げランキング: 242494


2012年9月と比較的最近出版されたものですが、原著の出版は2011年9月。したがって iOS5 時代のものです。


『Core Audio』という章があり、iPodのミュージックライブラリを使ったプレイヤーの実装方法や、AVAudioPlayer を用いたオーディオ再生方法について解説されています。


この本はグラフィックスやアニメーションについてはかなり詳しく書かれているのですが、サウンド周りに関して言えば、既出情報しかないなぁという印象です。

iOS5プログラミングブック

iOS5プログラミングブック
加藤 寛人 吉田 悠一 藤川 宏之 西方 夏子 関川 雄介 高丘 知央
インプレスジャパン
売り上げランキング: 88968


Chapter 9-2 『オーディオの新機能』という章に、Audio Unit に関する詳しい解説が載っています。Audio Unit は Core Audio の中でも最も低レイヤにあるため、自由度とパフォーマンスに優れる反面、実装の敷居が相当高い印象があったので、これはかなり貴重な情報といえます。(iOS 5 で増強された機能なので、後に紹介するCore Audio本にも載っていない内容もあります)


サンプルとして取り上げてられているのは「マイクから入力された音声にリバーブをかけるカラオケアプリ」で、AUGraph や AUNode について学べる好サンプルとなっています。

iOSプログラミング 第2版

iOSプログラミング 第2版
アーロン・ヒレガス ジョー・コンウェイ Aaron Hillegass Joe Conway
ピアソン桐原
売り上げランキング: 268758


第27章『メディア再生とバックグラウンドの実行』という章があり、iPodライブラリの再生、AVAudioPlayerを使ったmp3の再生、システムサウンドといった、基本的な事項について解説されています。

iOSプログラミング逆引きリファレンス110

iOSプログラミング逆引きリファレンス110 [iOS 5.1対応]
近藤 修平 畠山 貴 森田 秀幸 森本 一茂
マイナビ
売り上げランキング: 199047


第3章『カメラ・サウンド』で、SEやBGMの再生、iPodライブラリから曲を検索する方法などについて書かれています。逆引き形式で調べやすいのですが、サウンドまわりはあまりレア情報は見受けられず。

iOS4プログラミングブック

iOS4プログラミングブック
畑 圭輔 加藤 寛人 坂本 一樹 藤川 宏之 高橋 啓治郎 沖田 知彦 柳澤 昇
インプレスジャパン
売り上げランキング: 32117


第3章『マルチメディア』で、まるまる約70ページが AV Foundation の解説に割かれています。AV Foundation で何ができるか、音の再生といった基礎的なところから、カメラ関係の処理、AVCapture を用いたマイクからの音声取り込み方法、メタデータの処理、動画の編集とエクスポートなどなど、非常に盛りだくさんです。


特に後半は、マイクから入力される音声波形データの取得方法や、動画と音声を組み合わせた処理の方法など、知っておくと色々と応用が効きそうな方法の解説が充実しています。

iOS SDK Hacks ―プロが教えるiPhoneアプリ開発テクニック

iOS SDK Hacks ―プロが教えるiPhoneアプリ開発テクニック
吉田 悠一 高山 征大 UICoderz
オライリージャパン
売り上げランキング: 226658


目次をざっとみると音声処理に関するトピックはないのですが、第6章に@sonsonさんが書いたAccelerate.frameworkの項があるので、音声処理にvDSP等を使用して算術計算を行いたい場合(たとえばフーリエ変換を用いて周波数領域での処理を行いたい場合)などに参考になるかもしれません。

iPhoneSDK開発のレシピ

iPhoneSDK開発のレシピ
iPhoneSDK開発のレシピ
posted with amazlet at 12.11.26
高山 恭介 広部 一弥 松浦 晃洋
秀和システム
売り上げランキング: 72562


こちらもずいぶん前に出た本ですが、「AudioQueueで再生する」「AudioQueueで再生時のレベルを取得する」「AudioQueueでマイクから録音する」「音を関知するスイッチを作る」「OpenALで再生する」といった勉強になりそうな貴重なレシピが載っています。

iPhone Core Audioプログラミング

iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 28453
iOSの音声処理本といえばこれでしょ、で話が終わってしまいそうな殿堂入り本。500ページ超という極厚本でありながら、すべてが Core Audio についての解説にあてられているということからも、その情報の充実っぷりは伺えると思います。


何が載っています、ということを書いてもキリがないので、何が載ってないかということだけ書くと、iOS3.X時代に書かれたものなので、それ以降に追加された機能については(当然ですが)載っていません。

iPhone SDK アプリケーション開発ガイド

iPhone SDK アプリケーション開発ガイド
Jonathan Zdziarski
オライリージャパン
売り上げランキング: 28500


iOS開発本としてはかなり初期に出た本なのであまり期待してなかったのですが、第6章『iPhoneのサウンド - Audio Toolbox と AVFoundation』で、AudioQueue を用いたオーディオ処理について30ページにわたる解説が載っていました。AudioQueue で録音して生データにアクセスし、ファイル出力するところまで、かなり詳細に解説されています。


その他にもAVAudioPlayerで音量メーターを作るサンプルもあります。

iPhone デベロッパーズ クックブック

iPhone デベロッパーズ クックブック
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 283151


発売日が2009年2月と、相当に古い本ですが、第7章『メディア』に、AudioQueueでの録音や、「バックアップファイルからのメディアの復元」といった珍しいレシピも載っています。Celestial という非公開フレームワークの使い方についても解説されています。

その他

Beyond Interaction ―メディアアートのためのopenFrameworksプログラミング入門

Beyond Interaction ―メディアアートのためのopenFrameworksプログラミング入門
田所 淳 比嘉 了 久保田 晃弘
ビー・エヌ・エヌ新社
売り上げランキング: 222538


「プレイヤーの演奏にリアルタイムに反応するグラフィックス」というサンプルが載っていて、FFTをかける、ノイズを除去する、とかやってて、openFrameworks を使うにしろ使わないにしろ、ひとつのサウンド処理の応用サンプルとして参考になりそうです。

Pd Recipe Book -Pure Dataではじめるサウンドプログラミング

Pd Recipe Book -Pure Dataではじめるサウンドプログラミング(単行本)
松村 誠一郎
ビー・エヌ・エヌ新社
売り上げランキング: 198038


iOS SDK ではなく Pure Data を用いたサウンドプログラミングの本ですが、サウンドをプログラムで扱うにあたって、「どういう処理をどう組み合わせるとどんなことができるのか」という参考になりそうと思いここに載せました。


掲載されているパッチを見ているだけでも参考になるし、実際にPure Dataをアプリ開発前のプロトタイピング的に使うのもありかと思います。