A simple, high-performance audio visualizer built with C and Raylib.
Note: This is a passion project and is currently a work in progress. I'm still figuring things out as I go!
For the best experience, download and build the project locally.
waview_v2_demo.mp4
Screen.Recording.2026-04-05.at.20.39.04.mp4
- Drag & Drop: Easily load new audio files by dragging them into the window.
- Real-time FFT: Fast Fourier Transform visualization with Hamming windowing.
- Multiple View Modes: Toggle between Horizontal and Radial (Circular) visualizations.
- Smooth Animations: Easing functions and linear interpolation for fluid visual transitions.
- Audio Controls: Play, pause, seek, and volume management.
- Format Support: Supports various audio formats via Raylib (mp3, wav, ogg, etc.).
- macOS App Bundle: Includes a
Makefiletarget to build a native.appbundle.
- Raylib
- A C compiler (GCC/Clang)
make(optional)
If you have make installed:
make buildThe executable will be located in the build/ directory.
Otherwise, compile manually linking raylib:
cc main.c -lraylib -lm -o waviewTo create a native macOS application bundle:
make macosThis will generate Waview.app in the build/ directory.
Run the executable and provide the path to an audio file:
./waview path/to/your/music.mp3SPACE: Play/PauseL: Toggle View Mode (Horizontal/Radial)UP/DOWN: Volume +/-LEFT/RIGHT: Seek +/- 5sM: Mute/UnmuteQ/ESC: Quit- Drag & Drop: Drop any supported audio file to play it immediately.
This project is licensed under the MIT License.
A lightweight, dependency-free C library for parsing and reading WAV audio files. This project provides a simple API to extract header information and read sample data as normalized floating-point values.
- Header Parsing: Extract sample rate, channel count, bit depth, and more.
- Normalized Output: Automatically converts 8-bit, 16-bit, and 32-bit PCM data to
float(-1.0 to 1.0). - Flexible Reading:
readWaveFile_float: Read the entire file at once.readWaveFile_Cfloat: Read data in chunks (useful for streaming or large files).
- Zero Dependencies: Standard C library only.