TechnologiesAudio

CoreAudio

iOSmacOStvOSwatchOSvisionOS

Core Audio provides the low-level data structures and hardware abstraction that underlie audio on Apple platforms, including channel layouts for both files and hardware. You work directly with the audio hardware through objects such as AudioHardwareSystem, AudioHardwareDevice, AudioHardwareStream, and AudioHardwareClock, querying and configuring them through AudioObjectPropertyAddress and responding to changes via a PropertyListenerDelegate. The framework also models aggregate and process-level audio with AudioHardwareAggregateDevice and AudioHardwareProcess, taps audio using CATapDescription and AudioHardwareTap, and represents buffers and layouts with UnsafeMutableAudioBufferListPointer, AudioStreamRangedDescription, and ManagedAudioChannelLayout.

Audio Hardware System 7

The top-level objects representing the audio hardware environment and its devices and streams.

  • Cl
    AudioHardwareSystemmacOS 15.0+
    The audio objects in the HAL are arranged in a containment hierarchy. The root of the hierarchy
  • Cl
    AudioHardwareObjectmacOS 15.0+
    The audio HAL provides an abstraction through which applications can access audio hardware. To
  • Cl
    AudioHardwareDevicemacOS 15.0+
    Instances of the AudioHardwareDevice class encapsulate individual audio devices. An audio
  • Cl
    AudioHardwareStreammacOS 15.0+
    Instances of the AudioHardwareStream class encapsulate a single audio stream, which represents
  • Cl
    AudioHardwareControlmacOS 15.0+
    Instances of the AudioHardwareControl class encapsulate a single audio control, which provides
  • Cl
    AudioHardwareBoxmacOS 15.0+
    Instances of the AudioHardwareBox class encapsulate a single audio box, which is a container
  • Cl
    AudioHardwarePluginmacOS 15.0+
    Instances of the AudioHardwarePlugin class encapsulate a single audio HAL plugin, which is a

Clocks and Synchronization 1

Objects that model timing and clock sources for audio hardware.

  • Cl
    AudioHardwareClockmacOS 15.0+
    Instances of the AudioHardwareClock class encapsulate individual audio clocks. All audio

Aggregate and Process Audio 2

Types that model combined devices and per-process audio on the system.

  • Cl
    AudioHardwareAggregateDevicemacOS 15.0+
    Instances of the AudioHardwareAggregateDevice class encapsulate a single audio aggregate
  • Cl
    AudioHardwareProcessmacOS 15.0+
    Instances of the AudioHardwareProcess class encapsulate a single audio process, which contains

Capturing Audio Taps 3

Types for describing and installing taps that capture audio from devices and processes.

  • Cl
    CATapDescriptionmacOS 12.0+
    @class CATapDescription
  • Cl
    AudioHardwareTapmacOS 15.0+
    Instances of the AudioHardwareTap class encapsulate a single audio tap, which can capture
  • En
    CATapMuteBehaviormacOS 13.0+
    @enum CATapMuteBehavior

Properties and Change Notifications 2

Types for addressing audio object properties and responding to changes in them.

  • St
    AudioObjectPropertyAddress
    @struct AudioObjectPropertyAddress
  • Pr
    PropertyListenerDelegatemacOS 15.0+
    A delegate protocol for receiving notifications when properties registered with AudioHardwareObject.addPropertyListener change.

Buffers and Channel Layouts 4

Types that represent audio buffers, stream formats, and channel layouts for files and hardware.

  • St
    UnsafeMutableAudioBufferListPointer
    A wrapper for a pointer to an `AudioBufferList`.
  • St
    ManagedAudioChannelLayoutiOS 13.0+
    This structure is used to specify channel layouts in files and hardware.
  • St
    AudioStreamRangedDescription
    @struct AudioStreamRangedDescription
  • St
    AudioHardwareIOProcStreamUsage
    @struct AudioHardwareIOProcStreamUsage

Constants and Errors 4

Enumerations and error types that configure hardware behavior and report failures.

  • St
    AudioHardwareErrormacOS 15.0+
    Represents errors returned by the HAL
  • En
    AudioHardwarePowerHint
    @enum Power Hints
  • En
    AudioLevelControlTransferFunction
    @enum Values for kAudioLevelControlPropertyDecibelsToScalarTransferFunction
  • En
    AudioHardwareDirectionmacOS 15.0+
    An enum representing audio stream direction.

Type Aliases 17

  • Ty
    AudioObjectID
    @typedef AudioObjectID
  • Ty
    AudioClassID
    @typedef AudioClassID
  • Ty
    AudioObjectPropertySelector
    @typedef AudioObjectPropertySelector
  • Ty
    AudioObjectPropertyScope
    @typedef AudioObjectPropertyScope
  • Ty
    AudioObjectPropertyElement
    @typedef AudioObjectPropertyElement
  • Ty
    AudioObjectPropertyListenerProc
    @typedef AudioObjectPropertyListenerProc
  • Ty
    AudioObjectPropertyListenerBlock
    @typedef AudioObjectPropertyListenerBlock
  • Ty
    AudioDeviceIOProc
    @typedef AudioDeviceIOProc
  • Ty
    AudioDeviceIOBlock
    @typedef AudioDeviceIOBlock
  • Ty
    AudioDeviceIOProcID
    @typedef AudioDeviceIOProcID
  • Ty
    AudioHardwarePropertyID
    @typedef AudioHardwarePropertyID
  • Ty
    AudioHardwarePropertyListenerProc
    @typedef AudioHardwarePropertyListenerProc
  • Ty
    AudioDeviceID
    @typedef AudioDeviceID
  • Ty
    AudioDevicePropertyID
    @typedef AudioDevicePropertyID
  • Ty
    AudioDevicePropertyListenerProc
    @typedef AudioDevicePropertyListenerProc
  • Ty
    AudioStreamID
    @typedef AudioStreamID
Show 1 more
  • Ty
    AudioStreamPropertyListenerProc
    @typedef AudioStreamPropertyListenerProc

Extends 6

UnsafeBufferPointerUnsafeMutableBufferPointerAudioBufferAudioBufferListAudioChannelLayoutAudioChannelDescription
← Audio