A Python desktop application that recreates the classic Xbox 360 music visualizer experience with modern audio processing and smooth animations.
✨ Two Visualization Modes:
- Vertical Bar Spectrum: Classic equalizer-style bars with smooth color gradients
- Circular/Particle Mode: Dynamic particle system reactive to bass, mids, and highs
🎵 Multiple Audio Sources:
- Download and visualize audio from YouTube URLs
- Load local audio files (MP3, WAV, M4A, FLAC, OGG)
🎨 Xbox 360 Inspired Design:
- Adaptive color schemes with smooth transitions
- Blue → Cyan → Green → Yellow → Red gradient
- Fluid animations synchronized to audio
🎛️ Full Playback Controls:
- Play, Pause, Stop controls
- Volume adjustment
- Real-time FFT analysis (32 frequency bands)
-
Python 3.8 or higher
python --version
-
FFmpeg (required for audio file conversion)
- Windows: Download from ffmpeg.org and add to PATH
- Linux:
sudo apt-get install ffmpeg
- macOS:
brew install ffmpeg
pip install -r requirements.txt
Or install manually:
pip install PyQt6 pyqtgraph numpy scipy librosa soundfile pydub pytube pygame
python aurora_visualizer.py
-
From YouTube:
- Paste a YouTube URL in the input field
- Click "Download & Visualize"
- Wait for download and processing to complete
-
From Local File:
- Click "Choose Local File"
- Select an audio file (MP3, WAV, M4A, etc.)
- Audio will be loaded automatically
-
Choose Visualization Mode:
- Select "Vertical Bar Spectrum" for classic equalizer bars
- Select "Circular/Particle Mode" for dynamic particle effects
-
Playback Controls:
- Click ▶ Play to start audio and visualization
- Use ⏸ Pause to pause playback
- Click ⏹ Stop to stop and reset
- Adjust volume with the slider
- FFT Analysis: Real-time Fast Fourier Transform on 2048-sample chunks
- Sample Rate: 44.1 kHz
- Frequency Bands: 32 logarithmically-spaced bands (20 Hz - 20 kHz)
- Smoothing: Exponential smoothing for fluid transitions
- Render Rate: ~30 FPS
- Bar Spectrum: 32 vertical bars with dynamic coloring
- Circular Mode: 64 particles per frequency band (bass, mids, highs)
- Color Scheme: Xbox 360 inspired gradient with amplitude-based brightness
- PyQt6: GUI framework
- PyQtGraph: Real-time visualization rendering
- librosa: Audio loading and processing
- scipy: FFT computations
- pygame: Audio playback
- pytube: YouTube audio download
- pydub: Audio format conversion
- Error: pytube not available: Install with
pip install pytube
- Download fails: YouTube may have changed their API. Try these alternatives:
- Use the local file option instead
- Manually download audio using yt-dlp:
yt-dlp -x --audio-format wav <URL>
- Install yt-dlp as alternative:
pip install yt-dlp
(requires code modification)
- No sound: Check volume slider and system audio settings
- Crackling audio: Try adjusting the buffer size in the code (pygame.mixer.init buffer parameter)
- Ensure FFmpeg is installed and added to your system PATH
- Test with:
ffmpeg -version
- Close other applications consuming CPU
- Try reducing the number of particles or bars in the code
- Ensure your system supports hardware acceleration for graphics
AudioVisualizer/
├── aurora_visualizer.py # Main application (single file)
├── requirements.txt # Python dependencies
└── README.md # This file
- OS: Windows 10+, macOS 10.14+, Linux (Ubuntu 20.04+)
- Python: 3.8 or higher
- RAM: 4 GB minimum, 8 GB recommended
- CPU: Multi-core processor recommended for smooth visualization
- YouTube download may fail due to pytube compatibility with YouTube changes
- Large audio files (>100 MB) may take time to load
- Visualization performance depends on system resources
Contributions are welcome! Feel free to submit issues or pull requests.
This project is open source and available under the MIT License.
Inspired by the iconic Xbox 360 music visualizer. Built with modern Python libraries for audio processing and visualization.
Enjoy your music with stunning visualizations! 🎵✨