Example: I have two versions of one song, and one of them misses some parts. I want to see which parts are missing and which are different.

I see interface of such program as two adjacent waveforms, moved apart and highlighted in places of differences. In other words, audio equivalent of diff/merge text tools interface.

  • Platform: desktop
  • Preferably cross-platform
  • Preferably Free and Open-Source Software, but I'll consider other options too

1 Answer 1


Download and install python, numpy, graphplotlib and audiolab you can then:

  • Load audio files into numpy arrays using audiolab.
  • Diff the arrays.
  • Plot the result.
  • Learn a lot... it's all free
  • PLOT the result. You can learn a LOT.. Jul 24, 2016 at 0:47
  • Surely this might only work for losslessly compressed files? (and even then, finding shifted segments are significantly more complicated than "diff the arrays") Dec 15, 2018 at 8:13
  • @GertvandenBerg The process above does decompress the signal but you are correct that there will be some difference if lossy compression has been used - in that case some filtering &/or minimum difference levels will be needed. The above does have the facilities for that but it will require some user experimentation for how close is close enough hence the plotting stage. Dec 15, 2018 at 10:53
  • 1
    I'm thinking that building something based on chopping the files up and using phash on parts (shifted by various amounts in case they don't start at the same time) might work... (Not very simple to implement though...) There might also be some uses for convolution functions... None of that is simple though... Dec 16, 2018 at 11:24
  • @GertvandenBerg there is a set of python bindings for libphash. Dec 16, 2018 at 12:05

Your Answer

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

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