foobar2000

Analog VU Meter Visualisation

By: oops

foo_vis_vumeter is modern reimplementation of the analog VU meter component by DRON. It renders using DirectX 12.

Features
  • Supports VUEditor-generated ".bin" files.
    • Can be BZ2-compressed, LZMA-compressed, Gzip-compressed, Zstandard-compressed, LZ4-compressed or uncompressed.
    • Can use needles or lamps (LEDs), or both.
    • Can contain a single panel for left and right channels or separate left and right panels.
  • Supports AIMP analog ".zip" skins.
    • Must be ZIP-compressed and contain a "skin.ini" alongside corresponding PNG images.
    • Can contain a single panel for left and right channels or separate left and right panels.
  • Supports AIMP LED ".zip" skins.
    • Must be ZIP-compressed and contain a "settings.ini" alongside corresponding PNG images.
    • Can contain a single panel for left and right channels.
  • Includes many fine-tuning options and modes.
  • Implements controls through the mouse context menu.
  • Compatible with the Default User Interface (Default UI) and the Columns User Interface (Columns UI).
  • Tested on foobar2000 v2.24.1 (x86 32-bit and x86 64-bit) and Microsoft Windows 11 (Build 26100).
  • Requires Windows 10 or later due to DirectX 12.
    • Falls back to the WARP software rasterizer if no DirectX 12-compatible adapter found.
Installation
  • Install the component using the "foo_vis_vumeter.fb2k-component" file that can be downloaded from this page.
  • Download and extract panels/skins into this component's folder of foobar2000. This should be "<foobar2000 profile folder>\vumeter".
    • A large number of these can be downloaded from tom2tec's "The Audio File" Gallery.
    • Create custom panels using DRON's VUEditor.
    • Another collection of skins collected and curated by Artem (AIMP main developer).
    • LED skins gallery and creation tool by xrEngine.
    • Some newly developed panels have been posted to the foo_vis_vumeter thread in the HydrogenAudio Forum.

Current version: 0.9.5, released on 2025-01-20

Change log:

  • Implement transparent bitmap extension to the BIN VU meter file specification
  • Extend render target for GDI-drawing into a texture 2-D resource to implement pseudo-transparency
    • Add "Transparent" context menu option
  • Add screenshot capability
  • Move panel list and configuration into client
    • Implement panel directory memoization for main menu, gestures and COM Automation
    • Centralize in-group meter switching to replace mailbox
    • Reorganize header inclusions for updated architecture [developer]
  • Add inertia envelope for audio levels
    • Add "Inertia" context menu option
    • Set "Inertia" to its default value on context menu "Reset" command
    • Default "Inertia" to enabled
    • Add "Inertia" and "Level" options to tuning dialog
    • Fix double application of "Inertia"
  • Fix Columns UI fullscreen within Panel Stack Splitter crash
  • Adjust context menu logic for improved display of enabled and disabled options
  • Update advanced preferences
    • Add console debug output option
    • Categorize console messages for debug output
  • Update hashing and encode/decode functions [developer]
  • Skip GDI drawing when fullscreen [developer]
  • Update UnRAR to 7.1.3 [developer]
  • Update Columns UI SDK to 8.0.0-beta.1 [developer]
  • Update repository setup and component build scripts
  • Update preprocessor macros [developer]
  • Clean up file formatting [developer]
  • Fix thread pool timer build (not performant) [developer]
  • Update COM interface definition file
    • Extend `IVUMeter` with additional methods
  • Update README

Supported processor architectures: x86 32-bit, x86 64-bit, ARM64, ARM64EC.

Works with foobar2000 v2.0 and newer

Links

Download
View version history
Documentation
Discussion

More components

Browse all
Browse by author: oops
Tags: Columns UI panel, Default UI element, visualization, visualizer

How to install a component?