[mb-devel] Future-proof FP, the fingerprint database

Juha Heljoranta juha.heljoranta at iki.fi
Sat Jun 16 17:01:54 UTC 2007


Hi,

I have a semi-working prototype :)

Roughly the thing works like this:



Searching
---------

- Client takes an audio clip and calculates fingerprint over it
- The client sends the data to the fingerprint server
- The fingerprint server performs a search and returns list of potential
match candidates.
  - The list contains MB TrackID and associated fingerprints
- If necessary, the client performs further analysis of the fingerprints.



Inserting
---------
- Client takes song/track and calculates fingerprint over it
- Client fetches fingerprint database lookup table statistics (if necessary)
- By using the statistics the client tires to find best possible
fingerprint from full fingerprint data by using the statistics form the
server.
- Once the best possible finger print is found the client sends the
fingerprint and the MB TrackID to the fingerprint server.

The fingerprint database statistics data is 32 MiB and describes data
distribution in lookup table servers. The client needs to update this
data only once a while, say, after 100 - 1000 song insertions to
database. We should be able to provide much more smaller incremental
updates.

The client uses this information to avoid inserting of data which the
server already has (e.g. silence). This should not be a problem unless
misused.

I also hope that the fingerprint insertion could be automatic and would
not require any user interaction in most cases. That is, the client
application should be able to pickup suitable fingerprint from audio
data for insertion by it self.



This is very high level description but what I'd like to know is how
would you like me to push this project further? What kind of APIs and
CLI and/or GUI you'd like to see to make feasibility testing possible?

The current server implementation is 100% Java (Few servlets + embedded
Derby database) and I wish we could stick with it until initial
feasibility tests are passed.

So, how would you like it? :)



Cheers,
Juha



More information about the MusicBrainz-devel mailing list