Release 20220329

A lightweight, zippy dragonfly This release is the final one in our recent tranche of performance improvement releases. In this release we’ve made querying “lazier” (it’s better than it sounds!) and stopped duplicate assessments that were occurring on the album detail page.

  • Download
  • Download
  • Download
  • Download

Lazy queries

In computer programming, lazy means doing things only when required, typically at the last possible moment. It’s the opposite of eager, where work is done ahead of when it is needed. The trouble with the latter is that the work done may never be used.

I’ve wrote before how fingerprinting can be one of the slowest aspects of bliss’s operation. We already did some previous work at speeding up fingerprinting, but in this release we’ve also done some work to defer fingerprinting and in many cases avoid it at all.

The way bliss queries metadata (and album art) is to first send a “tags” query which includes existing tags and track durations. Typically that will match online releases. If required, it will then send a “fingerprint” query which sends the audio fingerprints for the tracks in an album to find information about the release. This is useful when the original tag information is inaccurate or just hasn’t returned results for some reason.

It’s the if required bit that’s important. There are cases where fingerprinting isn’t required. For example, if a rule only mandates that album art or particular pieces of metadata such as GENRE fields are present, then we may only need to take the first (or first batch) of suggestions to fill these results in.

Before, we were still sending fingerprint queries, even if the results from the tags query were sufficient. So now, we only send the fingerprint query if the tags query did not return sufficient results. We’ll also send it if you are working manually and you request to see all of the suggestions for correcting or filling in metadata fields.

In addition, when comparing values for the tag accuracy rule we now only send a fingerprint query if we don’t find good enough matches with the tag query only.

Both of these strategies should reduce the number of queries we send and the amount of fingerprinting we have to do, resulting in performance gains all round.

Duplicate assessments

We noticed that when clicking fixes on the album detail page (the one shown when you click an album name which shows all the tracks and compliance details for the album) the album would be re-assessed twice after the fix is made.

We fixed that - just one re-assessment is made now.

Other improvements

There are a few other smaller things:

  • We no longer allow embedding of album art above a threshold (determined by the amount of memory bliss is running with). By default on most platforms that will be 4MB right now.
  • Support tracks without a TRACK title better when grouping into albums.
  • Similarly for tracks without an ARTIST or ALBUM ARTIST, grouping such tracks into albums when they share the album name and are in the same folder.
  • When there are duplicate files being renamed to the same file path, when this fails and on rollback make sure the file paths reflect the status quo.

Downloading and installing

You can download by clicking the button above, or from the downloads page.

Photo by Pierre Bamin on Unsplash

tags: release performance

The Music Library Management blog

Dan Gravell

I'm Dan, the founder and programmer of bliss. I write bliss to solve my own problems with my digital music collection.