Current computer systems used in audiovisual production are general-purpose computers that are always busy performing other tasks different from processing audio. Such could be dealing with some essential routine operations, for example, maintaining screen graphics, moving data, servicing other programs, etc. These computers have a system architecture whose features may include: multi-CPU (one or more physical units), multi-core (one or more processing units), multi-thread (cooperation processes for exchanging data), multi-task (applications, tasks, processes, or services, etc., running at the same time) and multi-user (group management and administrator user features). All those services, tasks, and threads work inside a computer system simultaneously. After being processed, they should be synchronized, applying for buffer compensation, and often have to wait for other pending tasks and threads to be completed.
A very important point to make is that current operating system used in audiovisual production, like Apple's macOS and Microsoft's Windows, are not real-time operating systems; additionally, your AD and DA converters are not real-time and will need a minimum period of time to convert the analog signal into digital data. Hence they are not latency-free. Instead, the information is stored in a memory buffer until it can be processed and serviced.
In non-optimized computer systems, tasks such as collecting emails, virus checks, and countless low-importance system operations can interrupt audio processing, causing the incoming audio samples to be missed. We refer to this case when discussing lost audio buffers, which can disrupt the audio signal. For this reason, we suggest that you spend some time optimizing your computer system.
Several audio tasks, like monitoring during recording and over-dubbing, are very delay-sensitive, and long delays are not practical. For this reason, the computer system operator can control the buffer setting through audio interface preferences or within the host application. By decreasing the buffer size, it is possible to minimize the delay latency drawbacks. On the other hand, general stability will probably suffer, and CPU and RAM load will most certainly increase.
Acustica Audio’s Acqua Effect plug-ins come in zero latency (ZL) and normal (no ZL). While the zero latency version does not introduce any latency to your system, the normal version does. This buffer varies in size for each plug-in and helps to reduce significantly the CPU and system load of your computer. For this reason, we recommend you use zero latency instances during tracking. Remember that anything that can reduce the CPU load on your system should be considered. For example, the track count of your session and the number of plug-in instances in use, sample rate, etc. You could also consider using direct monitoring or double buffer/hybrid audio engines if it is available in your host.
In less delay-sensitive audio tasks like mixing, mastering, and editing, we generally suggest setting your audio interface and host buffer with high values to provide better stability and avoid any lost audio buffer. CPU and RAM load could become too heavy if the audio channel or the plug-in count within the session is large. We also recommend you pay attention to how your host manages the multi-core load distribution by using macOS's Activity Monitor or Window's Task Manager.
Parallel computing is a type of computation in which many calculations are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved simultaneously. Task parallelism involves decomposing a task into sub-tasks and then allocating each sub-task to a processor for execution. The processors would then execute these sub-tasks simultaneously and often cooperatively.
Each process provides the resources needed to execute a program. A process has a virtual address space, executable code, open handles to system objects, a security context, a unique process identifier, environment variables, a priority class, minimum and maximum working set sizes, and at least one thread of execution. Each process is started with a single thread, often called the primary thread, but it can also create additional threads from any of its threads.
A thread is an entity within a process that can be scheduled for execution. All threads of a process share its virtual address space and system resources. In addition, each thread maintains exception handlers, a scheduling priority, thread local storage, a unique thread identifier, and a set of structures the system will use to save the thread context until it is scheduled.
Computer systems use caches, small and fast memories located close to the processor, which stores temporary copies of memory values. Parallel computer systems have difficulties with caches that may store the same value in multiple locations. This brings the possibility of incorrect program execution. These computers require a cache coherency system.
Starting from the CORE7 audio engine, N4, and Acqua Effect plug-ins product lines, multi-thread is done completely outside the audio host application to ensure the data exchange processes are done efficiently. When you use zero latency instances, you may notice that different hosts behave differently, especially at very low buffer size settings. This behavior occurs because some host applications do not expect a plug-in to work completely outside the host application and try to set up a buffer size to avoid lost audio buffers.
Different CPU processor brands and different product lines from each brand will behave differently, and normally for audio production, the speed of each core is more important than the number of cores. Currently, our products are tested on computer systems with Intel i7 and Intel i9 processors, and we do not use Intel's Xeon processors or AMD products. This does not mean that they are not supported, but simply that processors used to make the product quality control are officially supported.
By using processors CPU with fewer cores but faster clock rate, when the host application (DAW or NLE) stops the process waiting for other(s) thread(s) to be terminated following the scheduling, this delay will be less obvious. But if the stop is too long, this phenomenon is usually represented as host application CPU load meters behaving strangely, even with large audio buffer sizes, like at 1024 or 2048 samples of buffer size.
If you see this behavior in your computer system, we recommend contacting your host's developer (DAW or NLE) to find out more details about how to optimize the audio processing. Additionally, we recommend you experiment with other types of CPU and hosts (DAW or NLE) since finding the correct combination between CPU and host will allow you to process the number of channels you need.
With the CORE16 audio engine update, new optimizations were introduced to improve processing on Intel i7, i9, and Xeon processors with AVX512 instructions although some audio hosts (DAW or NLE) do not properly manage the threads distribution and re-synchronization, in this case, many users have reported better results using a plug-in adapter (or mini host) between the audio host (DAW or NLE) and our products, such as Blue Cat Audio's PatchWork or DDMF's Metaplugin.
Finally, we encourage our users to explore and test other audio hosts to compare them and consider how efficiently Acustica Audio products are treated on your current computer.
- Glitch Free eBook (recommended reading).
- Low Latency Audio.
- Activity Monitor.
- Task Manager.
- Clock Rate.
The Acustica Audio single point of contact (SPOC) is the Acustica Audio help-desk portal. In order to access to Audio help-desk portal go to the Acustica Audio website and then to the support section. We do not provide help, assistance, or support via social networks, public forums, or through our email accounts.
Was this article helpful?
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
We appreciate your effort and will try to fix the article