- #1

dwarp

- 3

- 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

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: