ID3TagEditor control (part of TagID 0.1 application)
by Kingherc

ReadMe Contents:

1) Introduction top

(In some PCs the font size of this readme may be small and uncomfortable. Check if your browser has a menu for increasing or decreasing the page's text size.)
Thank you for using ID3TagEditor control. The ID3TagEditor control is part of the TagID application. The TagID application relies on the UltraID3Lib library. All of these were developped using Microsoft's .NET Framework.
ID3TagEditor is a free, advanced control that helps you edit ID3 tags. It supports both ID3v1.1 and ID3v2.3 tags.
Be sure to read TagID's license (can be viewed by clicking the control's 'About' button) and this Help file (can be viewed by clicking the control's 'Help' button) before using the control or the source in any way!

What are ID3 tags?
There are many people who enjoy .mp3 compressed music. The MP3 specification only defined the storage of musical data and did not provide the storage of metadata related to the musical composition; e.g., title, composer and artist, publisher, etc. The ID3 tag standard was created to remedy this need. The ID3 tags are stored in a file (usually an .mp3 file) in a way that doesn't affect the contents of the file and provide information about a file. They were developped by the ID3 organization. Programs that use/play a file that has an ID3 tag can show this information to the user. For example, Winamp when playing a .mp3 file shows information of the ID3 tag (the track's title, artist etc.).
This control supports both ID3v1 tags and the following, more versatile, version ID3v2 tags.

Some of the control's features:
* Basic and advanced editing of ID3v1.1 and ID3v2.3 tags.
* Viewing a file's MPEG info.
* Synchronizing the two versions of ID3 tags (copying info between the tags).
* Versatile and advanced options (allowing you to organize and automate the way you edit and view ID3v2 frames).
* An ID3v2 frame browser showing info about every recognisable frame.

2) Overview of ID3TagEditor top

The control is consisted of three parts: The first one is the toolbar, the second is the "property grid" just under the toolbar and the third is the "description panel" just under the property grid.
The toolbar and property grid will change according to the currently selected "view mode". The selected view mode is the one depicted on the view mode button in the right corner of the toolbar. There are 3 view modes available:
- The ID3v1 tag editing view mode which allows you to edit the ID3v1 tag.
- The ID3v2 tag editing view mode which allows you to edit the ID3v2 tag.
- The File Info view mode which allows you to view the current file's MPEG info.
You can change between view modes through the view mode button on the toolbar. Each view mode will be explained in its respective help topic.

About Options:
By accessing some of the toolbar's menus, you will encounter some configuration options (eg. if you wish to view ID3v2's frames alphabetically). These options are automatically saved in your PC's registry (when the control exits) and are automatically loaded from it (when the control is loaded). When you firstly open the control, these options will be the default (common and safe options). If, at any time, you wish to re-load these default options, click the button "Help > Load default options".

Note: As ID3TagEditor is a control which can be used by a variety of programs, these programs can customize it. So, in some cases the control may not appear with its full features. E.g. if a program "calls" the ID3TagEditor control for editing a specific file and the program doesn't want you to open a different file to edit, the "Open File" button will not appear in the File Info view mode. In this help file, the full-featured ID3TagEditor control (as used by the TagID application it-self) is explained.

3) ID3v1 tags top

ID3v1.1 isn't quite versatile, but provides basic info about a music file. It has standard "fields" with some limitations:
- Album. 30 characters.
- Artist. 30 characters.
- Comment. 28 characters.
- Genre. The genre field is a number (1 byte) that indicates the genre (aka "content type") of the track from ID3v1's standard genre list.
- Title. 30 characters.
- TrackNumber. The tracknumber is 1 byte and can take a value of 0-255.
- Year. 4 digits.

In the ID3v1 view mode the toolbar doesn't have any ID3v1 specific buttons because editing the tag is quite straightforward: you edit the fields through the property grid's second column.

4) ID3v2 tags top

ID3v2 tag is the next-level tag. It is versatile and customizable. ID3v2 tag doesn't have ID3v1's "fields". Instead, an ID3v2 tag is consisted of "frames". There are many kinds of frames you can add to an ID3v2 tag (e.g. Album frame, Title frame, Composer frame, Size frame, Picture frame etc.) and each one provides a different type of information.
There is a standard list of frames you can add to an ID3v2 tag but there are some frames that can be customized. Each frame of an ID3v2 tag is described by a four-character ID (eg. Title frame - TIT2). Each frame has its own fields. The common field among frames is a Flags field that tells a program how to manipulate a certain frame (eg. if a frame is marked as 'read-only'). Also, many frames have the field of TextEncoding which describes how text is 'encoded' in a frame.
Frames are divided in those that can only have one instance in a tag (eg. Title, Album etc.) and are characterized as 'single-instance' frames and in those that can have multiple instances in a tag (eg. Comments etc.) and are characterized as 'multiple-instance' frames.
In ID3v2 view mode, you can click Help > ID3v2 Frame Browser to see info about all recognisable frames. Some frames, however, aren't yet supported and are marked so. In the frame browser, you can see each frame's ID, description, name, instances allowed in a tag and category. Each frame is in one category and the 'category' of a frame can be changed through the control's configuration.

4.1) Editing and viewing ID3v2 tags top

In the ID3v2 view mode, you can see the current frames of the ID3v2 tag in the property grid. If the grid is empty, no ID3v2 tag and no frames exist. You can simply edit a frame by expanding it (to show the frame's field) and editing the fields (the fields' values are shown in the second column of the grid). The simplest way to edit fields is by clicking their value and type the value you want. Sometimes, this might not be possible. In these cases, you should see a drop-down arrow in the right side of the field. That means that you can click it to show a small dialog for editing the field. In some other cases, instead of a drop-down arrow, you will see three "...". These mean that you can click it to show another window for editing the field.

To add new frames to the tag, click the New button. It gives you three options: Add a new individual frame (the frame browser appears, select the frame you wish to add and click ok), a frame like the one selected (if, for example, a comments frame is selected, then a new comments frame will be added), new frames from a category. For every new frame, if it is a single-instance frame and the tag already has one, you will be prompted to confirm the addition (you can also choose Yes to All and No to All).
To delete the selected frame, click the Delete button. To delete all frames in the tag, click Multiple Actions > Delete all frames. To expand/collapse all frames, use the Multiple Actions appropriate buttons.

Now about the basic ID3v2 view mode configuration (which you can access through the Configure button):
View Options: With the first buttons, you can choose whether to show the (Flags) and (Encoding) fields of a frame when you expand the frame. With the last buttons, you can choose in which way to show the frames: Alphabetically, categorized or in no-order. When you select no-order, you can view frames in the order they are read/written. You can also change the order of the frames by clicking the Up and Down button (which have now appeared in the toolbar).
Modify frame categories: To change the categories of the frames, click this. By modifying the categories, you modify how frames look when the view is 'categorized' and you also modify the "New > Add new frames of category" buttons. When you modify categories, the categories are saved in a .xml file in the program's running directory.
Prompt on conflicting frames: This button appears when you have chosen to not be prompted for adding conflicting frames. After clicking the button, you will be again prompted for adding conflicting frames.
When you change the options and the exit the control, the options are automatically saved in your PC's registry. They are also automatically loaded when the control is loaded by a program. You can also load the default options by clicking Help > Load Default Options. For info about the Advanced options and about Normalizing a tag, see the 'Advanced editing of ID3v2 tag' help topic.

4.2) Advanced editing of ID3v2 tags top

The ID3TagEditor control gives you some advanced options to edit the ID3v2 tag. You can change them by clicking the Configure > Advanced button. First of all there are the default Flags and TextEncoding. These are default values to be automatically applied to the (Flags) and (Encoding) fields of frames when you create new frames or when normalizing a tag. To edit them, click "Select Default Flags and Encoding". To normalize a tag (apply the default Flags and TextEncoding to all frames of the tag) click Multiple Actions > Normalize tag. Furthermore, if you want the control to auto-normalize a tag when it is loaded, check "Auto-Normalize on Load" option (should be used only by advanced users as frames may lose their flags and encoding attributes without the user knowing).

Another feature of the control is the "one-line summary" or "description" of frames. When the options are the default ones, frames are shown as "nodes" in the property grid that can be expanded. When not expanded, the frames are shown by their names and the second column of the grid is empty. By activating the "one-line summary" (checking the "Display one-line frame summary" button), these empty lines will now contain brief info about the frame (eg. in an Involved Persons frame it will show the number of the persons, in an Album frame it will show the album) which in some cases is editable and in others isn't. Many frames, which contain only one text field (eg. the Album, artist frames but not the Invloved Persons frame), can be edited by editing the one-line summary. We will refer to these frames as "summary-editable".

These summary-editable frames may sometimes have some parameters prepended to their summary. These parameters are enclosed in {}. eg. You may see the Album frame's summary as '{C2} MyAlbum'. This summary means that the Album field of the Album frame is set to 'MyAlbum' but also provides info about the (Flags) and (Encoding) fields of the frame through the parameters. The 'C2' parameters mean that the flag's Compressed attribute is checked and that the frame's encoding is set to Unicode. The parameters that can be enclosed in the brackets are the following: C - compressed flag is checked. E - Encrypted flag. F - FileAlterPreservation flag. G - GroupingIdentity flag. R - Read-Only flag. T - TagAlterPreservation flag. 1 - TextEncoding is ISO88591. 2 - TextEncoding is Unicode. So for example, you may modify the Album's summary to '{RE1} MySecondAlbum' and so you change the frame's Album field to 'MySecondAlbum' and automatically change the frame's flags (the Read-Only flag and Encrypted flag are checked) and the frame's text encoding to ISO88591.
The summaries of the summary-editable frames may not contain any parameters at all. eg. the Album frame's summary is 'MyAlbum'. This means that the frame's Album field is 'MyAlbum' but also means that the (Flags) and (Encoding) fields are set to the default values defined in "Select Default Flags and Encoding" advanced option. So, if you don't care about the flags and encoding fields of frames and want to get rid of the parameters of the summaries, you can set the frames' fields to the default values. This can be also done by Normalizing the tag. Moreover, as summary-editable frames can be edited by only editing their one-line summary, you can check the "Force one-line frame summary" option which makes these frames not-expandable and thus simpler.

But generally, as these one-line summaries may be confusing, it is recommended for the common user not to activate them.

4.3) Troubleshooting top

Sometimes, when editing a field, you may insert an incorrect value. In these cases, an error is "thrown". The error describes what is wrong. For example if you try to enter "199a" in a year field, the error "199a is not a valid value for Int16" will be thrown. This means that 199a is not a number (there shouldn't be an "a"). If you change it to eg. "1998", then the error is corrected. In another case, when you eg. try to enter "345346454745" in ID3v2's track number field, you encounter the error "345346454745 is not a valid value for Int16". It is the same error, but this time you entered a number. The error is that the number is out of valid bounds (it's greater than a maximum number allowed). The field's value is limited and the track number should be a small number. If it's not a track number, and it is eg. a code or something, you shouldn't at all use the track number frame but instead, the comments frame or the private frame.
In any case, you should try to avoid errors and not attempt to enter invalid values in fields as some errors may not be handled, and the application may exit abruptly.

5) Synchronizing ID3v1 and ID3v2 tags top

This help topic explains how the synchronization of the tags (which you can do through the button "View Modes > Synchronize Tags") works.
When the program that uses the control allows you to edit both tag versions, the Synchronize Tags button will be visible. Synchronizing means copying info from one tag version to the other. You can synchronize the tags in three ways: Synchronize ID3v1 from ID3v2, ID3v2 from ID3v1 and synchronize both tags simultaneously (in reality it synchronizes first ID3v1Tag from ID3v2Tag and then ID3v2Tag from ID3v1Tag). When the "Sync All Fields" is checked, then the synchronized fields/frames are overwritten and if not found are created (note: when the ID3v2 is synchronized, the first Comments frame is overwritten). When SyncFields is "Sync only Blank Fields", then the synchronized fields/frames are written only when they are empty or not found (note: when the ID3v2Tag is synchronized, the first Comments frame is overwritten).

More info about the synchronization process:
- When the ID3v1's comments field is synchronized, it's filled this way: When the ID3v2's comment frame has a description, it's filled 'Description: Comment'. If it doesn't have a description, only the comment is copied.
- When the ID3v1's genre field is synchronized, the genre byte is searched in the ID3v2's genre frame in this way: First, if it's in a format of '(No)Genre', or '(No)' or 'No' (where No is the genre byte). Else, it searches the ID3v1's standard genre list for the frame's custom genre. If found it copies the genre byte to the ID3v1's genre field. If not it sets the genre to 255.
- When the ID3v2's genre frame is synchronized, it's filled this way: '(No)Genre' where No is the genre byte and Genre is the genre's name as found in the ID3v1's standard genre list.
- When the ID3v1's track number is synchronized, if the ID3v2's track number frame is greater than 255, then the ID3v1's track number field is emptied.
- Note that when synchronizing ID3v1 from ID3v2 you may lose some info due to restrictions that the ID3v1 has but the ID3v2 hasn't.

6) File Info view mode top

