Muutke küpsiste eelistusi

Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS [Pehme köide]

  • Formaat: Paperback / softback, 336 pages, kõrgus x laius x paksus: 226x176x20 mm, kaal: 500 g
  • Sari: Learning
  • Ilmumisaeg: 10-May-2012
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0321636848
  • ISBN-13: 9780321636843
  • Pehme köide
  • Hind: 55,21 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 336 pages, kõrgus x laius x paksus: 226x176x20 mm, kaal: 500 g
  • Sari: Learning
  • Ilmumisaeg: 10-May-2012
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0321636848
  • ISBN-13: 9780321636843
Audio can affect the human brain in the most powerful and profound ways. Using Apples Core Audio, you can leverage all that power in your own Mac and iOS software, implementing features ranging from audio capture to real-time effects, MP3 playback to virtual instruments, web radio to VoIP support. The most sophisticated audio programming system ever created, Core Audio is not simple. In Learning Core Audio, top Mac programming author Chris Adamson and legendary Core Audio expert Kevin Avila fully explain this challenging framework, enabling experienced Mac or iOS programmers to make the most of it. In plain language, Adamson and Avila explain what Core Audio can do, how it works, and how it builds on the natural phenomena of sound and the human language of audio. Next, using crystal-clear code examples, they guide you through recording, playback, format conversion, Audio Units, 3D audio MIDI connectivity, and overcoming unique challenges of Core Audio programming for iOS. Coverage includes: mastering Core Audios surprising style and conventions; recording and playback with Audio Queue; synthesizing audio; perform effects on audio streams; capturing from the mic; mixing multiple streams; managing file streams; converting formats; creating 3D positional audio; using Core MIDI on the Mac; leveraging your Cocoa and Objective-C expertise in Core Audios C-based environment, and much more. When youve mastered the black arts of Core Audio, you can do some serious magic. This book will transform you from an acolyte into a true Core Audio wizard.
About the Authors xiii
Foreword xv
Introduction 1(12)
Audience for This Book
2(1)
What You Need to Know
3(1)
Looking Up Documentation
3(2)
How This Book Is Organized
5(4)
About the Sample Code
9(4)
I Understanding Core Audio
1 Overview of Core Audio
13(12)
The Core Audio Frameworks
14(1)
Core Audio Conventions
15(1)
Your First Core Audio Application
16(6)
Running the Example
19(3)
Core Audio Properties
22(1)
Summary
23(2)
2 The Story of Sound
25(18)
Making Waves
25(2)
Digital Audio
27(5)
DIY Samples
32(8)
Buffers
40(1)
Audio Formats
40(1)
Summary
41(2)
3 Audio Processing with Core Audio
43(16)
Audio Data Formats
43(8)
Example: Figuring Out Formats
46(5)
Canonical Formats
51(2)
Processing Audio with Audio Units
53(2)
The Pull Model
55(1)
Summary
55(4)
II Basic Audio
4 Recording
59(22)
All About Audio Queues
59(1)
Building a Recorder
60(3)
A CheckError() Function
63(1)
Creating and Using the Audio Queue
64(7)
Utility Functions for the Audio Queue
71(7)
The Recording Audio Queue Callback
75(3)
Summary
78(3)
5 Playback
81(16)
Defining the Playback Application
81(2)
Setting Up a File-Playing Audio Queue
83(6)
Setting Up the Playback Buffers
85(3)
Starting the Playback Queue
88(1)
Playback Utility Functions
89(2)
Handling the Magic Cookie
89(1)
Calculating Buffer Size and Expected Packet Count
90(1)
The Playback Audio Queue Callback
91(3)
Features and Limits of Queue-Based Playback
94(1)
Summary
95(2)
6 Conversion
97(26)
The afconvert Utility
97(3)
Using Audio Converter Services
100(2)
Setting Up Files for Conversion
102(10)
Calling Audio Converter Services
105(4)
Implementing the Converter Callback
109(3)
Converting with Extended Audio File Services
112(6)
Reading and Converting with Extended Audio Files
116(2)
Summary
118(5)
III Advanced Audio
7 Audio Units: Generators, Effects, and Rendering
123(38)
Where the Magic Happens
123(1)
How Audio Units Work
124(2)
Sizing Up the Audio Units
126(3)
Your First Audio Units
129(12)
Building the main() Function
131(2)
Creating an Audio Unit Graph
133(4)
Setting Up the File Player Audio Unit
137(4)
Speech and Effects with Audio Units
141(9)
Building Blocks of the Speech Synthesis Graph
142(2)
Creating a Speech Synthesis AUGraph
144(2)
Setting Up a Speech Synthesizer
146(1)
Adding Effects
147(3)
Adding Your Code to the Audio Rendering Process
150(10)
The Audio Unit Render Cycle
150(1)
A Custom Rendering Example
151(3)
Creating and Connecting Audio Units
154(1)
The Render Callback Function
155(5)
Summary
160(1)
8 Audio Units: Input and Mixing
161(30)
Working with I/O Input
161(22)
Connecting Input and Output Units
164(4)
Creating an AUHAL Unit for Input
168(8)
Writing the Input Callback
176(2)
Building an AUGraph to Play Samples from a CARingBuffer
178(3)
Writing the Play-Through App's Render Callback
181(1)
Running the Play-Through Example
182(1)
Mixing
183(6)
Summary
189(2)
9 Positional Sound
191(32)
Sound in Space
191(2)
The OpenAL API
193(3)
Putting a Sound in Space
196(14)
Setting Up the Example
197(3)
Using OpenAL Objects
200(5)
Animating the Source's Position
205(1)
Loading Samples for an OpenAL Buffer
206(4)
Streaming Audio in OpenAL
210(10)
Setting Up the OpenAL Streaming Example
210(5)
Setting Up an ExtAudioFile for Streaming
215(2)
Refilling the OpenAL Buffers
217(3)
Summary
220(3)
IV Additional Topics
10 Core Audio on iOS
223(34)
Is That Core Audio in Your Pocket?
223(1)
Playing Nicely with Others: Audio Session Services
224(3)
An Audio Session Example
227(11)
Setting Up the App
227(4)
Initializing the Audio Session and Audio Queue
231(3)
The Tone Generator Method
234(2)
Handling iOS Interruptions
236(2)
Audio Units on iOS
238(15)
Building an Audio Pass-Through App with the iOS RemoteIO Unit
239(2)
Setting Up the Pass-Through Example
241(3)
Setting Up the RemoteIO Audio Unit for Capture and Play-Out
244(5)
The RemoteIO Render Callback
249(4)
Other iOS Audio Tricks
253(1)
Remote Control on iOS
253(1)
iOS Hardware Hazards
254(1)
Summary
254(3)
11 Core MIDI
257(22)
MIDI Concepts
257(1)
Core MIDI
258(3)
Core MIDI Architecture
258(1)
Core MIDI Terminology
258(2)
Core MIDI Properties
260(1)
MIDI Messages
260(1)
Instrument Units
261(1)
Building a Simple MIDI Synthesizer
262(5)
Connecting to MIDI
265(2)
Handling MIDI Notifications and Events
267(2)
Playing Your AUGraph
269(1)
Creating MIDI Events
269(8)
Setting Up the MIDIWifiSource Example
269(2)
Setting Up MIDI over Wi-Fi
271(2)
Sending MIDI Messages
273(2)
Setting Up Your Mac to Receive Wi-Fi MIDI Data
275(2)
Summary: MIDI Mastery ... but Mobility?
277(2)
12 Coda
279(10)
Still More Core Audio
279(1)
Next Steps
280(1)
Digital Signal Processing
280(1)
Lion and iOS 5
281(5)
AUSampler
281(4)
Core Audio on iOS 5
285(1)
The Core Audio Community
286(1)
Summary: Sounds Good
287(2)
Index 289
Chris Adamson is an independent writer, editor, and developer who lives in Grand Rapids, Michigan. Now focusing on iOS and Mac development, he is the coauthor of iOS SDK Development. He is also the author of QuickTime for Java: A Developer's Notebook and coauthor of Swing Hacks. He was formerly the editor of java.net and ONJava.com. He consults and publishes through his corporate identity, Subsequently and Furthermore, Inc., with a focus on user-facing and digital media development for Mac and iOS. He blogs on digital media software development at www.subfurther.com/blog. In a previous career, he was a writer/associate producer at CNN Headline News, and over the years, he has managed to own 11 1/2 Macs.

Kevin Avila (a.k.a. dogbert) is a smooth blend of carbon compounds, oxygen, hydrogen, and nitrogen, with some impurities for added flavor. Additionally, he has more than 15 years' experience developing for the Mac and, since its release, the iPhone. Kevin has been involved in every corner of the audio market, from being an engineer at Apple to configuring professional recording studios. He currently is a code mercenary for various clients while he sits in his underwear at home, sipping coffee.