Over on the DUC there is a thread that started two years ago asking the community what is the best AAX DSP reverb plug-in that has been recently revived. The consensus then and now seems to be Revibe but there where a number of people chiming in recommending Exponential Audio's reverbs which of course are only available in AAX Native. Michael Carnes, the wizard behind Exponential Audio jumped in to discuss the issues as they arose and so I thought it would be worth bringing them together here. But as Michael's comments and observations were made in December 2013 we asked him to bring it up to date for us here on Pro Tools Expert.
Michael first responded to a comment from "garnoil" who was having problems with with getting 'running out of power messages, even though the CPU usage meter is at 12%....
Michael Carnes Dec 2013: There's an interesting situation that arises on PT11 when you mix native plugins with HDX--you get fewer plugins than you would on a fully-native system! This is because of the way ProTools sets up their dual-domain delay stuff. There are elaborate user workarounds to keep the plugins from going into the short latency queue, but they're a PITA. Theoretically it's possible to keep a plugin out of that queue and I've asked AVID for such hooks. But they haven't committed. It might be helpful if they heard from some users.
I believe that any native plugin is affected by this, but mine perhaps more so because of the larger memory requirements for a reverb. Oddly enough, it seems to have more to do with the simple fact of placing the plugin in the short delay domain, rather than the latency of the plugin itself (at 48K, my reverbs only have a 32-sample latency). I've experimented with buffer size in PT10, and the reverbs are hardly affected by that factor. There's just some odd business going on in PT11. I think that overall the dual-domain stuff is a big plus, but this is one of those places where it could be improved.
Update from Michael Carnes: I’m not aware of this having been addressed in PT12, but there’s always the chance it has been. Since I don’t have an HDX system, I have no way to check for myself. I don’t get customer comments about this topic any longer. That could mean either that it’s been addressed or that (more likely) folks have learned to work around it.
"Mike496" then asked if this adjustment to the ProTools coding and protocol would allow for your verbs to be ported to AAX DSP?
Michael Carnes Dec 2013: It's not a simple matter of recompiling. If that were the case, I'd have done it without being asked. But it's far from simple. A single chip would not run the surround reverb, so I'd have to rewrite the algorithm in such a way that it would be split across multiple chips. At 96K it would take twice as many chips as that. At 192, twice as many again (and I've got a tester working at 352.8). I've had to deal with an algorithm split over multiple chips (the 96K version of the 960L algs lived on 5 chips) and I'm not eager to deal with that monumental PITA again. Now this is different for something like a compressor which uses very little RAM. But the truth of the matter is that a generic processor like an i7, XEON or the upcoming E5 is much better equipped to handle a process like a reverb than any existing dedicated DSP chip I'm aware of. It's hard for me to see the return on investment of what could easily take a year.
It's much easier for me to continue to add value to my products when I'm not spending my time on the minutiae of aging DSP chips (I'm already looking into Atmos and Auro-3D). There's so much more to PT11 than just HDX, and I really believe in the continued potential of the platform. I do--I really do--understand the fears of some users when they're worried about latency buildup and processor unpredictability. At the same time, the latency of my reverbs is 32 samples at 48K. Even when you add in the time to your I/O device, it's still considerably lower that the predelay settings typically used with a reverb.
If it sounds like I'm dedicated to the native world, then that's probably true. I'll always keep an open mind, but I've seen more progress in desktop processors in the last 3 years than in the last 10 years of dedicated DSPs. And yes, I'll be buying the new 'trashcan' Mac Pro as soon as I can. I for one am really looking forward to seeing what it can do.
Update from Michael Carnes: I introduced support for Auro and Atmos over a year ago. I wouldn’t have gotten there if I’d been trying to port to HDX cards. Also got Excalibur and M7Control out the door. By the way, I should interject that it’s all DSP, whether an external box, a special chip or a generic processor. Avid uses the term DSP as a marketing differentiator, not a strict definition.
Michael Carnes Dec 2013: I'd absolutely love to see Avid come up with some sort of Thunderbolt controller that would allow Mac Pros to be used as DSP farms. Tons of power and PCIe speeds. What a system that could make!
Update from Michael Carnes: I still would. Thunderbolt 3 is nearly here.
Michael Carnes Dec 2013: One of the things I really like about PT11 is the fact that the CPU load window now shows all processor cores. The single meter in PT10 is never very helpful, and I often bring up the Apple Activity Monitor to see how core allocation is working out. I'm sure this is old news to a lot of people here, but it never hurts to mention it again. PT--any version--gets nailed by the most heavily-loaded core. It's not hard to set up a mix where most of the load lies in one or two cores while the others are idle. You'll get "Out of CPU" messages when there's actually lots of power still available. Simply moving stuff around, things like track order, number of aux strips, etc, often makes a huge difference in how much you get out of your CPU.
Update from Michael Carnes: I had a conversation with Andy Hall about this, not long before he left Avid. He told me that the core meters didn’t present a strict interpretation of how the cores were loaded. There were some other factors that typically cause the cores in the center part of the display to appear as if they’re busier. it’s close, but not quite true. The Apple or Windows meters still remain the most accurate way to determine load.
Michael Carnes Dec 2013: And while PT11 does a very good job on hyperthreaded cores (any Mac Pro from 2009 onward as well as any I7), PT10 doesn't. The rule of thumb given to me by Gil Gowing at Avid is "Number of physical cores minus one". So on an 8-core 2009 Mac Pro (what I have), that number would be 7. The reality is more nuanced. I took that question to the technical manager of a large and well-known facility. Their settings (assuming an 8-core hyperthreaded machine) went from 1/16 to 14/16, depending on the mix of plugins. You'll know you have the problem if your load meter looks OK, but the audio is full of pops, buzzes and birdies.
Update from Michael Carnes: This is true, but I rarely hear about it any more. PT10 users have now been on the platform for several years and they appear to have sorted most of this out. And my 2009 Mac has been demoted to a Windows machine. My main machine is now the Trashcan.
Michael Carnes Dec 2013: I suspect that's why so many of you spend endless hours setting up templates. So many of this plug, so many of that, set up on tracks laid out like so. Once you get a layout that works for a given application (both technically and artistically), why waste any more time?
I'm sorry if I've wandered a little too far off topic, but I've been surprised at the number of users that contact me who are unaware of all this. Whether you're running fully native or have an HDX/Native mix, I offer the comments as possibly useful hints for improving performance.
Michael then responded to a comment from "Branko" making the point that if you have dedicated DSP, you can rely on that performance and know exactly how your project will behave.
Michael Carnes Dec 2013: Yes, but...
As I've indicated earlier, if you dedicated an entire HDX card to nothing but my surround reverbs at 48K, you might be able to get half a dozen copies (optimistically). Rock-solid. Dependable. Predictable. If you restrict yourself to that same number of reverbs in a native system, you'll have the same rock-solid dependability with scads of CPU left over for other stuff--like another dozen reverbs (if you're on a pure native system, make that another 3 or 4 dozen).
At this point I realize this answer could go on a while. Grab a cup of coffee if you're still interested...
There are a lot of reasons why I'm not going to do DSP reverbs, but I'm not going to. First and foremost, there's just me. It would easily take me a year to do. I've been in this business 35 years. If anything, I've lowballed the estimate. At the end of that year, I've done nothing else except for a few bug fixes. No new plugins. No big improvements on current ones. That's an opportunity cost that's simply too high. And I'd now have two codebases to maintain. And who's to say how long the current HDX lasts? But you're not really interested in that, so let me get to the technical stuff.
I've made a career bet, and that bet is that we're near the end of high-end dedicated DSP chips. Once upon a time they were critically important: garden-variety CPUs just weren't up to it. But economies of scale and the needs of personal computer users have changed that. The desire to encode music and movies, to create and play videos on YouTube, those needs have had an enormous impact on the processors that go into your computer. For most people (and I include professionals), there's simply no need for dedicated DSPs. Those chips are expensive to design and build, and they take up manufacturing capacity that's more profitable elsewhere. There's still a good market for DSP chips, but it's in cars and television sets. That's a different kind of chip--high system integration, on-chip codecs and so on. It's not an ideal chip for pure audio applications. I think this trend will continue and I don't think it will reverse. Case in point: when I developed the PCM96 algorithms I used a very high-end processor called a TigerSHARC. Great for a reverb. I could get two Lex stereo algorithms onto that chip. But I could get 10 or 15 into a single Mac core, vintage 2008! I will admit that came as a surprise to me, especially since I'd recently made an industrial video declaring the superiority of DSP chips Oops. And let's combine that with the fact that more and more of the graphics processing is moving to video cards (about the only market segment where bespoke processing still makes sense) and that means you have even more of the available power of the host CPU.
Now I will quickly admit that there are issues with host-based processing, and it's largely up to you and your colleagues to keep us developers honest. That issue can probably be wrapped into that simple phrase CPU spikes. A great many plugins exhibit regular behavior most of the time. But then a parameter change, a rollback, something causes a momentary surge of processing that brings your mix pass to a halt. I understand the cause of the swearing that just erupted in the studio. My old Lex plugins are probably some of the ones you're swearing at. They have some serious peaks. Had I stayed there, I'd have undoubtedly sorted that out. Good luck to whoever's responsible for that now. It's a developer's responsibility to address that--to learn to smooth out those periods of high CPU usage. It's a constant object of my attention and I can say that the current generation of my plugs is substantially improved over the versions I first shipped nearly a year ago. And for the end-user, maybe it's not a bad idea to stop at 90% usage: you've still got what took a Series-10 and three racks full of gear just a few years ago.
Now about my remarks concerning a Thunderbolt-connected slave Mac. Let's leave out the pure Thunderbolt issues: I don't know T-bolt at the physical and protocol level. But I believe the concept is sound. A ProTools back-end (no GUI--basically a low-latency framework for running plugins) is quite possible. I'm saying possible. I'm not saying easy. Running OSX and supporting AAX native simplifies updating and development. While I'd certainly have to make some modifications to my own code base, I'd be spared the expense of two concurrent development domains. And when a more powerful Mac came along, you'd simply swap--no waiting for developers to learn a whole new chip. This would be more than lovely if you could bolt on more than one external Mac. I think such an approach is much more future-embracing. What would Avid think about such an approach? Beats me. But they've got a bright group of people there.
Hope this lays out my position reasonably well. In the short run I'd love to see a hook in AAX that would let us control which latency domain our plugs live in. That would help HDX users protect their own substantial investments (and would keep my own inbox a little tidier). Of course the wisest words are from Yogi: It's hard to make predictions--especially about the future.
Finally Tom Lowe said "Now if only Avid would realise DSP is dead and un-cripple their native systems. Of course, they would have a huge backlash on their hands if they admitted they'd just ripped off everyone who bought a DSP-based system. I suspect it may be down to them trying to save face." To which Michael replied...
Michael Carnes Dec 2013: I'm actually quite sympathetic to Avid--especially over the last year or so as they've regained their focus. It's really tough figuring out how to price your stuff and determining whether a premium should be paid for certain capabilities. I really want them to prosper: I'm just saying that I believe that technology will force the path to change.
Listen To Our Podcast Extra Interview With Michael Carnes
We also discussed these issues when we sat down with Michael to have a chat about how he came to start Exponential Audio and the challenges of coding reverbs, both hardware and software.
What Do You Think?
So there you have it straight from the horse's mouth. What do you think? Why do you want DSP Reverbs? What is the deal breaker for you? Or is this a non issue for DSP users, that have AAX Native reverb plug-ins on a DSP system is fine? Or does Avid still need to do some work to resolve some of the System Overload issues when using both AAX Native and DSP plug-ins in the same session?