to build:

to play:

in essence:

soundfield is a way to selectively resynthesize a spectrogram. you can grab whichever time/frequency areas you want, and tap out a groove using your brand new, reclamied samples.

notes:

i wrote a class called MyAVHelper to help grabbing audio files from the itunes library (thanks mike!) and to compute their spectra using chuck fft. i also use it to convert the spectrum to mels, to take the ifft of the signal, and to create GL color and position vertex arrays to visualize the spectrum. there's a pasture (i felt like it'd be wrong to create a "Field" class) class which stores the spectrum of the clip and an array of Sprout objects. Sprout objects store higher res spectrograms of the sub-spectrogram. they also store the recomputed audio and maintain an index for playback.

if i had infinite time, i'd probably realize that the erosive dialogue of liquids and solids over geologic epochs is the true foundation of all beauty. then, i may decide to finish this project. namely i'd use some sort of bandpass filtering in order to select which spectral bins to resynthesize. i'm currently setting everything outside a defined range to zero, which is effectively applying a rectangular window in the frequency domain. everyone knows that such an ideal bandpass filter is infinitely long in the time domain, which leads to all sorts of wonky time aliasing. whoops. i'd also like for the user to be able to select which song to sample and scan through the song. they could probs then save their wprouts or fields/pastures to play back later.

video:

i wish i had a good way to document this app, but the simulator isn't quite capable of handling the audio library interaction and multi-touch needed to do it justice, and i still haven't figured out the best way to film myself playing with it on the tiny iphone screen. you'll just have to trust that it's cool.