
kagurazakaundergroundresistance:
2007-07-13
kml:
集合痴
・System Sound Services (第1章)
主に警告音の用途に使うサウンドファイルの再生
・Audio Queue Services (第5・6章)
サウンドファイルの再生と録音、オフラインレンダリング
・Audio File Services(第3章)
サウンドファイルのデータの読み書き(変換機能無し)
・Audio Session Services(第4・7章)
iPhoneのオーディオの挙動の管理
・Audio Converter Services(第10章)
オーディオデータの変換
・Audio Format Services(第10章)
オーディオデータフォーマットを扱う
・Extended Audio File Services(第11章)
サウンドファイルの読み書き(変換機能有り)
・Audio Unit Processing Graph Services(第12章)
Audio Unitを複数接続する
・Audio File Stream Services(第13章)
オーディオデータパケットの解析
・Audio Component Services(第9章)
Audio Component(Audio Unitのプラグイン形式)の管理
・Output Audio Unit Services(第9章)
Audio Unitの処理を開始・停止する
・AVAudioPlayer(第2章)
サウンドファイルの再生
・AVAudioRecorder(第8章)
サウンドファイルの録音
・AVAudioSession(第8章)
Audio Sessionの管理
Core Audio共通の構造体、定数の定義など
ムービー、サウンドファイルの再生。iPodライブラリアクセス(第14章)
サウンドファイルの再生・録音、3次元定位(のための計算)
OpenALは オーディオ再生・録音が行えるクロスプラットフォームなAPIであり、iPhoneでも使用できる。iPhoneのOpenALは内蔵Audio Unitである「3D Mixer Unit」の上に実装されており、本書ではこのAudio Unitを直接使う例を解説するため、OpenALについては扱っていない。3D Mixer UnitはAudio Unit Processing Graph Servicesの章(第12章 )で扱う。
(以上、本から抜粋)
これらを(今数えたら)93個のサンプルコードとともに解説してあります。
サンプルコードは、実現したい処理を行うために必要なコードは何か、をつかんでいただくために極力シンプルな記述を心がけてあります。なのでサンプルコードは一つの処理のみを行うのものが大半です。グラフィック的な飾りもほとんどありません。
このような「粒度の小さい動くサンプルコード」を実際に試しながら、各APIの働きを理解していけるような作りを目指して書きました。
本書はC言語、Objective-C、Cocoa Touchフレームワーク(UIKit)の基礎を習得しているオーディオアプリケーションを開発したいプログラマを対象としている。
C言語、Objective-C、Cocoa Touchフレームワークに関しては、分かりやすい入門書が既に多数刊行されているため先に参照いただきたい。本書ではCore Audioに紙面を割くために、Cocoa Touchフレームワークの使用は最小限のものにしてある。ただし、使用するAPIについては、詳しい解説を加えてある。
(本から抜粋)
となっています。
各章では、扱うフレームワーク、サービスに関連するオーディオ処理の基礎的な事項の解説も加えてあります。サウンドファイルのフォーマット、リニアPCMとはなんぞや、デシベル、パンニング、音階、サイン波、音の合成、FMシンセ、FFT、など。
数式満載のデジタル信号処理の高度なトピックは扱っていませんが、今後、その世界に飛び込んでばりばりやるための基礎は習得できると思います。
実際のアプリケーション開発は複数の機能を組み合わせて使うことになるので、「実践編」を設け、それまでに使用したコードを組み合わせ、実際の開発に使えるサンプルを目指してあります。
具体的には、オトカメラのライト版「オトカメライト」、FMシンセを使ったシンセサイズできるドラムマシン「FMDrum」、環境音に反応して音を生成(合成)するアプリケーション「Whiteout」を作ります。
最終的にこれらぐらいのアプリケーションが作れるようになるはずです。
(ちなみに実践編以外の章にも、ちょいとこの機能を使って遊んでみよう、てなサンプルがあります)
また、iPhone Core Audioのシステム全体(オーディオの入出力、サウンドファイルの入出力、ハードウェアの制御)が分かるようになるので、いかようにでも応用できるようになると思います(全部読んでもらえればおそらく)。
Q. Core Audioってどうなってんの?いろいろありすぎでしょ
A. Core Audioの世界を散策できるように全部解説してあります。じっくり読んでください。
Q. Audio Queue、AVAudioPlayerを使わないでMP3を再生したいんだけど
A. Audio Converterを使ってリアルタイムにデコードしながらAudio Unitで再生なんてどうでしょう?リニアPCMに変換しながら再生するので、ボリューム、パンニングとかなんでもできますよ。Audio Queue/AVAudioPlayerだとMP3はパンニングできないでしょ。Ext Audioを使ってもいいし、Audio Queueのオフラインレンダリングで事前にリニアPCMに変換しておく、という手もあります。いろいろ選択肢があるのでお好みの方法を使ってください。
Q. Audio Unitが入ってるらしいけどどうやるの?
A. AUGraphを使って、全部のAudio Unitの使用例を書いてます。たとえばiPodにイコライザーが付いていますよね?あれを自分のアプリでも使えますよ。あとは3D Mixerを使えばOpenALと同じことがAudio Unitでできちゃいますけど、どうですか?
Q. サウンドファイルをAACに変換したいんだけど
A. Ext Audioを使えば簡単にできちゃいますよー。ただしAACに変換できるのはiPhone 3GS/iPod touch 2Gだけです
Q. シンセサイズしたいんだけど
A. Audio Unitを使って最もローレベルなレイヤーでもっとも高速な(レーテンシーの少ない)シンセサイズを解説してます。FMDrumのレスポンスはむちゃくちゃ速いですよ!
(via ymo1965)
HASYMO - Rescue
(via ymo1965)
HASYMO - Everybody Had a Hard Year