I’ve also found an answer to problem #1 regarding the failure to validate with auval -comp
on ARM64:
from: Porting Your Audio Code to Apple Silicon | Apple Developer Documentation
For the
arm64
architecture, always use the Audio Component API to load Audio Units, codecs, and other code modules into your app. The Audio Component API is the modern way to search for loadable code modules, and it’s available in macOS 10.6 and later. Apps that target thearm64
architecture or link against the macOS 11 SDK cannot use the legacy Carbon Component Manager API to open Audio Units. If your app uses the Carbon Component Manager, plan to migrate off of it when porting your app.
If you develop Audio Units or codecs, update your code to support the Audio Component or Audio Unit Extension APIs if you haven’t already done so. When you link an Audio Unit or codec against the macOS 11 (or later) SDK, use one of these modern APIs instead of the Carbon Component API.Note:
To preserve compatibility, apps that link against the macOS 10.15 (or earlier) SDK may continue to use the Carbon Component Manager to load Audio Units and codecs. Similarly, Audio Units and codecs built using the macOS 10.15 (or earlier) SDK may continue to include separate resources and entry points to support older APIs.
The -comp
switch instructs auval to test the AU using the old, deprecated, Component Manager API, which is the one that’s no longer supported on ARM64, whereas auval without that switch tests the AU using the current, more modern Audio Component API, available since macOS 10.6.