Thanks to visit codestin.com
Credit goes to github.com

Skip to content

AhmedAbouelkher/waview

Repository files navigation

Waview

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.

V2 Preview (Latest)

waview_v2_demo.mp4

V1 Preview

Screen.Recording.2026-04-05.at.20.39.04.mp4

Features

  • 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 Makefile target to build a native .app bundle.

Prerequisites

  • Raylib
  • A C compiler (GCC/Clang)
  • make (optional)

Building

Standard Build

If you have make installed:

make build

The executable will be located in the build/ directory.

Otherwise, compile manually linking raylib:

cc main.c -lraylib -lm -o waview

macOS App Bundle

To create a native macOS application bundle:

make macos

This will generate Waview.app in the build/ directory.

Usage

Run the executable and provide the path to an audio file:

./waview path/to/your/music.mp3

Controls

  • SPACE: Play/Pause
  • L: Toggle View Mode (Horizontal/Radial)
  • UP/DOWN: Volume +/-
  • LEFT/RIGHT: Seek +/- 5s
  • M: Mute/Unmute
  • Q / ESC: Quit
  • Drag & Drop: Drop any supported audio file to play it immediately.

License

This project is licensed under the MIT License.


Sideprojects

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.

Features

  • 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.

About

A simple audio visualizer built with C and Raylib. (Still in-progress)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages