karlstav/cava
FreeCross-platform Audio Visualizer
FreeFree tier
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.