Updated AcousticBrainz plugin

Tags: #<Tag:0x00007f31ba2db200> #<Tag:0x00007f31ba2db0c0> #<Tag:0x00007f31ba2daf80>

The AcousticBrainz plugin for Picard received a huge update a few months ago. I wanted to write about this for a while, but if you haven’t noticed yet here is the info finally :slight_smile:

Originally there had been two separate AcousticBrainz plugins for Picard: AcousticBrainz Mood-Genre and AcousticBrainz Tonal-Rhythm. The first one was able to fetch mood and genre information from the high-level data provided by AcousticBrainz. The latter fetched BPM and key information from the low-level data.

Thanks to the efforts of @wargreen and pstc the AcousticBrainz Mood-Genre plugin has been updated to provide broader functionality. With version 2 the plugin is now simply called “AcousticBrainz Tags” and provides the following improvements:

  • Loading of mood or genre can be disabled
  • Fetching data for the bpm and key tags has been integrated into this plugin
  • All AcousticBrainz high level data and a subset of the low-level data
  • Improved query performance (usually only 1 or 2 request per album, depending on configuration)
  • Options screen to configure which data to fetch

By default the plugin is configured to fetch both genre and mood, hence it behaves exactly the same as before. In Options > Plugins > AcousticBrainz tags you can disable loading either of those tags.

If you enable “Add simple BPM and Key tags” the plugin will load BPM and key data. That means it provides the same functionality as the AcousticBrainz Tonal-Rhythm plugin, which can be considered obsolete.

For advanced use you can also enable “Add all highlevel AcousticBrainz tags” or “Add a subset of lowlevel AcousticBrainz tags”.

Enabling the high-level tags gives you tags for the high-level data as you can see for example on Recording "Mirrors" by Bobby Hutcherson - AcousticBrainz. The high-level data is available in a tag in the form ab:hi:[type]:[value]. E.g. for the danceability analysis you have two tags ab:hi:danceability:danceable and ab:hi:danceability:not_danceable. The tag’s value is the numeric probability. The following low-level tags are available:

  • ab:lo:rhythm:bpm
  • ab:lo:tonal:chords_changes_rate
  • ab:lo:tonal:chords_key
  • ab:lo:tonal:chords_scale
  • ab:lo:tonal:key_key
  • ab:lo:tonal:key_scale

The low level option does provide similar tags for a selected subset of low-level information

Below is a screenshot of the options screen: