Performance

This article explains what affects performance in AudioNodes, and gives you some tips to improve it in your projects.


Performance Overview

As with most digital audio workstations, you’ll eventually run into a performance ceiling as you keep adding increasingly complex logic into your project. This is especially easy to do in AudioNodes, because everything is modular, with a lot of feedback.

When you run into the performance ceiling, glitching will occur (i.e. the audio output will be crackling and stuttering).

Performance in AudioNodes depends on 2 factors:

  • Nodes you use, and your patch in general — the more Nodes you use (or more complex Nodes you use), the worse performance gets
  • Your machine — the faster your machine, the more Nodes you can use before performance degrades

Processing Load %

AudioNodes displays a processing load monitor in the header. This is a percentage value displaying how much real-time processing power your current project is using.

Note: in the AudioNodes web app, the availability of this varies between browsers. The desktop app, on the other hand, has it on all supported platforms.

The lower the number, the better:

  • 0% means AudioNodes is basically idle
  • 40-50% means AudioNodes is using half of what your machine can do, and has some more headroom for additional Nodes still — this is a safe, optimal load, where you are using enough of your machine’s capabilities, but you are typically safe from glitching
  • 80% (or up) means you are very close to your machine’s limits; in practice, glitching is imminent at these levels (with varying frequency) — at this load level, you’ll typically want to look into optimizing your project
  • 100% means your machine is working at capacity, and is unable to process your project; audio is skipped and audible glitching occurs — at this level, you need to optimize your project somehow

Performance Optimization Tips

Leverage Constant Folding

AudioNodes has an automatic optimization process called Constant Folding, which enables several Nodes to run in constant mode. A Node running in constant mode has zero performance impact, and can be used in large numbers without any performance problems whatsoever.

While you don’t have to do anything for it to work, some patches work better for constant folding, some don’t. Check out the article to learn how you can maximize its impact to improve performance.

Avoid Expensive Nodes

Different Nodes can have wildly different performance characteristics. A Gain Node, for example, is basically free and even several thousand won’t make a real dent performance.

The following Nodes however, for example, are particularly expensive:

  • Pitch Shift Node — large resolution settings are very expensive
  • Poly Subpatch Node — a large number of voices can get expensive fast, especially if the internal patch is complex
  • Convolver Node — a large room setting with a high reflection %, or an otherwise long impulse response is expensive

If you can, minimize the usage of expensive Nodes, or use a cheaper configuration setup for them. A few tips as a rule of thumb with Nodes:

  • Each Node has a performance impact on its own. That is, 2 Convolver Nodes with the same configuration have 2x as much performance impact as 1. Try to first mix your audio together, and then use a single Convolver Node at the end, if possible.
  • You can easily delete multiple Nodes and then undo the deletion (as long as you keep AudioNodes open). This is a quick and easy way to identify which part of your patch is causing the most load.
Close Other Apps & Tabs

This probably goes without saying, and is probably the first thing you find in those low quality AI generated articles on the web, but your machine shares your available CPU capacity between what you have open.

Those other processes can take up CPU cycles, and ultimately cause AudioNodes to run out of processing capacity earlier than what your machine could handle. Thus, it’s a good idea to close them if you run into performance issues. Same goes for browser tabs.

Split Projects

As a last resort, you can separate your project into multiple projects, export them each into an audio file, and then reopen them using an Audio File Node each (audio file playback is very cheap). This technically enables you to scale your projects indefinitely, but:

  • Is increasingly cumbersome to do as you have more projects
  • Does not support real-time input, like the MIDI Keyboard Node

Still, it’s a possible solution if everything else fails.


Performance When Exporting Projects

Performance when exporting projects is secondary, because it’s not a real-time process, and glitching won’t occur. However, the more expensive your project, the longer it will take for the export process to complete.