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 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 analogue 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 plug-ins come in two versions: ZL (zero latency) and normal (none ZL). While the ZL version does not introduce any latency to your system, the standard 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 that you to use a ZL instance 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 used, sample rate, etc. You could also consider the use of direct monitoring or double buffer/hybrid audio engine in your host if it is available.
In less delay-sensitive audio tasks like mixing, mastering and editing, we generally suggest to set your audio interface and host buffer to long, 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 that 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 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 the 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, 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 ZL (zero latency) instances you may notice that different hosts behave in different ways, specially at very low buffer size settings. This behavior occurs because some hosts applications do not expect a plug-in to work completely outside the host application and try to setup a buffer size to avoid lost audio buffers.
If your host application CPU load meter behaves strangely, even with high audio buffer sizes, like at 1024 or 2048 samples of buffer size, we suggest you to report it to our technical support service in order to inform the manufacturer.
If you need further assistance about this topic, log in in your Acustica Audio account and go to support Area and submit a ticket to our technical support service.
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.