MP3 Diags
The main purpose of the tag editor is to get track information (artist, title, album, cover art, track number, release date, genre, rating, and composer) from various sources and write everything to an ID3V2.3.0 tag. (Note that although multiple images can be stored in ID3V2, for front cover, back cover and some other things, MP3 Diags handles a single image.)
While there are many other tag editors, the one included in MP3 Diags has one advantage in being aware of what other parts of the program are doing. Other advantages over some other tag editors:
To some the idea of tagging MP3 files might sound rather obsolete. The reason for this is that many players create a database with your MP3s and add all sorts of information there. That's nice if you only use one player and that player doesn't have the habit of crashing, destroying the database in the process. Many features of MP3 Diags are designed for a different approach, which is that all the information that can be stored inside MP3 files should be stored there, so we shouldn't care about moving to a different player (this includes a different device) and having to recreate the database. First you make sure the MP3 files are OK, then you can play them in Winamp, Amarok, VLC or whatever you prefer, as well as on your iPod.
What's on the screen
Most of the space is taken up by two tables, one above the other. The one above contains the current album. The values in the cells get written to ID3V2.3.0 tags if the information is saved (which can be done explicitly, with the save button, or automatically, is so configured.
The table below contains the current song. The 9 lines correspond to the 9 fields that the tag editor supports. The columns contain track information as retrieved from various sources: (The last two need patterns to be defined.)
While some sources may not apply to all the files (e.g. one file might have two ID3V2 tags while another has none), for a given album we take the union of all the sources that apply to that album and display them all, regardless of a file having a particular source or not. It's just that if a source doesn't apply to a file, all the fields in that sorce will be empty (and there's a special background color to identify such sources.)
How does the tag editor work
To determine what gets displayed in the "current album" table (and what ultimately gets written to disk), this algorithm is applied for each file:
  1. If a field is marked as "assigned", its value is whatever it was the last time it was set manually and caused the field to become "assigned"
  2. Otherwise, for each field: the list with sources is examined from left to right and the first non-null value that is found will also be the value to be displayed in the corresponding cell in "current album"
A field in the "current album" is marked as assigned in either of these cases:
  1. the user presses F2 in a cell and changes the value of a field manually
  2. the user clicks on the "Toggle assigned" button, with the sole purpose of fixing the value of a field (or perhaps more fields, because multiple fields can be selected before toggling the state)
  3. the user assigns an image to the files in the album
These may sound more complicated than they actually are. In many cases all you'll need to do is drag the column headers of the "current file" table to the left or to the right, download an image from the Internet, assign it, and then save.