Picard, fingerprinting, and AcoustIDs

Can you explain how Picard handles Fingerprinting: is this the same as generating the acoustID?

I found that I had to use the acoustID Fingerprinting software to generate acoustIDs, I couldn’t find out how Picard replicated this.

TL;DR: Use scan to search for songs using AcoustId fingerprints, use submit to submit unknown fingerprints and generate new AcoustIds.

Yes, the fingerprinting is the basis for the whole AcoustId song identification. What Picard does is as follows:

  1. If you click scan on a file Picard generates the audio fingerprint for this file. The audio fingerprint captures the characteristics of the recording, but there can be slight differences in the fingerprint of files of the same recording caused by e.g. different encoding or bitrate. Picard uses the fpcalc command line utility provided by AcoustId.
  2. Picard uses this fingerprint to lookup an AcoustId from the AcoustId server. The AcoustId server will compare the fingerprint and will try to match it to an existing AcoustId. Three posibilities:
    a) It doesn’t find an AcoustId. The lookup failed
    b) The AcoustId server finds an existing AcoustId for the submitted fingerprint, but it is not associated with any MusicBrainz recording. The lookup failed
    b) The AcoustId server finds an existing AcoustId for the submitted fingerprint and it is associated with a MusicBrainz recording
  3. If b) AcoustId is found Picard matches the file to one of the MusicBrainz recordings linked to the AcoustId

If there was no AcoustId found you can use the “Submit” button in Picard to submit the fingerprints to AcoustId server once you have matched the files to the proper recordings. If there was no AcoustId for the fingerprint before the server will generate a new one (which can take a short time). It will also link the AcoustId to the MusicBrainz recording.

So no, you don’t need the AcoustId fingerprinting software to generate new AcoustIds. The difference is, that the fingerprinting software is meant to be run on already tagged files, so if it cannot find an AcoustId it will immediately do the submission. For Picard the AcoustId is primarily an identification tool, and as the files are in this step considered untagged you can only do the submission once the files have been properly matched to a MB recording. You will also find that after submission Picard will not automatically fetch the newly generated AcoustIds (the generation can take a short time, and the response we get from the AcoustId server does not contain newly generated AcoustIds). But if you do another scan on the files after submission the AcoustId should be available.

4 Likes

All very interesting. So after clicking Scan, should I see an acoustID tag generated for each track?

Perhaps Picard should display the result of some of these steps, eg. Picard has (a) generated a fingerprint (b) created an acoustID (c) tried to match it with the acoustID server (d) etc etc

Sometimes;) If Picard was able to find an AcoustId, yes you should see such a tag for the file. If not, then not. But you can do a “Submit” (after matching the file to a recording) and a “Scan” again and you should see one.

Yes. It kinda does, but it is not very visible. The messages show up in the status bar at the bottom, but are quickly overridden. You can see them all in Help → View Activity History. That’s maybe the most fundamental flaw in the UI that it is often not clear what is happening.

You should see something like this in the output:

10:41:33 Looking up the fingerprint for file '/home/phw/file1.mp3' ...
10:41:33 No matching tracks for file '/home/phw/file1.mp3'
10:42:08 Looking up the fingerprint for file '/home/phw/file2.mp3' ...
10:42:08 File '/home/phw/file2.mp3' identified!
10:45:00 Loading album 923a1458-ffc0-425c-93fe-73404eecbedf ...
1 Like

That’s useful, I didn’t know that existed. I wonder whether some status button/lights would also be useful.

There was a ticket for this (PICARD-34) but I closed it because I felt it became useless from my point of view.
But it can be re‐opened if it’s still useful.

I think it would be beneficial. Appreciated.

@jesus2099 : I agree with iantresman, I feel that this wouldn’t make the UI harder to understand, but it could help understand some issues. And I also think that anything which helps understanding important steps of how something works is nice.

Please @davitof or @iantresman re‐open the ticket if you like it because I am not a heavy user of Picard.

I use alternatives to submit ISRC and Disc ID.

I’ve reopened the ticket at PICARD-34

Thanks, I have also linked this ticket to PICARD-471 which is a more general ticket about improving UI feedback in Picard.

On a side note I am a bit surprised people don’t know about Picard’s fingerprinting capability, given it is one of its core features and advertised right in the center of the Picard website :slight_smile: What can we do to improve this?

I did see it mentioned that Picard does fingerprinting, but I could find nothing while using the software to confirm this.

Hi Outsidecontext,
As you know I am new to Picard and MB and this all fingerprinting stuff!
What I would recommend for the Picard Homepage if you want to extend the targeted population is:

  • less emphasys on technical terms, like “Python”, people from a non-IT world do not care if it uses Python or Java… You can still leave it on the page but I am not sure it add value to “sell” the product.
  • for the fingerprinting, agree it is right in the middle of the page, but the first time I visited the homepage I’ve asked myself wtf is this, do I need it, why should I use it? And it does not explain that the file does not need to have this fingerprinting in the first place: Picard can do the all process!
    Maybe something like this would be better: "Picard can automatically generate the fingerprinting AcoustID from the file and use it to identify and match the correct metadata with a success rate of 99.9%. No more music file with the wrong metadata/tag, you will re-discover new ways to manage your library and find the right song for the right moment…"
    I would also emphasys the community which is really active :wink:
    If I think of something else I’ll post it.
3 Likes

Fingerprinting in Picard isn’t enabled by default as it requires a slight configuration (AcoustID key).
Also, it doesn’t calculate fingerprints automatically.
There is no obvious mean to see if a match was done using fingerprint or name/metadata.

Perhaps an improvement would be to implement a configuration wizard, as suggested by PICARD-292.
If such wizard asks for fingerprinting basic configuration and explain what it does, new users will be more likely to be aware of it.

2 Likes

Hi Zas,
OK understood and agree for the wizard.

But to get new users I think you need to improve visibility and communication on the website, this is just my opinion from a new user!
My above proposition can surely be improve this was just my attempt to have a less technical message but still explaining what it does.

I like your wizard proposition and maybe you could extend it to the main interface. When I used Picard for the first time I read the basics and could go through my first tagging but why do I need to use so much button… maybe it would be worth to have 2 modes: a wizard mode and an advanced mode. The advanced mode would be the current interface and the wizard mode would guide the user through the process. Just my 2 cents :wink:
I went through the documentation and I really discovered the difference between the “lookup” and the “scan” button by reading post on the forum.

Yes, that is hard to unterstand. You actually have to know the difference, the Picard UI doesn’t explain it. And even if you know what both buttons do there are still subtle differences that are hard to remember. Maybe there is some way of combining both into a single button , and still allow advanced users to choose the behavior they want.