Grouping songs together
Werner Van Belle
An Experimental Cluster Algorithm to Find Similar Songs
BpmDj contains a somewhat experimental feature to cluster music based on the various available properties (rhythm, tempo, spectrum, composition and echo characteristics). The clustering process is quite exhaustive and it might take an indefinite time. For up to 1000 songs or so it works quite nicely. Above that you might see your waiting time increase polynomial.
What it does is to find the two songs that are the most similar and then group these together in their own group, whilst removing them. This produces a new point that is then used as input into further cluster-steps. These steps are repeated until no more points are left. The resulting tree and its branches are then color properly. Looking at the results: songs having the same color are closer to each other than songs having a different color.
The algorithm in itself is not so particular useful and was mainly a nice tests / experiment in representing multiple dimensions onto a color. Regardless, it does help with classifying music based on the sound engineering behind it. If we for instance have two cd's of astral projection and we want to mark those songs that belong to one CD, then clustering all astral projection songs will automatically mark each CD.
Below we illustrate the process briefly. First, we start with a selection of songs we want to cluster. (Currently deselected)
After selecting these songs, we click right and select 'Start Clustering'. We then are greeted with a 'cluster metrics' box, which allows you too choose which properties you find more important.
Once this is done the result is produced as shown below.
The number of colors used to color the branches of the tree is currently set to eight (a depth of 3). You can modify the number of colors used to color the leaves in the BpmDj Preferences dialog box.