Music Classification with LMS using Essentia

Introduction

This plugin enables importing Essentia's analysis results created by LMS Recommender into the LMS database, making them available to be used by LMS-based applications / plugins (currently, extGUI4LMS and the LMS Playlist Editor).

Features

  • A simple Web UI for statistics, data display, DB administration
  • A interface for other applications to query the data
  • Integration with extGUI4LMS and the LMS Playlist Editor, enabling searches for tracks based on analysis data like mood, genre, ...
Available data

All classifications created by LMS Recommender will be available. Examples include:

  • mood (happy, relaxed, ...)
  • genre (classical, rock, ...)
  • danceability
  • vocal / instrumental
  • timbre (dark / bright)
  • rhythm (samba, waltz, ...)
Installation

In the LMS standard web interface in Settings/Plugins, add https://www.nexus0.net/pub/sw/lmsessentia/repo.xml to the list of Additional Repositories and activate the plugin.
You'll find an entry to launch the web interface in the Extras menu, which is just a link to http://lmsserver:9000/plugins/LMSessentiaIntegration/html/index.html?player=xx:xx:xx:xx:xx, so you can bookmark it - it doesn't have to be launched from the regular web interface.

Creating and uploading the analysis data

The data is created by lr-analyze.py script, see LMS Recommender for details.
Then, run the ./scripts/class2ess.py script to write the data in the generated json files to LMS' persist.db database.
There's also a --delete-existing parameter to delete the classification data in the database.

Example:

./lr-analyze.py classify out/
./scripts/class2ess.py out/ /var/lib/logitechmediaserver/cache/persist.db

FAQ

Adding the plugin repository to LMS results in some errors / doesn't work. Why?
Make sure your LMS installation is SSL-enabled (e.g. on *nix, the perl modules Net::SSLeay and IO:Socket:SSL need to be installed)

API

The API is documented here.

License

GPL v3

Reporting Issues

Use the discussion thread in the LMS forum.