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
