Home         Download         Donate         Register         Forums         Help   
Stereo Tool 7.43 - Help - CPU & Latency


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 multicore processing.

    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.

  • 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)
    Global CPU load control

    Allows lowering the CPU load at the expense of a degradation in audio quality. For every 10% the Quality slider is below 100%, the CPU load is reduced by 5% - so at the lowest setting of 20% the CPU load is 60% of that at Quality 100%.

    At the maximum Latency setting, Quality has very little effect and a value of around 50% is acceptable for most people. At lower Latency settings, the effect on the audio (especially bass) is much bigger.

  • 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.

Percentage of time in processing (excl. overhead) 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 (excl. overhead). 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.

CPU core affinities panel

Controls which thread runs on which core.

When used correctly, this can improve the stability of the processing, allowing to use lower latencies and running at a higher quality, and running multiple copies of Stereo Tool on the same system without interfering with each other.

In general, make sure that the two processing threads do not share the same core, and if you have enough cores, avoid using the first one, because that's the one that is used by many Windows drivers.

When using Intel CPU's with Hyperthreading, also make sure to not put both processing threads on the same Hyperthreaded core. In most cases, cores 0/1, 2/3, 4/5, 6/7 are shared, so you should - for example - use cores 2 and 4, not 2 and 3. (Avoid core 1 in this situation, because if core 0 is busy with driver things core 1 will be slowed down as well).

In some rare situations, other couplings can be present (for example 0/4, 1/5, 2/6, 3/7). The easiest way to find out if you use cores that are coupled is by trying a few different ones, if for some combinations the CPU load (shown in Percentage of time in processing (excl. overhead) is considerably higher than in others, that would indicate coupling, or another process that's using that same core.

If possible, put the GUI thread on a core that's not used. The Server can be placed at the same core or also on an unused one. Also, for both GUI and Server there's no problem if they are placed on a core that's already used by other programs, such as core 0. If a system does not have enough cores, it's better to combine things with the Processing 2nd thread than the Processing main thread, because that last one requires the most CPU load.

  • Processing main
    CPU core affinity for the main processing thread.

  • Mask
    Can be used to specify multiple cores.

  • Processing 2nd
    Secondary processing thread. This uses much less CPU load than the first.

  • GUI
    GUI core affinity.

  • Server
    HTTP server CPU core affinity.
This website is © Copyright 1999-2014 by Hans van Zutphen
Stereo Tool is shareware. You are free to give Stereo Tool to others, publish it on shareware CDs/DVDs, websites etc.