What is included with this book?
About the Authors | p. xiii |
Foreword | p. xv |
Introduction | p. 1 |
Audience for This Book | p. 2 |
What You Need to Know | p. 3 |
Looking Up Documentation | p. 3 |
How This Book Is Organized | p. 5 |
About the Sample Code | p. 9 |
Understanding Core Audio | |
Overview of Core Audio | p. 13 |
The Core Audio Frameworks | p. 14 |
Core Audio Conventions | p. 15 |
Your First Core Audio Application | p. 16 |
Running the Example | p. 19 |
Core Audio Properties | p. 22 |
Summary | p. 23 |
The Story of Sound | p. 25 |
Making Waves | p. 25 |
Digital Audio | p. 27 |
DIY Samples | p. 32 |
Buffers | p. 40 |
Audio Formats | p. 40 |
Summary | p. 41 |
Audio Processing with Core Audio | p. 43 |
Audio Data Formats | p. 43 |
Example: Figuring Out Formats | p. 46 |
Canonical Formats | p. 51 |
Processing Audio with Audio Units | p. 53 |
The Pull Model | p. 55 |
Summary | p. 55 |
Basic Audio | |
Recording | p. 59 |
All About Audio Queues | p. 59 |
Building a Recorder | p. 60 |
A CheckError() Function | p. 63 |
Creating and Using the Audio Queue | p. 64 |
Utility Functions for the Audio Queue | p. 71 |
The Recording Audio Queue Callback | p. 75 |
Summary | p. 78 |
Playback | p. 81 |
Defining the Playback Application | p. 81 |
Setting Up a File-Playing Audio Queue | p. 83 |
Setting Up the Playback Buffers | p. 85 |
Starting the Playback Queue | p. 88 |
Playback Utility Functions | p. 89 |
Handling the Magic Cookie | p. 89 |
Calculating Buffer Size and Expected Packet Count | p. 90 |
The Playback Audio Queue Callback | p. 91 |
Features and Limits of Queue-Based Playback | p. 94 |
Summary | p. 95 |
Conversion | p. 97 |
The afconvert Utility | p. 97 |
Using Audio Converter Services | p. 100 |
Setting Up Files for Conversion | p. 102 |
Calling Audio Converter Services | p. 105 |
Implementing the Converter Callback | p. 109 |
Converting with Extended Audio File Services | p. 112 |
Reading and Converting with Extended Audio Files | p. 116 |
Summary | p. 118 |
Advanced Audio | |
Audio Units: Generators, Effects, and Rendering | p. 123 |
Where the Magic Happens | p. 123 |
How Audio Units Work | p. 124 |
Sizing Up the Audio Units | p. 126 |
Your First Audio Units | p. 129 |
Building the main() Function | p. 131 |
Creating an Audio Unit Graph | p. 133 |
Setting Up the File Player Audio Unit | p. 137 |
Speech and Effects with Audio Units | p. 141 |
Building Blocks of the Speech Synthesis Graph | p. 142 |
Creating a Speech Synthesis AUGraph | p. 144 |
Setting Up a Speech Synthesizer | p. 146 |
Adding Effects | p. 147 |
Adding Your Code to the Audio Rendering Process | p. 150 |
The Audio Unit Render Cycle | p. 150 |
A Custom Rendering Example | p. 151 |
Creating and Connecting Audio Units | p. 154 |
The Render Callback Function | p. 155 |
Summary | p. 160 |
Audio Units: Input and Mixing | p. 161 |
Working with I/O Input | p. 161 |
Connecting Input and Output Units | p. 164 |
Creating an AUHAL Unit for Input | p. 168 |
Writing the Input Callback | p. 176 |
Building an AUGraph to Play Samples from a CARingBuffer | p. 178 |
Writing the Play-Through App's Render Callback | p. 181 |
Running the Play-Through Example | p. 182 |
Mixing | p. 183 |
Summary | p. 189 |
Positional Sound | p. 191 |
Sound in Space | p. 191 |
The OpenAL API | p. 193 |
Putting a Sound in Space | p. 196 |
Setting Up the Example | p. 197 |
Using OpenAL Objects | p. 200 |
Animating the Source's Position | p. 205 |
Loading Samples for an OpenAL Buffer | p. 206 |
Streaming Audio in OpenAL | p. 210 |
Setting Up the OpenAL Streaming Example | p. 210 |
Setting Up an ExtAudioFile for Streaming | p. 215 |
Refilling the OpenAL Buffers | p. 217 |
Summary | p. 220 |
Additional Topics | |
Core Audio on iOS | p. 223 |
Is That Core Audio in Your Pocket? | p. 223 |
Playing Nicely with Others: Audio Session Services | p. 224 |
An Audio Session Example | p. 227 |
Setting Up the App | p. 227 |
Initializing the Audio Session and Audio Queue | p. 231 |
The Tone Generator Method | p. 234 |
Handling iOS Interruptions | p. 236 |
Audio Units on iOS | p. 238 |
Building an Audio Pass-Through App with the iOS RemoteIO Unit | p. 239 |
Setting Up the Pass-Through Example | p. 241 |
Setting Up the RemoteIO Audio Unit for Capture and Play-Out | p. 244 |
The RemoteIO Render Callback | p. 249 |
Other iOS Audio Tricks | p. 253 |
Remote Control on iOS | p. 253 |
iOS Hardware Hazards | p. 254 |
Summary | p. 254 |
Core MIDI | p. 257 |
MIDI Concepts | p. 257 |
Core MIDI | p. 258 |
Core MIDI Architecture | p. 258 |
Core MIDI Terminology | p. 258 |
Core MIDI Properties | p. 260 |
MIDI Messages | p. 260 |
Instrument Units | p. 261 |
Building a Simple MIDI Synthesizer | p. 262 |
Connecting to MIDI | p. 265 |
Handling MIDI Notifications and Events | p. 267 |
Playing Your AUGraph | p. 269 |
Creating MIDI Events | p. 269 |
Setting Up the MIDIWifiSource Example | p. 269 |
Setting Up MIDI over Wi-Fi | p. 271 |
Sending MIDI Messages | p. 273 |
Setting Up Your Mac to Receive Wi-Fi MIDI Data | p. 275 |
Summary: MIDI Mastery … but Mobility? | p. 277 |
Coda | p. 279 |
Still More Core Audio | p. 279 |
Next Steps | p. 280 |
Digital Signal Processing | p. 280 |
Lion and iOS 5 | p. 281 |
AUSampler | p. 281 |
Core Audio on iOS 5 | p. 285 |
The Core Audio Community | p. 286 |
Summary: Sounds Good | p. 287 |
Index | p. 289 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.