Back to overview Documentation version 8.50


CPU & Latency section

Settings that affect global CPU usage and latency.

CPU and latency panel

Settings that affect global CPU load and latency.

  • Multicore processing
    Enables using a separate thread (which usually uses a CPU core) for each channel.

    Where Threads adds latency, this setting can actually slightly reduce latency because the calculations finish faster.

    This should always be enabled, unless you really need to let Stereo Tool use only one core. By using multiple cores, about 70% more audio can be processed in the same amount of time.

    This option has no effect on a PC with only one CPU core (and no hyperthreading), or (on Windows) if the environment flag NUMBER_OF_PROCESSORS is set to 1.

    See also Threads.

  • Process priority
    Give Stereo Tool's processing priority over other running programs.

    Normally, all programs get a share of the available CPU resources. Which means that if you run a lot of heavy programs, Stereo Tool might not get enough CPU time to process everything in time and it might start to hiccup. Setting a higher priority here helps against that, but it may also cause other programs to be slowed down more.

    If you use Stereo Tool for background listening, you should probably leave this turned off. If the audio is 'mission critical', this should be set to a high level.

  • Latency
    Controls audio output delay.

    This setting controls how much audio Stereo Tool gets to work with. If it can work on bigger blocks of audio, the resulting output quality is usually better. But if you are talking through a microphone and listening to yourself on a headphone, too much delay can be annoying.

    For the best quality, and definitely in all cases where the delay does not matter, use the maximum setting (4096 samples, around 93 ms, depending on the sample rate). A good compromise between latency and quality is setting 1024 (23 ms), which gives a total latency of about 28 ms (this includes sound card delays and the time needed to process the audio).

    Each reduction of the latency by half makes the artifacts caused at lower latencies 4 times as loud. Which means that the step from 4096 to 1024 is smaller than that from 1024 to 512! At latency 512 (12 ms, 17 ms total latency) the audio quality really suffers.

    The stand alone version of Stereo Tool has an extra LQ Low Latency monitoring output which offers a total latency of 11 ms.

    Note: The quality is also very strongly affected by the Dynamically reduce deep bass to setting, especially at lower latencies.

  • Quality (CPU load)
    Determines the audio quality and CPU usage.

    At lower quality settings, the audio sounds less good, but the CPU usage is much lower. This setting mainly affects bass, and it has more effect with aggressive processing and steep filters. At low levels, a low setting can cause "chopper-like" sounds in the bass.

    The effect on the audio is determined by the combination of this setting and Controls audio output delay.

    This setting controls how much audio Stereo Tool gets to work with. If it can work on bigger blocks of audio, the resulting output quality is usually better. But if you are talking through a microphone and listening to yourself on a headphone, too much delay can be annoying.

    For the best quality, and definitely in all cases where the delay does not matter, use the maximum setting (4096 samples, around 93 ms, depending on the sample rate). A good compromise between latency and quality is setting 1024 (23 ms), which gives a total latency of about 28 ms (this includes sound card delays and the time needed to process the audio).

    Each reduction of the latency by half makes the artifacts caused at lower latencies 4 times as loud. Which means that the step from 4096 to 1024 is smaller than that from 1024 to 512! At latency 512 (12 ms, 17 ms total latency) the audio quality really suffers.

    The stand alone version of Stereo Tool has an extra LQ Low Latency monitoring output which offers a total latency of 11 ms.

    Note: The quality is also very strongly affected by the Dynamically reduce deep bass to setting, especially at lower latencies. . For low Controls audio output delay.

    This setting controls how much audio Stereo Tool gets to work with. If it can work on bigger blocks of audio, the resulting output quality is usually better. But if you are talking through a microphone and listening to yourself on a headphone, too much delay can be annoying.

    For the best quality, and definitely in all cases where the delay does not matter, use the maximum setting (4096 samples, around 93 ms, depending on the sample rate). A good compromise between latency and quality is setting 1024 (23 ms), which gives a total latency of about 28 ms (this includes sound card delays and the time needed to process the audio).

    Each reduction of the latency by half makes the artifacts caused at lower latencies 4 times as loud. Which means that the step from 4096 to 1024 is smaller than that from 1024 to 512! At latency 512 (12 ms, 17 ms total latency) the audio quality really suffers.

    The stand alone version of Stereo Tool has an extra LQ Low Latency monitoring output which offers a total latency of 11 ms.

    Note: The quality is also very strongly affected by the Dynamically reduce deep bass to setting, especially at lower latencies. settings, the Quality slider must be set as high as possible to keep the quality acceptable. In Stereo Tool, the maximum setting is 100%, which is why the minimum latency (which already sounds pretty bad) is 512. In Omnia SST, Quality can be increased upto 150% which allows for lower latencies (the minimum available is 128 samples, less than 3 ms processing latency).

  • Display refresh speed (CPU load)
    Controls how often the display is refreshed.

    Lowering the refresh rate slightly lowers the CPU load (more so if the window is very big), and it also helps a lot when using a remote connection to a pc running Stereo Tool.

  • Auto
    Automatically lowers Display refresh speed (CPU load) when the CPU load is high.

  • Ignore high frequencies
    Throws high frequencies away to reduce CPU load.

    Doing this for FM or for streaming has no effect on the audio quality if the Frequency is set higher than the Lowpass frequency. One exception is that for Stokkemask, a minimum frequency of 19200 must be set. The CPU load reduction can be upto 30%, depending on the settings. Using this setting does increase the latency a bit (also upto 30%).

  • Automatic frequency
    Automatically determine The frequency above which tones are ignored.

    .

  • Frequency
    The frequency above which tones are ignored.

  • Threads
    Sets the number of threads (which usually each uses a CPU core) for processing.

    Setting this higher spreads the load over more CPU cores, which means that on slower systems more or higher Quality (CPU load) processing can be used. In plugin versions of Stereo Tool, it adds latency, so if low latency is a goal and you're using Stereo Tool as a plugin in another program, it's better to keep this value as low as possible (ideally, 1). Also, if multiple Stereo Tool instances are running on the same system, they could get in each others way, and in that situation it's also better to use a low number of threads, and give each Stereo Tool instance its own CPU core to work on.

    See also Multicore processing.

