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 at the same time. 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 systems 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 we talk about lost audio buffer, and it can result in disruption of 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 either through the 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 two versions: 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 to use the zero latency instances during tracking. Keep in mind 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 the use of 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, in order 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 to 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 at the same time. Task parallelism involves the decomposition of 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 make use of caches, small and fast memories located close to the processor which store temporary copies of memory values. Parallel computer systems have difficulties with caches that may store the same value in more than one location. This brings the possibility of incorrect program execution. These computers require a cache coherency system.
Starting from CORE7 audio engine, N4 and Acqua Effect plug-ins product lines, multi-thread is done completely outside the audio host application in order to ensure the data exchange processes are done efficiently. When you use a zero latency instances you may notice that different hosts behave in different ways, 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 processors 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 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 host application (DAW or NLE), stop 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 high audio buffer sizes, like at 1024 or 2048 samples of buffer size.
If you see this behavior is your computer system, we recommend to contact your host's developer (DAW or NLE) to find out more details about how to optimize the audio processing, additionally, we recommend you to 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.
As a final word, we encourage our users to explore and test other audio hosts in order to compare them and consider how efficiently Acustica Audio products are treated in your current computer.
To contact Acustica Audio support go to the ‘Support and Help-desk Section’ in your Acustica Audio account. We do not provide support via social networks, public forums, Acustica Audio forums, or email accounts.