Customer Reviews

23
4.6 out of 5 stars
Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS
Format: PaperbackChange
Price:$31.21 + Free shipping with Amazon Prime
Your rating(Clear)Rate this item


There was a problem filtering reviews right now. Please try again later.

5 of 5 people found the following review helpful
on May 22, 2012
Format: PaperbackVerified Purchase
I've been working with AudioQueue microphone input (IOS) for over a year, but found myself avoiding anything deeper (properties, listener callback notifications, metering, audio units, ...). After running through this tutorial, I now understand what is going on under the hood, and have moved down into working directly with audio units.

For me the most useful tips were:

1) Simple CheckError() logic to decrypt the 4 character mode and error code constants used throughout.

2) Clear explanation of file formats, audio formats, converters, and native PCM representations on IOS and OSX.

3) Pointers for where to find CoreAudio documentation (much of it can be found only in header file comments)

4) Clear pattern for required lifecycle sequence of constructing an audio units graph of nodes, which must be defined before open, opened before starting to set properties, and properties setup before initialize.

5) Reusable patterns for the sometimes awkward pointer arithmetic required to assemble AudioBufferLists on the fly.

6) Unkinking the awkward syntax of Output units, which are used for both hardware output and hardware input. Both the outbound bus #0 and inbound bus #1 have input and output scopes, which relate to where the unit fits into the graph. Clear description of threading, buffering, and clocking issues which must be handled in OSX context which may include multiple external audio accessories from different vendors, with different clocking and timing. After completing this tutorial I now "get it".

7) Clear description of the differences between OSX and IOS implementations.

8) The quick intro to OpenAL and Midi were interesting, and enough for me to understand how these work, though they aren't part of what I do.

Overall this book was a great help to me. I highly recommend it to anyone already experienced with OSX or IOS development, but wanting to dig deeper into audio. Not much audio background is required (the first chapters cover the basics), though you will need to be comfortable with working almost entirely in C with nary an NS* in sight. Even the file I/O operations use CoreFoundation (not Foundation) methods. If you are looking for a higher level interface, you may want to explore the AVFoundation or MediaPLayer frameworks, which are nicely documented in Xcode docs, but are not covered by this lower level tutorial.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
6 of 6 people found the following review helpful
on November 18, 2013
Format: PaperbackVerified Purchase
iOS and OS X audio are done differently and the bulk of the examples work on OS X only. HAL methods (the methods with "Hardware" in their names) have been deprecated. I learned a lot from this book. Note to Chris Adamson, time for a new updated edition - this could be the definitive text.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
10 of 12 people found the following review helpful
on April 30, 2012
Format: Paperback
First let's start with stating how satisfied I am of having found that this book exists. Core audio is one of the most difficult programming topic I ever found, because of the subject matter and because of arcane, not very well documented, obscure and often inconsistent Api conventions and naming. OpenGl is difficult as it requires loads of mathematics, but is wery well documented. Core Audio is as difficult as OpenGL, mayebe more, but knowledge about it is much harder to be found.

The authors take their time to tell their readers what this book is not, it is not a book for wannabe programmers, it is not a beginners guide, beginners and less than determined programmers, please look elswhere. Audio is not for everybody, it involves doing computations in real time and is an order of magnitude more difficult than say, Ruby web based design.

A prerequisite for a beginner's book on Audio on Mac OsX and iOS, is being a rather advanced programmer in all three major languages required by the platform: Objective C, C (on which Core audio is based) and C++ (because of OpenAl 3d audio). You should be proficient enough to be familiar with structs, pointers and memory allocation.
The approach of the authors is keeping the UI side to a bare minimum, as UI is not what this book is all about: on the Mac side this choice implies having to deal with command line programs, and ignoring the Cocoa side of things. As this book is centered on Audio programming this choice is very logical. On the iOS chapter, a barebone simple View controller is used (as iOS does not support CLI.).
Learning Core Audio explains how to use all the major audio engines available on Apple platforms, which are basic Core Audio services, Core audio queues, Audio units and Open Al.
Differences between the iOS and Mac approach is detailed in the 10th chapter, after the Mac platform has been explained.
What you won't find in this book: this is not a complete treatment of the matter, which would have been simply impossible, but is rather gentle (as gentle as possible, not too much) introduction to as much as possible of the main aspects of the matter. The authors do attempt to let the reader acquire a full view on the general phylosophy, unwritten conventions and way of thinking necessary in order to deal with the frameworks, enabling the reader to go on and research further on his or her own after reading this book. The authors do manage to render Core audio understandable and practically approachable by determined and cabable programmers, and out of the restricted circle of über-Hackers and programming demi-gods. At least a book on Core Audio for us normal humans, the authors seem to discourage casual potential readers by stating how difficult Core Audio is, well I do believe the subject is difficult, but they did an excellent job in making it practically understandable.

