trafficstars
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.