FixTag is a Java/Swing application that lets you edit the fields within MP3 ID3 tags.
Over the years, I have converted many of the songs in my CD collection to MP3 format with the use of several different open source programs (my current favorite is CDex, but it has been inactive for a while). Unfortunately, sometimes through my own lack of consistency and sometimes due to the limitations of these programs, the ID3 tags stored in my MP3 files are missing some of the information about the song. Sometimes the filename contains fragments of information that is not present in the tag, and sometimes the tag contains information that I would also like to be in the filename. The problem is that, in many MP3 players, if an incomplete ID3 tag is present, then that incomplete information is all that is displayed during playback even if the filename contains more information - very frustrating.
Most of my MP3 files have tags in the ID3v1.0 format, which can only hold 30 characters in its largest fields, often leaving me with truncated contents. Other MP3 files contain information in ID3v2, which is vastly improved (if a little complicated), but the tags are not always complete.
I am certain that there are many programs already in existence to edit ID3 tags, but since I am a geek, and since it didn't look like it would take me too much time, I decided to take a crack at writing my own.
Here are the things I set out to accomplish:
I must preserve all tag data, even if I don't know what it is. ID3v2 is an (overwhelmingly) complex structure since it tries to provide ways to store anything you can imagine. I only care about a few fields, but someone else might be storing cover art (or whatever) in the tag and I should be careful not to screw it up.
All I want is for my MP3 player to display correct info for each song that is playing, so I didn't even consider supporting all the capabilities of ID3v2.
I don't like to type. If the information for a field can be extracted and presented to me in a list or a popup, then it should be. If I like my MP3 filenames to be composed in a certain way, then compose it for me, don't make me copy and paste.
Many of my files are just fine, so I need to be able to hide them from view and determine which files need attention. A file filtering feature should provide a way to hide files based on different criteria.
If I want to do the same thing to a lot of files at once, make it possible. A way to select a lot of files and stick the exact same Album name in all of them at once would be great.
Make it do the things I need to do, not the things I think I need. I don't want to make it more complicated than necessary by adding a feature that I won't wind up using.
Don't build in a lot of hand-holding junk that slows the user down. Make it easy to get a lot of work done with a minimum of pointing and clicking about - in other words, make it powerful. This doesn't necessarily mean make it easy-to-use for a novice.