karlstav/cava logo

karlstav/cava

Free

Cross-platform Audio Visualizer

FreeFree tier
Type
Open Source

About karlstav/cava

Cava is a bar spectrum audio visualizer for terminal or desktop (SDL). It works on Linux, FreeBSD, macOS, and Windows. It captures audio from various backends including Pulseaudio, ALSA, Pipewire, Portaudio, Sndio, JACK, and OSS, or from fifo files. The program is designed to look responsive and aesthetic when used to visualize music, not for scientific use. It requires FFTW and iniparser as core dependencies, with optional support for SDL2 and ncurses.

Key Features

Bar spectrum audio visualization for terminal (ncurses) or desktop (SDL)
Supports multiple audio backends: Pulseaudio, ALSA, Pipewire, Portaudio, Sndio, JACK, OSS, Core Audio (macOS)
FIFO file input for external audio sources
Cross-platform: Linux, FreeBSD, macOS, Windows
Lightweight with FFTW-based signal processing
Customizable appearance and sensitivity via configuration file
Raw output mode for integration with other applications

Pros & Cons

Pros
  • Free and open source (MIT license)
  • Works on multiple operating systems
  • Supports a wide range of audio capture backends
  • Lightweight and responsive, optimized for music visualization
  • Can be used via SSH for remote visualization
Cons
  • Not designed for scientific or precise audio analysis
  • Requires compiling from source on some platforms (no pre-built binaries)
  • Documentation may be limited for advanced customization

Best For

Visualizing music in the terminal for aesthetic or monitoring purposesIntegrating audio visualization into desktop setups using SDLUsing as a component in larger projects via cavacore libraryRunning over SSH to display visualizer on remote terminals

FAQ

What operating systems does Cava support?
Cava works on Linux, FreeBSD, macOS, and Windows.
Does Cava require a GUI?
No, Cava can run in the terminal using ncurses or in a desktop window using SDL.
Can I use Cava over SSH?
Yes, Cava supports running via SSH, as mentioned in the troubleshooting section.
What audio backends are supported?
Cava supports Pulseaudio, ALSA, Pipewire, Portaudio, Sndio, JACK, OSS, and Core Audio on macOS. It also can read from FIFO files.