Foobar2000:Preferences:Output: Difference between revisions

From Hydrogenaudio Knowledgebase
(copyedit)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''Note: There is no objective evidence that using alternate output components (including Kernel Streaming) will improve audio fidelity at all under most normal usage conditions. Tests have shown that differences in output are nil except in the case of faulty audio drivers.''' Please also note that the features provided by the output components can vary. Sadly, audio drivers are often buggy. This variation in quality justifies the existence of multiple output plugins.
{{fb2k prefs|Foobar2000-Preferences-output.png|Output}}
== Output Device ==
Controls the physical device that played audio stream is sent to. Commonly available options include:
* Null Output - does nothing; useful mainly for development/testing purposes.
* DS : Primary Sound Driver - your system default DirectSound audio playback device as configured in Windows Sound control panel.
* DS : ''<device name>'' - a specific DirectSound audio playback device. What it says depends on what devices you have installed.


=DirectSound=
Additional output devices can be added using [[Foobar2000:Components#Output|optional output components]], such as [http://www.foobar2000.org/components/view/foo_out_wasapi foo_out_wasapi] for WASAPI output (low-latency feed to a sound driver in exclusive mode, bypassing the Windows mixer).


[[Image:Playback_output_ds.png|thumb|DirectSound]]
== Buffer Length ==
To prevent playback from glitches during heavy system load or file access lag, resource-heavy operations such as decoding and DSP are always performed ahead of currently heard sound (this is not unique to foobar2000, all or nearly all media players behave this way). This setting controls the distance between decoding/DSP and output.
* High buffer sizes offer better reduction on glitches but introduce side effects such as long delay between changing DSP settings (eg. adjusting equalizer bands), changes in sound output, and visualizations in VST plugins becoming more out-of-sync with the output.
* Low buffer sizes allow faster responses to DSP configuration changes at cost of higher risk of stuttering during high system load / file access lag / etc.
'''WARNING''': Setting too low buffer length may cause certain visualizations to stop working correctly. Use of buffer lengths below 500ms is not recommended.


Output audio using the DirectSound API provided by DirectX.
== Output Format ==
Controls the audio data format passed to the operating system / audio drivers / etc. You should refer to your soundcard's documentation to find the optimal setting; using bit depth higher than supported by your hardware might work but will not improve output audio quality in any way and may degrade performance.


"Allow Hardware Mixing", when checked, allows for better uninterrupted playback of music when system resources become tight. However, audio driver problems can become more apparent.
Note that this option is not available with some output modes such as ASIO - ASIO architecture doesn't support variable data formats by design, the format that needs to be sent is determined by the driver.


DirectSound will be the only output method that allows for fadings and immediate volume changes in foobar2000 v0.9.
== Dither ==
This checkbox controls whether to add dither when playing audio that's encoded at a higher bit depth than the chosen output format.


{{clr}}
[[Dither]] is quiet broadband noise which is added in a manner intended to mask quantization noise, which is the distortion which is sometimes audible when playing digital audio at a lower bit depth than the original. By exploiting a feature of human hearing—the ability to distinguish signal from background noise—dither preserves the higher bit-depth signal within the confines of the lower bit-depth format. This gives the signal greater dynamic range than the lower bit depth allows, and can be perceived as improved, smoother sound quality, but it always comes at the price of added background noise—which, when audible, sounds like tape hiss. However, dither can be "shaped" to make it avoid lower frequencies, making it less audible to humans.<!--does foobar do this?-->


=DirectSound v2.0=
Dither uses extra CPU power, and generally isn't necessary. The signal in most recorded audio is well within the 96 dB limit of 16-bit, and the distortion introduced in 24-to-16-bit conversion is so quiet as to almost always be masked by the signal, at least for human hearing. Nevertheless, if your soundcard can only handle a maximum of 16-bit input, but you tend to play, at loud volume, 24-bit audio files with very quiet sections that have no background noise, then you may want to enable dither, because it can make those extreme quietest parts of the audio audible, with the addition of hiss.


[[Image:Playback_output_ds2.png|thumb|DirectSound v2.0]]
For a dramatic demonstration of the effect of dither, set the output format to 8-bit (if your soundcard supports it), and play an ordinary 16-bit audio file both with and without dither. The version with dither will have a fair amount of extra noise, but it will be substantially less fuzzy/gritty than the version without. This is an exaggerated demonstration, because for the average human listener, the distortion that occurs when reducing the depth to 8-bit is far more noticeable than that which occurs when down-converting to 16 or 24 bit.


Similar to DirectSound, but allows fade out.
== Fading ==
This section appears when a DirectSound device is selected.


{{clr}}
Without fading, transitions can be jarring when jumping from one track to the next, or when seeking within a track. This section allows this effect to be softened.


 
The sliders adjust the fade in and fade out values or the currently selected type of fade (pause & stop, seek within a track, manual track change, automatic track change). Arrow keys may allow the sliders to be adjusted with greater precision than a mouse or touch surface.
=Kernel Streaming=
 
[[Image:Playback_output_ks.png|thumb|Kernel Streaming]]
 
This component uses the experimental Kernel Streaming API.  This will bypass the standard Windows sound mixer, which provides a software alternative to functions often handled by audio hardware. 
 
If Kernel Streaming does not work for you, please switch to waveOut or DirectSound. Send your bug report to the manufacturer of your audio device.
 
''Unless you know that Kernel Streaming would be the best option for your configuration and can provide evidence for that knowledge, please do not use it.''
 
{{clr}}
 
=waveOut=
 
[[Image:Playback_output_waveout.png|thumb|waveOut]]
 
Use the waveOut functions of the standard Win32 API to output sound.
 
{{clr}}
 
=ASIO Output=
 
''Like Kernel Streaming, ASIO is designed to provide features that are neither optimal nor required for proper music playback. Therefore, its use is not recommended unless you're technically proficient enough to explain why you need to use it.''

Latest revision as of 14:54, 1 May 2023

Foobar2000_Logo.png foobar2000
Preferences
Screenshot of the Output page
Screenshot of the Output page

Deprecated pages


Pages marked * are added via third-party components.

Output Device

Controls the physical device that played audio stream is sent to. Commonly available options include:

  • Null Output - does nothing; useful mainly for development/testing purposes.
  • DS : Primary Sound Driver - your system default DirectSound audio playback device as configured in Windows Sound control panel.
  • DS : <device name> - a specific DirectSound audio playback device. What it says depends on what devices you have installed.

Additional output devices can be added using optional output components, such as foo_out_wasapi for WASAPI output (low-latency feed to a sound driver in exclusive mode, bypassing the Windows mixer).

Buffer Length

To prevent playback from glitches during heavy system load or file access lag, resource-heavy operations such as decoding and DSP are always performed ahead of currently heard sound (this is not unique to foobar2000, all or nearly all media players behave this way). This setting controls the distance between decoding/DSP and output.

  • High buffer sizes offer better reduction on glitches but introduce side effects such as long delay between changing DSP settings (eg. adjusting equalizer bands), changes in sound output, and visualizations in VST plugins becoming more out-of-sync with the output.
  • Low buffer sizes allow faster responses to DSP configuration changes at cost of higher risk of stuttering during high system load / file access lag / etc.

WARNING: Setting too low buffer length may cause certain visualizations to stop working correctly. Use of buffer lengths below 500ms is not recommended.

Output Format

Controls the audio data format passed to the operating system / audio drivers / etc. You should refer to your soundcard's documentation to find the optimal setting; using bit depth higher than supported by your hardware might work but will not improve output audio quality in any way and may degrade performance.

Note that this option is not available with some output modes such as ASIO - ASIO architecture doesn't support variable data formats by design, the format that needs to be sent is determined by the driver.

Dither

This checkbox controls whether to add dither when playing audio that's encoded at a higher bit depth than the chosen output format.

Dither is quiet broadband noise which is added in a manner intended to mask quantization noise, which is the distortion which is sometimes audible when playing digital audio at a lower bit depth than the original. By exploiting a feature of human hearing—the ability to distinguish signal from background noise—dither preserves the higher bit-depth signal within the confines of the lower bit-depth format. This gives the signal greater dynamic range than the lower bit depth allows, and can be perceived as improved, smoother sound quality, but it always comes at the price of added background noise—which, when audible, sounds like tape hiss. However, dither can be "shaped" to make it avoid lower frequencies, making it less audible to humans.

Dither uses extra CPU power, and generally isn't necessary. The signal in most recorded audio is well within the 96 dB limit of 16-bit, and the distortion introduced in 24-to-16-bit conversion is so quiet as to almost always be masked by the signal, at least for human hearing. Nevertheless, if your soundcard can only handle a maximum of 16-bit input, but you tend to play, at loud volume, 24-bit audio files with very quiet sections that have no background noise, then you may want to enable dither, because it can make those extreme quietest parts of the audio audible, with the addition of hiss.

For a dramatic demonstration of the effect of dither, set the output format to 8-bit (if your soundcard supports it), and play an ordinary 16-bit audio file both with and without dither. The version with dither will have a fair amount of extra noise, but it will be substantially less fuzzy/gritty than the version without. This is an exaggerated demonstration, because for the average human listener, the distortion that occurs when reducing the depth to 8-bit is far more noticeable than that which occurs when down-converting to 16 or 24 bit.

Fading

This section appears when a DirectSound device is selected.

Without fading, transitions can be jarring when jumping from one track to the next, or when seeking within a track. This section allows this effect to be softened.

The sliders adjust the fade in and fade out values or the currently selected type of fade (pause & stop, seek within a track, manual track change, automatic track change). Arrow keys may allow the sliders to be adjusted with greater precision than a mouse or touch surface.