![]() |
soundsortIntroductionWe 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!).Download
ExampleIn this example I select "Bam" (by Boom Selector) as the first file in the list with the '-f' switch.
soundsort -i in/Jiskefet\ -\ Laat\ Je\ Rode\ Rokje\ Zien.wav \
-i in/beasty\ boys\ -\ no\ sleep\ till\ brooklyn.wav \
-i in/boom\ selector\ -\ bam\ \(extended\).wav \
-i in/de\ dijk\ -\ bloedend\ hart.wav \
-i in/duran\ duran\ -\ a\ view\ to\ a\ kill.wav \
-i in/nu\ shooz-i\ can\ t\ wait.wav \
-i in/phd\ -\ i\ won\ t\ let\ you\ down.wav \
-i in/rollins\ band\ -\ liar.wav \
-i in/ti\ sento.wav \
-i in/x-fusion\ -\ anorexia\ nervosa\ \(lyrics\ by\ mel\ g\ x\).wav \
-f in/boom\ selector\ -\ bam\ \(extended\).wav
Output:
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 AlgorithmThe 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.Commercial
Changes0.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 | ||||||||
| ||||||||