Is there a technique for intelligently downmixing stereo to mono with FFmpeg or similar?

As we know, a signal phased between the left and right channels can cancel each other out when mixed together. However, I'm wondering if by doing the mixing in the frequency domain rather the time domain, if this problem can largely be avoided.

Is there a way to do this today?

  • If it's a professionally created recording, you should be able to just mix it right to mono. Professionals should still be making their recordings mono safe, because there are still many situations where it will get downmixed to mono in the real world (e.g., overhead Muzak style ambient music in stores and restaurants). If you are making the recordings, make them mono safe. If someone is making them for you, insist that they be mono safe. Jun 15, 2016 at 23:08
  • @ToddWilcox I'm trying to make a fairly fool proof mono mixdown fallback for anything-but-professionals, for use in a software product. Unfortunately, having the users do the right thing isn't possible in this case, because they're just consumers with bad XLR cables, sometimes causing one channel to be out of phase with the other. :-)
    – Brad
    Jun 15, 2016 at 23:24
  • If there were an algorithm that could automatically check for mono incompatibility and fix it in real time, I'm pretty sure there would be at least three plugin "mastering" suites available that would have it. If someone on this stack actually thinks of a way to do this, it would be much wiser of them to write it up and apply for a patent on it than just tell you about it and let you make all the money from it. See also: google.com/… Jun 15, 2016 at 23:27
  • I was hoping for something that already existed. I'm pretty confident that mixing in the frequency domain rather than the time domain is going to help with this problem, but will also introduce some artifacts of the process. If nothing exists, I might just have to code it myself.
    – Brad
    Jun 15, 2016 at 23:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.