CAVA

Cross-platform bar spectrum audio visualizer for the terminal or SDL desktop window, with PipeWire, PulseAudio, ALSA, JACK and other input backends.

install

CAVA (Cross-platform Audio Visualizer) is a bar spectrum audio visualizer that renders in a terminal or in a desktop window via SDL. It runs on Linux, FreeBSD, macOS and Windows, and the README notes that it also supports dumb terminals. It is built to look responsive when visualizing music and is explicitly not intended for scientific use.

Audio input is selected with the method option in the config file. Supported backends are PipeWire (the default where supported), PulseAudio, ALSA, sndio, OSS, JACK, portaudio, squeezelite, and a fifo input for sources such as MPD. On macOS, Core Audio is supported without extra capture libraries. The README documents backend-specific setup, for example creating an ALSA loopback interface with modprobe snd_aloop, or adding a fifo audio_output block to mpd and setting source to the fifo path.

CAVA can be built from source with autotools (./autogen.sh, ./configure, make), which requires FFTW, iniparser and build tools. CMake is used on Windows. Ncurses is available as an alternative output method. Beyond standalone use, the audio processing is available as the cavacore library, and CAVA can emit raw output for other applications. It suits terminal users, ricers and people who want a music visualizer running alongside a player.

Installation

# via Homebrew
brew install cava
# via apt
sudo apt install cava
# via pacman
pacman -S cava

CAVA spectrum visualizer

Alternatives & related tools

add a badge to your README

Maintain CAVA? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/cava.svg)](https://www.trmn.sh/tools/cava?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/cava?utm_source=badge"><img src="https://www.trmn.sh/badge/cava.svg" alt="Featured on trmn" height="20"></a>