Reliably removing Audio Unit plugins

I want to remove all Audio Unit versions of my plugin. I try all the recommended ways but there is often some old “ghost” version that gets found each time I rescan.

Often this will keep me from testing new versions and there is always a degree of uncertainty of whether I am using the current build. At times I resort to altering something in the GUI before each build to make sure that my changes are actually being implemented.

I have tried everything Google has to offer, including

  • removing the .component files from the usual folders, these being “/Library/Audio/Plug-Ins/Components” and “/Users/myUser/Library/Audio/Plug-Ins/Components”
  • resetting removing the audioUnitCache. Most guides say this is to be found in “/Library/Caches”. In my case it is not there. There tends to be a cache in “/Users/myUser/Library/Caches” which I would remove.
  • I restart my Mac after this, especially the removal of the AU cache.

More often than not, these measures did not lead to success. Some older version of my plugin would always pop up again. This happens in AudioPluginHost, GarageBand and Logic alike, so I guess this behavior does not depend on the host.

The “Show in Finder” option in the list of plugins of the AudioPluginHost is greyed out (as it is for all AU plugins).

It is possible replace the “ghost” versions with new builds. On one single occasion did I manage to remove all AU builds at once but i have no idea what made the difference.

I am on MacOS Sonoma 14.1.1.

How do i clear this hidden AU memory that my system seems to have?

I regularly use these scripts to give myself a sane debug environment - I’m not making the claim these are great scripts, just that they work for my development flow (see read -p “pause before you delete” function, I regularly ctrl-c at this point, thats why its there) - you’d of course have to change these to reflect your unique plugin names, too:

Delete Plugin Instances:

➜ delete_all_AA_plugins.sh
#!/bin/bash
echo "Listing ALL Austrian Audio Plugins found on this system:"
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "StereoCreator*" -exec ls -ald {} \; 2>/dev/null
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "PolarDesigner*" -exec ls -ald {} \; 2>/dev/null
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "AmbiCreator*" -exec ls -ald {} \; 2>/dev/null
read -p "Press ENTER key to delete ALL of the above Plugins found on this system!"
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "StereoCreator*" -exec rm -rfv {} \; 2>/dev/null
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "PolarDesigner*" -exec rm -rfv {} \; 2>/dev/null
find /Library/Audio /Library/Application\ Support  ~/Library/Audio ~/Library/Application\ Support -name "AmbiCreator*" -exec rm -rfv {} \; 2>/dev/null

Delete the caches:

➜ purge_plugin_cache.sh
#!/bin/bash
sudo killall -9 AudioComponentRegistrar
rm ~/Library/Caches/AudioUnitCache/com.apple.audiounits.cache
rm ~/Library/Caches/com.apple.audiounits.cache
rm ~/Library/Preferences/com.apple.audio.InfoHelper.plist
rm ~/Library/Preferences/com.apple.logic.pro.cs
rm ~/Library/Preferences/com.apple.logic10.plist
rm ~/Library/Preferences/com.cockos.reaper.plist

If you deleted the .component files using Finder, then make sure to also empty the trashcan.

I usually test with auval to see if the AU is really gone, since it will give an error message if it can’t find the plug-in.

Yes, I fell over this one enough times that I just wrote the above scripts to be sure the plugins get blown away for good.

Don’t forget that every DAW in your system can choose to cache/not-cache the plugins list as well - thus the removal of relevant .plist files also …

Hey all, thanks for your suggestions, they certainly helped. I have now returned to the matter and was able to resolve it.

Mostly clearing the known plugin and cache locations and emptying the trashcan does the trick. Even this didn’t resolve the issue for me though, and only today did I find out why.

I should have consulted auval more. Specifically the command

auval -al

which lists all plugins and also their locations. Here I saw that the standalone versions of my plugins were listed. They weren’t in any cache or standard plugin location, but in the folder where they were built. For some reason these were the plugins that were appearing in Garageband - not the .component plugins or cached “ghost” versions of the same. Deleting the standalones (and emptying the bin just to be sure) finally made them disappear in Garageband (and probably Logic as well), giving me the clean slate I was looking for.

I wrote a short blog about it recently. The registering of AUv3 from arbitrary directories on the system is a recipe for extremely confusing behavior.