Skip to content
/ EchoPy Public

EchoPy is a stunning real-time audio visualizer built with Python, featuring 10+ unique visualization styles, 10 beautiful color themes, and support for custom backgrounds.

License

Notifications You must be signed in to change notification settings

userlg/EchoPy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต EchoPy - Modern Music Visualizer

Version Python License

EchoPy is a stunning real-time audio visualizer built with Python, featuring 10+ unique visualization styles, 10 beautiful color themes, and support for custom backgrounds.

โœจ Features

๐ŸŽจ 10+ Visualization Styles

  • Spectrum Bars - Classic frequency analyzer with gradient bars
  • Waveform - Time-domain wave with glow effects
  • Circular Spectrum - Radial frequency display
  • Particles - Physics-based particle system
  • Radial Bars - Rotating sunray effect
  • Fire Effect - Heat map simulation
  • Matrix Rain - Cyberpunk falling characters
  • Oscilloscope - Lissajous curves with CRT effects
  • Frequency Rings - Expanding ripple patterns
  • Audio Lines - Flowing Bezier curves

๐ŸŒˆ Premium Color Themes

  1. Modern - Indigo to Cyan gradients (Premium default)
  2. Cyberpunk - High-contrast Neon Pink & Blue
  3. Aurora - Northern Lights inspired (Green/Blue) [NEW]
  4. Aesthetic - Soft pastel colors
  5. Classic - Retro green monochrome
  6. Fire - intense Red to yellow flame colors
  7. Ocean - Deep blue to cyan waves
  8. Sunset - Warm Orange and Purple hues
  9. Neon - Bright multi-color spectrum
  10. Rainbow - Full ROYGBIV spectrum

๐ŸŽ›๏ธ Advanced Features

  • ๐Ÿ–ผ๏ธ Custom backgrounds - Persistent background loading
  • ๐ŸŽš๏ธ Audio device selection - Choose input source
  • โš™๏ธ Configurable settings - Adjust smoothing, sample rate, FFT size
  • ๐Ÿ–ฅ๏ธ Fullscreen mode - Immersive experience (F11)
  • ๐Ÿ’พ Settings persistence - Robust saving to AppData
  • ๐Ÿ“Š Real-time performance - 60 FPS smooth rendering
  • ๐Ÿ’Ž Premium UI - Glassmorphism, SVG icons, and modern controls

Architecture

EchoPy follows a decoupled architecture inspired by Clean Architecture and SOLID principles.

EchoPy Architecture

graph TD
    subgraph Presentation_Layer [Presentation Layer]
        MW[MainWindow]
        VW[VisualizerWidget]
        CP[ControlPanel]
    end

    subgraph Core_Logic [Core Logic]
        AP[AudioProcessor]
        VF[VisualizerFactory]
        SB[SmoothingBuffer]
    end

    subgraph Plugin_Layer [Plugin Layer - Styles]
        BaseV[BaseVisualizer]
        Styles[SpectrumBars, Waveform, etc.]
    end

    MW --> VF
    MW --> AP
    VF --> BaseV
    BaseV -.-> Styles
    AP --> SB
    AP -- Audio Data --> VW
    VW -- delegate render --> BaseV
Loading

๐Ÿ“ธ Gallery

๐Ÿš€ Installation

Prerequisites

  • Python 3.8 or higher
  • Audio input device (microphone or line-in)

Install Dependencies

pip install -r requirements.txt

๐Ÿ’ป Usage

Running from Source

python src/main.py

Keyboard Shortcuts

  • F11 - Toggle fullscreen
  • Ctrl+H - Show/hide control panel
  • Ctrl+, - Open settings
  • Ctrl+Q - Quit application
  • ESC - Exit fullscreen

๏ฟฝ๏ธ Mouse Controls

  • Right-Click anywhere to open the Main Menu (Settings, Toggle Controls, Fullscreen, Exit).

๐Ÿ“ฆ Building Executables

Windows

# Install PyInstaller
pip install pyinstaller

# Build executable
pyinstaller build.spec

# Find executable in dist/EchoPy.exe

Linux

# Install PyInstaller
pip install pyinstaller

# Build executable
pyinstaller build.spec

# Find executable in dist/EchoPy

The generated executable will be approximately 100-150MB due to bundled dependencies.

๐ŸŽฎ Controls

Control Panel

Access via Ctrl+H or Right-Click > Toggle Controls.

  • Visualization Style - Dropdown to select visualization mode
  • Color Theme - Grid of theme buttons for quick switching
  • Background - Load custom images or clear background

Settings Dialog

Access via Ctrl+, or Right-Click > Preferences.

  • Input Device - Select audio source
  • Sample Rate - 22050, 44100, or 48000 Hz
  • FFT Size - Trade-off between frequency/time resolution
  • Smoothing - Adjust visual stability (0.0 to 1.0)
  • BG Opacity - Background image transparency
  • FPS Limit - Set maximum frame rate

๐Ÿ”ง Configuration

Settings are automatically saved to config.json in the user's data directory (ensuring persistence even after updates):

  • Windows: %LOCALAPPDATA%\EchoPy\config.json
  • Linux/Mac: ~/.local/share/EchoPy/config.json
{
  "theme": "modern",
  "style": "spectrum_bars",
  "sample_rate": 44100,
  "fft_size": 2048,
  "smoothing": 0.8,
  "background_image": null,
  "fps_limit": 60
}

๐Ÿ“ Project Structure

EchoPy/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py              # Application entry point
โ”‚   โ”œโ”€โ”€ audio_processor.py   # Audio capture and FFT
โ”‚   โ”œโ”€โ”€ visualizer.py        # Base visualizer classes
โ”‚   โ”œโ”€โ”€ themes.py            # Color theme definitions
โ”‚   โ”œโ”€โ”€ utils.py             # Utility functions
โ”‚   โ”œโ”€โ”€ styles/              # Visualization implementations
โ”‚   โ””โ”€โ”€ ui/                  # User interface components
โ”œโ”€โ”€ resources/               # Icons and assets
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ build.spec              # PyInstaller configuration
โ””โ”€โ”€ README.md

๐ŸŽฏ Performance Tips

  1. Lower FFT Size - Faster processing, less frequency detail
  2. Reduce Smoothing - More responsive but jittery
  3. Limit FPS - Lower values reduce CPU usage
  4. Simpler Styles - Spectrum Bars and Waveform are fastest

๐Ÿ› Troubleshooting

No Audio Input

  • Check that your microphone is connected and enabled
  • Select the correct input device in Settings
  • Grant microphone permissions if prompted

Low Frame Rate

  • Close other applications to free up CPU
  • Reduce FPS limit in settings
  • Try simpler visualization styles
  • Lower FFT size

Capturing System Audio

By default, EchoPy captures from microphone. To visualize music playing on your computer:

Windows:

Linux:

  • Use PulseAudio Monitor: pavucontrol
  • Or JACK audio routing

๐Ÿ“„ License

MIT License - See LICENSE file for details

๐Ÿค Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new visualization styles
  • Add new color themes
  • Improve performance
  • Enhance documentation

๐Ÿ™ Credits

Built with:


Enjoy visualizing your music! ๐ŸŽถโœจ

About

EchoPy is a stunning real-time audio visualizer built with Python, featuring 10+ unique visualization styles, 10 beautiful color themes, and support for custom backgrounds.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published