How to build a complete commercial Audio Unit is not dealt with, nor is in any way treated the required knowledge of electronic music principles and digital signal processing. These subjects require separate reading of the typical well known and usually large tomes on the subject (e.g. Boulanger, Openheim-Shafer).

I cannot but recommend this book as required reading on the matter of Core Audio programming.
Personally I would have liked to see at least an introductory chapter on DSP and some coverage of Audio Unit development, but these subjects were obviously either too complex or not completely related to Core Audio learning, for which this book is THE starting point.
I am also very grateful to the publisher, for the courage shown in publishing a book which will not be of interest for a very large audience, but which was nonetheless desperately needed.
11 commentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
3 of 3 people found the following review helpful
on March 25, 2013
Format: Paperback
I'm not going to repeat the great praise laid on this book from my fellow reviewers.. but as someone who has actually bought the book and read every chapter in it at least 10 times.. I must say that it only lays the foundation of your understanding of core audio (and I'm not saying this to belittle this book in any way, infact if I get a penny for every developer I've referred to this book.. I'll be a rich man).

but here is the good news.. you will find a lot of people very willing to help you out in core audio.. like me! :) through forums like stack over flow (see my answer to one question related to this book here as an example [...]. Feel free to ask on Stack Overflow and then drop me a line to see if I can help (and I've helped many).

You will also sometimes be frustrated when you the book shows you how to do something that works on OSX but not on iOS.. for example you cannot read audio samples from your iPhone music library using the examples in the book (you will only be able to read it from music files you import directly to your Xcode project).

But then again you will find solutions augmenting the examples in the book like this one: [...]
the point is that there is a healthy community of developers you can easily reach who are familiar with the examples in this book and are willing to help.. so buy the book, have fun and start chunking out some awesome code!!
22 commentsWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
3 of 3 people found the following review helpful
on August 26, 2012
Format: PaperbackVerified Purchase
A weekend with this book was better than two weeks of evenings fighting with the "documentation" that exists elsewhere. After working through the examples in this, you'll be able to fight your way through the CA reference documents to do new things. I highly recommend it, with no reservations.

That said, I have two criticisms of the text: their presentation of code snippets and the shallowness of their applications. The code itself is solid, with good references and such, but it's split up into a couple dozen of snippets for each chapter, which is kind of difficult to work with. It may be that it's impossible to present things in a better way, though. As far as the shallowness goes: as you build off their basic apps, you'll notice that things get a lot more complicated, rather quickly. I'm definitely glad they didn't throw us into the deep end of this right off the bat, but, at the same time, it's nuanced to integrate CA code alongside UI code. A simple drum machine or synth keyboard app would be really helpful, after showing us the trivial CLI apps.

On the whole, this is a fantastic and indispensable book, with a couple of things to improve to make it perfect. If you're looking at working with Core Audio, glance at Apple's documentation, then buy a copy. It will save you a lot of time and frustration.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
3 of 3 people found the following review helpful
on August 7, 2012
Format: Paperback
How many time do we have to regroup informations for ten different sources to get a good explanation/sample ?

Well, with Learning Core Audio for iOS & Mac you won't have to browse/compulse other books.

This book isn't for beginers, you have to have some strong notion of iOS coding. but if you do, you know that Apple's documentation on Coreaudio is very light and not user friendly at all.

I hadn't done that much math/physics in a long time actually =)

The Positioning chapter was very nice. I can't wait to have the opportunity to make an app for work around this =)
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
on April 29, 2013
Format: PaperbackVerified Purchase
This is long overdue as i got this book at the end of 2012. I read and worked through each example codeset once with both fascination and struggle. The struggle was a mix of both, what the authors', Chris Adamson and Kevin Avila, pointed out early in the read, that being this stuff, Core Audio, is not easy, and with programming I'm self-taught which has both blessings and curses in learning behaviors.

The book is written with reality 'how-to' and art, and I would add a sense of humor which keeps it from being a dry interpretation of Apple engineering. Though the latter is brilliant Apple's documentation is dense and cumbersome which in 'Learning Core Audio...' authors' Adamson and Avila took that brilliance and laid it out in somewhat baby steps and breadcrumbs which make the subject accessible and practical.

As pointed out early on, 'Learning Core...' is not a beginning programming book but an advanced topic that assumes both exposure with the C language, Mac OS, Xcode and Objective C. This said it had been several years since I had thought in the C language or any language for that matter till I began the journey with Objective C about two years ago. What I found however was that as I worked through the example code which I would say don't just download it, physically type it in and absorb it. After you see what the codeset will do manipulate it and see what else it will do. This approach has pushed me and given renewed programming confidence and I personally thank this book for doing that.

I will add to that, in my case some of the chapters and projects took me multiple reads to 'get it' partly as it's how I learn. In fact I'm still revisiting a great deal of the book for clarity and referral as I work through my own ideas and projects.

The only criticism I would make on this excellent work and this was through my experience which may have been my setup and version of Xcode as initially i was using 4.2 on Snow Leopard. I found on a few projects to get them to work I had to include framworks not mentioned in the example code. This may have been my oversight or misinterpretation but there were a couple of projects which appeared to only need the AudioToolbox framework and I found through trial error that I had to add ApplicationServices a time or two. I will say prior to this book all of my work with Objective C and iOS had been coding for graphical apps. The majority of projects in this book make command line Terminal or Xcode Console executables and not iOS apps. This said, the plus in that is you will learn to code for the OS X operating system as well as being able to move the code with some modifications in to the iOS world.

Bottomline Chris and Kevin's 'Learning Core Core Audio...' is excellent, inspiring and confidence building for those interested in delving in to this 'black box' of chip and voodoo mystery.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
on April 13, 2013
Format: PaperbackVerified Purchase
I'm an iOS developer fir a VoIP company and needed to build an audio engine for Mac OS platform. Apple's documentation and online forums helped a little but the information was scattered so much that it was hard to wrap your head around CoreAudio API. I found this book, locked myself in my room for a month, and built the audio engine from the ground up. I wouldn't know what I would have done without it. Also, I know nothing about sound and audio but this book filled in the blanks just enough for me to understand how it works. I thank the authors so much for their hard work and dedication in bringing all of this information into one book. Seriously, these guys found essential information that was only found in a comment in one of Apple's sample projects. Great resource!
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
on February 3, 2013
Format: Paperback
Thanks to this book I was able to write my small app (MuteMyMic). As my application is based on low level APIs for sound input/output in OS X, I had to find some sort of comprehensive guid related to the topic. And this is the book I have found the best on the market, so far. Of course you can find a loot of material, that is covered here covered here, somewhere in the web. But when it comes to a single source of the information related to the topic, this one is the best one. Highly recommended.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
on November 1, 2012
Format: Kindle EditionVerified Purchase
I'm about 2/3 through this book and it has been very helpful. The topic is pretty complex and the author deals with that very well. It would have taken me a long time to get up to speed without this book. It's the best reference on Apple Audio that I've found so far.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
     
 
Customers who viewed this also viewed
The Audio Programming Book
The Audio Programming Book by Richard Boulanger (Hardcover - October 22, 2010)
$58.50


BasicSynth
BasicSynth by Daniel Mitchell (Paperback - October 25, 2008)
$22.49
 
     

Send us feedback

How can we make Amazon Customer Reviews better for you?
Let us know here.

Your Recently Viewed Items and Featured Recommendations 
 

After viewing product detail pages, look here to find an easy way to navigate back to pages you are interested in.