I want to know how it's possible to substract one audio track from another. Meaning that you cut out the frequency spectrum of a audio file from another.

I know how the phase inversion trick used to create diy acapellas, but what I want is to substract a track from another that have nothing in common.

I think there are a few denoising programms, that let you input a sample of the noise to be removed from a recording, so I guess it would be something along those lines?

Would be very glad if someone could tell me how to do this and which application to use.


In the case where your two audio signals S1[n] and S2[n] are of same length, and we are speaking of discrete time, discrete value signals, the DFT being a linear transform :

DFT (S1[n] - S2[n]) = DFT(S1[n]) - DFT(S2[n])

It means that subtracting the spectrum of S2[n] from the spectrum of S1[n] and transform back into time domain signal will produce the same result than subtracting S1[n] from S2[n], even if they have nothing in common.

The difference with noise suppression software is the use of a (short) sample of the noise to be used over a (longer) signal, which implies advanced settings which are not only computing the frequency spectrum of the noise but also dealing with thresholds (some frequency components of the noise are also part of the useful signal, we don't want to remove these ...) and other advanced aspects that allow for an artifact-less result.

There are various free or commercial packages for noise removal. Among them :

  • Audacity has one module for such tasks
  • Cedar is a well established product
  • iZotope RX4 is also a well established product

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.