Skip to main content


Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Search-by-Distance-SMP (Read 9763 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Search-by-Distance-SMP

Reply #125
Placebo. Only thing changed was the composer/custom string tags error.
Maybe too much 80's Hard Rock/heavy Metal songs in my library  :D
Tip: You can create a recipe and put a query filter for those, so they don't appear anymore. Or Only 80s/heavy rock tracks with 5 rating.

I was using an 80 metal track specifically (nostalgic syndrome), not problem about that, but was surprising the variety of artists in the result. But thinking about it is logic, I have a lot of music of that decade.

After a bit of music_graph_descriptors edits and adding a few alias, I didn't have problems anymore with strange genres or artists included in the final list.

The tagging of keys, bpm, etc is reaching a good % of the library so that's helping too.

Only thing missing at now is that I didn't have mood in almost any file (only the allmusic ones) and have to make it weight 0. Maybe if the essentia tool thing is solved this could be sorted out.


Re: Search-by-Distance-SMP

Reply #126
Btw if you download from repository (no releases), the html has been fixed. Along the ASCII warnings, now the entire graphuses ASCII values by default (also for the genre/style tags).

Re: Search-by-Distance-SMP

Reply #127

v3.0.0 - ASCII descriptors and QOL improvements
@regorxxx regorxxx released this in 12 hours

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt

    Added 'User descriptors' readme.
    User file has been moved to profile folder at 'js_data/helpers/music_graph_descriptors_xxx_user.js'.
    All style/genres on the graph use now ASCII only values, so it should be easier to match any value to them if required.
    Default genre and style tags use now '$ascii()' TF function. This will ensure a match when using accents, etc. See change above. On previous installations, change tags to (without quotes): '$ascii(%genre%)' & '$ascii(%style%)'
    After tag remapping, a popup asks to rebuild the cache.
    Improved graph links cache asynchronous calculation.
    Fixed console logging to file (lines were not being split properly).
    Updated to match Playlist Tools v3.0.0-beta.14 release.

See changelog for a full list:

Re: Search-by-Distance-SMP

Reply #128
I continue working, specially in the similar artist calculation with great results. The github is always up to date with working changes (along the changelog).

To show the strengths of this approach lets take into considerations some artists:
- Riff: a classic heavy metal band from Argentina lead by Pappo. 80s
- Hermética: a thrash metal band from Argentina. 90s
- Rival Sons: hard rock/contemporary rock band. 2000s.
- Blind Faith: Rock, psych rock band from late 60s heavily focused on blues rock. Colead by Eric Clapton and Steve Winwood (from traffic).

According to Last.Fm data... the 5 most similar artists:
- Riff: it recommends Pappo even if Pappo did only blues on solitary XD also recommends other Argentinian bands
- Hermética: it simply recommends other Argentinian bands even if they dont't share the same metal style
- Rival Sons:
- Blind Faith: recommends bands from artists featured on it. Traffic has nothing to do with Blind Faith

The problem? Recommendation systems based on popularity and collaborative listening analysis are highly biased.
  • Most times similar artists are chosen just because people from that country also listen to them (even if they are not related), so cultural bias is a really big problem.
  • Also, whenever an artist is featured on a band, it's considered a similar artist. Are Eric Clapton's works similar to Blind Faith? I don't think so XD Not at all.
  • There are other biases like that... but you take the idea.

Those recommendation systems are inherently flawed from the design stage because they don't take into account at all the actual content of the music, genre, rarity of recordings, cultural biases, listening behaviours, etc.

Now lets use this script to look for similar artists to those and compare the results. Workflow: Custom Search by Distance button -> Shift + Control + L. Click -> 'Other tools\Calculate similar artist tags'. I'm giving some video examples which clearly showcase their similarities.

- Riff: V8; Baron Rojo; Judas Priest; Ozzy Osbourne; Iron Maiden
All classic metal bands
Spoiler (click to show/hide)- Hermética: Voivod; Metallica; V8; Suicidal Tendencies; Megadeth; Pantera; Slayer
All Thrash Metal bands not just Argentinian bands without any reason Note RIff is clearly different to Hermética.
Spoiler (click to show/hide)- Rival Sons:  Spacelord, Deep Purple, UFO, Kaleo, Scorpions, Gotthard
All hard rock bands
Spoiler (click to show/hide)- Blind Faith: La Pesada; Jimi Hendrix; The Jimi Hendrix Experience
All blues rock / psych bands
Spoiler (click to show/hide)
Do you see (listen) the difference? ;)

Note results are always based on what you have on your library. So these are MY similar artist to those I selected, other people with different artist or a more extensive collection may got different or more precise results. Hope this makes more clear the difference between my approach and the one provided by Spotify/Last.FM/Listen Brainz. Also note this critic is focused on the recommendation system, there are other data provided by listens which may be interesting (like popularity or rating).

Re: Search-by-Distance-SMP

Reply #129
Any algorithm that recommends Barón Rojo is a good algorithm.


Re: Search-by-Distance-SMP

Reply #130
Do you see (listen) the difference? ;)
Yes, it shows the bias of recommendations.
With your script, the result is really good. As you noted, you also tagged your files very well.
I think the Blind Faith video goes in the next drop down box.

Re: Search-by-Distance-SMP

Reply #131
Just a note that all my scripts work fine on foobar 2.0 too, but queries must be changed to use the proper rating tag if needed. There are tons of threads speaking about that.

There is only a problem with foobar 2.0. Tag retrieval is much slower, so this script takes up to 5x more time in foobar 2.0 than in fobar 1.6. Right now I see no reason to "upgrade". If a SMP update improves use-cases like retrieving a few tags for the entire library... then maybe...

EDIT: I could try caching the entire set of tags for the library, but that seems overkill to me...

For reference, tag retrieval for 20K tracks took 400 ms in foobar 1.6 and now it takes 20 secs on foobar 2.0. Which is crazy...

Re: Search-by-Distance-SMP

Reply #132
EvalWithMetadbs can be improved in SMP. It will still be slower than old code in v1 but should be faster than old code in v2.

You can compare against JSP 3.1.0 which is optimised for v2.

JSP 3.1.0 code
Code: [Select]
var test = utils.CreateProfiler("test");
var tfo = fb.TitleFormat("%artist% - %title%");
var items = fb.GetLibraryItems();
var arr = tfo.EvalWithMetadbs(items).toArray();

SMP code
Code: [Select]
var test = fb.CreateProfiler("test");
var tfo = fb.TitleFormat("%artist% - %title%");
var items = fb.GetLibraryItems();
var arr = tfo.EvalWithMetadbs(items);