# karlstav/cava

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/karlstav-cava).**

5,856 stars · 286 forks · C · mit

## Links

- GitHub: https://github.com/karlstav/cava
- awesome-repositories: https://awesome-repositories.com/repository/karlstav-cava.md

## Topics

`alsa` `audio-visualizer` `freebsd` `glsl-shaders` `linux` `macos` `ncurses` `pipewire` `portaudio` `pulseaudio` `sdl2` `sndio` `windows`

## Tags

### Graphics & Multimedia

- [Frequency Band Visualizers](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-recording/real-time-visualization/frequency-band-visualizers.md) — Displays real-time frequency spectrum bars from audio output or input directly in the terminal. ([source](https://github.com/karlstav/cava#readme))
- [Audio Visualizers](https://awesome-repositories.com/f/graphics-multimedia/audio-music/terminal-based-audio-playback/audio-visualizers.md) — Displays real-time frequency spectrum bars from audio output directly in the terminal.
- [Audio Backend Extensions](https://awesome-repositories.com/f/graphics-multimedia/audio-backend-extensions.md) — Captures audio data from multiple system sound servers including PulseAudio, PipeWire, ALSA, JACK, and CoreAudio.
- [FIFO-Based Captures](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-recording/system-audio-capture/fifo-based-captures.md) — Captures audio via FIFO pipes from system sound servers for decoupled processing.
- [Audio Source Captures](https://awesome-repositories.com/f/graphics-multimedia/multi-source-audio-playback/audio-source-captures.md) — Reads audio data from PulseAudio, PipeWire, ALSA, JACK, and CoreAudio for spectrum analysis. ([source](https://github.com/karlstav/cava#readme))
- [Adjustable Bar Displays](https://awesome-repositories.com/f/graphics-multimedia/synchronized-lyric-displays/status-bar-lyric-displays/adjustable-bar-displays.md) — Displays real-time audio bars with adjustable sensitivity, width, and colors via keyboard controls.
- [Keyboard-Controlled Appearance Adjustments](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-recording/real-time-visualization/keyboard-controlled-appearance-adjustments.md) — Allows keyboard-controlled adjustment of visualizer appearance without restarting. ([source](https://github.com/karlstav/cava#readme))
- [Live Appearance Configurations](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-recording/real-time-visualization/live-appearance-configurations.md) — Adjusts visualizer appearance and reloads configuration on the fly without restarting.
- [PipeWire Backend Visualizers](https://awesome-repositories.com/f/graphics-multimedia/audio-music/terminal-based-audio-playback/audio-visualizers/pipewire-backend-visualizers.md) — Provides PipeWire integration for terminal-based audio spectrum visualization.
- [Serial Connection Optimizers](https://awesome-repositories.com/f/graphics-multimedia/audio-music/terminal-based-audio-playback/audio-visualizers/serial-connection-optimizers.md) — Optimizes framerate, bar count, and height for smooth visualizations over slow serial connections.
- [Standard Output Streaming](https://awesome-repositories.com/f/graphics-multimedia/standard-output-streaming.md) — Outputs normalized bar amplitude values as plain text or binary data to standard output for piping.
- [Amplitude Data Streamers](https://awesome-repositories.com/f/graphics-multimedia/standard-output-streaming/amplitude-data-streamers.md) — Outputs normalized bar amplitude values as plain text or binary data to standard output for piping.
- [Serial Terminal Audio Renderers](https://awesome-repositories.com/f/graphics-multimedia/video-rendering-pipelines/terminal-video-renderers/serial-terminal-audio-renderers.md) — Renders audio frequency bars on serial terminals using runtime-generated character sets.
- [PulseAudio Backend Analyzers](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/heat-map-generators/audio-frequency-heat-maps/spectrum-analyzers/pulseaudio-backend-analyzers.md) — Captures audio from PulseAudio and other backends for real-time spectrum analysis.

### Part of an Awesome List

- [Audio Spectrum Decompositions](https://awesome-repositories.com/f/awesome-lists/devtools/feature-extraction/frequency-domain/audio-spectrum-decompositions.md) — Implements FFT-based frequency decomposition to map audio samples to bar heights for spectrum display.
- [Terminal and System Tools](https://awesome-repositories.com/f/awesome-lists/devtools/terminal-and-system-tools.md) — Cross-platform audio visualizer for the terminal.
- [Audio Visualizers](https://awesome-repositories.com/f/awesome-lists/media/audio-visualizers.md) — Console-based audio visualizer for ALSA.

### Data & Databases

- [Audio FFT Analyzers](https://awesome-repositories.com/f/data-databases/frequency-analyzers/audio-fft-analyzers.md) — Converts time-domain audio samples into frequency-domain magnitudes using a Fast Fourier Transform.

### System Administration & Monitoring

- [Baud-Rate Adaptive Throttling](https://awesome-repositories.com/f/system-administration-monitoring/frame-rate-controllers/baud-rate-adaptive-throttling.md) — Provides adaptive throttling to maintain smooth audio visualizations over slow serial connections.

### User Interface & Experience

- [Bar Column Renderers](https://awesome-repositories.com/f/user-interface-experience/character-based-visual-elements/coordinate-based-character-rendering/bar-column-renderers.md) — Renders spectrum bars as columns of terminal characters with Unicode block glyphs.
- [Runtime Glyph Generators](https://awesome-repositories.com/f/user-interface-experience/character-encoding-support/unicode-version-providers/character-encoding-support/runtime-glyph-generators.md) — Generates custom terminal glyphs at runtime for spectrum rendering on limited terminals.
- [Serial Terminal Renderers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/rendering-output-engines/terminal-agnostic-renderers/serial-terminal-renderers.md) — Displays real-time frequency bars on serial-connected terminals by generating custom character sets at runtime. ([source](https://github.com/karlstav/cava/blob/master/TERMINAL.md))

### Development Tools & Productivity

- [Live Configuration Reloading](https://awesome-repositories.com/f/development-tools-productivity/keyboard-shortcut-mappings/live-configuration-reloading.md) — Applies config file changes immediately via key press or signal without restarting. ([source](https://github.com/karlstav/cava#readme))

### DevOps & Infrastructure

- [Dynamic Configuration Reloading](https://awesome-repositories.com/f/devops-infrastructure/application-server-configurations/dynamic-configuration-reloading.md) — Listens for SIGUSR1 or key press to re-read config and apply changes without restarting.

### Hardware & IoT

- [Baud Rate Adaptive Visualizers](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/serial-connection-watchers/baud-rate-adaptive-visualizers.md) — Optimizes framerate, bar count, and height for smooth audio visualizations over slow serial connections.
- [Low-Bandwidth Serial Visualizers](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/serial-connection-watchers/low-bandwidth-serial-visualizers.md) — Optimizes audio visualizations for smooth rendering over low-speed serial connections.

### Networking & Communication

- [Serial Data Minimizers](https://awesome-repositories.com/f/networking-communication/low-bandwidth-browsing/serial-data-minimizers.md) — Limits bars, height, spacing, and framerate to reduce data per frame and fit within serial link capacity. ([source](https://github.com/karlstav/cava/blob/master/TERMINAL.md))
- [Amplitude Value Streams](https://awesome-repositories.com/f/networking-communication/raw-data-accessors/amplitude-value-streams.md) — Streams raw bar amplitude values to STDOUT for piping into external tools. ([source](https://github.com/karlstav/cava#readme))

### Software Engineering & Architecture

- [Serial Bandwidth Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations/high-frame-rate-rendering/mobile-ui-frame-rate-optimization/animated-image-frame-rate-optimization/serial-bandwidth-optimizers.md) — Reduces framerate, bar count, and height to keep visualizations smooth over slow serial connections like RS232. ([source](https://github.com/karlstav/cava/blob/master/TERMINAL.md))

### Web Development

- [STDOUT Data Streams](https://awesome-repositories.com/f/web-development/application-event-listeners/external-stream-subscriptions/stdout-data-streams.md) — Streams bar amplitude values to STDOUT for piping into external scripts or applications.
