Log in

No account? Create an account
Non-fingerprinting auto-tagger - brad's life [entries|archive|friends|userinfo]
Brad Fitzpatrick

[ website | bradfitz.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Non-fingerprinting auto-tagger [Oct. 15th, 2006|09:33 pm]
Brad Fitzpatrick

I downloaded the MusicBrainz database (316 MB compressed), and plan to write a non-fingerprinting auto-tagger on the flight.

-- directory hierarchy (including dates for albums)
-- track titles (including often the track positon)
-- song duration, in seconds

I bet I can write a really damn good auto-tagger without even resorting to fingerprinting, which doesn't seem to work too well. (At leats iEatBrainz seems to kinda suck....)

There's just so many clues to use from the filesystem alone.

Please tell me somebody's done this?

[User Picture]From: nothings
2006-10-16 05:32 am (UTC)
Considering that CDDB et al basically work from just a list of song lengths, I think you shouldn't have much trouble making it work nearly 100%. I think people rely on fingerprinting for things where you just have the song, or you have a pile of unnamed / poorly named songs. It's a giant win if they're already in a hierarchy so you only have the mp3s from a single song in a given directory.

I'm not sure what data is in the musicbrainz database; the freedb database can be downloaded and is 480MB compressed.
(Reply) (Thread)
[User Picture]From: herbie
2006-10-16 05:54 am (UTC)
I feel like EasyTag and The Godfather might be able do this, but neither of those are Mac apps, unfortunately. Re: iEatBrainz. I had some pretty good success with it in the past, but now it seems not to work at tagging files which it had previously tagged just fine. It's possible that an iTunes/QuickTime upgrade broke it?
(Reply) (Thread)
[User Picture]From: brad
2006-10-16 06:08 am (UTC)
iEatBrainz doesn't go through iTunes/QuickTime, not that I can see.

Thanks for the EasyTag reference! I'll try that out first.
(Reply) (Parent) (Thread)
[User Picture]From: herbie
2006-10-16 06:16 am (UTC)
I was pretty sure that iEatBrainz used QuickTime to to decode the audio before fingerprinting. From January, in the Developer's Blog:

iEatBrainz is a bit beyond resurrecting code wise (It does still work, but changes by Apple or MusicBrainz will certainly break someday in the future), while parts of it could be harvested, I’d suggest to anyone thinking about it to strongly consider a cocoa gui for Picard as it has a lot more features and with MusicBrainz fingerprinting up in the air it’s a much safer approach.
(Reply) (Parent) (Thread)
[User Picture]From: troworld
2006-10-16 02:43 pm (UTC)
I've had problems with EasyTag randomly trimming the title field. The UI is kinda crappy, so you don't always catch the trimming, since it leaves the filename intact. Just a heads-up.
(Reply) (Parent) (Thread)
[User Picture]From: waider
2006-10-16 06:36 am (UTC)
From the blatant self-promotion department:
perl to try and match an MP3 file to a freedb file, ultimately spitting out a command line for perl to rename and retag your MP3 files. Lots of command line stuff to play with, none of which I can ever remember. Lots of kludging and fuzzy matching stuff too. These are mostly intended for use with jwz's Gronk jukebox, which I think has another script for coercing a little more love for iTunes into the mix.
(Reply) (Thread)
[User Picture]From: waider
2006-10-16 11:18 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: vxjasonxv
2006-10-16 06:53 am (UTC)
Semi on-topic, something you might want to know. (Helps you in the future, but unfortunately not in the preset.)

iEatBrainz only uses the old TRM fingerprinting format, while MusicBrainz is moving to PUIDs as of Picard 0.7 and 0.7.1
You probably knew this already.

Picard is being re-written using Qt for ultimate cross portability (and reliability, silly wxWidgets).

Someone in MusicBrainz IRC mentioned creating a userspace file system using FUSE that would create a directory-detached (...perhaps agnostic is the better world I'm looking for?) organization of music files.
Something that would allow accessing a file, regardless of filesystem location, by accessing it's metadata (artist, title, album, year, whatever).

It was mentioned, but I don't believe implementation went underway or anything.
(Reply) (Thread)
[User Picture]From: mart
2006-10-16 07:10 pm (UTC)

A virtual filesystem for music is something that's been on my “I'll write that one day…” list for years. However, I'm not entirely convinced that the kernel filesystem layer is the right place to do it. It seems better placed in the shell's virtual filesystem, where it can do more clever stuff like presenting the right icons for albums and stuff like that.

This does limit you to using apps that support your shell's virtual filesystem layer, of course; I wonder if there's some way a compromise can be achieved so that all of the important stuff is in the kernel-level FS (which is actually FUSE-based, but the apps don't need to know that) but the fancy-shmancy stuff can be layered on top at the shell level. I don't know nearly enough about how KDE and Gnome's virtual filesystem layers work to speculate on this… more research to be done.

(Reply) (Parent) (Thread)
[User Picture]From: visions
2006-10-18 05:03 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: jwz
2006-10-16 09:31 am (UTC)
Is the problem you're trying to solve that the id3 tags in your mp3s do not correspond to their file names?
(Reply) (Thread)
[User Picture]From: brad
2006-10-16 03:51 pm (UTC)
It's that I often don't have id3 tags, but have everything organized in directories correctly, and named correctly. So all the information is there (in one of 3 or 4 similar forms), just not in the id3.
(Reply) (Parent) (Thread)
[User Picture]From: jwz
2006-10-16 05:03 pm (UTC)
Are your MP3s from, like, the nineteen-hundreds or something? Did you rip them with a steam turbine?
(Reply) (Parent) (Thread)
[User Picture]From: loganb
2006-10-16 03:12 pm (UTC)
Have you found a decent library to query CDDB or other music metadata DB? I just ran into this problem where I need an app to run through all my MP3s/OGGs/AACs, properly tag them, and then group them by source directory for de-duping.

I couldn't find any decent Java libs to do the querying although maybe perl has better support.
(Reply) (Thread)