A C++ and Manim based project that analyzes audio by computing the Discrete Fourier Transform (DFT) on short time windows of a WAV file. The FFT magnitudes are then exported to a CSV file and animated in Manim as dynamic bars.
The Fourier transform (FT) is an integral transform that takes a function as input, and outputs another function that describes the extent to which various frequencies are present in the original function.
The Discrete Fourier Transform (DFT) is a mathematical tool that converts a discrete sequence of data points from the time domain into a corresponding sequence in the frequency domain, breaking down a signal into its fundamental sinusoidal components.
The DFT thus proves useful to extract the frequencies present in digital audio files (like WAV!)
- Read WAV files and processe raw PCM samples (from scratch)
- Compute DFT on moving windows for time–frequency analysis
- Use the manim library to dynamically display these frequency bars
- Build a real-time visualiser using OpenGL
