Smearing an audio recording using Fourier transform

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
dwarp
Messages
3
Reaction score
0
Hi!

I'd like to smear an audio recording, where the frequency content audibly changes, into an audio recording where it does not. Here's a recording of a sampled piano playing a melody, which will serve as an example:

https://dl.dropboxusercontent.com/u/9355745/oldmcdonald.wav

The frequency content changes, both during each note played and because different notes are being played. I'd like to use the Fourier transform to somehow produce something like this:

https://dl.dropboxusercontent.com/u/9355745/oldmcdonaldsmear.wav

This was created by repeatedly playing the original recording into a reverb with a very high decay. There's still some "shimmering" in the recording, so the result isn't completely smeared out.

One way I can think of doing this is by computing an STFT and then combining the resulting windows into an average, which is then used as input to the reverse Fourier transform to produce a new audio recording (and I'm guessing this is what the reverb is actually doing). Is there a simpler, perhaps more elegant way of doing this?

The reason I'm asking is that for the longest time, I thought the result of the DFT *was* the average frequency content of the input. It seems this is only true if the frequency content in the input signal does not change over time - if I had been able to smear the signal completely, the DFT of that smeared signal *would* have been the average frequency content of the smeared signal. Imagine, for instance, if I'd run 4 seconds of a square wave at 80 Hz - the DFT would give me the same thing an EQ analyzer would.

But then, since the un-smeared signal can be accurately represented by a sum of sine and cosine waves (that is, the result of the DFT), its frequency content does not, in fact, change over time. Obviously, though, if you listen to the unsmeared signal, its frequency content DOES change over time, or there wouldn't be a melody! I find all this incredibly confusing.
 
Last edited by a moderator:
Engineering news on Phys.org
What is the purpose for such a process? Could you for instance, under perfect conditions, go backwards and end up with the same notes in the right sequence?
 
The purpose is getting an idea of the frequency content in an audio recording - whether there's a lot of bass, a lot of treble, etc. I also like the idea of getting the "average sound" of a longer recording just to hear what it sounds like. I don't expect to be able, and am not interested in being able, to reproduce the original signal from the result, as I would be able to with a straight up DFT, no.
 
Also, since I believed the DFT contained the average frequency content, I did try ifft(abs(fft(signal), and I actually got kind of close to what I was trying to achieve - the result is kind of smeared - but it's also still "pulsating" (the volume is modulating) at the same frequency that the notes were played in the original recording (4 Hz):

https://dl.dropboxusercontent.com/u/9355745/newmcdonald.wav
 
Last edited by a moderator: