April 24, 2012

I want to do plugins for AAX DSP.

But there are problems.

AAX achieves its stability by virtue of each plugin being able to report its cpu usage ahead of time. This means that the system can determine in advance how to arrange things, and provide an incredibly stable system. It’s great.

However, consider EQuality. In Digital mode, with all bands disabled, it uses essentially no CPU. However, stick it in linear phase and select a 3second IR length (max IR length pref), and it uses a LOT of cpu… plus a (completely uncompensatable) 1.5sec of latency from the IR. In fact, I’d be impressed to see any DSP pull that off – it’s basically an offline process for ultra hi-res mastering… but I +do+ need to provide the option.

Even in Digital mode, the cpu usage varies a lot; enable all three filters at 48db/oct, automate them all, and it uses effectively 12 bands of EQ for the filters, and a lump of extra cpu to prevent pops and clicks from the automation. So, CPU can vary wildly. What do I report? The case is worse with EQuick which can have 32 bands of 48db/oct filters…

Likewise with compassion, as soon as you add sidechain EQs, linear-phase splitting, the clip-limiter and transient shaper… cost rises.

Historically, people have provided for this by having versions with features cut out – 3 band EQs and the like… but in this case, I’d need to make dozens of different cutdown versions so you could enable a few features without paying cpu cost for a few others you didn’t need.

So, there is my quandary with AAX-DSP. It’s a fantastic system, and I +REALLY+ want to get things running there, but I can’t work out how to do so without hugely complicating things, or dropping features. Consider this a solicitation for ideas ;)


6 Responses to “AAX DSP”

  1. Hey Dave… I own all 3 of your plugins, and use them everyday. I would really love to have these as AAX-DSP plugins. Is there a way to make a limited amount of cut down versions, like the digi eqIII plugin? Is that an excessive amount of extra work?

    It seems like users would want the most cpu hungry versions for dsp (that the dsp can handle).

    The problem Avid seems to be having is getting any AAX-DSP plugins released at all. I am ready to purchase anything that is AAX-DSP, just so I can save voices and actually use my hdx system processing power.

  2. I don’t know..Think AVX, not AAX (Dsp) ;)

  3. Can you just report the maximum possible cpu usage and then have the plug-in vary from minimum to maximum depending on the requirements? Or, is the reported cpu usage a static figure that cannot change?

  4. Actually, it looks like I /can/ do this, roughly as you describe. So, the question opens up again ;) But I definitely need to get AAX-Native out first!

  5. Hi Dave,

    All great questions. Our plug-ins don’t really have the same behaviors you describe here, so I can’t directly correlate to something we make, but I have some collaborative questions for you.

    We can’t allow changing the reported usage while the transport is playing as the updated count could exceed a chip limit and trigger a shuffle. This is too much like the Native experience, so probably not a good thing. However, what if you could change cycle counts while the transport is stopped? Would that provide a decent workflow? You’d have to disable controls that would result in changes in cycle count while the transport is playing, but you have the hooks to do that already.

    Just curious. If you want to chat some more about options drop me an email soon.

    Dave Tremblay
    AAX and Plug-ins Architect

  6. It seems like dave is onto something here. is there a way to disable plugin changes while playing back for certain features?

Leave a Reply