SFBAudioUtilities
A Swift package containing utility classes and extensions simplifying common operations in Core Audio, Audio Toolbox, and AVFAudio.
The package is organized into three libraries:
Module Name |
Language |
Description |
CXXAudioUtilities |
C++14 |
Assorted C++ classes |
AVFAudioExtensions |
Objective-C |
AVFAudio class extensions |
CoreAudioExtensions |
Swift |
Extensions for Core Audio types |
Installation
Swift Package Manager
Add a package dependency to https://github.com/sbooth/SFBAudioUtilities in Xcode.
Manual or Custom Build
- Clone the SFBAudioUtilities repository.
-
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 |
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::DeferredClosure |
A class that calls a closure upon destruction |
SFB::DispatchSemaphore |
A wrapper around dispatch_semaphore_t |
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 |
AVFAudioExtensions
Extended Class |
Description |
AVAudioChannelLayout |
Functions for building channel layouts from channel labels |
AVAudioFormat |
Format transformations |
AVAudioPCMBuffer |
Functions for buffer manipulation |
CoreAudioExtensions
Extended Entity |
Description |
AudioChannelLayout |
|
AudioStreamBasicDescription |
Common format support |
License
Released under the MIT License.