Sometimes the best way to fix something is to break it. That applies to development processes as well as software itself. After some audio developers and users raised frustrations over compatibility issues with Audio Units and Mac OS X 10.4.9, a member of the Apple Core Audio team responded on the Core Audio development list by explaining the tool in question (the AU validator, auval) and offering to seed copies to any developer not already being seeded. I’m not sure whether auval is the only issue or not; plug-ins I’m using all seem to be functioning normally after the update and I’m not a developer. But there are two major points here: one is that auval itself shouldn’t have any impact once a plug-in is running, and the other is that any changes to auval should be seeded to developers before a problem has caused.
Apple’s Bill Stewart writes with details, and clarification on how the AU spec has changed in Mac revisions. This may not change our advice to be cautious with operating system updates — but, truthfully, you should always back up your OS install any time you make a Mac update, regardless of how small. (And that’s easy enough to do on Mac — cough, Windows!)
Here’s Bill’s response. Note that this is not an official Apple statement, but as it’s on the open Coreaudio-API list, any developer is welcome to join the list, check the archives, and brush up on the details of Apple’s audio specs.:
Regardless of any [failure of the validator], auval has no actual influence or affect on the audio unit when it is used within a host app.
The primary API specification for audio units was described with Mac OS X 10.2; it is known colloquially as “Audio Unit v2”; version two of the API. The API calls are expressed primarily in the AudioUnit.framework, in the header files AUComponent.h and AudioUnitProperties.h. Audio units have of course developed since then, with new features added to accommodate different scenarios and user requirements, however the basic API semantic and compatibility has remained as defined at that time.
The auval tool has also developed since then; it has changed to test and validate new features and is also able to detect problems now that it previously wasn’t able to. We regularly seed copies of auval to all audio unit developers to ensure that the auval tool is not itself introducing problems as well as to provide a chance for
feedback and other comments. We seed as often as we can; providing builds months ahead of when we would expect these to be released to the general public. We expect developers, just as our users expect this of us, to incorporate fixes to these problems in their updates, hopefully before a new version auval itself is released.
As an example of this, the changes that were made to auval as released in 10.4.9 were largely made and seeded to developers in Sept/ Oct 2006 (some of these changes even earlier than this). We also disabled some of the tests as they would apply to a Tiger based system because we didn’t think they warranted a failure on such a
system. In these cases, they will however fail when running against the auval installed with a Leopard system; this version has also been seeded to developers.
Some of you have had other issues; without more data it’s hard to tell what the source of these problems might be or even if they’re related to the 10.4.9 update. As always, we welcome discussion of issues (in as much detail as you can provide, please) in comments or — better yet — on the forums. Obviously, if those other issues turn out to be unrelated to auval, and they can be reproduced, developers may need some additional explanation from Apple.
I will say, music development is unusually tough: it involves untold combinations of complex software, developed by big software houses and independent hobbyists alike, all of which has to function perfectly in real-time. And 2007 so far has demonstrated even big companies can sometimes get out of sync (as seemed to happen with Vista and some of Microsoft’s largest hardware developers — ironically leaving many smaller developers in our own niche ahead of the curve. Increased communication is often the best solution, so if we can gripe on CDM and bring further attention to these issues, we will.