MP3 file and tags
MP3 files can contain ID3 tags to describe audio. These tags can include information about title, artist, album, year of creation, track number and much more. There are two main versions of ID3 tag: ID3v1 and ID3v2. The first version is older and has limited facilities. The second one is newer and has much more facilities. In a MP3 file can be present both tags (of the first and the second versions) at the same time, only one of them or none at all.
ID3v1 tag, if present, is always at the end of the file. It has a fixed size of 128 bytes, and a fixed set of fields. Its fields have limitations on length.
Structure of ID3v1 tag
|
Title
|
30 characters
|
|
Artist
|
30 characters
|
|
Album
|
30 characters
|
|
Year
|
4 characters
|
|
Comment
|
28 characters
|
|
Track
|
1 byte
|
|
Genre
|
1 byte
|
Track field occupies 1 byte, so it can be used to set the value from 0 to 255.
Genre field also occupies 1 byte, and can contain one of 256 values. Genre is represented in a tag as a number, but TagJet converts it into a name. Genres are already defined for first 126 values.
The following genres are defined in ID3v1 specification:
0. Blues
1. Classic Rock
2. Country
3. Dance
4. Disco
5. Funk
6. Grunge
7. Hip-Hop
8. Jazz
9. Metal
10. New Age
11. Oldies
12. Other
13. Pop
14. R&B
15. Rap
16. Reggae
17. Rock
18. Techno
19. Industrial
20. Alternative
21. Ska
22. Death Metal
23. Pranks
24. Soundtrack
25. Euro-Techno
26. Ambient
27. Trip-Hop
28. Vocal
29. Jazz+Funk
30. Fusion
31. Trance
32. Classical
33. Instrumental
34. Acid
35. House
36. Game
37. Sound Clip
38. Gospel
39. Noise
40. AlternRock
41. Bass
42. Soul
43. Punk
44. Space
45. Meditative
46. Instrumental Pop
47. Instrumental Rock
48. Ethnic
49. Gothic
50. Darkwave
51. Techno-Industrial
52. Electronic
53. Pop-Folk
54. Eurodance
55. Dream
56. Southern Rock
57. Comedy
58. Cult
59. Gangsta
60. Top 40
61. Christian Rap
62. Pop/Funk
63. Jungle
64. Native American
65. Cabaret
66. New Wave
67. Psychadelic
68. Rave
69. Showtunes
70. Trailer
71. Lo-Fi
72. Tribal
73. Acid Punk
74. Acid Jazz
75. Polka
76. Retro
77. Musical
78. Rock & Roll
79. Hard Rock
The following genres are Winamp extensions:
80. Folk
81. Folk-Rock
82. National Folk
83. Swing
84. Fast Fusion
85. Bebob
86. Latin
87. Revival
88. Celtic
89. Bluegrass
90. Avantgarde
91. Gothic Rock
92. Progressive Rock
93. Psychedelic Rock
94. Symphonic Rock
95. Slow Rock
96. Big Band
97. Chorus
98. Easy Listening
99. Acoustic
100. Humour
101. Speech
102. Chanson
103. Opera
104. Chamber Music
105. Sonata
106. Symphony
107. Booty Bass
108. Primus
109. Porn Groove
110. Satire
111. Slow Jam
112. Club
113. Tango
114. Samba
115. Folklore
116. Ballad
117. Power Ballad
118. Rhythmic Soul
119. Freestyle
120. Duet
121. Punk Rock
122. Drum Solo
123. Acapella
124. Euro-House
125. Dance Hall
TagJetsupports all of these genres.
ID3v1 tag does not support Unicode encoding, and its fields can contain strings only in ASCII encoding.
ID3v2 tag provides much more facilities. It is located at the beginning of the file what has been done to support streaming players.
It has a bigger set of fields and practically does not have limitations on their length. Below are the main fields of ID3v2 tag. TagJet supports all of them.
Main fields of ID3v2 tag
|
Field name
|
Description
|
|
Title
|
The 'Title/Song name/Content description' field is the actual name of the piece (e.g. "Adagio", "Hurricane Donna").
|
|
Artist
|
The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is used for the main artist(s).
|
|
Album
|
The 'Album/Movie/Show title' field is intended for the title of the recording(/source of sound) which the audio in the file is taken from.
|
|
Year
|
The 'Year' field is a numeric string with a year of the recording.
|
|
Genre
|
Genre of the content. You may use one of genres mentioned above or define and use your own.
|
|
Track
|
The 'Track number/Position in set' field is a numeric string containing the order number of the audio-file on its original recording. This may be extended with a "/" character and a numeric string containing the total number of tracks/elements on the original recording. For example, "4/9".
|
|
Comment
|
This field is intended for any kind of information that does not fit in any other field.
|
|
Original filename
|
The 'Original filename' field contains the preferred filename for the file, since some media doesn't allow the desired length of the filename. The filename is case sensitive and includes its suffix.
|
|
BMP
|
The 'BPM' field contains the number of beats per minute in the main part of the audio. The BPM is represented as a numerical string.
|
|
Play counter
|
This field contains a counter which shows how many times the audio file was played. The field is set by an audio player.
|
|
Rating
|
This field contains rating of the audio file which indicates its popularity.
|
|
Content group
|
The 'Content group description' field is used if the sound belongs to a larger category of sounds/music. For example, classical music is often sorted in different musical sections (e.g. "Piano Concerto", "Weather - Hurricane").
|
|
Subtitle
|
The 'Subtitle/Description refinement' field is used for information directly related to the contents title (e.g. "Op. 16" or "Performed live at Wembley").
|
|
Band
|
The 'Band/Orchestra/Accompaniment' field is used for additional information about the performers in the recording.
|
|
Conductor
|
The 'Conductor' field is used for the name of the conductor.
|
|
Remixed by
|
The 'Interpreted, remixed, or otherwise modified by' field contains more information about the people behind a remix and similar interpretations of another existing piece.
|
|
Original artist
|
The 'Original artist(s)/performer(s)' field is intended for the performer(s) of the original recording, if for example the music in the file should be a cover of a previously released song. The performers are separated with the "/" character.
|
|
Composer
|
The 'Composer(s)' field is intended for the name of the composer(s). They are separated with the "/" character.
|
|
Original album
|
The 'Original album/movie/show title' field is intended for the title of the original recording (or source of sound), if for example the music in the file should be a cover of a previously released song.
|
|
Original year
|
The 'Original release year' field is intended for the year when the original recording, if for example the music in the file should be a cover of a previously released song, was released.
|
|
Writer
|
The 'Lyricist(s)/Text writer(s)' field is intended for the writer(s) of the text or lyrics in the recording. They are separated with the "/" character.
|
|
Original writer
|
The 'Original lyricist(s)/text writer(s)' field is intended for the text writer(s) of the original recording, if for example the music in the file should be a cover of a previously released song. The text writers are separated with the "/" character.
|
|
Encoded by
|
The 'Encoded by' field contains the name of the person or organization that encoded the audio file. This field may contain a copyright message, if the audio file also is copyrighted by the encoder.
|
|
Publisher
|
The 'Publisher' field simply contains the name of the label or publisher.
|
|
Copyright
|
The 'Copyright message' field, which must begin with a year and a space character (making five characters), is intended for the copyright holder of the original sound, not the audio file itself. The absence of this field means only that the copyright information is unavailable or has been removed, and must not be interpreted to mean that the sound is public domain. Every time this field is displayed the field must be preceded with "Copyright © ".
|
|
File owner
|
The 'File owner/licensee' field contains the name of the owner or licensee of the file and its contents.
|
|
Audio file webpage
|
The 'Official audio file webpage' field is a URL pointing at a file specific webpage.
|
|
Artist webpage
|
The 'Official artist/performer webpage' field is a URL pointing at the artist’s official webpage.
|
|
Audio source webpage
|
The 'Official audio source webpage' field is a URL pointing at the official webpage for the source of the audio file, e.g. a movie.
|
|
Commercial info webpage
|
The 'Commercial information' field is a URL pointing at a webpage with information such as where the album can be bought.
|
|
Copyright info webpage
|
The 'Copyright/Legal information' field is a URL pointing at a webpage where the terms of use and ownership of the file is described.
|
|
Publisher webpage
|
The 'Publishers official webpage' field is a URL pointing at the official webpage for the publisher.
|
|
Payment webpage
|
The 'Payment' field is a URL pointing at a webpage that will handle the process of paying for this file.
|
|
Art
|
Indicates if the tag contains attached pictures which are related to the audio file.
|
ID3v2 tag supports Unicode encoding. Therefore, its fields can contain any characters. TagJetalways saves string in the fields of this tag in Unicode for universality.
ID3v2 tag is much more versatile than ID3v1 tag. But it has one slight shortcoming: it should be at the beginning of the file. So if a file had initially no tags, or after editing the tag was extended, then the file has to be rewritten to insert the tag. This may create a delay when saving files that may be noticeable when you save a large group of files. Especially if you edit files stored on a slow MP3-player or a slow flash drive. But all the advantages of this tag override this shortcoming. Besides TagJet tries to optimize the saving of the tag to reduce the delay.
ID3v1 tag has one indisputable advantage – it is very quickly to work with it. File will never have to completely rewrite to add or remove this tag. And in many cases, ID3v1 is enough.
|