Bit depth (Output data format)

Bit depth, the audionumeric resolution creates a lot of phantasms. For the moment, most audio files are encoded in 16 bit (audio CD for example) and most audio cards support only 16 bit informations. And it's hard to notice that this depth is in default. As 24 bit audio cards have appeared, foobar can fully support their bit depth and even the next generations of audio cards. The improvement could be noticeable for those cards as foobar manages padding, which consists in sending "dead" values if the audio card depth is higher than the resolution of the source (as does the Terratec DMX6fire 24/96) (it does so only for the "extra bit" values !!).

  • Which depth should you use?
    It highly depends on your audio card. The best is the maximum depth of your audio card. Just take care to check if the depth given from the producer is the same as the real value. For example, the creative audigy only supports 24bit data for transit, not for working.
    Show all option should be used with caution as it hasn't been proved to have a real impact on the listening.
    Use 16 bit mode by default, change only if you notice hearable problems and know that your sound card can support the mode selected.
    If you have an audio card which works in 24 bit mode, you can choose by yourself which depth is better. (You can ask a frien to switch between two modes and keep the one you found best)


Foobar works natively into 32 bit floating point pipeline mode. The more your data is sampled, the more it will be accurate. You can convince yourself with increasing from 2 bit to 16 bit while playing, the breathing (I'm not sure of the word) while change from real blizzard to nothing.
the final stream is recalculated, taking in count the informations given by the higher bits. It's particularly important for low level parts of track where trimming could be a real disaster. Dithering is a way to resample datas in a clever way, as it includes a bit more information than your hardware could normally support. On the other way, background noises could be more hearable (especially for sampling to low resolution). Generally, dithering is better than trimming, especially at 16 bit, as the additional breathe is always at a very low level, generally out from the hearable zone and totally inconsequential compared to the noise of your computer for example. Moreover, their are several ways to put the breathing away from the perception field. If there are few noise shaping technics, their implemention are various: each software producer has its proper algorithm, more or less efficient from one sofware to another, depending on the listener's taste (and their hardware). Combined to noise shaping, dithering allows the user to have a resolution above it's hardware capacities. Without having hearable enhancemnt of the background noise.
The hearable improvement dued to dithering decreases as the bit depth used increased. As a consequence, people using 24 bit depth hardware could switch off this option if they want to preserve their system resources. (dithering at that depth couldn't be hearable even with the best hardware as your computer produces too much noise to hear the enhancement (and even without that..))

new There is only one dithering mode in 0.9 version while there was three in 0.8.3 version.

Output Device

Here come controversial matters.

Warning !! Common users should use Direct sound
new Kernel Streaming and ASIO plugins are available from foobar2000 main site but are not included by default.
  • Direct sound : widespread, with this output, you can use fading and select the buffer length. Directsound is the default output mode for windows XP and 2000 for multimedia applications. All audiocards compatible with windows support it.
    Warning !! Common users should use Direct sound
  • download Kernel streaming : it's a transit channel so as to bypass the system mixing. The sound comes from the software directly to the audio card.
    Warning !! It has several problems of compatibility, usually linked to the audio card and its drivers. It may cause foobar and system crashes.. It can lock foobar (crash on start up if misused), Removing the component won't solve the problem. Use it with great caution
    Warning !! The interest of this solution is quite controversial, very few (none?) people can hear any difference between Direct Sound and Kernel streaming methods. And stability problems are importants drawbacks that Kernel streaming users should consider.
    • kernel streaming needs a perfect relevance between the sampling of audio data and the working pace of the audio card (16bit fleche 16 bit, 32 bit fleche 32 bit) in case of irrelevancy an error message will appear to warn the user. (Or the system can crash)
      picture Don't use a Bit depth above the maximum depth of your soundcard.
  • download Related topic ASIO : ASIO has been created for studio hardware (studio soundcards) which does not support Directsound. Some users could benefit from ASIO for specific purpose like if you need to map logical audio channels to specific physical channels on your soundcard(s) and your driver does not offer a way to do this.
    Warning !! " The advantages of ASIO are clear for music production and recording applications where low-latency, direct monitoring, advanced channel mapping, routing, the ability to transport DSD, or having different channels with independant bitrate or frequency configurations is an called for. The only advantage ASIO gives you for playback is when you need to make use of features of a professional card that are not available (using DirectSound) through the drivers in any other way, or if it is the only way you have to push AC3 or DTS data out over SPDIF. "
    Related topic Complete post by TrNSZ
    Related topic About ASIO vs Directsound
  • Which one should you use?
    • All common users should use Direct Sound
    • You can use ASIO and Kernel Streaming for specific purpose
    In case of repeated crashes think to the output settings and the parameters chosen.

Buffer length

As it's said, use a length between 500 and 2000ms, Increase the time if you use a bunch of DSP. Otherwise keep it to 500 ms, it will be sufficient. I assume that the higher is the length, the higher foobar will use your RAM. (about 4Mo at 8sec)


August 30 2007 02:09:53.