There are different versions of mp3 tags. A standard is id3v1

Mp3 tags reside at the end of an mp3 file, after the actual music. Tags hold meta information about the mp3 song itself such as author and title. This information is independent from the actual recording itself. At the beginningof the mp3 file lies information regarding the structure of the file such as bitrate, songlength.

This node outlines the structure of an id3v1 tag. However, id3v2 tags are becoming increasingly popular. Both formats are supported by Winamp.

An id3v1 tag is a static size of 128 bytes. All bytes are stored as type char except for genre which is an 8-bit integer.

The first three bytes of a tag are always the same. They are the chars 'T','A','G'.

The 'T' is 128 bytes before the end of the file. A tagger module can look in these three bytes offset from the end of the file to ensure that an mp3 tag is valid.

The following 30 bytes store the title of the song. If all 30 bytes are not used, the end of the string should be padded with '/0' or the string terminator char.

The next 30 bytes store the artist.

The next 30 bytes store the album title.

The next 4 bytes comprise the year of the recording. This is not stored as a number. It holds the literal charecters corresponding to the year. '1','9','9','4' for example.

The next 30 bytes are reserved for any comments.

The last 1 byte is stored as a number. There are 128 possible values, and they each correspond to a differend genre

Field    Bytes
----------------
'TAG'    0-3
title    3-32
artist   33-62
album    63-92
year     93-96
comments 97-126
genre    127