In the file info view mode, you can see in the property grid information about the file and about it's MPEG track (if it has one). The info is categorized. If an error occurs while reading the file's info, then the invalid info will not be shown at all. Instead, any errors occurred will be shown in the property grid and will be shortly described. Generally, errors occur when a file's MPEG header is corrupted or if a file is not an MPEG file at all. But even if errors have occurred, you can still edit the file's ID3 tags.

About opening and saving:
The current file being edited is shown in the FilePath property of the grid. To change the current file being edited, click the "Open File" button from the toolbar.
To save the current file, just click the "Save File" button from the toolbar. Furthermore, ID3TagEditor gives you these additional capabilities:
Auto-Saving: You can enable or disable this feature by checking and unchecking the "Auto-Save" button from the toolbar. When this button is checked, every change you make to the ID3 tags of the file will be automatically saved in the file (and it cannot be undone). Note: Because options are automatically saved in the registry, the state of the Auto-Save button is also stored automatically and is loaded automatically when you load the ID3TagEditor control. So, everytime you load the ID3TagEditor control, you should check to see if the button's is checked or not (if it's checked and you make a change, you cannot undo it). To remind you that, the button, when checked, stays visible in all view modes. Also, when checked, you'll not be asked the "save the current file?" question when you exit the control or when you open another file.
Note: If you do not wish to save the changes you've made: Have the Auto-Save button unchecked, and exit the control or load another file (and click No to the "save the file?" question).

7) Contacts & Website top

More information about the program can be found at http://www34.brinkster.com/kingherc/. Also, you can contact me at king_herc@yahoo.com for anything (comments, critics, recommendations, help etc.).

8) Acknowledgements top

TagID uses the "UltraIDLib: MP3 ID3 Tag Editor"
UltraIDLib: MP3 ID3 Tag Editor and MPEG Info Reader Library
Hundred Miles Software (www.HundredMilesSoftware.com)
Copyright 2002
Author: Mitchell S. Honnert
Home Page: www.UltraID3Lib.com

TagID uses the "Wasp Icon Theme" (released under the "Design Science License").
The Wasp Icon Theme was first released on Gnome and we're based on icons from BeOS/Zeta
Original work by Matthew McClintock (http://mc.clintock.com/) & Christian Schaller
Put Together for KDE By: P.Yavitz (Converted, Modified, & Added to)
Patrick Yavitz (pyavitz@comcast.net)
--- > --- > --- > --- > --- > --- > --- > --- > --- > --- > --- > --- > --- > --- > --- >
BeOS / OpenBeOS Distribution - http://www.beosonline.com/
Yellow Tab / Zeta - http://www.yellowtab.com/
If you are looking for a Windows/Linux alternative then check out BeOS, it is a great Operating System.
The Wasp Icon Theme is available for downloading on TagID's website.

TagID edits ID3 tags. More info about them at http://www.id3.org/.