A cross-platform bar spectrum audio visualizer for terminal and desktop environments.
CAVA is a bar spectrum audio visualizer that captures audio from system sources and displays real-time visualizations in terminals or desktop windows. It solves the need for a lightweight, cross-platform tool to visualize music and audio output with customizable aesthetics.
Developers, music enthusiasts, and terminal users who want real-time audio visualizations on Linux, BSD, macOS, or Windows without heavy graphical applications.
Developers choose CAVA for its simplicity, cross-platform support, multiple audio backend integrations, and terminal-native output that works seamlessly in command-line environments.
Cross-platform Audio Visualizer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works on Linux, FreeBSD, macOS, and Windows, as explicitly listed in the README, making it versatile for diverse operating systems without major modifications.
Supports Pipewire, PulseAudio, ALSA, MPD, Sndio, OSS, JACK, and PortAudio, allowing integration with various audio systems, detailed extensively in the Capturing Audio section.
Renders visualizations in terminal emulators (including dumb terminals) and via SDL for graphical displays, offering flexibility for both command-line and desktop use cases.
Provides adjustable bar width, sensitivity, colors, gradients, and equalizer settings through a config file, enabling personalized visual aesthetics for music visualization.
Exports bar data to STDOUT in raw mode for piping into other applications, with example scripts linked in the README for custom integrations.
Configuring audio capture, especially for ALSA, requires creating loopback interfaces and modifying system files, which can be error-prone and system-dependent, as admitted in the ALSA section.
The README notes low frame rates in some terminal emulators and font changes in TTYS, affecting visual smoothness and requiring workarounds like using GPU-based terminals.
Explicitly designed for aesthetic music visualization rather than accuracy, limiting its use for audio analysis or measurement tasks where precision is critical.
Requires installation of multiple dev files (e.g., FFTW, iniparser) and audio backend libraries, which can be cumbersome and vary by platform, complicating initial setup.