god-tier terminal audio visualizer config Β· deep-V EQ Β· unique patterns per genre Β· cross-platform
A hand-tuned cava configuration built for maximum visual drama. Every genre produces a visually distinct pattern β EDM erupts with towering bass walls and crackling treble spikes, jazz breathes with warm low columns and delicate wisps, classical sweeps luminous mid-range arches. No two songs look the same.
βββ βββ ββββ ββββ βββββ
ββββββββββββ βββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββ
| Stop | Hex | Role |
|---|---|---|
| 1 | #071109 |
Bar roots β near-black forest floor |
| 2 | #0D4025 |
Sub-bass β deep undergrowth |
| 3 | #1A9C6B |
Bass β rich forest-to-teal |
| 4 | #2ED8A2 |
Midrange β vivid emerald |
| 5 | #00E1C0 |
High-mids β pure aquamarine |
| 6 | #00F6D8 |
Presence β bright cyan-aqua |
| 7 | #50FFF0 |
Air β electric seafoam |
| 8 | #AAFFF0 |
Peaks β crystalline near-white aqua |
Background: #0B1A14 β dark forest floor, zero bleed.
Deep-V EQ curve β the single biggest driver of visual variety. Sub-bass bands are boosted to 2.8Γ, the mid-range is scooped to 0.2Γ, and the air band fires at 2.9Γ. This creates a visual canyon in the center so bass and treble columns fire completely independently. Every genre literally looks different:
| Genre | Visual pattern |
|---|---|
| EDM / Trap | Massive bass towers at center, crackling treble spikes at edges |
| Rock | Kick punches up center, guitar presence sits mid-low |
| Jazz | Warm low columns, delicate treble wisps at the flanks |
| Classical | Sweeping mid-range architecture, gentle luminous peaks |
| Lo-fi | Slow rolling hills, almost no treble activity |
noise_reduction = 40 β fast and reactive. Every drum hit, pluck, and stab snaps to a distinct visual event instead of blurring into the previous frame.
reverse = 1 + stereo β treble lives at the outer edges, bass in the center. Kick drums produce a W-shaped crown that collapses back down; hi-hat rolls fire bright spikes at both flanks simultaneously.
waves = 1 + monstercat = 1 β bar tops flow into soft organic curves instead of hard block steps.
Requires Python 3.8+ β no external dependencies.
# Clone
git clone https://github.com/programmersd21/my_cava_dotfiles.git
cd my_cava_dotfiles
# Install (interactive β backs up existing config automatically)
python install.py
# Or force-overwrite silently
python install.py --force
# Preview what would happen without touching anything
python install.py --dry-run
# Restore your old config
python install.py --uninstall| OS | Config location |
|---|---|
| Windows | %APPDATA%\cava\config |
| macOS | ~/.config/cava/config (or $XDG_CONFIG_HOME/cava/config) |
| Linux | ~/.config/cava/config (or $XDG_CONFIG_HOME/cava/config) |
- Detects your OS automatically
- Backs up any existing config with a timestamp before overwriting
- Checks whether
cavais in your PATH and prints install instructions if not - Prints OS-specific audio input guidance after installing
Windows
# Via Scoop (recommended)
scoop bucket add extras
scoop install cavaOr download a pre-built binary from the GitHub releases page.
Cava on Windows captures system audio automatically via WASAPI loopback β no audio configuration needed.
macOS
brew install cavaTo capture system audio (not just microphone), install BlackHole:
brew install blackhole-2chThen set your Mac's output to BlackHole, and set cava's input to portaudio. The installer will remind you.
Linux
# Ubuntu / Debian
sudo apt install cava
# Arch / Manjaro
sudo pacman -S cava
# or from AUR: yay -S cava-git
# Fedora
sudo dnf install cava
# Nix
nix-env -iA nixpkgs.cavaAfter installing, uncomment the correct input method in the config:
[input]
method = pipewire # modern systems
; method = pulse # PulseAudio
; method = alsa # bare ALSA
source = autoFor the best visual experience:
| Setting | Recommendation |
|---|---|
| Background | #0B1A14 β match the config background exactly |
| Font | Iosevka, Maple Mono, or any Nerd Font β soft block glyph geometry reads closest to rounded bars |
| Font size | 8β10pt β more rows = taller bars = more gradient visible |
| Terminal | Windows Terminal, kitty, WezTerm, Alacritty β all support synchronized_sync |
my_cava_dotfiles/
βββ config/
β βββ cava/
β βββ config β the actual cava config
βββ themes/
β βββ verdant_aqua.md β palette reference card
βββ demo/
β βββ demo.gif β the demo of the dotfile
βββ install.py β cross-platform installer
βββ README.md
βββ LICENSE
βββ .github/
βββ ISSUE_TEMPLATE/
βββ bug_report.md
The config is heavily commented β every value explains what it does and why. Key things to tweak:
sensitivity = 150 # raise for quiet sources, lower for loud systems
noise_reduction = 40 # lower = snappier, higher = smoother/more fluid
framerate = 120 # match your monitor's refresh rateTo change the palette, edit the gradient_color_1 through gradient_color_8 values. Any hex colours work.
MIT β do whatever you want with it.
made with πΏ for people who care about their terminal
