At least there has been some thought process. But not any coding.
I've so far had a bit of trouble with other courses so not much real work has been done. Representing the songs relations to each other seems to be best suited to do in a graph but how to form that graph is not an easy task. If we are to store all the songs relations to each other, this would become a table of size n*n and say that we limit it to one byte per relation we would get n*n bytes of data, with n songs in your library. This for example for 10,000 songs would result in a table of 100MB which is quite a lot but maybe affordable. But I will look at options to conserve space.
Also I've made a preliminary list of things that should increase two songs adjacency:
- Being in the same genre
- Same artist
- Being played/queued close together.
- Being on the same play list
- Many songs as neighbors
(Probably more to come)
Creating a graph with as small size as possible where you still have enough data to give weights and create clusters.
Creating the basic data type for the graph and starting to look on how to add weights and some algorithm for clustering the data.
I'm hoping that I can give you a much more informative update next week, preferably with some paint pictures ;)