foo_vis_spectrum_analyzer is a foobar2000 component that implements a spectrum analyzer panel.
It is an attempt to recreate the foo_musical_spectrum component by fismineur and the Audio Spectrum project for foobar2000 64-bit.
Spectrum analyzer Bars Mode with gradient colors
Spectrum analyzer Curve Mode with album art background, a peak meter and a level meter
Multiple Spectrum analyzer graphs for the separate channels
Horizontal scrolling spectogram visualization
Spectrum analyzer Radial Bars Mode
Spectrum analyzer Radial Curve Mode
Oscilloscope with Y-axis in dBFS
Oscilloscope in X-Y mode
- Spectrum Analyzer (Bars, Curve, Radial Bars), Spectogram, Peak Meter, Level Meter and Oscilloscope visualizations.
- Fast Fourier (FFT), Constant-Q (CQT), Sliding Windowed Infinite Fourier (SWIFT) and Analog-style transforms
- Multiple frequency range and smoothing options
- Multiple graphs
- Styling of all visual elements
- Artwork background and color extraction
- Uses DirectX rendering.
- Supports the Default User Interface (DUI) and the Columns User Interface (CUI).
- Supports dark mode.
- Supports foobar2000 2.0 and later (32-bit and 64-bit version).
- Tested on foobar2000 v2.0 or later (32 or 64-bit).
- Tested on Microsoft Windows 10 and later.
- Tested with Columns UI 2.1.0.
- Double-click
foo_vis_spectrum_analyzer.fbk2-component
.
or
- Import
foo_vis_spectrum_analyzer.fbk2-component
into foobar2000 using the "File / Preferences / Components / Install..." menu item.
You can find the user guide here.
To build the code you need:
- Microsoft Visual Studio 2022 Community Edition or later
- foobar2000 SDK 2025-03-07
- Windows Template Library (WTL) 10.0.10320
- Columns UI SDK 7.0.0
The following library is included in the code:
To create the deployment package you need:
- PowerShell 7.2 or later
Create the following directory structure:
3rdParty
columns_ui-sdk
WTL10_10320
bin
bin.x86
foo_vis_spectrum_analyzer
out
sdk
3rdParty/columns_ui-sdk
contains the Columns UI SDK 7.0.0.3rdParty/WTL10_10320
contains WTL 10.0.10320.bin
contains a portable version of foobar2000 64-bit for debugging purposes.bin.x86
contains a portable version of foobar2000 32-bit for debugging purposes.foo_vis_spectrum_analyzer
contains the Git repository.out
receives a deployable version of the component.sdk
contains the foobar2000 SDK.
Open foo_vis_spectrum_analyzer.sln
with Visual Studio and build the solution.
To create the component first build the x86 configuration and next the x64 configuration.
v0.9.0.0-alpha3, 2025-10-17
- New: Oscilloscope time-domain mode
- Supports X-axis with time labels.
- Signal gain.
- Optional phosphor decay effect with Gauss sigma and color decay factor setting.
- New: Oscilloscope X-Y mode.
- Supports X and Y-axis.
- X and Y signal gain.
- Optional phosphor decay effect with Gauss sigma and color decay factor setting.
- Improved: Rendering stops when the host window gets minimized instead of the main window to improve behavior in foo_flowin.
- Improved: Various little useability tweaks and fixes in the Configuration dialog.
- Changed: Upgraded rendering code from render targets to device contexts.
- Fixed: Delay between playback and visualization. The backbuffer was not initialized.
You can read the full history here.
- Peter Pawlowski for the foobar2000 audio player.
- TF3RDL for the advice, the help and his:
- Project Nayuki
- Holger Stenger for foo_vis_oscilloscope.
- fismineur for foo_musical_spectrum that inspired this component.
- Oleg V. Polikarpotchkin and Peter Lee for their Bezier Spline article.
- Bedapisl for Fast ColorThief.
- The Audio Frequency Spectrum Explained
- Fast Fourier Transformation FFT - Basics
- Sine Tone Generator
- A440
- Constant-Q transform
- Mel-frequency cepstrum
- Mel scale
- Sliding windowed infinite Fourier transform
- Home page: https://github.com/stuerp/foo_vis_spectrum_analyzer
- Repository: https://github.com/stuerp/foo_vis_spectrum_analyzer.git
- Issue tracker: https://github.com/stuerp/foo_vis_spectrum_analyzer/issues
- Wiki: https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Components/Spectrum_Analyzer_(foo_vis_spectrum_analyzer).