Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Smearing an audio recording using Fourier transform

  1. Oct 12, 2016 #1

    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 [Broken]

    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 [Broken]

    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: May 8, 2017
  2. jcsd
  3. Oct 12, 2016 #2
    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?
  4. Oct 12, 2016 #3
    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.
  5. Oct 12, 2016 #4
    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 [Broken]
    Last edited by a moderator: May 8, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted