We all have had this happen once: you have a new girlfriend an now she wants you to make a mix-tape (or mix-cd or whatever). Deciding what songs to put on it is not so much of a problem, but in what order? Grouping by artist is boring, at random gives an chaotic listening experience. So that's why I cam e up with soundsort. Soundsort analyzes the audio-files you feed it and does a suggestion on their order by analyzing how the songs are actually sounding (NOT by comparing their meta-data!).
01] in/boom selector - bam (extended).wav 0.000000
02] in/nu shooz-i can t wait.wav 35103.876872
03] in/beasty boys - no sleep till brooklyn.wav 35125.297730
04] in/rollins band - liar.wav 35638.185039
05] in/phd - i won t let you down.wav 38254.485324
06] in/duran duran - a view to a kill.wav 40109.738314
07] in/de dijk - bloedend hart.wav 42977.095978
08] in/x-fusion - anorexia nervosa (lyrics by mel g x).wav 43221.664222
09] in/ti sento.wav 45986.697355
10] in/Jiskefet - Laat Je Rode Rokje Zien.wav 59076.415847
The algortihm is actually quiet simple: for each song the frequency spectrum is calculated with a fourier transformation, after that each spectrum is compared to that of the song you want to be played first. Then it is just a matter of sorting.
1.0 0.8 improved algorithm 0.7 added an 'playlist output'-mode ('-O') 0.6 fixed recognizing of mp3-files 0.5 added mp3 support 0.4 improved memory usage 0.2 improved UI 0.1 initial release