foo_spectrum_compare ~ Multispectrogram Comparison


A vertical multitrack spectrum comparison panel component designed for foobar2000, suitable for the default UI (DUI).

Features:

Configuration persistence: Panel settings are serialized using the .fth format.

Floating panel: Supports use as an independent floating panel, which can be opened through the main menu “View” (hold Shift to show hidden menu items).

Vertical multi-track comparison: Select multiple audio tracks and divide them vertically into equal sections. Up to 4 audio tracks can be compared simultaneously to show frequency characteristics.

Background thread analysis: Each audio track is decoded and analyzed in an independent thread, without blocking the UI. Analysis begins immediately upon selection, with loading in seconds.

Spek-style color schemes: 3 built-in color palettes—Spectrum (Spek’s classic rainbow), SoX, and Mono (monochrome).

Frequency axis labeling: The left side displays a linear frequency scale of 0–22 kHz, which can be toggled in the right-click menu.

Timeline markings: The bottom displays time scales at 20-second intervals, which can be toggled in the right-click menu.

Custom title format: Supports foobar2000 titleformat syntax for custom track tags, displayed by default %title% | %codec% | %bitrate% kbps[ | $info(bitspersample) bit] | %samplerate% Hz | $info(channels) CH | %path%. Right-click to edit the format and press Enter to confirm; the spectrum will not be reloaded.

DPI-aware: Correctly scales on high-resolution screens such as 4K, with spacing, fonts, and axes all adapting automatically.

Double-buffered rendering: The overall image is output with double buffering, resulting in flicker-free switching between songs.

Bilingual interface: The right-click menu supports one-click switching between Chinese and English, and the language setting is persistent with the panel configuration.

foo_spectrum_compare display

github.com/a1waysbeta/foo_spectrum_compare

Comments welcome