Skip to main content

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.

C FFT Visualizer spectrum view
FFT spectrum with log-frequency bars, peak-hold, and dB grid.

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.sh then ./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.