Apple Audio Processing .. CoreAudio

Apple Core Audio is the digital audio infrastructure of iOS and OS X. It includes a set of software frameworks designed to handle the audio needs in your applications. Apple CoreAudio API bit different between MacOSX & iOS as these API also consider the processing power of the device(desktop vs mobile).

In OS X, Core Audio expects audio data to be in native-endian, 32-bit floating-point, linear PCM format. You can use Audio Converter Services to translate audio data between different linear PCM variants. You also use these converters to translate between linear PCM and compressed audio formats such as MP3 and Apple Lossless. Core Audio in OS X supplies codecs to translate most common digital audio formats (though it does not supply an encoder for converting to MP3). iOS uses integer and fixed-point audio data. The result is faster calculations and less battery drain when processing audio. iOS provides a Converter audio unit and includes the interfaces from Audio Converter Services. For details on the so-called canonical audio data formats for iOS and OS X, see Canonical Audio Data Formats.

Audio units are software plug-ins that process audio data. In OS X, a single audio unit can be used simultaneously by an unlimited number of channels and applications. iOS provides a set of audio units optimized for efficiency and performance on a mobile platform. You can develop audio units for use in your iOS application. Because you must statically link custom audio unit code into your application, audio units that you develop cannot be used by other applications in iOS.

CoreAudio Frameworks Available in both iOS and OS X =>

AudioToolbox.framework - The Audio Toolbox framework contains the APIs that provide application-level services.

AudioUnit.framework - The Audio Unit framework contains the APIs used for managing plug-ins in Core Audio.

CoreAudio.framework - The Core Audio framework contains data types common to all Core Audio services, as well as lower-level APIs used to interact with hardware. In OS X, this framework contains the interfaces for Hardware Abstraction Layer (HAL) Services.

The frameworks listed in this section are available in iOS only =>

AVFoundation.framework - The AV Foundation framework provides an Objective-C interface for playing back audio with the control needed by most applications. The AV Foundation framework in iOS includes one header file:

AVAudioPlayer.h: Defines an interface for playing audio from a file or from memory.
Frameworks Available in OS X Only

The frameworks listed in this section are available in MAC OS X only =>

CoreAudioKit.framework - The Core Audio Kit framework contains APIs used for creating a Cocoa user interface for an audio unit.

CoreAudioKit.h: Top-level include file for the Core Audio Kit framework.
AUGenericView.h: Defines a generic Cocoa view class for use with audio units. This is the bare-bones user interface that is displayed if an audio unit doesn't create its own custom interface.
AUPannerView.h: Defines and instantiates a generic view for use with audio units.

Open source Mac/iOS Audio Libraries =>
  1. Novocaine - https://github.com/alexbw/novocaine
  2. EZAudio - https://github.com/syedhali/EZAudio
  3. OrigamiEngine - https://github.com/ap4y/OrigamiEngine
  4. FreeStreamerMobile - https://github.com/muhku/FreeStreamer/tree/master/FreeStreamerMobile
ref:
  1. https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/AQuickTouroftheCoreAudioSDK/AQuickTouroftheCoreAudioSDK.html
  2. https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/CoreAudioOverview/WhatisCoreAudio/WhatisCoreAudio.html
  3. https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioFrameworks/CoreAudioFrameworks.html