Okay, say you're doing a real-time FFT on an input signal. It doesn't matter what it might be at the moment. An FFT, if I read all of the descriptions correctly (I'm going by what my copy of the Csound Book tells me), basically splits a time-domain signal up into a (fairly large) number of bins across the frequency domain, with the strength of the signal for that slice of the frequency domain contained within each bin.

First off, how often is that amplitude-per-bin information updated? (I would assume it updates at the audio rate, otherwise you're losing a lot of information). This is a digression, though, and not really a part of the point of this post.

Now, in-between the FFT and its inverse, you can manipulate those bins directly. Which means that multiplying a selection of bins by a coefficient, perhaps determined by a cubic curve or something even more interesting? Also, if you wanted, couldn't one add information to bins that contain very little or no info at all?

In theory, with fine-grained enough bins, you could simulate just about any kind of filter in existence.

Here's another thought I've had: Could one do an FFT on a signal, and then do the inverse several times across smaller ranges of bins, ie, split 1024 bins into four sets of 256, and get four new signals separated by frequency? Just how atomic can one get with FFT?

Thanks for the help!