SFBAudioUtilities

0.2.0

Core Audio, Audio Toolbox, and AVFAudio utilities
sbooth/SFBAudioUtilities

What's New

Version 0.2.0

2024-04-25T15:02:03Z

Various C++17 updates

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++17 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

  1. Clone the SFBAudioUtilities 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

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.

Description

  • Swift Tools 5.6.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sat May 04 2024 13:01:04 GMT-0900 (Hawaii-Aleutian Daylight Time)