Gestelltes Problem
Meine Kumpels und ich digitalisieren unsere CDs. Wir tauschen nur zu Backupzwecken und völlig unkommerziell. Bei einer MP3-Sammlung stellt sich ab einer gewissen Grösse die Frage, ob man ein bestimmtes Lied nicht schon irgendwo hat. Manuelle Abgleiche sind zeitaufwendig.
Algorithmus
Das Programm scannt einen Verzeichnisbaum auf MP3-Dateien, liest diese ein, und erzeugt eine Informationsdatei mit einem Extrakt aus den ersten 15 Musiksekunden sowie anderen Dateiinformationen. Diese Dateien werden in einem zweiten Schritt wieder eingelesen und dem Anwender in Form einer Liste präsentiert. In dieser Liste werden Dateien mit gemeinsamen Merkmalen zusammengefasst. Die Liste wird zunächst sortiert und dann Dateien mit gemeinsamen Merkmalen markiert. Folgende Sortierkriterien sind bis jetzt implementiert:
Dateiname (ohne Verzeichnis), Dateiname “tolerant” (Ziffern und Sonderzeichen entfernt), Dateigrösse, Dateigrösse “tolerant” (Dateilängen, die sich um maximal 100 Byte unterscheiden, gelten als identisch), Bitrate der MP3-Datei (alles unter 160 kBit/s ist schlecht), Samplingfrequenz (normal 44 kHz) und die Position des Lautstärkemaximums der ersten 15 Musiksekunden.
Damit kann man schon viele Doppelte erkennen, trotzdem muss bei der Verarbeitung der eigentlichen Musikdaten noch etwas getan werden.
Screenshot: