2009年11月11日

iPhone Core Audioのバイブル的書籍「iPhone Core Audioプログラミング」発売!!

「iPhone Core Audioプログラミング」が手に入りましたのでご紹介します。



世界初!! iPhone OSおよびMac OS Xのデジタルオーディオインフラストラクチャ「Core Audio」を、豊富なサンプルコードとともに徹底解説。iPhoneプログラマ必携!

本書は以下のような機能をiPhoneに搭載したい場合に、役立ちます。

・アプリケーションに簡易再生・録音を組み込みたい
・シンセサイズが行いたい
・あらゆるフォーマットのサウンドファイルを再生したい
・リニアPCMを直接操作する高度なサウンドファイルの再生を行いたい
・ゲーム等で場面に応じた距離と方向による音の定位を行いたい
・複数のサウンドファイルを同時に再生したい
・サウンドファイルを変換したい
・波形編集を行いたい
・モニタリング機能を持った録音が行いたい



さらにくわしい紹介は、著者"永野哲久"さんのブログにもあります。

My Codex Leicester
「iPhone Core Audioプログラミング」(書籍) 11/11ごろ発売

http://nagano.monalisa-au.org/?p=979

では、ここからは私の書評を書きます。



本書はiPhoneで「音」を扱うためのiPhone Core Audioを解説した書籍です。Audio Toolbox,Audio Unit,AVFundation,CoreAudio,MediaPlayerなど、Open AL以外のほとんどのフレームワークについて解説されています。
まさにiPhone Core Audioのバイブル的書籍と言っても良いでしょう。

全546ページと分厚いですが、読めば納得の内容と情報量です。
まず、フレームワークとAPIの解説に、大量のサンプルソースを掲載して丁寧に解説されています。解説内容も少なすぎず多すぎず適度な情報量で、iPhone OSのバージョンごとの違い(プロパティの追加など)についてもキッチリ抑えてくれています。
また、サンプルソースも書籍に表記されているサイトからダウンロードもできます。
「目次」と「索引」も充実していますので、解説書としてだけではなく、フレームワークおよびAPIのリファレンスとしてもお勧めできます。

この書籍のもっとも注目すべきところは、他の書籍では「これくらいなら当たり前の知識だから、他の書籍を見るか、ググってね」とするところを、なんと懇切丁寧に解説していることです。

例えば、01-04ではCore Audioを使うための基礎知識となるプロパティとコールバック関数の操作方法を解説しています。さらにコールバック関数の引き渡で必要となるCのポインタ解説までされています。
その他にも、02-04では「デシベルの取得」の内容にあわせて「デシベルとは何か?」ということを分かりやすく解説していたり、03-03ではエンディアンとファイルパーミッション、そして09-03に至っては8.24固定少数に至るまで説明してあります。

その他にもiPhone特有の機能として、iPhoneを耳に当てたときの近接センサーを使った解説を01-05で解説したり、06-07ではOSや他のアプリが動作したときの割り込み対応などについても解説されています。また、この事例ではiPhone OS3.0のバグについて言及(159ページ)されており、非常にプロのプログラマーとしても資料価値の高い書籍となっています。

また、「音」に関する解説についても怠りがなく、05-04ではサイン波とラジアンの説明をしながらリニアPCMの生成について解説したり、11-08ではステレオ再生状態で音を左右に振るパンニングの解説を図解と数式で丁寧に説明されています。

さらに「音」のプログラムの応用でも注目するべき点があり、12-08で録音したときのデータ記録に関するリミッターとノーマライズの違いを解説したり、15-01の実践編では、高速フーリエ変換(FFT)を使ったサンプルプログラムとその解説までされています。

最後に、15-05にて録音のための外部機器の対応についても解説されており、いたせりつくせりです。

書籍購入を検討されている方は、下記の目次が参考になると思います。ほとんど必要な内容が網羅されていることが分かります。

iPhoneアプリを作るなら、会社に家に、一冊置いておきたい本です。



目次


CHAPTER01 System Sound Services
 01-01 Sytem Sound Serviceの概要
 01-02 最も簡単な使用例
 01-03 API詳細
 01-04 Core Audioのインターフェイスの特徴
 01-05 Examples

CHAPTER02 AVFoundation
 02-01 AVFundationの概要
 02-02 最も簡単な使用例
 02-03 AVFundationのAPI詳細
 02-04 メータリング
 02-05 Examples

CHAPTER03 サウンドファイルの基礎
 03-01 本章の概要
 03-02 リニアPCMの基礎知識
 03-03 Audio File Services
 03-04 iPhone OSがサポートするオーディオファイルフォーマット
 03-05 サウンドファイルの変換(afconvert)

CHAPTER04 Audio Sessionの基礎
 04-01 Audio Sessionの概要
 04-02 カテゴリ
 04-03 割り込み
 04-04 ハードウェアの状態の取得・設定

CHAPTER05 Audio Queue Services
 05-01 Audio Queue Sevicesの概要
 05-02 リニアPCMの再生
 05-03 リニアPCMの録音
 05-04 リニアPCMの生成−サイン波を鳴らす−
 05-05 Audio Sessionへの対応

CHAPTER06 詳説 Audio Queue Services
 06-01 リニアPCM以外の再生
06-02 パラメータの設定
 06-03 プロパティ
 06-04 プロパティーリスナー
 06-05 リニアPCM以外のフォーマットでの録音
 06-06 オフラインレンダリング
 06-07 割り込みへの対応
 06-08 その他のトピック

CHAPTER07 詳説 Audio Session
 07-01 プロパティの詳細
 07-02 プロパティーリスナー
 07-03 割り込み

CHAPTER08 AVFoundation 3.0
 08-01 AVFoundation 3.0の概要
 08-02 AVAudioRecorderを使って録音する
 08-03 AVAudioRecorder API詳細
 08-04 AVAudioSession

CHAPTER09 Audio Unitの基礎
 09-01 Audio Unitの概要
 09-02 Audio ComponentとAudioUnit
 09-03 Audio Unit正準形(8.24固定小数点)
 09-04 サイン波を再生する
 09-05 周波数を変更する
 09-06 Example −加速度センサーテルミン−

CHAPTER10 Audio Converter Services
 10-01 Audio Converter Servicesの概要
 10-02 MP3をリニアPCMに変換する
 10-03 マジッククッキーへの対応
 10-04 リニアPCMをApple Lossless形式に変換する
 10-05 Audio Format Services
 10-06 すべてのフォーマットに対応する
 10-07 サウンドファイルをAudio Unitを使って再生する
 10-08 プロパティ

CHAPTER11 Extended Audio File Services
 11-01 Extended Audio File Servicesの概要
 11-02 リニアPCMをリニアPCMに変換する
 11-03 リニアPCMをApple Losslessに変換する
 11-04 リニアPCMをAACに変換する
 11-05 リニアPCM以外からリニアPCM以外に変換する
 11-06 その他のAPI
 11-07 Audio Unitを使って再生する(ファイルベース)
 11-08 Audio Unitを使って再生する(メモリベース)

CHAPTER12 Audio Unit Processing Graph Services
 12-01 Audio Unit Processing Graph Servicesの概要
 12-02 MultiChannel Mixer Unit
 12-03 3D Mixer Unit
 12-04 Converter Unit
 12-05 iPod Equalizer Unit
 12-06 マイクのモニタリング
 12-07 Remote IOを使って録音する
 12-08 レコーディングレベルを調整する
 12-09 Voice Processing IO Unit

CHAPTER13 Audio File Stream Services
 13-01 Audio File Stream Servicesの概要
 13-02 MP3をダウンロード再生する
 13-03 ストリーミング再生をする(1)
 13-04 ストリーミング再生をする(2)
 13-05 途中で停止できるようにする
 13-06 他のフォーマットへの対応
 13-07 Audio Sessionへの対応

CHAPTER14 iPod Library Access
 14-01 iPod Library Accessの概要
 14-02 最も簡単な使用例
 14-03 MPMediaItemクラス
 14-04 複数の曲を使う
 14-05 MPMediaQueryクラス
 14-06 その他のトピック

CHAPTER15 実践編
 15-01 実践編の概要
 15-02 FMDrum
 15-03 オトカメライト
 15-04 Whiteout
 15-05 外部機器への対応

 INDEX




著者"永野哲久"さんのブログ

My Codex Leicester
http://nagano.monalisa-au.org/











posted by 企画屋一号 at 21:43| Comment(0) | TrackBack(0) | 書籍紹介
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33589676

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