A modern, high-performance audio waveform visualizer built in Rust. See your music like never before! Still work in progress!
- Multi-format support: Load and visualize WAV, MP3, FLAC, AAC, and OGG audio files
- Efficient memory management: Chunk-based loading lets you work with even massive audio files without slowdowns
- High-precision timing: Fixed-point arithmetic ensures sample-accurate time representation
- Interactive navigation:
- Zoom in/out with Alt+Scroll to see the details or the big picture
- Easily navigate through your audio with the scroll wheel
- Clear time markers help you find exactly what you're looking for
- Beautiful visualization: Color-coded waveform display with chunk boundaries makes patterns easy to spot
- Responsive UI: Built with the ergonomic egui framework for a snappy experience
- Rust (1.74 or newer recommended)
- Cargo package manager
-
Clone the repository:
git clone https://github.com/yourusername/audio-visualizer.git cd audio-visualizer -
Build the project:
cargo build --release
-
Run the application:
cargo run --release
Getting started is super easy:
- Launch the application
- Click on "File" → "Open..." to select an audio file
- Use the mouse wheel to navigate through the audio
- Hold Alt while scrolling to zoom in and out
- Keep an eye on the status bar for your current position and loading status
- Alt + Scroll: Zoom in/out
- Scroll: Navigate through the audio timeline
The visualizer uses a smart chunk-based approach that makes it incredibly efficient:
- Audio is loaded in manageable chunks of 1024 samples
- Only the chunks you actually need are kept in memory
- The app automatically loads/unloads chunks as you navigate
- High-precision fixed-point arithmetic ensures you get sample-accurate timing
- eframe/egui: Sleek GUI framework
- symphonia: Powerful audio decoding for multiple formats
- fixed: Rock-solid fixed-point arithmetic
- rustfft: Lightning-fast Fourier Transform capabilities
- ringbuf: Super efficient ringbuffer implementation
- rfd: Native file dialogs that look right at home on your OS
This project is licensed under the MIT License - see the LICENSE file for details.
