I've written a 'music similarity'
(https://github.com/CDrummond/lms-musicsimilarity) DSTM plugin that uses
either Musly or Essentia to find similar tracks. I've written some
python wrappers for Musly and Essentia that provide a simple HTTP API
that the DSTM mixer calls. Therefore, these wrappers need to be
installed on the same machine that LMS is running on.
Musly:
- Very fast analysis - roughly 20k tracks per hour
- Requires building musly C library. My repo has builds for Fedora
(x64) and Raspbian
- C library is required for analysis and similarity building
- https://github.com/CDrummond/musly-server contains the code to
anlyse tracks (can be any machine), and the similarity API (needs to
be on the LMS machine). (Only tested on Linux)
Essentia:
- Slow analysis - roughly 15 tracks per minute. About 24 times slower
than Musly, but 3 to 4 times faster than MusicMagic.
- Requires building essentia music extractor. My repo has a copy of
this for Linux x64 - taken from Roland0's LMS-Essentia page
- https://github.com/CDrummond/essentia-analyzer contains the code to
analyse tracks with Essentia, this can be on any machine (but only
tested on Linux)
- https://github.com/CDrummond/essentia-api contains the similarity
API, this needs to be on the same machine as LMS
How either of these perform mix-wise will be dependent upon your music
collection. I freely admit that these borrow heavily from Roland0's Musy
and Essentia integration work - I was mainly interested in creating DSTM
mixers. Roland is of the opinion that Musly is -much- better at
similarity than Essentia (see 'Similarity (Essentia) DSTM mixer - call
for help'
(https://forums.slimdevices.com/showthread.php?113483-Similarity-(Essentia)-DSTM-mixer-call-for-help))
However, I have been using this Essentia DSTM for a few months, on and
off, and am reasonably happy.
As I'm 100% Linux, I find the MusicMagic anlysis under Linux to be
flaky, and I need to transcode lots of files to MP3 for anlysis (I have
a MusicIP DSTM mixer that handes LMS using M4A files but MusicMagic
thinking they re MP3, etc). Hence my interest in an opensource
alternative.
*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=113740
_______________________________________________
plugins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/plugins