Thanks for the reply, Alexandre, You're definitely right in terms of relating similarity - it seems like a very subjective task, and even if signal analysis could detect similarities, it'll never be able to relate things like "we listened to those songs on our first date". The song skipping/neural network idea is a good one too... Maybe something along the lines of keeping track of which song was skipped, looking at which similarity metric dominated that song's similarity decision, and perhaps re-weighting accordingly. Of course, people skip songs for many reasons, so it might not be a good idea to make any permanent changes to the similarity factors.
I downloaded your last.fm plugin and while I haven't used it extensively, I'm really impressed with it. It definitely seemed to be a more cohesive group of music than just plain "random". However, I think the behaviour is a little different than the plugin I'm proposing - last.fm seems to choose songs based on "people who like x tend to like y", but it does come up with things that aren't really similar musically (for example, if I start with "Ben Folds Five - Brick", the next song I get is "Weezer - Say It Ain't So"). I was hoping to make something that would allow you to say "I'm in a mellow acoustic mood", and get a random playlist of mellow acoustic songs, even if they're from a band that typically does harder songs, or if they're from a relatively unknown band (something that last.fm seems to have a hard time with - if I put on a Bonnie Prince Billy song, last.fm can't come up with any suggestions that are in my library). It's definitely a challenging task, and it'll be interesting to see whether a music analysis method would come up with any results that mean something to discerning human ears. If I do end up working on this project, would you mind if I included your last.fm information as a similarity option? It does seem to be more consistent with respect to genre, at least for artists if not individual songs. Thanks again, Charlotte On Sun, Apr 6, 2008 at 7:02 PM, Alexandre <[EMAIL PROTECTED]> wrote: > Hey there, > > I'm the author of the Last.fm recommendation plugin. I find this kind of > program very cool, and very useful. I spent a lot of time thinking about > this kind of problem, and it seems the problem always goes back to how do > you know two songs are similar, and to whom they are similar. > For instance, two songs very different can be closely related to someone, > but that relationship only makes sense to that person. No automated tool > could find that relation. But there is no way a user can show these > relations to their entire music library. > That was the reason I used tags in Last.fm. I used only public tags, but > the concept could be extended to personal tags. The problem, of course, is > the need for an internet connection. The performance hit is actually very > small. > The Rhythmbox database can support keywords, that could act the same way > tags do. There is no UI for it yet, but it could be used to hold the most > common tags in each song, and those tags could be updated only when a song > is played, for instance, so there would be no problems with the size of the > library. > > An automated tool can only go so far in detecting how a song is related to > another. But the user is the ultimate chooser. The user could want to hear > only rock for a while, and the automated tool could work well in that > situation, but then he wants to hear only romantic songs, and then the > automated tool has no way to know which of the songs are romantic or not > (the tempo is not very useful here, and the genre could never tell this kind > of thing, even when set correctly, which is also very subjective if the > genre is correct or not). > > I once used a tool that related how a song is similar to another by > relating if you skipped to another song when playing random songs. Say you > heard 10 random songs without skipping any of them, so those songs are > somehow related. But them you skip the next song, so that song is not > related to the last 10. > This kind of system would work very well in very diverse situations, but > it would also require a lot work. Some kind of IA could help here (neural > networks come to my mind). Could be a good experiment. > > But anyway, something that can help you is the system used in the Listen > Music Player <http://www.listen-project.org/>. I dont know how it works > but might be similar to what you want. > > Good luck with your project, and if you ever need some help, feel free to > contact me. > > Bye, > Alexandre > > > On Sun, Apr 6, 2008 at 12:14 PM, Charlotte Curtis <[EMAIL PROTECTED]> > wrote: > > > Hi giopas, > > > > Thanks for the reply. Perhaps I wasn't quite clear enough - I would > > only use the id3 tag info as supplementary, so if a user has put a great > > deal of effort into organizing their tags and wanted to weight similarity > > based on tags, that effort would not be wasted. My main focus would be in > > signal analysis of the songs themselves to extract features such as tempo, > > dynamics, specific instrument types, etc. The idea would be to determine > > the similarity based on the actual music, rather than tags or other external > > information. > > > > Thanks for pointing me towards the last.fm plugin, it sounds pretty > > cool. I think there still might be room for a plugin that bases similarity > > on signal analysis in addition to last.fm's scrobbling, but it's also > > possible that it might be too slow and resource intensive to be really > > practical, especially if you have a big library and are constantly adding > > new music. > > > > Charlotte > > > > > > On Sun, Apr 6, 2008 at 8:44 AM, giopas <[EMAIL PROTECTED]> wrote: > > > > > Charlotte Curtis ha scritto: > > > > I am interested in developing a predictive playback plugin for > > > > Rhythmbox. Based on a combination of music feature extraction (such > > > > as beat) and id3 tag information, the plugin would detect which > > > songs > > > > are most similar to the song or set of songs currently selected. > > > > > > Hi Charlotte, > > > > > > I find your project interesting, especially for the "tempo" variable. > > > However I think that such plugin can't be really rely on id3 tag > > > informations, most because everybody class its music in a different > > > way. > > > I give you an example, U2's music genre could be "Pop/Rock", > > > "PopRock", > > > "Pop" or just "Rock" or whatever... > > > > > > Therefore, I think that genre variable should bettere be relied on an > > > external source like last.fm. > > > > > > Actually, Alexandre Rosenfeld has already issued a plugin based > > > (quite) > > > on the same principle: Last.fm Dynamic Tracks (have a look on > > > rhythmbox > > > site). I suggest you to have a look at it in order to see if you can > > > use > > > some features from it. > > > > > > enjoy, ;) > > > giopas > > > > > > -- > > > "The paradigm of competition is a race: by > > > rewarding the winner, we encourage everyone > > > to run faster. When capitalism really works > > > this way, it does a good job; but its defenders > > > are wrong in assuming it always works this way. > > > If the runners forget why the reward is offered > > > and become intent on winning, no matter how, they > > > may find other strategies--such as, attacking > > > other runners. If the runners get into a fist > > > fight, they will all finish late." > > > (GNU manifesto/R. Stallman) > > > > > > _______________________________________________ > > > rhythmbox-devel mailing list > > > [email protected] > > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > > > > > > > _______________________________________________ > > rhythmbox-devel mailing list > > [email protected] > > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > > > > > > -- > Alexandre Rosenfeld > > EngComp 06 - USP São Carlos
_______________________________________________ rhythmbox-devel mailing list [email protected] http://mail.gnome.org/mailman/listinfo/rhythmbox-devel
