foobar ver 2.x

boxerfan88

Well-known member
I just upgraded from 1.6.16 to 2.0...it was relatively smooth. All my "old" components are working fine. :)

Tip: use the 32bit binary to upgrade (just in case you have 32bit components that have not been migrated 64bit platform yet - I do have)

(the 64bit build does not support the old 32bit components anymore)


JowsQ.jpg
 

boxerfan88

Well-known member

2.0 Change Log

  • Support for modern processor architectures. Now available as:
    • x86 32-bit (legacy) - requires Windows 7 or newer.
    • x86 64-bit - requires Windows 7 64-bit or newer.
      64-bit foobar2000 requires 64-bit builds of components; it can not load legacy 32-bit components. However, at this time, most components have 64-bit builds available already.
    • ARM - requires Windows 11 ARM device.
      foobar2000 for ARM has been compiled in Emulation Compatible (ARM64EC) mode and can load components built for x86 64-bit. There's no need for component developers to specifically build ARM components.
  • User interface updates:
    • Dark mode support on Windows 10 and 11. Add-on components need to be updated to utilize it.
    • Added album art in Default User Interface playlist view.
    • Clickable rating stars in Default User Interface playlist view (with new Playback Statistics component only).
    • New Default UI element: ReFacets, reimplementing most of Facets functionality. Old Facets component doesn't work with new 64-bit foobar2000.
    • Improved Default UI splitter, now allows any number of panes.
    • Added 'remember per playlist layout' to Default User Interface playlist view.
    • Added 'stream selector' element to Default User Interface toolbar.
    • Some Default UI Elements (ReFacets, Equalizer, visualisations) now also accessible as Columns UI panels.
    • Made more edit boxes recognize ctrl+backspace.
    • Fixed remembered main window position/size not respecting system DPI settings.
  • Configuration management changes:
    • New internal playlist format, changes instantly saved to disk, no more recent changes lost on crash.
    • New configuration data format, changes instantly saved to disk, no more recent changes lost on crash.
    • For non-portable installs, profile folder is now %appdata%\foobar2000-v2. There is no need to back up old profile before upgrading, your foobar2000 v1.x profile will be left untouched.
    • First run performs import of old configuration data (playlists, library).
    • New full config reset semantics - now clears profile folder (optionally leaving user-components intact) instead of asking all components to reset themselves.
  • DSP technology updates:
    • Made possible to apply DSP config changes without reinitializing affected DSPs.
    • Allowed DSPs to manipulate their shown name depending on preset data.
    • Added crossfeed DSP from foobar2000 mobile.
    • Added sample rate exclusions to SSRC resampler.
  • Audio codec technology updates:
    • More audio formats supported out of the box: TAK, APE, AC3, DTS.
    • Latest revision of APE format is supported (Monkey's Audio 10.09).
    • Updated WavPack to version 5.6.0.
    • Updated FFmpeg to version 6.0.
    • libvorbis is now used for decoding Vorbis format instead of FFmpeg, as some rare files continue to cause compatibility issues.
    • Cleaned up Ogg reader, made possible to seek in remote (HTTP etc) Ogg files.
    • Made FLAC tag updater remove ID3v2 garbage prefixing FLAC stream.
    • Made MP3 reader report MP3 frame count not matching Xing/LAME header info when verifying integrity.
    • Fixed bad MD5 verification of AIFF sourced WavPacks.
    • Added extra sanity checks to tag update operations in built-in codecs: made sure that attempts to remove covers from files that didn't have them in first place don't alter files at all.
  • Properties dialog updates:
    • Properties dialog now follows theme colors of the active UI.
    • Improved behavior if 'reload info' detects a change in number of chapters etc.
    • Updated Automatically Fill Values logic, better results if searched pattern appears more than once.
    • Logs tag update errors to console.
  • These add-on components are now obsolete as their functionality is available out of the box:
    • foo_benchmark
    • foo_bitcompare
    • foo_verifier
    • foo_input_monkey
    • foo_ac3
    • foo_sanitizer
    • foo_input_dts
  • These components previously included with the installer are no longer optional (features always enabled):
    • foo_rgscan
    • foo_cdda
    • foo_albumlist
  • Other:
    • Media Library efficiency improvements for very large music libraries.
    • New audio output device management features - unwanted devices can be disabled, bit depth and DSP can be configured per-device.
    • Can display file creation time (%file_created%) and attributes (%file_attributes%).
    • Internet Radio dialog (File menu), remembers previously played Internet radio streams.
    • Modernized Explorer integration, no longer needs separate 32bit/64bit shell extension DLLs.
    • Utilized Windows Imaging Component for picture decoding, removed libwebp dependency. Album covers in HEIF, AVIF, etc can now be viewed if system codecs are present.
    • Added %year% mapping, takes year part of %date%, discarding content past first four digits.
    • Changed default Album List patterns to use %year%.
    • New console logging system, writes per-instance log files to the specified folder.
    • Fixed incorrect handling of M4A itunescompilation=0.
    • Fixed glitching when seeking with smooth playback and CPU-heavy DSPs active.
    • Converter: Pass float32 audio to LAME encoder.
    • Changed replacement for slash character in file naming.
    • Fixed audio glitching on screen resolution change in certain configurations.
    • Improved exclusive output behavior with uncommon channel layouts, 4.1/5.0 would not play on a device expecting 5.1-side.
    • Worked around ages old problem with external changes to file tags causing loss of foo_playcount data (needs new foo_playcount).
    • Preferences / Shell: changed default target playlist name.
    • Better console logging of internet radio stream reconnect events.
    • Worked around foo_input_dvda bugs, no longer crashes on null album art data returned.
    • Updated exclusive output device-specific workarounds.
    • Compiled with Visual Studio 2022.
 

boxerfan88

Well-known member
2023-06-10-20-25-40-Preferences-Playback.jpg


I got clarification from the developer on how the foobar ReplayGain pre-amplifier works...posting here for reference.
(Glad to note the clipping check is after the track/album+preamp gain is applied.)




That's a one time thing done before track's actual decoding starts. The ReplayGain + preamp setting is converted from decibel to floating point multiplier. Then if clipping prevention is enabled and multiplier × peak would exceed digital fullscale 1.0, the multiplier is changed so that multiplier × peak = 1.0. So new multiplier will be 1.0 ÷ peak.
 
Last edited:

boxerfan88

Well-known member
On foobar v2.0, if you encounter massive stuttering when playing back using WASAPI, check the settings in yellow box.
Set it back to default and test -- below shows the default values.

2023-06-19-21-04-50-Preferences-Advanced.png
 
Last edited:

boxerfan88

Well-known member
If you're using autoplaylists, please note that using "Save all playlist..." to backup the autoplaylist will not work.
(The saved FPL file becomes a static playlist.)

The easiest way to backup autoplaylist is to ZIP up the playlist folder.

Example: C:\Users\yourusername\AppData\Roaming\foobar2000-v2\playlists-v2.0\

Example: C:\foobar2000.portable.installation\playlists-v2.0\


.
 

boxerfan88

Well-known member
LatencyMon is a good tool to check latency of the PC.

On my PC, the culprits could be nvldddmkm.sys (Nvidia), ndis.sys (network), dxgkrnl.sys (DirectX).

LatencyMon also advise to look into power management, and suggest to disable CPU throttling settings.

My min processor state was set to 0% (power down unused cores). I pushed it to 50%, which will consume more power. From LatencyMon, I noticed ISR times stay in the green zone, DPC max times reduced quite a bit.

2023-10-21 23_04_50-Power Options.png
 
Last edited:

boxerfan88

Well-known member
Recently while troubleshooting the occasional click/pop on upsampled playback, I noticed foobar2000 CPU usage on one logical processor was around 90%-100% most of the time. So I thought it might contribute to buffer underrun due to CPU starvation.

2024-01-25-20-58-29-Task-Manager.png


After some research, I found out that foobar playback is single threaded. It can support multi-threading if the plugins are designed as such.

 

boxerfan88

Well-known member
I already pushed up the WASAPI hardware buffer from 20ms to 50ms, and it seems to help.
I also pushed up the ASIO driver buffer to the max, just in case I itchy hands and decide to use ASIO.

Yet, I pursued finding a way to bring the foobar main playback thread CPU utilization down. After lots of painstaking diagnosis, I traced the high CPU usage to two visualization plugins -- foo_enhanced_spectrum_analyzer and foo_loudness_peakmeter.

I didn't want to lose these visualization plugins because they really are very nice eye candy that dances to the music. Eye candy has it costs ;)

After much trial and error, I found by placing the visualization into UI tabs, it helps to split the CPU load across different logical processors. Using UI tabs mean only one visualization is visible at any one time. It's a small sacrifice to achieve lower CPU load on the main foobar thread.

Here's how the CPU loading looks like after the changes.

2024-01-30-17-45-19-Task-Manager.png
 
Last edited:

boxerfan88

Well-known member
After more trial and errors, managed to drop cpu utilization further by tweaking the refresh rate of foo_enhanced_spectrum_analyzer from 20ms to 40ms. Very good resultant drop in cpu cycles.

2024-01-31-09-27-15-Task-Manager.png


Key learning: audiophile eye candy can be costly in terms of cpu!
 
Top