## source

download for fun

## how-to:

download file. unzip said file. make. run fft. enjoy!

## notes:

ripple is a way to visualize an audio stream ripples eminating out from the
center of a technorainbow puddle.

you can adjust the number of ripples, the gain(/decay) of each ripple,
and how the frequency bins of the fft are spread around the circle (watch
out!!). to see the full usage, run: fft -h .

to create the surface, i create a "ring" for each fft buffer in the
x and z planes. the y values correspond to the magnitude of the fft bin at
that frequency. as time flows forward, a given fft buffer moves from the
center toward the edge. this is acheived by increasing the radius of the
ring associated with that buffer. i scale the y-values of each fft buffer
by values from a sine wave to produce a rippling effect. the 3-d surface
arises from drawing lots and lots of triangle between successive points
using GL_TRIANGLE_FAN .

i also created a class called MyColors that is used to generate a continuous
rainbow of colors in HSV values and convert them to RGB values. i pulled
most of this code straight from
here.