I/O - CPU core affinities panel

Locks each thread to one or more CPU cores.

This can be used to tightly control the CPU usage of Stereo Tool. This has several benefits, among others allocating a separate CPU core for each thread can make the behavior more predictable (without setting affinities Windows will dynamically put each thread somewhere). More predictable scheduling of tasks means that the time the calculations take is more constant, which is beneficial if you want to achieve minimum latency.

Core 0 is typically used by Windows to handle driver events, and they take precedence over Stereo Tool. So, it's best to put tasks that are less time sensitive (GUI updates, web server) on core 0.

If your CPU supports Hyperthreading, typically cores 0/1, 2/3, 4/5 etc. are combined. This means that if core 2 is working, and core 3 is also working, each core only runs at about 65% of its normal speed. If there are enough cores in the system, try to avoid using Hyperthreaded cores.

On a 4-core CPU with Hyperthreading (such as most Intel i7 CPU's), Threads set to 2, Multicore processing enabled, the following settings will work well:
GUI and Server on code 1, Input on core 2, Recombine on core 3, Main 1 on core 4, 2nd 1 on core 7, Main 2 on core 6, 2nd 2 on core 5. As long as the CPU load on each core is below 50%, using cores 4+7 and 6+5 for the main processing won't interfere with each other (since 4+7 will be finished before 6+5 starts working and vice versa), but if for some reason they do become active at the same time they won't completely halt each other and each will still run at 65% of its normal speed, until one of the two finishes.

See also Threads and Multicore processing.

  • GUI
    GUI core affinity.

    This core handles the Stereo Tool GUI display, which is non-critical. Make sure that it doesn't interfere with processing.

  • Server
    HTTP server core affinity.

    This core handles the Stereo Tool Web, at least the internal part. Non-critical, you should normally just set this to the same core as the GUI.

  • Processing - CPU core affinities panel

    Controls the CPU core affinities.

    Setting the CPU core affinities is useful for low latency processing, because it makes the behavior predictable. Beside that, it is also usable when you run a lot of different Stereo Tool instances or other software on one pc, in that case you can give each instance its own core or cores.

    By default, if these settings are left to Any, the OS (Windows, Linux, Mac OS X) will control what runs on which core.

    For optimal performance and low latencies, use these guidelines:
    • Try to avoid Core 0. Core 0 is used by drivers, which means that when using core 0 at very low latencies, you run a risk of getting hiccups.
    • When using a system that has Hyperthreading, assign Link error '3005' and Link error '3006' to virtual cores that don't share the same physical cores. On most systems, that means that you should avoid combining core 0 with 1, core 2 with 3, core 4 with 5 etc. Also note that the fact that drivers use core 0 might also makes the core 1 performance less constant.
    So, if you have a system with 4 cores with Hyperthreading, then Windows will see 8 cores, and you should normally select for example cores 2 and 4 for Link error '3005' and Link error '3006', and core 0 for Link error '3007' and Link error '3008' things that are non-critical.

    Percentage of time in processing panel

    How much of the available time is spent for processing.

    This is not a CPU load display. Here are the differences between an actual CPU display and what this graph shows:

    Shows time between start and end of processing.If this bar is nearly full, there's a performance problem; if it's not too close to 100% the processing will run fine.Not that easy to translate, time could also be spent waiting (even on other programs that occupy the same CPU core).
    CPU loadPercentage of time
    Shows total load or load per core
    Since load is spread over cores, can show load below 100% and still have performance problems.
    Higher load from Stereo Tool means that other programs will run slower.


    Basically, if this bar is nearly full (around 90% or higher) you can expect performance problems.

    Please note that overhead such as resampling (used when enabling Synchronize with different output sound card (not ASIO) or Synchronize FM transmitters) is not displayed in this graph, but does take extra time.

    Percentage of time in GUI display panel

    Shows time spent to display the GUI.

    See Percentage of time in processing. This graph is less useful because it doesn't show actual CPU usage - in fact, since the GUI thread runs at a lower priority a lot of the time that's displayed might be spent waiting for other programs.

    If only Stereo Tool is running on a system which has enough CPU cores available it will show something that's close to the actual CPU usage of the GUI.

    LQLL number of threads panel

    Controls the number of processing threads to use for LQ Low Latency.