Skip to content

Repository files navigation

Pix-Wave

Pix-Wave is a real-time terminal-based audio spectrum visualizer that turns music into a pixel-style frequency wave.

It captures live system audio on Linux, analyzes it using FFT, and renders a smooth, animated dot-matrix equalizer directly in the terminal using Textual + Rich.


Features

  • Live system audio capture (PipeWire / PulseAudio)
  • FFT-based frequency analysis
  • Logarithmic frequency band scaling
  • Retro dot-matrix / pixel-style visualization
  • Multiple color themes:
    • Fire
    • Ice
    • Traffic Lights
    • Neon
  • Smooth decay and motion
  • Headroom + soft peak handling
  • Fully configurable via config.py
  • Runs entirely inside the terminal

Screenshots

🔥 Fire Theme

Fire Theme

❄️ Ice Theme

Ice Theme

🚦 Traffic Lights Theme

Traffic Lights Theme

🌟 Neon Theme

Neon Theme


Configuration

All customization is done in config.py.

Change color theme

DEFAULT_THEME = "fire"   # fire | ice | traffic_lights | neon

DSP & visual tuning
```python
FFT_SIZE = 4096
LOW_FREQ = 300
HIGH_FREQ = 20000
GAIN = 0.35
DECAY = 0.85

No other files need editing.


Running Pix-Wave

Setup (first time only)

./setup.sh

This will:

  • Create a virtual environment
  • Activate it
  • Install all dependencies

Play some music

Pix-Wave listens to system audio, including:

  • Spotify (app or web)
  • YouTube / browser audio
  • Any application producing sound

Run

./run.sh

Linux Audio Notes

  • Designed specifically for Linux
  • Uses PipeWire / PulseAudio
  • Automatically detects:
    • Spotify
    • Browser audio (Chromium / Firefox)
    • Falls back to default system audio
  • No manual audio routing required this doesn't work for other oses

Dependencies

  • Python 3.8+
  • PyAudio
  • NumPy
  • Textual
  • Rich

About

Real-time pixel audio spectrum visualizer built with Python, FFT, and PipeWire. Visualizes live music from Spotify or browser audio with configurable themes in Terminal.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages