Nothing is more disheartening than seeing the product of our hard work collect dust in a plug-in folder—to know that you put trust in and invested in our technology, but that in some way or form, we failed to meet your expectations.
Yet on our world tour to meet customers in preparation for the release of Neutron 3, we heard the same story from New York to Los Angeles, Germany to Japan, world-class studio to home recording setup: “I absolutely love your plug-ins…but I don’t use them very often, because they use too much CPU.”
The pain we witnessed was real: world-class audio engineers trying to appease a frustrated, paying client while waiting for a crashed session to reload; post-production engineers with a need to open and close multiple sessions during the day getting increasingly anxious about a looming deadline; or the up-and-coming hip-hop producer losing her creative flow waiting for that one additional instance of a plug-in to open.
You’ve let us know what you need, and we’re listening.
You need tools that speed up your workflow and enable you to stay in a creative mindset. We are building assistive audio technologies for just that purpose, and aim to continue to remove such friction by increasing our products’ performance, starting with Neutron 3. For us, this is an ongoing process, so know that you can expect more progress with each product release.
Here is where we landed with performance in Neutron 3:
Compared to Neutron 2, these are major improvements. These numbers were run on an early 2015 MacBook (MacOS High Sierra) and a Dell Precision 1700 workstation (Windows 10), both with four logical CPU cores and 16 GB of RAM. These are good machines, but certainly not the most recent or the most top-tier, so we expect these numbers to be roughly in line with what you might experience.
A scientific approach to performance
As we collected feedback from customers, our first challenge was to truly understand the problem and translate it into a concrete set of engineering goals. You said that “We use too much CPU”—but what is “CPU,” anyways? Even internally at iZotope, we had a debate to properly define this customer feedback. Our DSP engineers argued that we ought to improve our DSP algorithms. Our UI engineers felt our user interface needed to feel snappier, or that we should use less memory. Our dedicated customer care team argued for fewer drop-outs. Program managers argued for not being pelted with rotten tomatoes when the product ships.
Therefore, we decided to approach performance as we do many other things here at iZotope: scientifically.
We developed an internal tool to accurately measure performance, analyzing both our own plug-ins and our competitors’. We tested hundreds of plug-ins and configurations on dozens of metrics. With this, our internal dialogue started to become more coherent. Problem areas became apparent, and we started developing a focus.
How did we get here?
At iZotope, engineering for performance has always been on our mind. In almost every product we released, we took some steps—revamping our EQ curve rendering engine to reduce CPU usage, rewriting an oscillator engine from scratch, or taking advantage of capabilities in your computer’s graphics card to deliver smoother visualizations. We've heard the many comments and appeals from our customers to make our products more efficient for their setups. It became clear from your feedback that we needed to do more in this area.
To allow for new features such as Sculptor or Mix Assistant, we improved load times and memory use of our machine learning technology, to ensure a compelling user experience. Yet, it became apparent that we needed to adjust our strategy. Our products have become increasingly comprehensive. Where in the past it may have been sufficient to focus on improving the performance of specific features or product areas, it became clear that we needed to take a more holistic approach.
“Using too much CPU”: a symptom
As we gathered statistics on a wide range of plug-ins, what we found is that there was no clear winner. Our plug-ins were fast in some areas and slow in others, as were some of our competitors’.
iZotope plug-ins are also full-featured. We cannot fairly compare the performance of a product that includes an Equalizer, Compressor, Gate, Transient Shaper, Exciter, and Sculptor to the performance of a product that only includes one of these.
What surprised us is that “using too much CPU,” which we first understood as “being too heavy on the computer’s processor while processing audio,” was merely a symptom from a larger set of causes. We eventually decided on a subset of areas that we knew would improve the product on many levels. In order of priority, those areas were:
- Startup performance
- Memory use
- CPU performance at low buffer sizes
- Overall CPU performance
We felt that we should prioritize improving startup performance because a plug-in that is sluggish to start can be interpreted as slower overall. Slow startup times also means that the plug-in is doing unnecessary things that warrant further investigation (which we did).
Next, if a plug-in uses too much memory, the system has to work harder to manage the memory that’s left. This requires it to perform additional tasks, and you may start to experience dropouts.
Once these two problems were addressed, we started looking at CPU performance.
Small buffer sizes (which are important when recording through the plug-in at low latency), require the computer to work harder. If a plug-in performs poorly at small buffer sizes, chances are, the performance will only get marginally better at large buffer sizes. As we looked deeper into this, we quickly found ways to improve your experience, including a smarter method to synchronize our audio processing algorithms, which gave us an instant 20% improvement.
Finally, after addressing these issues, we took a step back and researched how to improve performance at all buffer sizes, and in the product on the whole.
Performance beyond pure speed
We think of performance holistically, as a combination of both the technical speed of our algorithms and the added speed that our plug-ins bring to your workflow. Which is why we also looked at the user experience.
For instance, when you open an instance of Neutron 3, you will be greeted with just an equalizer, with other modules a click away. Compared to Neutron 2, where all modules were visible, we found this offered two advantages. First, we can improve startup times by loading less upfront. But more importantly, it encourages you to use your ears and be more deliberate about the processing you add, resulting in faster performance and a more natural sound.
Similarly, where the Neutron 2 Equalizer module offered eight bell/peak nodes, plus two shelves, a low-pass and high-pass filter, you can now configure all twelve equalizer nodes any way you want. This allows us to give you more options without increasing the CPU cost.
Finally, we’ve continued to introduce assistive technologies to improve working speed. Neutron 3’s new Mix Assistant helps you start a mix faster, Track Enhance quickly gets you to a good starting place for an individual instrument, and Sculptor can help you target a specific sonic character with just a few clicks.
At iZotope, we all sincerely hope that this release’s performance improvements, as well as workflow-enhancing features like Mix Assistant, will help you keep ideas flowing while you work and get more done faster.
We really appreciate all of you who took the time to meet with us and attend our user research sessions, as well as all our beta users for giving us feedback and helping to make this product great. We know that you are often strapped for time, so we are grateful when you choose to spend some of that time sharing your experience with us.
We don’t consider our job done. We’ve put systems in place to lock in performance gains, and we’ll continue to assess and improve performance, so stay tuned. After all, that’s what you expect from us.