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 =>
- Novocaine - https://github.com/alexbw/novocaine
- EZAudio - https://github.com/syedhali/EZAudio
- OrigamiEngine - https://github.com/ap4y/OrigamiEngine
- FreeStreamerMobile - https://github.com/muhku/FreeStreamer/tree/master/FreeStreamerMobile
ref:
- https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/AudioUnitProgrammingGuide/AQuickTouroftheCoreAudioSDK/AQuickTouroftheCoreAudioSDK.html
- https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/CoreAudioOverview/WhatisCoreAudio/WhatisCoreAudio.html
- https://developer.apple.com/library/mac/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioFrameworks/CoreAudioFrameworks.html