Skip to content

stuerp/foo_vis_spectrum_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

foo_vis_spectrum_analyzer

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.

Screenshot

Spectrum analyzer Bars Mode with gradient colors

Screenshot

Spectrum analyzer Curve Mode with album art background, a peak meter and a level meter

Screenshot

Multiple Spectrum analyzer graphs for the separate channels

Screenshot

Horizontal scrolling spectogram visualization

Screenshot

Spectrum analyzer Radial Bars Mode

Screenshot

Spectrum analyzer Radial Curve Mode

Screenshot

Oscilloscope with Y-axis in dBFS

Screenshot

Oscilloscope in X-Y mode

Features

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

Requirements

  • Tested on foobar2000 v2.0 or later (32 or 64-bit). foobar2000
  • Tested on Microsoft Windows 10 and later.
  • Tested with Columns UI 2.1.0.

Getting started

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

Usage

You can find the user guide here.

Developing

Requirements

To build the code you need:

The following library is included in the code:

To create the deployment package you need:

Setup

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.

Building

Open foo_vis_spectrum_analyzer.sln with Visual Studio and build the solution.

Packaging

To create the component first build the x86 configuration and next the x64 configuration.

Change Log

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.

Acknowledgements / Credits

Reference Material

Test Material

Links

License

License: MIT