When working with digital audio workstations (DAWs) on macOS—such as Logic Pro, GarageBand, Ableton Live, or Reaper—installing third-party synthesizer, equalizer, or compression plugins can sometimes introduce system instability. If a newly installed plugin crashes during launch, causes DAW scanning to hang, or gets quarantined by Logic’s Audio Unit Manager, determining the exact cause inside graphical hosts can be nearly impossible. macOS includes a specialized command-line utility built into the Core Audio SDK: auval (Audio Unit Validation Tool). By running plugins through rigorous, standardized headless tests, auval identifies parameter errors, buffer mismatches, memory leaks, and render crashes directly in Terminal.
Understanding Audio Unit Architecture and Validation
In macOS, audio plugins conform to Apple’s Audio Unit (AU) standard. Plugins exist primarily in two formats:
- Audio Unit v2 (AUv2): Bundles with the
.componentextension installed in/Library/Audio/Plug-Ins/Components/or~/Library/Audio/Plug-Ins/Components/. They execute within the DAW process’s address space. - Audio Unit v3 (AUv3): Packaged as modern App Extensions (
.appex) running out-of-process in isolated sandboxes to protect the host DAW from crashing.
Every Audio Unit is registered with the system’s Audio Component Manager using a 4-character type, subtype, and manufacturer code (such as aumu for music instruments, aufx for audio effects, and augn for generators). Before a professional DAW loads a plugin, it evaluates whether the component passes Apple’s official validation tests. The auval utility runs these exact unit tests from the command line.
Listing All Installed Audio Units with auval
To inspect all Audio Units currently detected on your Mac, open the Terminal application (found in /Applications/Utilities/Terminal.app) and execute:
auval -a
The command queries the component registry and outputs every registered plugin along with its technical 4-character codes:
aufx comp appl - Apple: AUDelay
aufx dely appl - Apple: AUPeakLimiter
aumu syn1 fabf - FabFilter: Saturn 2
aufx eq01 fabf - FabFilter: Pro-Q 3
Each entry displays:
- Type:
aufx(Effect),aumu(Music Instrument/Synth),aufc(Format Converter),augn(Generator). - Subtype: Unique 4-character identifier assigned by the developer.
- Manufacturer: 4-character manufacturer code (e.g.,
applfor Apple,fabffor FabFilter). - Name: Human-readable vendor and plugin title.
Validating a Specific Audio Unit Plugin
When a specific plugin fails to appear in Logic Pro or crashes the host, run auval directly against its 4-character type, subtype, and manufacturer codes using the -v flag.
For example, to test an audio effect plugin with type aufx, subtype eq01, and manufacturer fabf, execute:
auval -v aufx eq01 fabf
The tool initializes a clean Core Audio test harness and streams the validation stages in real time:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
AU VALIDATION TOOL VERSION 1.10.0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
VALIDATING AUDIO UNIT: 'aufx' 'eq01' 'fabf'
Manufacturer String: FabFilter
AudioUnit Name: Pro-Q 3
Component Version: 3.2.1
TESTING OPEN TIMES:
COLD:
Time to open AudioUnit: 42.15 ms
WARM:
Time to open AudioUnit: 4.82 ms
VERIFYING PROPERTIES:
PASS: Property info tests
PASS: Parameter info tests
TESTING RENDER CRASH HAZARDS:
PASS: Channel configuration tests (1->1, 2->2)
PASS: Sample rate changes (44100, 48000, 96000, 192000 Hz)
PASS: Max frames per slice rendering (up to 4096 samples)
SUCCESS: AU VALIDATION SUCCEEDED
If the test completes with SUCCESS: AU VALIDATION SUCCEEDED, the plugin strictly adheres to Apple’s Core Audio specifications and is safe for live audio production.
Diagnosing and Troubleshooting Validation Failures
If a plugin fails validation, auval prints the exact failure stage and error reason before terminating:
- FATAL ERROR: Initialize: Indicates the plugin failed to allocate its internal audio buffers or failed license key verification upon instantiation.
- Render Crash / EXC_BAD_ACCESS: The plugin crashed when subjected to extreme sample buffer sizes (such as rendering 4,096 frames at 192 kHz). This reflects an unhandled buffer overflow in the developer’s C++ DSP code.
- Parameter Info Test Failed: The plugin declared non-standard parameter ranges or invalid default values, causing DAW automation curves to fail.
Reviewing this terminal output pinpoints whether an issue stems from licensing dongles, corrupt presets, or an unpatched DSP bug.
Forcing Audio Component Cache Rescans
If you update a plugin that previously failed validation, macOS may retain the failed status in its component cache. To clear the system’s Audio Unit cache and force DAWs to re-evaluate all components, remove the cache file in Terminal:
killall -9 AudioComponentRegistrar
rm -f ~/Library/Caches/AudioUnitCache/com.apple.audiounits.cache
rm -f ~/Library/Caches/com.apple.audiounits.cache
Launch your DAW or run auval -v ... again; macOS will rebuild the cache cleanly with the updated plugin binary.
Using auval provides audio professionals and sound designers with an objective, host-independent testing utility, ensuring studio Mac environments remain stable and crash-free.