Performance Concerns


If you are like me than you don't bother downloading individual songs here and there. Why download only one song by an artist when you can download every song your search hits? Select all, hit download, and come back a day later. Viola 100 songs are now on your hard drive. The only problem is that there is usually lots of duplicated songs. Doh. The whole idea of downloading all the songs was to save the effort of selecting your downloads song by song. Now we still have to search through our new collection to weed out the duplicates.

That's a lot of work which is really just a waste of time. That is why I wrote the MP3Cleaner. You give it a directory name containing all your new songs and it will find all the duplicates. If it finds a duplicate you can have it report it, or simply delete the duplicate (thus saving you even more time by automating the deletion process).


  • Can find duplicates based on:
    • file names
    • file sizes
    • song titles
    • album + track names
    • similar file names (with a user defined accuracy threshold!)
  • On possible match it will:
    • Prompt for the you to pick a file to delete (or don't delete either of them)
    • Automatically delete the file with the smaller file size (presumably keeping the higher quality or more complete version of the song)
  • Fully multi-threaded allowing multiple directories to be processed simultaneously
  • Completely free to use with no spyware!! (source code is available)


  • Windows XP or newer (maybe some day I will write a version for any windows version)
  • .Net Framework
  • If you want to compile the code you will need MS Visual Studio .NET

Performance Concerns

This application can find duplicates based on several different file characteristics. This flexibility prohibits intelligently sorting the files in advance. This means that each MP3 file must be compared against every subsequent MP3 file. The processing time goes up exponentially as you add more files. For example, on my AMD Athlon 62 3200+ I was able to process 170 files (with 67 matches) in 75 seconds.

I am Instead you download 100s of songs at once and attempt to sort it all out later. This way of downloading (aka backing up) your MP3's requires a minimal amount of effort when selecting songs to download, just download them all!


Download Just the required files (no source)
Download Don't trust me? Neither would I. Luckily you don't have to. Download the source, make sure its kosher, then build your own version. If you come up with any improvements, please share them with me.


Here is the options screen. Just specify a directory to process and hit start.

Here is a directory being processed. The progress bar is for the overall progress through all MP3's in the specified directory.

Here is an example of one of the user being prompted to resolve a possible match. This is an example of only 1 of the 5 possible match criteria. Remember you can specify that MP3Cleaner decide on its own which file to keep, which means no human intervention is needed once you start the process.

After the directory has been processed, you get the following dialog. Note that the total time to process the directory includes time spent waiting for the user to resolve the prompts on possible file matches.

A log file is created each time the MP3Cleaner processes a directory. You can see each match the MP3Cleaner found and which file it kept and which it deleted. If you think the matching algorithm could be improved, let me know.

Contact Us | ©2014 Me | Page best viewed with Chromium