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.

  • ben

    hey Peter,

    how do you back up your OS before you install an update?

    that definitely seems like something that could save my a** in the future.

  • Carbon Copy Cloner is one good option:

    And you can use rsync and ditto from the command line (documented by CCC's dev):

    There are other routes, as well, I believe. If you're comfortable with the command line, that may be sufficient. And any Mac backup utility capable of backing up Library will suffice.

    All a heck of a lot easier than on Windows — not a dig at PCs, just a statement of fact from someone who has to deal with both!

  • Danny

    What windows software are you using? 'Cause I deal with all three OSs and I'd your statement isn't much of statement of "fact". Carbon Copy is terrific but TrueImage and Drive Image XML or Karen's Replicator or Handy BU, depending on what you need to do, work just fine.

  • richardl

    Ditto wrt Acronis TrueImage.

  • Please, let's not start an OS comparison here. I would never use this as the basis to choose operating systems, but in my experience:

    * It's easier to deal with system files at the command line with Mac.

    * It's easier to clean-install the operating system, while leaving previous system files.

    * Integrating existing system files is easier to do.

    * It's easier to install multiple operating systems on the same machine.

    * It's easier to create bootable drives on Mac.

    * The lack of the intrusive authorization measures on Mac makes it far easier to install in multiple locations. Of course, it also means the OS is easier to pirate; it's not a coincidence that Apple's in the hardware business and Microsoft is in the software business.

    I didn't say it was impossible on Windows, and the tools you suggest are all good ones. Vista is a big step forward with its image-based install, but there's still work to be done.

    Obviously, on Windows you equip yourself with similar tools and make it work.

    I do still think it's a major concern that the Mac operating system has had so many incremental updates. Whether the developers were seeded these updates or not, this has the potential to produce some major compatibility issues, and it directly increases the number of variables developers have to face — not simply getting ready for 10.5, but supporting 10.4.9, and 10.4.8, and 10.4.7, etc. Microsoft's updates, beyond SP1 and SP2, have tended not to introduce those kind of issues, and I hope that continues to be the case.

    Anyway, yes, the most important thing is to make these systems work for you … all of them.

  • Retrospect is my favorite. It's never failed me and has definitely saved my ass a few times. I remember even in the past year having to "reverse" directions and restore about 2 terabytes of data after a nasty update. This is even while keeping a clean directory via Disk Warrior, repairing permissions, running sbin/fsck -f & running reset-nvram and reset-all. You never know when a hard drive might fail or your software ends up scrambled. ALWAYS back up everything before any update.

  • I backup my mac with apple's own Disk Copy, I just make a compressed image file onto another hard drive, then use the restore feature if I need to jump back.

  • chronosync is excellent, very granular, but doesn't creat bootables

    and superduper is great too, and will make bootables

  • I'm afraid I have to take issue with this statement:

    "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."

    Logic uses auval directly to determine whether or not it will allow an AU to be used. auval itself doesn't influence Logic, but if an AU fails auval (for whatever stupid reason Apple came up with this week) then it is unusable in Logic. Post hoc ergo propter hoc, quite frankly.

    In any event, I'm not sure who the hell they "seeded" to, but it wasn't any AU developer I know. We weren't told. Ohmforce wasn't told. Fucking WAVES wasn't told. That runs the gamut from small to large, and none of these companies knew. As far as I'm aware, the _only_ place these changes were noted was on the AU Lab mailing list, something that like 4 people actually read. It wasn't mentioned on CoreAudio, the logical (withering pun intended) place for such a discussion.

    No offense to Bill intended, but if you guys are gonna re-invent the wheel anyways, could you just do it the once, rather than coming up with a new wheel every 9 months?

  • oscillations

    Another vote for SuperDuper as far as making images of boot drives. It has the big advantage of being able to update an existing drive clone. Imaging a drive can take a while, but if you do it once with SD any subsequent images only write the changes – taking much less time.

  • Hey Chris, I'm afraid I'll have to take issue with your statement:

    "if an AU fails auval (for whatever stupid reason Apple came up with this week) then it is unusable in Logic."

    False…I use failed plugins all the time without any glitches. Within the AU validation app, you can choose to use a failed plug, regardless of it's status.

    The lesson to be learned from this thread is to not jump the gun while updating your OS. Back up often and you'll side-step any of this bullshit. It's that simple.

  • Thanks for the backup tips, everybody! Actually, with all these operating systems flying about, maybe a backup roundup for both Mac and Windows is in order.

    @Flip: The problem is, as even Bill notes elsewhere in the email, sometimes the way auval handles a failed indication is by crashing Logic. 😉 So, obviously, that's not something you want to have happen as an end user, let alone as a developer.

    @Chris: I hope this is getting directed at Apple; the fact that there was finally an explanation of the change on the Core Audio list perhaps an indication that it was. 😉 WAVES not getting it means "seeded" is definitely not the right word, if that's the case. And these things should be solved before builds ship, not after.

    Changes happen … this seems to be about getting better communication going. Like I said, no reason for a flame war; developer relations is something that is always worth improving and fixing.

  • Yeah, I'm definitely not defending Apple! I was infuriated when they took over Logic and messed it up for a good year or so. I remember it crashing like crazy and not being able to get plugins to show up. It seems most of those problems are ironed out. I run every plugin mentioned in this thread without any problems, yet I back up every day. It's the only way….(no rhyme intended) Updates always make me nervous.

  • ben

    hey Peter,

    thanks for the info – and everyone else!

    so do you make a clone of your hard-drive before every update?

    man, that kind of diligence is impressive, and scares the crap out of me for some reason.



  • Be not fuming that you cannot win others as you wish them to be, since you cannot make yourself as you hope to be