Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 1.85 KB

README.md

File metadata and controls

32 lines (23 loc) · 1.85 KB

AudioVisualizer

An FFT based audio visualizer built with C++ and OpenGL

Goals

This project was meant to be my first forray into graphics programming and also audio file processing.

The architecture is pretty short and sweet. One object holds and initializes audio data from a .wav file. I sample this file at regular intervals and perform a FFT on the samples. This gives me logarithmic frequency data to feed to the OpenGL rendere object. This object then manipulates the patters of the data and passes the final numbers onto the shader for rendering.'

If you would like to see the debug output for just the FFT, uncomment the #define DEBUG_DRAW in AudioVis.h to see an FFT of your .wav similar to the one below:

The final visualizer dynamically responds to an inputted .wav file, just like the gif below.

Building

The included Visual Studio solution file should be self contained and links to all the libraries and tools in the /External folder. Open it up in VS2019 and run in whatever configuration you please.

Tools and libraries

  • SFML was used for audio file reading and sampling
  • A cheap FFT based on the Cooley-Turkey algorithm was implemented from here
  • Inspiration and boilerplate code for OpenGL was taken from my own tutorial repo
  • OpenGL tooling includes:
    • GLEW for extension management
    • GLFW for easy window and context work
    • GLM for math classes and methods