Current Project: I have a massive MP3 collection and needed something to catalog (index) it and couldn't find anything satisfactory that could handle the the range of malformed files. So I wrote a very tolerant MP3 librarian.
The Amount Of Malformed MP3 Files Found On The Internet Is Astounding...
The main goal here was to create a database of information gleaned from MP3 headers and hoping to use this in conjunction with a media player jukebox I'm programming for my bar area. The more you know about the media the better you can categorize it making for better relationship searching. i.e... Artist, Genre, Year, Album, Song etc... Yall'd be surprised at the garbage I found.
Note: I'm not slamming the rippers or their huge effort. This is a clear failure of the tools they use. And face it if your ripping and sharing then your on a budget. Thus... Budget tools. Poor results. And by poor I mean horrible.
It's no wonder how every media player I ran this collection through ultimately crashed and was unable to even run because the indexer had failed so poorly. A good engineering lesson against being to tightly coupled.
Since I Had Already Created The Media Library For Another Project...
I was working on an analyzer program (scope/spectrum) and had already written a MP3 back-end to test it. Since it already had stable MP3 header parsing and stream processing it was easy to convert to a library.
My MP3 library had in the meantime grown to massive proportion and I was having a hard time remembering where favorites were. Ah! Got to love that old age.
So I wrote a utility using the library to extract ID3 header information from a file. Previously I had only used the library for selective extraction so I had no idea how much junk I was filtering out. Instead the librarian records every ID3 header tag it encounters.
The interesting thing here is that I found several flaws in the MP3 library. Using it for two different purposes revealed several deficiencies. Another good engineering lesson about working in isolation.
The actual MP3 library can be view here while the jukebox app is under development.
Available For Download...
When I complete restructuring my version control system I will be making the source available for download under GNU license only wishing I could add prohibiting use on commercial operating-systems. Ha ha!
In the meantime features may or may-not include:
12536