Updated: The plugin pictured here, as in the Apple story, is Urs Heckmann’s Filterscape. I ommitted a reference to his site. Urs has done some truly incredible things with AU and in plugin design in general; sorry I missed that. See comments for some heated discussion from developers on AU, from a number of angles. -PK

Apple is crowing about its growing “Audio Unit community” on its developer site:


The Sound of Opportunity: The Audio Units Community Takes Off [Apple Developer Connection]


Now, to be honest, I’ve never seen anything that special about Audio Units. AU adds another format to the pile without adding any major new features, and it’s Mac-only; the whole point seems to be Apple giving themselves a platform “exclusive.” As an end user, I think fxpansion‘s wrapper is a must-have for packages like Logic, and I’m even happier that Ableton Live supports VST and AU seamlessly on the Mac (and DirectX/VST on the PC).


But developers I’ve talked to are, for the most part, perfectly happy porting plugins to the Mac and to AU. (Cakewalk, the Windows-centric developer that just brought their Dimension instrument over, says, basically — a piece of cake. Or pie.)


I’ll also say, for the novice developer, Apple has a lot of goodies available for free. Want to develop for Digidesign? Prepare to jump through a LOT of hoops. Want to develop an AU plugin? Everything you need is available as a free installation from the disc that came with your Mac or OS X upgrade.


If that’s not enough, Apple has reduced the whole development process to five easy steps in the article above. Some steps are easier than others. Step one: “start with an idea.” Great! Step two: “Write the DSP algorithms . . . the Core Audio SDK . . . is a collection of C++ classes. By subclassing from these classes to build your plug-in, you can be assured that the your engineering foundations are solid.” Okay, a bit trickier.


Sure, the easy way is to develop a plugin in a tool like Reaktor or Max/MSP, but if you’re learning to program, this could actually be fun. Let us know how it goes, okay? (And developers — want to chime in on your take on the “AU community”?)

  • Guest

    Five Reasons Why Apple Is Full Of Shit, By Audio Damage:

    1) The documentation for the AU SDK is basically nonexistent. It makes no sense and contradicts the code in places. To say that this makes steps 1 through 4 of building an AU anything but easy is an understatement.

    2) Apple keeps changing the API. An AU that you compiled in 10.3.8 won't work in 10.3.9. An AU that you compiled in 10.4.2 won't work in 10.3.8

    3) Subclassing the DSP off the CoreAudio kit means that your DSP won't be portable to Windows. So your AU will only ever be an AU, not a VST.

    4) The examples all use Cocoa UIs. There is no built-in GUI kit worth the name. So you're stuck with lame-ass OSX sliders and text-edit fields unless you know how to make such things, or use VSTGUI.

    5) The example code that Apple provides is, in a nutshell, not helpful. I could expound on this, but I'd end up ranting.

    It is far from easy to make an AU that does anything even remotely interesting.

    If you want to make a simple distortion or delay, and use the stock sliders and what-not, you're probably looking at several days of puzzling through the docs, comments, and CoreAudio mailing list.

    I can't speak for other developers, obviously, but "piece of cake" is just about the last phrase I would come up with to describe making an AudioUnit plug-in.

    Chris Randall
    Audio Damage, Inc.

    • ura Dumbass

      Yep, looks like time proved YOU ARE A STUPID ASSHOLE, and Apple is right.

      Surprise.

  • Guest

    yes, what Chris said. it's all very bad, and i'm not sure if the right person(s) @ Apple is even aware of this.

  • atomic_afro

    Sizzle. Ouch!

  • Guest

    Won't compete with anyone who has AU programming experience, but isn't AU The Format that promised -sigh- resizable windows?

    I'm getting SICK of these "hey we modelled 60s hardware, here's your three knobs that barely fit in 1024*800 screen" plugins…

  • Guest

    How about Sonic Birth? Seems to promise easier development of Audio Unit plugins/virtual instruments in a graphic environment. Thoughts?

  • Guest

    I think Raw Material Software's Juice framework allows you to do resizable windows for VST.

  • Guest

    VSTGUI has resizable windows. Nobody ever uses them because they're a giant pain in the ass. For an AU, the view is separate from the plugin itself; it can be resizable if the devs want it to be; depends on the UI kit they use. However, if you do your UIs with flipping filmstrips of bitmaps (like most people), you're generally not going to allow resizing, because it's impossible to deal with.

    Chris Randall
    Audio Damage, Inc.

  • Guest

    How about plugins with a vector/openGL GUI…

  • Guest

    Of course, an OpenGL UI is going to be resizable if the programmer makes it so. But for a plug-in programmer, that's yet another kit he has to learn how to use, and an open-source one at that (which generally means asserific.)

    So, to refresh, in order to make a resizable plug-in for all formats, not only do you have to learn the RTAS, AU, MAS, and VST kits, but you have to learn OpenGL, and figure out how to hook your UI in to all those different formats. I hope this explains why resizable plugins aren't common.

    Chris Randall
    Audio Damage, Inc.

  • Maurice

    Well thanks, Chris, for pointing this stuff out–I was beginning to feel like an idiot because the AU docs and samples weren't making any damned sense to me (as compared to the VST SDK). Nice to know the problem isn't entirely me.

  • Guest

    Hey, in future please *ask* when using screenshots of my software in your articles.

    And now… add a link to filterscape.com!

    Thanks,

    Urs
    u-he.com

  • Guest

    Chris,

    the API hasn't changed at all. It was just extended, but nothing was taken away. The SDK changes. And the link format has changed with gcc4.

    But More Feedback Machine, compiled under 10.2.3, still runs in Tiger.

    Regarding documentation… well, show me the docs for other plugin APIs. What do they say and what's the actual truth of implementation? Apple at least provides full hosting code and they *are* responsive on their mailing list.

    Regarding subclassing… don't be childish. Abstraction is easy and writing the same DSP code for crossplatform use is easy, too.

    Sheesh… don't mention VSTGUI, please. VSTGUI might be good for quick and simple layouts, but certainly not for complex stuff. And for easy stuff I'd use Interface Builder. But that doesn't work for VST I guess.

    The example code is shyte. That's IMHO true.

    Cheers,
    ;) Urs

  • Guest

    Urs is very anti-VSTGUI, and is also a rabid hater of plugins that look like hardware; he should qualify his statements accordingly. :grin

    That said, it's served me well for quite complex things, and once we made an abstraction layer to deal with the 0,1 nonsense, it works great for AU, too.

    Of course, it's worth mentioning that I wouldn't even know where to begin with something like Filterscape. When you released that I was floored, and rightly so. Urs 0wnz0rs OpenGL. I'm not worthy…

    Viz. the docs issue, the simple fact is that I _can_ show you docs for the other plugin formats. The Apple docs are useless, and I don't want to write a letter to the CoreAudio list and wait for an Apple person to answer a question for something that should be clearly commented in the code. Of course, we've pretty much figured it out by now, but Apple didn't make it easy on us.

    And finally, compile MFM now, with the current Xcode, and see if it still works in 10.3.8. Or better yet, just try to compile it.

    -Chris

  • admin

    Chris and Urs, as a fan of the work both of you have created, it's a pleasure to hear what you have to say, really!

    I have heard complaints from other developers about Apple, and I wonder if part of what's absent is solid documentation and good example code. It could just be a resources/time issue, but maybe some feedback in this direction could compel them to work on this.

    I will say, every time I meet an Apple music/audio person face-to-face, they've asked for feedback. I don't know people on that end at Microsoft, nor do I have a real clear sense of what the future of the Steinberg/VST platform is. But it seems like Apple has some potential solutions here that wouldn't require much heavy lifting on their part, and could result in the kind of differentiated Mac audio platform they originally set out to create. And if they do want developers onboard, documentation could be a major part of the solution.

    Peter

  • Guest

    I expect that the right person(s) at Apple *are* aware of it, and unable to do/say anything about it.

    Let's hope that, this time, it doesn't wind up the same as the Hypercard story.

  • Guest

    At least Apple tried to do something to move resizable GUIs forward in plugin development.. by bullying VST out of Logic! :P