Project
C FFT Visualizer
Real-time audio spectrum visualizer using C, FFTW3, Raylib, and PortAudio.
RoleSystems + Graphics
Date27-09-2025
Tech
CRaylibFFTW3PortAudio
Highlights
- Real-time FFT spectrum with log-frequency bars and smoothing
- Live microphone input or WAV playback via PortAudio
- Configurable analysis and rendering options (averaging, peak-hold, scaling)
Overview
A real-time FFT visualizer that renders log-frequency bars with fractional-octave smoothing, peak-hold, and pink-noise compensation. Works with .wav files or a live microphone input.

Problem / approach
- Visualize audio spectra smoothly with configurable averaging and scaling.
- Keep latency low while supporting multiple smoothing/averaging modes.
- Provide flexible input: file playback or live mic.
Solution
- C + FFTW3 for frequency analysis; Raylib for rendering; PortAudio for I/O.
- Controls for octave scaling, color gradients, pink compensation, averaging presets, peak-hold, and fullscreen.
- Configurable defaults via
include/config.h; run via./build.shthen./build/c_fft_visualizer <audio.wav>or--mic.
Outcome
- Responsive RTA-style display with dB-domain averaging and peak tracking.
- Works on typical Linux setups (e.g.,
sudo pacman -S clang raylib fftw portaudio). - MIT-licensed, ready for tweaking visuals or analysis settings.