Audio Units registration and removal (AU, AUv3)

Dealing with audio units is a pain, here are some commands I’ve found which actually seem to work (on Sonoma at least).

Force refresh

It’s often necessary to kill the audio component service in order to force a refresh from disk. You may need sudo, otherwise it’s just:

killall -9 AudioComponentRegistrar

Check status

Simple command to check the current list of registered audio units, in this case filtering to include only my own plug-ins. You can see below, I have two AUv2 plug-ins installed in the usual system location.

caustik@Aarons-Mac-mini APU % auval -al | grep APU
aufx apuC APUX  -  APU Software: APU Loudness Compressor     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Compressor.component/)
aufx apuM APUX  -  APU Software: APU Loudness Meter     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Meter.component/)

AUv3

Here’s the bit which can be a real headache. If you have AUv3 builds enabled in JUCE, every time you build it will automatically be registered and this will actually override an existing AUv2 component in many cases. After building a local debug version, for example, I wind up with the following:

caustik@Aarons-Mac-mini APU % auval -al
aufx apuC APUX  -  APU Software: APU Loudness Compressor     (file:///Users/caustik/_work/APU/APU/APU/plugins/LoudnessCompressor/Builds/MacOSX/build/Debug/APU%20Loudness%20Compressor.app/Contents/PlugIns/APU%20Loudness%20Compressor.appex/)
aufx apuM APUX  -  APU Software: APU Loudness Meter     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Meter.component/)

See how the AUv2 component is no longer listed, but now the debug version AUv3 has snuck in? Irritating, confusing, causes all sorts of problems if you don’t know it’s happening.

Removal

In order to deterministically install a specific version of your AUv2 or AUv3, the only fool-proof way I’ve found is to remove any file which shows up in auval -al, and then kill the AudioComponentRegistrar to refresh the list. In the case below, this restores the originally registered component:

caustik@Aarons-Mac-mini APU % rm -rf /Users/caustik/_work/APU/APU/APU/plugins/LoudnessCompressor/Builds/MacOSX/build/Debug/APU\ Loudness\ Compressor.app/
caustik@Aarons-Mac-mini APU % auval -al
aufx apuC APUX  -  APU Software: APU Loudness Compressor     (unknown URL)    Cannot open component: -1
aufx apuM APUX  -  APU Software: APU Loudness Meter     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Meter.component/)
caustik@Aarons-Mac-mini APU % killall -9 AudioComponentRegistrar
caustik@Aarons-Mac-mini APU % auval -al
aufx apuC APUX  -  APU Software: APU Loudness Compressor     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Compressor.component/)
aufx apuM APUX  -  APU Software: APU Loudness Meter     (file:///Library/Audio/Plug-Ins/Components/APU%20Loudness%20Meter.component/)

Hopefully this saves somebody the time I had to waste reverse engineering this process.

To debug issues with AUv3, you can use the following command:

pluginkit -mv | grep YourName

This lists all the app extensions (appex) that are installed on the system. To remove a specific appex, do:

pluginkit -r /path/to/appex
1 Like