Skip to content

sbooth/CXXAudioUtilities

Repository files navigation

CXXAudioUtilities

Assorted C++ classes simplifying common operations in Core Audio and Audio Toolbox.

Note

C++17 is required.

Installation

Swift Package Manager

Add a package dependency to https://github.com/sbooth/CXXAudioUtilities in Xcode.

Manual or Custom Build

  1. Clone the CXXAudioUtilities repository.
  2. swift build.

CXXAudioUtilities

CoreAudioTypes Wrappers

C++ Class Description
SFB::CABufferList A class wrapping a Core Audio AudioBufferList with a specific format, frame capacity, and frame length
SFB::CAChannelLayout A class wrapping a Core Audio AudioChannelLayout
SFB::CAStreamBasicDescription A class extending the functionality of a Core Audio AudioStreamBasicDescription
SFB::CATimeStamp A class extending the functionality of a Core Audio AudioTimeStamp
SFB::CAException std::error_category for handling Core Audio errors as exceptions

AudioHardware Wrappers

C++ Class Description
SFB::CAPropertyAddress A class extending the functionality of a Core Audio AudioObjectPropertyAddress
SFB::CAAudioObject A wrapper around a HAL audio object
SFB::CAAudioDevice A wrapper around a HAL audio device
SFB::CAAudioStream A wrapper around a HAL audio stream
SFB::CAAudioSystemObject A wrapper around kAudioObjectSystemObject

AudioToolbox Wrappers

C++ Class Description
SFB::AudioFileWrapper A bare-bones wrapper around AudioFile modeled after std::unique_ptr
SFB::ExtAudioFileWrapper A bare-bones wrapper around ExtAudioFile modeled after std::unique_ptr
SFB::CAAUGraph A wrapper around AUGraph
SFB::CAAudioFile A wrapper around AudioFile
SFB::CAExtAudioFile A wrapper around ExtAudioFile
SFB::CAAudioFormat A wrapper around AudioFormat
SFB::CAAudioConverter A wrapper around AudioConverter

Ring Buffers

C++ Class Description
SFB::RingBuffer A generic ring buffer
SFB::AudioRingBuffer A ring buffer supporting non-interleaved audio
SFB::CARingBuffer A ring buffer supporting timestamped non-interleaved audio

Utility Classes

C++ Class Description
SFB::ByteStream A ByteStream provides heterogeneous typed access to an untyped buffer
SFB::CFWrapper A wrapper around a Core Foundation object
SFB::DispatchSemaphore A wrapper around dispatch_semaphore_t
SFB::ScopeGuard A class that calls a function upon destruction
SFB::UnfairLock A wrapper around os_unfair_lock implementing C++ Lockable
C++ Class Description
SFB::AudioUnitRecorder A class that asynchronously writes the output from an AudioUnit to a file

License

Released under the MIT License.

About

Classes simplifying common operations in Core Audio and Audio Toolbox.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published