/rAVen

Audio Visualizer written in Raylib that looks cool

Primary LanguageCGNU Lesser General Public License v3.0LGPL-3.0

rAVen

Note

rAVen is currently a Work in Progress (WIP).

Just making AUDIO look and feel cool


Table of Contents

  1. Dependencies
  2. C Libraries Used
  3. Understanding FFT
  4. Building rAVen
  5. FAQ
  6. License

Deps


C Libraries Used

  • raylib: For rendering and visualizing audio
  • math, complex, assert: For FFT (Fast Fourier Transform)
  • libavformat: For metadata extraction
  • Other standard C libraries

Understanding FFT

Fast Fourier Transform (FFT) is a powerful algorithm that blends math and algorithms beautifully.

To dive deeper, check out the comments in the FFT.c file to understand how FFT is used to analyze audio samples.


Building rAVen

Warning

The build script is currently unavailable as it's undergoing changes. For now, use the Makefile.

Using the Build Script:

chmod +x build.sh
./build.sh
./raven samples/sample-15s.wav

Using Makefile:

make
./raven

Using CMake:

cmake -S . -B build/
cmake --build build/
./build/raven samples/sample-15s.wav

FAQ

1. How does the math work?

Check out the fft.c file to understand how Fast Fourier Transform is used to analyze audio samples.


2. What audio formats are supported?

rAVen supports all formats supported by RAYLIB.

Note

Although RAYLIB supports .flac, it's not enabled by default. To enable .flac support:

  • Go to src/config.h in raylib and uncomment the following line:
    //#define SUPPORT_FILEFORMAT_FLAC 1

Then follow the raylib documentation for building raylib with this change.

3. What color pallette does rAVen follow?

rAVen uses GRUVBOX color schema This color schema is something I use daily and I have come to really like it

There may be a time in the future of rAVen where I may make the theme customizable but for now, hope you like GRUVBOX :)


3. Will rAVen integrate with audio services like PipeWire, ALSA, or PulseAudio?

rAVen aims to support these services eventually. The first priority will be PipeWire, with plans to explore ALSA and PulseAudio integration in the future.


License

rAVen is free and open-source software, licensed under the GNU Lesser General Public License. See the full LICENSE for more details.


Screenshots

raven1 raven2 raven3