Fingerprinting

This page has not been reviewed by our documentation team (more info).

MusicBrainz has used several audio fingerprinting systems over its lifetime.

All of them (so far) work in essentially the same way. It is generally a two-step process of submission and lookup. First, the raw audio is used to create a fingerprint, which is then submitted to a third-party server. This server analyzes the fingerprint, compares it to other fingerprints, and decides whether it is sufficiently different from known fingerprints as to issue a new ID.

Once this step is done, a fingerprint can be calculated for any file and this can be used to look up the corresponding ID.

This ID is associated with a given track (pre-NGS) or recording (post-NGS), and metadata can be gathered from there.

Contents

AcoustID

AcoustID is MusicBrainz’ third and most recent audio fingerprinting system. This was created by Lukáš Lalinský, and made public around January 2011.[1]

It has several immediate advantages:

Older fingerprinting systems

TRM

TRM (TRM Recognizes Music) IDs were MusicBrainz’ first audio fingerprinting system. This system was created by Relatable, and added to MusicBrainz in 2000.[2]

This system was used in the original MusicBrainz tagger application. The client-side audio fingerprinting library was open source and integrated into libmusicbrainz.

This system worked reasonably well for finding duplicate music files on a local system, but had problems with collisions (different-sounding audio which got the same ID) and duplicates (same-sounding audio which has different IDs). The server was also incapable of handling the number of TRMs needed for MusicBrainz, and Relatable didn’t seem to be interested in supporting it further.[3]

TRM support was removed in November 2008[4].

PUID

PUIDs were MusicBrainz’ second audio fingerprinting system. This was initially operated by MusicIP (later AmpliFIND Music Services), and bought by Gracenote in June 2011. Gracenote is expected to discontinue the public service soon, and it already appears to be largely non-functional.

MusicBrainz started to use these IDs in March 2006[5] and they were implemented in Picard 0.7.0 released in July 2006.

This system was better than TRM, but still had several major problems:

PUIDs are also quite opaque, being nothing more than a unique number referencing a database outside of MusicBrainz’ control. If/when that database goes away, they become useless. See the patent application for details on the technology. The client-side audio fingerprinting library, libofa, is open-source.

PUID support was removed from the MusicBrainz server in October 2013.

Other audio fingerprinting systems

Open Source

Partially Open-Source

Commercial

References

  1. http://oxygene.sk/lukas/2011/01/how-does-chromaprint-work/
  2. http://www.relatable.com/tech/trm.html
  3. http://blog.musicbrainz.org/?p=124
  4. http://blog.musicbrainz.org/?p=363
  5. http://blog.musicbrainz.org/?p=161