2009-4-2011:39 pm

an implementation of MultiTask that tracks progress across all tasks combined

a new task that calculates the MusicBrainz TRM id/fingerprint of a track

an example that uses the new MultiTask with the new TRMTask to calculate the fingerprints of a playlist given

Not bad for 90 minutes of hacking. I really like my expressiveness in Python. And all of this done while listening to beautifully mixed music with my current jukebox script. I’m actually enjoying hacking again!

The example doesn’t actually save the fingerprints yet. My mini-goal with this for DAD is to fingerprint all audio on all my devices, as a basis to uniquely identify audio tracks, and then layer the rating of tracks on various machines on top of that information.

You know that MusicBrainz are in the process of getting rid of the TRM system, right?

They’ve switched to a new (proprietary) system called PUID. It is apparently a lot better at identifying known tracks, but requires quite a lot of CPU time to calculate the initial fingerprint for a track. In contrast, the TRM system had a fairly easy to calculate fingerprint but the server was then responsible for identifying similar fingerprints to get matches — something that didn’t scale well.