Whilst browsing around this week, I discovered 'bliss-rs'
(https://github.com/Polochon-street/bliss-rs) - which is a new-ish Rust
based library for music-similarity. (New-ish as there was a previous,
non-Rust, version named bliss). This is used for an MPD app/plugin named
blissfy-rs to provide similar functionality to MusicSimilarity - i.e.
adding similar tracks to the play queue.

Out of curiosity I created a trivial Rust 'app'
(https://github.com/CDrummond/bliss-analyse) so that I could invoke this
from MusicSimilarity. I’ve added a pre-compiled Linux version of this
app to the  MusicSimilarity repo. I have tried to compile on Windows,
but Rust pulls in ffmpeg and this fails to compile. So, for now, this is
Linux only – unless someone else can get this to build. This app is only
required for analysis, and not to for API usage.

I’ve updated the MusicSimilarity analysis code to also allow analysing
tracks with Bliss. This analysis is very fast, but takes about 2 to 2.5
times longer than Musly. For example I get -close- to 15k tracks/hour.

MusicSimilarity can be configured to use Bliss instead of Musly to
provide the list of similar tracks. (I’ve made this the default setting
for Linux). From my, very limited, testing it -appears- to provide (for
my library) better results than Musly. It also seems to be currently
maintained, so is probably a better long-term solution. (Musly itself
has had no updates since Sept 2019)

I’d be interested in feedback on Bliss usage in MusicSimilarity from
other Linux users – or even Window users, if MusicSimilarity is used to
analyse tracks under WSL.

If you do try to use Bliss against a pre-existing MusicSimilarity DB,
there is one small caveat. When initially writing MusicSimilarity I’d
assumed Musly would always be used – so the ‘vals’ column in the
database (where Musly analysis is stored) has a not-null constraint.
Basically, a track needs to have Musly results. You can fix this by
using an SQL editor (e.g. SQLiteBrowser) to edit the tracks and
tracks_tmp tables and remove this constrain from the ‘vals’ column. If
you do, then you can analyse track with Bliss only, and leave out Musly.



*Material debug:* 1. Launch via http: //SERVER:9000/material/?debug=json
(Use http: //SERVER:9000/material/?debug=json,cometd to also see update
messages, e.g. play queue) 2. Open browser's developer tools 3. Open
console tab in developer tools 4. REQ/RESP messages sent to/from LMS
will be logged here.
------------------------------------------------------------------------
cpd73's Profile: http://forums.slimdevices.com/member.php?userid=66686
View this thread: http://forums.slimdevices.com/showthread.php?t=115609

_______________________________________________
plugins mailing list
plugins@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to