Possible Future Extensions

Andre Wiethoff <[email protected]> Mon, 04 May 2015 12:44:28 +0200
Newsgroups gmane.comp.audio.musicbrainz.devel
Message-ID <[email protected]>
Hello everybody,

I am Andre Wiethoff, the person behind Exact Audio Copy and Easy Audio 
Copy. My interest is mostly in audio and nowadays I also do quite some 
research on personalized music recommender systems.

I came to the conclusion that only collaborative filtering will help 
most for producing good recommendations (for the time being). Even 
though AcousticBrainz produces impressive results, it is not yet up to 
be used exclusively for choosing a good playlist for the user. In my 
opinion, perhaps we will have in 10 years the analysis algorithms that 
are capable of producing results that are exact enough for productive use.

It would create great value for the user if an application would be able 
to create a playlist for the given user depending on his preferences. 
Not only for streaming, but also using his local music collection. For 
now, the necessary data are all closed source, available only to the 
owning companies (and sometimes available as an API with big 
restrictions what to do with the data - some algorithms couldn't even be 
run if the database is not available completely, e.g. doing 
collaborative filtering with self-created algorithm is not possible with 
any of the APIs (as far as I know)). Users are submitting their 
information for free and the companies lock them away - there should be 
an open source counterpart to stop this closed information handling. 
(And of course such a database would need some lobbying work for the 
larger, commercial player companies like Sonos in order to add 
submission to their players).

As a possible future extension it would be great if such information 
(e.g. scrobbling and, even more important, personal ratings of songs for 
each user) could also be stored in MusicBrainz. For that, a unique token 
per user need to be created (more or less automatically, should be easy 
for the user to create within any end-user application - that should be 
unique for all applications that the user uses). Creating such a token 
would be quite difficult when trying to do it the easy way (as when such 
a token already exists with one application, the other application need 
to retrieve that token without creating one first - this will help 
moving the personal information to a new player). And it should be easy 
enough that commercial player software/hardware would also be willing to 
implement it. Perhaps the best idea would be still to use Username/Password?
Further, AcoustIDs should be used to unambiguously identify a specific 
song played (other metadata could verify the correctness of the 
assignment). Last.fm does scrobbling by metadata only (as far as I 
know), which might cause conflicts by different versions of a song (e.g. 
radio edit, live, etc.).
Finally, the ratings should reflect various liking levels (I propose -2, 
-1, 0, 1, 2 - perhaps best displayed as thumbs up/medium up, etc.), as 
the more songs the user is able to rate, the better will be the results 
of the recommendation engine. If just offering thumbs up/down, people 
will not rate songs that are quite ok (and not rating a song should 
provide no (implicit) rating at all, as the user could e.g. let the 
songs play unattended).

Of course at the beginning there will be no software which fills the 
database with information, but I think there need to be a framework 
first before some audio player would integrate the API to provide 
information about the songs a user plays (and hopefully likes or dislikes).

Only after the database has been populated quite a bit, the player 
applications will receive something back for the submission of 
information. I would propose that also a baseline recommendation engine 
should be implemented in MusicBrainz, which can be called via API. 
Researchers or developers who want to create a better recommendation 
engines would be free to work on the full database and implement their 
own ideas. Of course creating a baseline recommendation engine is still 
a huge project, there are some shortcuts which would help creating 
playlists somwhat more easy...

What are your thoughts on this?

Thanks for your time!

Best regards, Andre Wiethoff

PS: I proposed to add AcoustID submission into EAC (submitting the 
fingerprints with each extracted CD together with the DiscID) already 
quite some time ago, directly to one of the developers (don't know 
anymore to whom), but didn't receive any reply. If something like this 
is interesting, please contact me (privately?).