When processing audio with DFT, a common strategy is to keep a buffer of many samples (maybe 8192) which is continuously updated, but compute the DFT of this buffer more quickly (say every 1024 samples). The idea being that you can get higher frequency resolution, but still get new data at a rapid rate. However, this has the obvious downside of effectively averaging the data out. Sharp transients will not result in correspondingly sharp spikes in the output of the DFT.
Is there some way to address this problem? I know that we have some inherent tradeoff between frequency resolution and time resolution, but I'm wondering if there is some way to combine the benefits of small and large buffers.
I had an idea when considering this problem: what if you compute the DFT of every 1024 samples, and also compute the DFT of the large buffer (8192 samples). Then, perhaps you can look at the differences between these two DFTs, and use the transient information from the less accurate one to influence the more accurate one.
Is this concept familiar to anyone? I can try to implement it myself, but it would be nice if such a thing has already been implemented, or proven to not work.