MP3 files just contains Audio information. The MP3 (Mpeg) structure does not allow to store content descriptions such as Title of song. To store this sort of information they use ID3 (
Identify MP
3).
In fact ID3 is not part of an mp3 files and have different structure from mp3. In the first version of ID3(ID3v1) it was added at the end of file and just allowed to add fix 128 bytes of data to mp3. but in earlier versions (ID3v2.X) it allows to add up to 256MB of data to one mp3 file. So it had great promotion.
URL of official ID3 organization is
www.ID3.org. The web site contains full specification of each ID3 version. Here I just explain ID3 in one look.
ID3 v1
This version of ID3 just was 128 bytes of data that added to the end of mp3 file. it just contains:
Field Name | Length (byte) |
ID3v1 Identifier (Always 'TAG') | 3 |
Title | 30 |
Artist | 30 |
Album | 30 |
Year | 4 |
Comment | 28 |
Track Number | 1 |
Genre | 1 |
This is all about ID3v1. Professional Tag Editor support ID3v1 and have a class in this name to read/write this version of ID3.
ID3 v2
ID3v2 have some minor versions. There is not much different between them. This version of ID3 add at the beginning of mp3 file and starts with ID3 header. Header contains information about ID3 like length of ID3 data, some flags and some other information.
ID3v2 made from Frames. Each frame provide specific information about the file. For example there is a frame to store Title of song or there is another frame to store Band picture. Each frame have it own header information. Frame length is variable that stored in header. Each frame has it own structure that defined in specification.
Must of ID3 frames don't use in routine applications. Some application support more than other and some of them just support just reading ID3. But some other application have limit environment to edit ID3 like jet audio, winamp and media player.
This is mp3 file structure that contains ID3.Mp3 have own Mpeg structure to store audio data there is no need to know for ID3.
Each frame consists of frame header and frame data. You can find Frame length, Frame name, Frame Flags (Readonly, what to do if frame where unknown and etc) in Frame header. The frame header structure is same for all frames. But data part of frame can be different.
Frame names is 4 Character ( 3 character in ID3v2.2 ). These four characters indicate structure of frame data. For example 'TIT2' means 'Title of song'.
In this example Frame header is in color blue and data is red. As you can see in this example this Frame contains TIT2 ( Title of song ). The size of frame is 6 byte and there is no special flag. Frame data say the following string is ASCII and finally the Title. 'Title' is 5 character and encoding is always one character so the frame length is 6 bytes. This is the simplest example of ID3v2 frames.
As an another example 'APIC' as Frame Id means Attached picture. The data of this frame contains a byte as picture type and followed by binary data of picture. Picture type is a number for example 10 means this is picture of band or 3 means front picture of album cover. All this information can be found in ID3 specifications.
And also there are some rolls to follow. In all ID3 information you must have one TIT2 (Title of song) frame. But for pictures(APIC) the story is different.
What ID3v2 can contains:
- Attached any type of files. It is not important it is a picture, another mp3 file, program or even a movie. The important thing is it must not be leads ID3 goes more than 256MB. And also must remember attached file size will add to mp3 size.
- ID3 can contains how many times file played (Play Counter). who rated the song and what is rating (Popularimeter)
- ID3 Lets encrypt audio and store decrypt information in ID3 (Audio Encryption)
- Information about Publisher, Publishing, cost, seller and etc.
- Terms of use for file
- Reverb data
- Lyric as synchronized/Unsyncronized text
- Complete information of media that file converted from (For example tape)
- Recommended buffer size
And so many other features that can be used with Mp3 files. For more information about ID3 specification take a look at www.id3.org.
Professional Tag Editor Supports:
All the mentioned feature support with Professional Tag Editor. Professional Tag Editor provides a base class to read all frames (named Frame) every other frames have their own classes. All of them inherited Frame class. Some classes used for multiple frames and some other is just used for one type of frame. There is frame collection class to store all frames and finally save them. For more information about How Professional Tag Editor works take a look at Here.