Summary

In this chapter, we have covered the following areas:

  • Digital audio and Pulse Code Modulation (PCM), which is a technique for converting an analog audio signal into a digital representation. We have also looked at how PCM samples are encoded and interleaved channel by channel.
  • The Core Audio architecture, which collectively provides sound/audio support to Mac OS X and iOS. The cornerstone of Core Audio is the HAL, which coordinates the use of audio hardware on behalf of clients and allows multiple clients to access audio hardware simultaneously.
  • The Core Audio HAL, which always uses 32-bit floating-point format to represent audio samples. A driver is therefore responsible for converting the native format of the hardware to or from this format.
  • IOAudioFamily, which provides the kernel-level side of the audio architecture. The key classes of the family are IOAudioDevice, IOAudioEngine, and IOAudioStream.
  • The IOAudioDevice class, which represents a hardware audio device in the kernel.
  • The IOAudioEngine class, which represents a single I/O engine for which an IOAudioDevice may have more than one. The class is abstract. The audio engine class may have one or more IOAudioStreams associated with it.
  • An IOAudioStream is used to represent a single sample buffer.
  • The operation of an audio engine is conceptually simple, the engine simply needs to tell the super class (which again communicates with Core Audio/Audio HAL) when the device has wrapped to the beginning of the sample buffer and how many times this event has occurred.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.57.219