How izumoff/aurabars works
AuraBars is a native AIMP embedded spectrum-visualization plugin. AIMP supplies spectrum frames to the registered visualization, which groups and scales frequency bins, maintains animation state, and renders bars, backgrounds, grids, layout, and peak markers to a drawing surface. Users configure the display through AIMP’s options frame; settings are loaded from and saved to AIMP configuration, with presets and clipboard transfer available. The excerpts establish plugin registration, frequency mapping, geometry, settings, and parts of rendering and options behavior; unsampled rendering and dialog details are represented only where the README documents them.
Main entry points: Visualization.cpp Visualization extension · Plugin.cpp Plugin entry · OptionsFrame.cpp Settings dialog · Settings.cpp Live settings
Components 18
AIMP integration
- Plugin entry
src/Plugin.cpp - Visualization extension
src/Visualization.cpp - Options extension
src/OptionsFrame.cpp - Spectrum frames
- Drawing surface
Spectrum visualization
- Bin processing
src/Visualization.cpp - Frequency mapping
src/FrequencyMap.cpp - Bar geometry
src/BarGeometry.cpp - Smoothing and peaks
src/Visualization.cpp - GDI rendering
src/Visualization.cpp
Settings and options
- Live settings
src/Settings.cpp - Settings dialog
src/OptionsFrame.cpp - Built-in presets
src/Presets.cpp
Shared runtime
- Debug logging
src/Common.cpp
Other components
- AIMP host
- AIMP config
- Clipboard
- AIMP user
Connections 22
- AIMP host → Plugin entry: loads plugin
- Plugin entry → Live settings: loads settings
- Plugin entry → AIMP config: reads config
- Plugin entry → Visualization extension: registers extension
- Plugin entry → Options extension: registers extension
- AIMP host → Spectrum frames: provides frames
- Spectrum frames → Visualization extension: draw callback
- Visualization extension → Bin processing: processes bins
- Bin processing → Frequency mapping: maps frequencies
- Visualization extension → Bar geometry: computes layout
- Visualization extension → Smoothing and peaks: updates state
- Visualization extension → GDI rendering: draws frame
- GDI rendering → Drawing surface: draws to
- AIMP user → Settings dialog: edits options
- Options extension → Settings dialog: builds dialog
- Settings dialog → Built-in presets: loads preset
- Settings dialog → Clipboard: copies or pastes
- Settings dialog → Live settings: updates settings
- Options extension → AIMP config: saves config
- Live settings → Visualization extension: supplies values
- Visualization extension → Debug logging: appends samples
- Options extension → Debug logging: logs failures