Skip to content

About

A foobar2000 component that displays a spectrum analyzer.

Topics

Resources

Stars

68 stars

Watchers

5 watching

Forks

Latest commit

 

History

799 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

foo_vis_spectrum_analyzer

foo_vis_spectrum_analyzer is a foobar2000 component that started as 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.

Over time other visualisations were added.

Screenshot

Click the image above to view the gallery.

Features

  • Spectrum Analyzer (Bars, Curve, Radial Bars, Radial Curve), Spectrogram, Peak / RMS, Balance / Correlation, Oscilloscope, Goniometer and Bit Meter visualizations.
  • Fast Fourier (FFT), Constant-Q (CQT), Sliding Windowed Infinite Fourier (SWIFT) and Analog-style transforms
  • Multiple frequency range and smoothing options
  • Multiple stacked or overlapping graphs
  • Styling of all visual elements
  • Artwork background and color extraction
  • DirectX rendering.
  • Supports the Default User Interface (DUI) and the Columns User Interface (CUI).
  • Supports dark mode.
  • Supports foobar2000 2.0 and later (32 and 64-bit version).

Environment

  • 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 libraries are included in the repository:

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
int
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.
  • int receives the intermedidiate files of the build.
  • 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.13.0.0, 2026-10-11

  • New: Goniometer with a 1st order or 4-th order Linkwitz-Riley crossover filter.
    • Has a mono, RGB and Triband mode.
    • The crossover filter can be configured on the Filters configuration page.
  • New: Gold and Triband gradient.
  • New: Reset on track change setting to reset the FFT peaks when a track starts or stops. Useful when you set the fall rate to 0 dB/s. Forum request
  • New: Compiled with foobar2000 SDK 2026-09-17.
  • New: Gradient stops can have color source Solid, Dominant Color, Windows and User Interface. Forum Request
  • New: The channels in the configuration dialog can be reordered. Forum request
  • New: You can modify the position of a gradient stop by clicking and dragging on the gradient control. The value will be constrained between the previous and next gradient stop position.
  • Changed: Decay Factor is now Afterglow, expressed in ms, and independent of the refresh rate. Use values between 80 and 150 ms to imitate the afterglow of an analog oscilloscope.
  • Breaking change
    • Artwork Fit Modes are now Free, Fit largest, Fit smallest, Fit width, Fit height and Cover. Fill has been dropped.
    • Extra setting Allow upscaling will upscale the bitmap while respecting any Fit Mode except Free. Forum request
  • Improved: Optimized the render path of the oscilloscope and goniometer.
  • Improved: The file path of the fixed artwork path can contain Windows environment variables.
  • Improved: Curve visualization is 4 times faster.
  • Improved: Optimized the spectrum LED rendering.
  • Improved: Peak Meter, Bit Meter and Oscilloscope honor the channel order specified in the configuration dialog.
  • Fixed: Controls on the Graphs page were not always enabled or disabled correctly when the visualization changed.
  • Fixed: A 3-year old bug in the non-radix 2 FFT.
  • Fixed: 32-bit Bit Meter interpreted the audio sample as 64-bit.
  • Fixed: Enabling and disabling Bit Meter opacity mode did not reset the opacity of the bit styles.
  • Fixed: Axis settings were disabled for the peak meter.
  • Fixed: Some visualizations did not pick up changes to the user interface colors. (Regression)
  • Fixed: Vertical Grid style of the Oscilloscope visualization did not react to changes. (Regression)
  • Fixed: Spectrum LED rendering when using two or more graphs.
  • Fixed: Color sorting did not work completely correct due to a bug in the HSL to RGB conversion code.
  • Fixed: Peak Meter did not handle mono tracks correctly.

You can read the full history here.

Acknowledgements / Credits

Reference Material

Test Material

Links

License

License: MIT

About

A foobar2000 component that displays a spectrum analyzer.

Topics

Resources

Stars

68 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages