Apple supplied sample code AudioUnitV3Example quite messy as it contains C++, C, Obj-C++, Swift code at once.
I faced weird issues while translating sample code to pure Swift. Such as missed mData
pointers in buffer lists, In-Place processing behaviour and absence of Software for testing. At least for now (2016 Oct) AULab does not support AUv3.
AudioUnitV3Example also does not explain how to build PlugIn which is not pure DSP unit, but for instance Visualiser (Level meter, Oscilloscope, etc.).
This is a standalone application which can load any AudioUnits v3 PlugIns registered in the system.
Playback graph quite simple: AudioFile > Effect (optional) > Main Output
.
Application has Main window and floating Media Library panel.
You are using Media Library panel to drag and drop media files into Main window. It is possible also drag files from Finder.
Main window has two tables with list of Effects and Presets.
Selecting Effect will insert it into playback graph.
Selecting Preset will activate corresponding Factory preset.
This is a Hosting application with embedded Extension. Hosting application dynamically registers AttenuatorAU AudioUnit and loads it In-Process. AttenuatorAU extension registered by the system and available for any AudioUnit v3 hosts (such as AUHost.app).
Note: You must move application to /Applications
folder in order to inform system to perform AttenuatorAU.appex
registration.
Playback graph quite simple: AudioFile > AttenuatorAU Effect (unloadable) > Main Output
.
Application has Main window and floating Media Library panel.
You are using Media Library panel to drag and drop media files into Main window. It is possible also drag files from Finder.
Main window has two buttons and two areas (Media Item View and AttenuatorAU User Interface). Pressing Load AU will insert AttenuatorAU into playback graph. Pressing Unload AU will remove AttenuatorAU from playback graph.
It is a AudioUnit v3 AudioUnit which can be loaded by any AudioUnit v3 host (such as AUHost.app).
It has two areas: funny Level Meter and Gain control.
Volume level meter uses Metal 3D graphics engine for rendering signal volume in funny way.
Gain control used to control DSP engine of AudioUnit PlugIn. Under the hood it bound to multiplication coefficient used to in functions from Accelerate framework.
- Xcode 8 (Swift 3)
- iOS 9, macOS 10.11
- Metal
Note: In order to make custom build and use sandboxed binary (with underlying PlugIn/XPC subsystem) it is required to sign Hosting application and Extension with appropriate certificate. If you don't have Apple Developer ID (and thus don't have code sign certificate), then download and use existing binary.