Skip to content

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

Notifications You must be signed in to change notification settings

jiwoojang/AudioVisualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published