Something appears to be problematic with defining controls both in the initHardward() method of the AudioEngine (where Apple's docs say it should be done) and the initHardware() method of the AudioDevice (where, for whatever reason, it is being done now). Fixing the problem in Live is simply eliminating one of the two places it is being done (commenting out either section fixes the problem).
We should probably come back and clean this up so that it all happens in AudioEngine, however I want to figure out why the code was added where it is currently -- perhaps there is a reason for it.
There are other problems remaining. For example, if you call kextload on soundflower, and then kextunload, you can't actually unload it! It seems to be allocating AudioEngines and then not properly releasing them. It isn't obvious from looking at the code why this is. The solution (to unload) is to delete the kext and reboot. The installer now reflects this problem by forcing a reboot. The script generated installer doesn't provide an option for forcing the reboot so we have to use the PackageMaker UI and pmdoc.
git-svn-id: https://soundflower.googlecode.com/svn/trunk@31 0051ed44-974d-0410-95fd-975f363cc5de