Home         Download         Donate         Register         Forums         Help   
Stereo Tool 7.83 - 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.

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

  • Frequency
    The frequency above which tones are ignored.

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 Processing main and Processing 2nd 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 Processing main and Processing 2nd, and core 0 for Link error '3007' and Link error '3008' things that are non-critical.

  • Processing main
    Main processing core affinity.

    This core will perform about 60-70% of all the processing tasks.

    Windows only: Set to Mask if you want to use an affinity Mask that leaves part of the control to Windows.

  • Mask
    Main processing affinity mask.

    Only used when Processing main is set to Mask.

    See Windows MSDN documentation. You should normally not need this.

  • Processing 2nd
    2nd processing core affinity.

    This core will perform about 30-40% of all the processing tasks.

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

Percentage of time in processing (top is incl. 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 (top is incl. 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.
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.