Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Radio mode: bring some more diversity in the tracks being added #54

Closed
pblsnchz opened this issue May 7, 2020 · 7 comments
Closed

Radio mode: bring some more diversity in the tracks being added #54

pblsnchz opened this issue May 7, 2020 · 7 comments
Milestone

Comments

@pblsnchz
Copy link

pblsnchz commented May 7, 2020

Hello,
Thanks for this great work! I have been fiddling with LMS since installing it yesterday (and waited ~11 hours until it finished through my 124000+ music files). Since all of my music files are properly tagged I chose "Audio analysis based" as the recommendation engine.
And here comes my question: what is the proper way to use said engine? I assumed I could build a playlist by defining a few seed songs, but if that is the case, I can't seem to make it work. Or is it the "radio mode" what should give me a stream of related songs? When I activate it, it feeds song after song by the same artist.
I'm pretty sure that I'm doing something wrong. Could someone please shed some light on this?
Thanks in advance, and once again thanks for the impressive work!

@epoupon
Copy link
Owner

epoupon commented May 7, 2020

Wow 11 hours, impressive! Do all your tracks have a MBID record identifier?
If so, fetching the acoustic data from acousticbrainz is really long, as they apply rate limits.
The engine is used by:

  • the similar artists/albums suggestions
  • the radio mode. Typically you seed your playqueue with some tracks, and the radio mode will find the most similar track once the last track is played.
    Usually, the similar tracks are found first in the albums that are already in the queue. Is that what you observe?

@pblsnchz
Copy link
Author

pblsnchz commented May 7, 2020

Wow 11 hours, impressive! Do all your tracks have a MBID record identifier?
Why, yes. I'm kind of obsessive with these things.

The engine is used by:

* the similar artists/albums suggestions

Where are those suggestions?

* the radio mode. Typically you seed your playqueue with some tracks, and the radio mode will find the most similar track once the last track is played.

What I observe when using Radio mode is that all enqueued files are from the same artist. Is this intended?

  Usually, the similar tracks are found first in the albums that are already in the queue. Is that what you observe?

Kind of. All files are from the same artist (not the same album, though)

Thanks for the prompt response. Is there anything else I should try? Or maybe some logs I should attach?

@epoupon
Copy link
Owner

epoupon commented May 7, 2020

The engine is used by:

* the similar artists/albums suggestions

Where are those suggestions?

When you click on an album or an artist, you can see them.

* the radio mode. Typically you seed your playqueue with some tracks, and the radio mode will find the most similar track once the last track is played.

What I observe when using Radio mode is that all enqueued files are from the same artist. Is this intended?

Not specifically. The queue is just fed with the most similar tracks, so it is very likely that the same artist/album will be found first.
Maybe this is not the best approach. Would you expect some more randomness? It may be possible to alternate different albums/artists to bring some diversify to the queue.

@pblsnchz
Copy link
Author

pblsnchz commented May 7, 2020

The engine is used by:

* the similar artists/albums suggestions

Where are those suggestions?

When you click on an album or an artist, you can see them.

I'll give it a try, thanks for the clarification.

* the radio mode. Typically you seed your playqueue with some tracks, and the radio mode will find the most similar track once the last track is played.

What I observe when using Radio mode is that all enqueued files are from the same artist. Is this intended?

Not specifically. The queue is just fed with the most similar tracks, so it is very likely that the same artist/album will be found first.
Maybe this is not the best approach. Would you expect some more randomness? It may be possible to alternate different albums/artists to bring some diversify to the queue.

Actually that is the behavior I was expecting to see, but of course this is a personal choice. However, if possible, I'd appreciate the ability to weight how the similarity of songs is determined e.g. more acoustic similarity over artist/genre.

@pblsnchz
Copy link
Author

pblsnchz commented May 7, 2020

BTW, how is the similarity calculated? I've seen it grabs data from AcousticBrainz. Is there an algorithm for this?

@epoupon
Copy link
Owner

epoupon commented May 7, 2020

Ok I think we can indeed improve this radio mode, I will think about it!

BTW, how is the similarity calculated?

  1. Each track is being associated to a set of audio features (fetched from AcousticBrainz). These are the low level features, see an example here.
  2. These audio features are then placed in a "Self-Organizing Map.
  3. Similar audio features are then grouped together thanks to the training process ofthe SOM. (it should be at least one or two hours long, you can check in logs. I have to improve this when a very large audio collection is used, like yours)
  4. When you request a similar track, it just gathers the nearest neighbor of this track in the map.

@epoupon epoupon changed the title How is the recommendations engine used? Radio mode: bring some more diversity in the tracks May 7, 2020
@epoupon epoupon changed the title Radio mode: bring some more diversity in the tracks Radio mode: bring some more diversity in the tracks being added May 7, 2020
@pblsnchz
Copy link
Author

pblsnchz commented May 7, 2020

Ok I think we can indeed improve this radio mode, I will think about it!

Thanks a lot. Please let me know if I can be of any help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants