FFT
The fun, fun world of the Fourier Transform! A lot of explanation followed
by some snazzy applications of the FFT.
Links
Googling "FFT" will get you loads of links, many of them bordering
on the edge of incomprehensibility and sanity. The FFT is one of the
real 'workhorses' of the digital age, and it's applications extend beyond
our musical use (although audio DSP is a big area for FFT usage). Below
are a few links I've found particularly useful, following up on our
class discussion:
- Who is Fourier?
-- This is the book I described in class (and Ethan had a copy). It's
really goofy, but it's the best explanation of the Fourier transform
that I've found. It also teaches you some calculus for fun! Highly
recommended if you want to learn this stuff.
- Musical Applications of Microprocessors
-- I also mentioned this book. As the book is (apparently) out-of-print,
the cost of the book
is very high. Louis found an on-line version through scribd, so we've
linked it here. I think we also have a copy floating around the CMC.
It has the best explanation of the 'butterfly' bit-swap that the FFT
uses (not used in the plain ole FT or DFT).
- The Phase Vocoder: A Tutorial
-- Mark Dolson's article on the Phase Vocoder (PVOC) implementation of the
FFT. Good description of how 'phase-unwrapping' works.
- Graphs of y = a sin x and y = a cos x
-- Nice article on the unit circle, with good demos of how the sine
and cosine components unroll in time.
code:
- John Gibson's software
-- John Gibson's software download page. The
[jg.spectdelay~] spectral delay object lives here.
- [jg.resynth~-beta.zip]
-- This archive contains the object (not yet completely finished;
it might crash occasionally!) that allows you to use
SPEAR data in your max patch.
The class archive below contains some simple examples of how it can be used.
- "paulstretch" standalone app download
-- The "paulstretch" application that allows for very looooooong stretching
of soundfiles using a modified FFT.
Paul Nasca
(the author) does some
randomizing of the phase while resynthesizing the sound, preventing
the result from sounding too sonically static. The code for the
algorithm can be downloaded
here.
- vb-objects
-- The download portion of
Volker Boehm's website.
The [vbstretch~] object partway down the listing is a Max/MSP
implementation of the "paulstretch" algorithm. Some other interesting
objects here, too.
music:
Two things I played in class:
- Bob Dylan stretched
- Steve Reich stretched
Class Downloads
- week8-classpatches.zip
-- The demos of John Gibson's [jg.resynth~] object. I
also included the "hey-mono.sdif" analysis file generated from
the SPEAR analysis program.