rtsp: Port to GIO
[platform/upstream/gstreamer.git] / gst-libs / gst / tag / id3v2.3.0.txt
1 * id3v2.3.0
2
3 Informal Standard
4 Document: id3v2.3
5 M. Nilsson
6 3rd February 1999
7
8
9 1. ID3 tag version 2.3.0
10
11
12 1.1. Status of this document
13
14 This document is an informal standard and replaces the id3v2.2.0 standard. The
15 informal standard is released so that implementors could have a set standard
16 before a formal standard is set. The formal standard will use another version
17 or revision number if not identical to what is described in this document. The
18 contents in this document may change for clarifications but never for added or
19 altered functionallity.
20 Distribution of this document is unlimited.
21
22 1.2. Abstract
23
24 This document describes the ID3v2.3.0 standard, which is a more developed
25 version of the ID3v2 informal standard (version [:id3v2-00: 2.2.0]), evolved
26 from the ID3 tagging system. The ID3v2 offers a flexible way of storing
27 information about an audio file within itself to determine its origin and
28 contents. The information may be technical information, such as equalisation
29 curves, as well as related meta information, such as title, performer,
30 copyright etc.
31 Contents
32
33   1. ID3_tag_version_2.3.0
34
35        1. Status_of_this_document
36        2. Abstract
37
38   2. Conventions_in_this_document
39   3. ID3v2_overview
40
41        1. ID3v2_header
42        2. ID3v2_extended_header
43        3. ID3v2_frame_overview
44
45             1. Frame_header_flags
46
47        4. Default_flags
48
49   4. Declared_ID3v2_frames
50
51        1. Unique_file_identifier
52        2. Text_information_frames
53
54             1. Text_information_frames_-_details
55             2. User_defined_text_information_frame
56
57        3. URL_link_frames
58
59             1. URL_link_frames_-_details
60             2. User_defined_URL_link_frame
61
62        4. Involved_people_list
63        5. Music_CD_identifier
64        6. Event_timing_codes
65        7. MPEG_location_lookup_table
66        8. Synchronised_tempo_codes
67        9. Unsychronised_lyrics/text_transcription
68       10. Synchronised_lyrics/text
69       11. Comments
70       12. Relative_volume_adjustment
71       13. Equalisation
72       14. Reverb
73       15. Attached_picture
74       16. General_encapsulated_object
75       17. Play_counter
76       18. Popularimeter
77       19. Recommended_buffer_size
78       20. Audio_encryption
79       21. Linked_information
80       22. Position_synchronisation_frame
81       23. Terms_of_use_frame
82       24. Ownership_frame
83       25. Commercial_frame
84       26. Encryption_method_registration
85       27. Group_identification_registration
86       28. Private_frame
87
88   5. The_unsynchronisation_scheme
89   6. Copyright
90   7. References
91   8. Appendix
92
93        1. Appendix_A_-_Genre_List_from_ID3v1
94
95   9. Author's_Address
96
97
98
99 2. Conventions in this document
100
101 In the examples, text within "" is a text string exactly as it appears in a
102 file. Numbers preceded with $ are hexadecimal and numbers preceded with % are
103 binary. $xx is used to indicate a byte with unknown content. %x is used to
104 indicate a bit with unknown content. The most significant bit (MSB) of a byte
105 is called 'bit 7' and the least significant bit (LSB) is called 'bit 0'.
106 A tag is the whole tag described in this document. A frame is a block of
107 information in the tag. The tag consists of a header, frames and optional
108 padding. A field is a piece of information; one value, a string etc. A numeric
109 string is a string that consists of the characters 0-9 only.
110
111
112 3. ID3v2 overview
113
114 The two biggest design goals were to be able to implement ID3v2 without
115 disturbing old software too much and that ID3v2 should be as flexible and
116 expandable as possible.
117 The first criterion is met by the simple fact that the MPEG decoding software
118 uses a syncsignal, embedded in the audiostream, to 'lock on to' the audio.
119 Since the ID3v2 tag doesn't contain a valid syncsignal, no software will
120 attempt to play the tag. If, for any reason, coincidence make a syncsignal
121 appear within the tag it will be taken care of by the 'unsynchronisation
122 scheme' described in section_5.
123 The second criterion has made a more noticeable impact on the design of the
124 ID3v2 tag. It is constructed as a container for several information blocks,
125 called frames, whose format need not be known to the software that encounters
126 them. At the start of every frame there is an identifier that explains the
127 frames' format and content, and a size descriptor that allows software to skip
128 unknown frames.
129 If a total revision of the ID3v2 tag should be needed, there is a version
130 number and a size descriptor in the ID3v2 header.
131 The ID3 tag described in this document is mainly targeted at files encoded with
132 MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III and MPEG-2.5, but may
133 work with other types of encoded audio.
134 The bitorder in ID3v2 is most significant bit first (MSB). The byteorder in
135 multibyte numbers is most significant byte first (e.g. $12345678 would be
136 encoded $12 34 56 78).
137 It is permitted to include padding after all the final frame (at the end of the
138 ID3 tag), making the size of all the frames together smaller than the size
139 given in the head of the tag. A possible purpose of this padding is to allow
140 for adding a few additional frames or enlarge existing frames within the tag
141 without having to rewrite the entire file. The value of the padding bytes must
142 be $00.
143
144 3.1. ID3v2 header
145
146 The ID3v2 tag header, which should be the first information in the file, is 10
147 bytes as follows:
148
149   ID3v2/file identifier   "ID3"
150   ID3v2 version           $03 00
151   ID3v2 flags             %abc00000
152   ID3v2 size              4 * %0xxxxxxx
153
154 The first three bytes of the tag are always "ID3" to indicate that this is an
155 ID3v2 tag, directly followed by the two version bytes. The first byte of ID3v2
156 version is it's major version, while the second byte is its revision number. In
157 this case this is ID3v2.3.0. All revisions are backwards compatible while major
158 versions are not. If software with ID3v2.2.0 and below support should encounter
159 version three or higher it should simply ignore the whole tag. Version and
160 revision will never be $FF.
161 The version is followed by one the ID3v2 flags field, of which currently only
162 three flags are used.
163
164
165   a - Unsynchronisation
166       Bit 7 in the 'ID3v2 flags' indicates whether or not unsynchronisation is
167       used (see section_5 for details); a set bit indicates usage.
168
169   b - Extended header
170       The second bit (bit 6) indicates whether or not the header is followed by
171       an extended header. The extended header is described in section_3.2.
172
173   c - Experimental indicator
174       The third bit (bit 5) should be used as an 'experimental indicator'. This
175       flag should always be set when the tag is in an experimental stage.
176
177 All the other flags should be cleared. If one of these undefined flags are set
178 that might mean that the tag is not readable for a parser that does not know
179 the flags function.
180 The ID3v2 tag size is encoded with four bytes where the most significant bit
181 (bit 7) is set to zero in every byte, making a total of 28 bits. The zeroed
182 bits are ignored, so a 257 bytes long tag is represented as $00 00 02 01.
183 The ID3v2 tag size is the size of the complete tag after unsychronisation,
184 including padding, excluding the header but not excluding the extended header
185 (total tag size - 10). Only 28 bits (representing up to 256MB) are used in the
186 size description to avoid the introduction of 'false syncsignals'.
187 An ID3v2 tag can be detected with the following pattern:
188
189   $49 44 33 yy yy xx zz zz zz zz
190
191 Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80.
192
193 3.2. ID3v2 extended header
194
195 The extended header contains information that is not vital to the correct
196 parsing of the tag information, hence the extended header is optional.
197
198   Extended header size   $xx xx xx xx
199   Extended Flags         $xx xx
200   Size of padding        $xx xx xx xx
201
202 Where the 'Extended header size', currently 6 or 10 bytes, excludes itself. The
203 'Size of padding' is simply the total tag size excluding the frames and the
204 headers, in other words the padding. The extended header is considered separate
205 from the header proper, and as such is subject to unsynchronisation.
206 The extended flags are a secondary flag set which describes further attributes
207 of the tag. These attributes are currently defined as follows
208
209   %x0000000 00000000
210
211
212
213   x - CRC data present
214       If this flag is set four bytes of CRC-32 data is appended to the extended
215       header. The CRC should be calculated before unsynchronisation on the data
216       between the extended header and the padding, i.e. the frames and only the
217       frames.
218
219         Total frame CRC    $xx xx xx xx
220
221
222
223 3.3. ID3v2 frame overview
224
225 As the tag consists of a tag header and a tag body with one or more frames, all
226 the frames consists of a frame header followed by one or more fields containing
227 the actual information. The layout of the frame header:
228
229   Frame ID       $xx xx xx xx (four characters)
230   Size           $xx xx xx xx
231   Flags          $xx xx
232
233 The frame ID made out of the characters capital A-Z and 0-9. Identifiers
234 beginning with "X", "Y" and "Z" are for experimental use and free for everyone
235 to use, without the need to set the experimental bit in the tag header. Have in
236 mind that someone else might have used the same identifier as you. All other
237 identifiers are either used or reserved for future use.
238 The frame ID is followed by a size descriptor, making a total header size of
239 ten bytes in every frame. The size is calculated as frame size excluding frame
240 header (frame size - 10).
241 In the frame header the size descriptor is followed by two flags bytes. These
242 flags are described in section_3.3.1.
243 There is no fixed order of the frames' appearance in the tag, although it is
244 desired that the frames are arranged in order of significance concerning the
245 recognition of the file. An example of such order: UFID, TIT2, MCDI, TRCK ...
246 A tag must contain at least one frame. A frame must be at least 1 byte big,
247 excluding the header.
248 If nothing else is said a string is represented as ISO-8859-1 characters in the
249 range $20 - $FF. Such strings are represented as <text string>, or <full text
250 string> if newlines are allowed, in the frame descriptions. All Unicode strings
251 use 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). Unicode strings must
252 begin with the Unicode BOM ($FF FE or $FE FF) to identify the byte order.
253 All numeric strings and URLs are always encoded as ISO-8859-1. Terminated
254 strings are terminated with $00 if encoded with ISO-8859-1 and $00 00 if
255 encoded as unicode. If nothing else is said newline character is forbidden. In
256 ISO-8859-1 a new line is represented, when allowed, with $0A only. Frames that
257 allow different types of text encoding have a text encoding description byte
258 directly after the frame size. If ISO-8859-1 is used this byte should be $00,
259 if Unicode is used it should be $01. Strings dependent on encoding is
260 represented as <text string according to encoding>, or <full text string
261 according to encoding> if newlines are allowed. Any empty Unicode strings which
262 are NULL-terminated may have the Unicode BOM followed by a Unicode NULL ($FF FE
263 00 00 or $FE FF 00 00).
264 The three byte language field is used to describe the language of the frame's
265 content, according to ISO-639-2.
266 All URLs may be relative, e.g. "picture.png", "../doc.txt".
267 If a frame is longer than it should be, e.g. having more fields than specified
268 in this document, that indicates that additions to the frame have been made in
269 a later version of the ID3v2 standard. This is reflected by the revision number
270 in the header of the tag.
271
272 3.3.1. Frame header flags
273
274 In the frame header the size descriptor is followed by two flags bytes. All
275 unused flags must be cleared. The first byte is for 'status messages' and the
276 second byte is for encoding purposes. If an unknown flag is set in the first
277 byte the frame may not be changed without the bit cleared. If an unknown flag
278 is set in the second byte it is likely to not be readable. The flags field is
279 defined as follows.
280
281   %abc00000 %ijk00000
282
283
284
285   a - Tag alter preservation
286       This flag tells the software what to do with this frame if it is unknown
287       and the tag is altered in any way. This applies to all kinds of
288       alterations, including adding more padding and reordering the frames.
289
290         0    Frame should be preserved.
291         1    Frame should be discarded.
292
293
294   b - File alter preservation
295       This flag tells the software what to do with this frame if it is unknown
296       and the file, excluding the tag, is altered. This does not apply when the
297       audio is completely replaced with other audio data.
298
299         0    Frame should be preserved.
300         1    Frame should be discarded.
301
302
303   c - Read only
304       This flag, if set, tells the software that the contents of this frame is
305       intended to be read only. Changing the contents might break something,
306       e.g. a signature. If the contents are changed, without knowledge in why
307       the frame was flagged read only and without taking the proper means to
308       compensate, e.g. recalculating the signature, the bit should be cleared.
309
310   i - Compression
311       This flag indicates whether or not the frame is compressed.
312
313         0    Frame is not compressed.
314         1    Frame is compressed using [#ZLIB zlib] with 4 bytes for
315         'decompressed size' appended to the frame header.
316
317
318   j - Encryption
319       This flag indicates wether or not the frame is enrypted. If set one byte
320       indicating with which method it was encrypted will be appended to the
321       frame header. See section_4.26. for more information about encryption
322       method registration.
323
324         0    Frame is not encrypted.
325         1    Frame is encrypted.
326
327
328   k - Grouping identity
329       This flag indicates whether or not this frame belongs in a group with
330       other frames. If set a group identifier byte is added to the frame
331       header. Every frame with the same group identifier belongs to the same
332       group.
333
334         0    Frame does not contain group information
335         1    Frame contains group information
336
337
338 Some flags indicates that the frame header is extended with additional
339 information. This information will be added to the frame header in the same
340 order as the flags indicating the additions. I.e. the four bytes of
341 decompressed size will preceed the encryption method byte. These additions to
342 the frame header, while not included in the frame header size but are included
343 in the 'frame size' field, are not subject to encryption or compression.
344
345 3.4. Default flags
346
347 The default settings for the frames described in this document can be divided
348 into the following classes. The flags may be set differently if found more
349 suitable by the software.
350
351   1. Discarded if tag is altered, discarded if file is altered.
352
353      o None.
354
355   2. Discarded if tag is altered, preserved if file is altered.
356
357      o None.
358
359   3. Preserved if tag is altered, discarded if file is altered.
360
361      o AENC, ETCO, EQUA, MLLT, POSS, SYLT, SYTC, RVAD, TENC, TLEN, TSIZ
362
363   4. Preserved if tag is altered, preserved if file is altered.
364
365      o The rest of the frames.
366
367
368
369
370 4. Declared ID3v2 frames
371
372 The following frames are declared in this draft.
373
374   4.20    AENC    [#sec4.20 Audio encryption]
375   4.15    APIC    [#sec4.15 Attached picture]
376   4.11    COMM    [#sec4.11 Comments]
377   4.25    COMR    [#sec4.25 Commercial frame]
378   4.26    ENCR    [#sec4.26 Encryption method registration]
379   4.13    EQUA    [#sec4.13 Equalization]
380   4.6     ETCO    [#sec4.6 Event timing codes]
381   4.16    GEOB    [#sec4.16 General encapsulated object]
382   4.27    GRID    [#sec4.27 Group identification registration]
383   4.4     IPLS    [#sec4.4 Involved people list]
384   4.21    LINK    [#sec4.21 Linked information]
385   4.5     MCDI    [#sec4.5 Music CD identifier]
386   4.7     MLLT    [#sec4.7 MPEG location lookup table]
387   4.24    OWNE    [#sec4.24 Ownership frame]
388   4.28    PRIV    [#sec4.28 Private frame]
389   4.17    PCNT    [#sec4.17 Play counter]
390   4.18    POPM    [#sec4.18 Popularimeter]
391   4.22    POSS    [#sec4.22 Position synchronisation frame]
392   4.19    RBUF    [#sec4.19 Recommended buffer size]
393   4.12    RVAD    [#sec4.12 Relative volume adjustment]
394   4.14    RVRB    [#sec4.14 Reverb]
395   4.10    SYLT    [#sec4.10 Synchronized lyric/text]
396   4.8     SYTC    [#sec4.8 Synchronized tempo codes]
397   4.2.1   TALB    [#TALB Album/Movie/Show title]
398   4.2.1   TBPM    [#TBPM BPM (beats per minute)]
399   4.2.1   TCOM    [#TCOM Composer]
400   4.2.1   TCON    [#TCON Content type]
401   4.2.1   TCOP    [#TCOP Copyright message]
402   4.2.1   TDAT    [#TDAT Date]
403   4.2.1   TDLY    [#TDLY Playlist delay]
404   4.2.1   TENC    [#TENC Encoded by]
405   4.2.1   TEXT    [#TEXT Lyricist/Text writer]
406   4.2.1   TFLT    [#TFLT File type]
407   4.2.1   TIME    [#TIME Time]
408   4.2.1   TIT1    [#TIT1 Content group description]
409   4.2.1   TIT2    [#TIT2 Title/songname/content description]
410   4.2.1   TIT3    [#TIT3 Subtitle/Description refinement]
411   4.2.1   TKEY    [#TKEY Initial key]
412   4.2.1   TLAN    [#TLAN Language(s)]
413   4.2.1   TLEN    [#TLEN Length]
414   4.2.1   TMED    [#TMED Media type]
415   4.2.1   TOAL    [#TOAL Original album/movie/show title]
416   4.2.1   TOFN    [#TOFN Original filename]
417   4.2.1   TOLY    [#TOLY Original lyricist(s)/text writer(s)]
418   4.2.1   TOPE    [#TOPE Original artist(s)/performer(s)]
419   4.2.1   TORY    [#TORY Original release year]
420   4.2.1   TOWN    [#TOWN File owner/licensee]
421   4.2.1   TPE1    [#TPE1 Lead performer(s)/Soloist(s)]
422   4.2.1   TPE2    [#TPE2 Band/orchestra/accompaniment]
423   4.2.1   TPE3    [#TPE3 Conductor/performer refinement]
424   4.2.1   TPE4    [#TPE4 Interpreted, remixed, or otherwise modified by]
425   4.2.1   TPOS    [#TPOS Part of a set]
426   4.2.1   TPUB    [#TPUB Publisher]
427   4.2.1   TRCK    [#TRCK Track number/Position in set]
428   4.2.1   TRDA    [#TRDA Recording dates]
429   4.2.1   TRSN    [#TRSN Internet radio station name]
430   4.2.1   TRSO    [#TRSO Internet radio station owner]
431   4.2.1   TSIZ    [#TSIZ Size]
432   4.2.1   TSRC    [#TSRC ISRC (international standard recording code)]
433   4.2.1   TSSE    [#TSEE Software/Hardware and settings used for encoding]
434   4.2.1   TYER    [#TYER Year]
435   4.2.2   TXXX    [#TXXX User defined text information frame]
436   4.1     UFID    [#sec4.1 Unique file identifier]
437   4.23    USER    [#sec4.23 Terms of use]
438   4.9     USLT    [#sec4.9 Unsychronized lyric/text transcription]
439   4.3.1   WCOM    [#WCOM Commercial information]
440   4.3.1   WCOP    [#WCOP Copyright/Legal information]
441   4.3.1   WOAF    [#WOAF Official audio file webpage]
442   4.3.1   WOAR    [#WOAR Official artist/performer webpage]
443   4.3.1   WOAS    [#WOAS Official audio source webpage]
444   4.3.1   WORS    [#WORS Official internet radio station homepage]
445   4.3.1   WPAY    [#WPAY Payment]
446   4.3.1   WPUB    [#WPUB Publishers official webpage]
447   4.3.2   WXXX    [#WXXX User defined URL link frame]
448
449
450 4.1. Unique file identifier
451
452 This frame's purpose is to be able to identify the audio file in a database
453 that may contain more information relevant to the content. Since
454 standardisation of such a database is beyond this document, all frames begin
455 with a null-terminated string with a URL containing an email address, or a link
456 to a location where an email address can be found, that belongs to the
457 organisation responsible for this specific database implementation. Questions
458 regarding the database should be sent to the indicated email address. The URL
459 should not be used for the actual database queries. The string "http://
460 www.id3.org/dummy/ufid.html" should be used for tests. Software that isn't told
461 otherwise may safely remove such frames. The 'Owner identifier' must be non-
462 empty (more than just a termination). The 'Owner identifier' is then followed
463 by the actual identifier, which may be up to 64 bytes. There may be more than
464 one "UFID" frame in a tag, but only one with the same 'Owner identifier'.
465
466   <Header for 'Unique file identifier', ID: "UFID">
467   Owner identifier    <text string> $00
468   Identifier    <up to 64 bytes binary data>
469
470
471 4.2. Text information frames
472
473 The text information frames are the most important frames, containing
474 information like artist, album and more. There may only be one text information
475 frame of its kind in an tag. If the textstring is followed by a termination
476 ($00 (00)) all the following information should be ignored and not be
477 displayed. All text frame identifiers begin with "T". Only text frame
478 identifiers begin with "T", with the exception of the "TXXX" frame. All the
479 text information frames have the following format:
480
481   <Header for 'Text information frame', ID: "T000" - "TZZZ", excluding "TXXX"
482   described in 4.2.2.>
483   Text encoding    $xx
484   Information    <text string according to encoding>
485
486
487 4.2.1. Text information frames - details
488
489
490
491   TALB
492       The 'Album/Movie/Show title' frame is intended for the title of the
493       recording(/source of sound) which the audio in the file is taken from.
494
495
496
497   TBPM
498       The 'BPM' frame contains the number of beats per minute in the mainpart
499       of the audio. The BPM is an integer and represented as a numerical
500       string.
501
502
503
504   TCOM
505       The 'Composer(s)' frame is intended for the name of the composer(s). They
506       are seperated with the "/" character.
507
508
509
510   TCON
511       The 'Content type', which previously was stored as a one byte numeric
512       value only, is now a numeric string. You may use one or several of the
513       types as ID3v1.1 did or, since the category list would be impossible to
514       maintain with accurate and up to date categories, define your own.
515
516       References to the ID3v1 genres can be made by, as first byte, enter "("
517       followed by a number from the genres list (appendix A) and ended with a
518       ")" character. This is optionally followed by a refinement, e.g. "(21)"
519       or "(4)Eurodisco". Several references can be made in the same frame, e.g.
520       "(51)(39)". If the refinement should begin with a "(" character it should
521       be replaced with "((", e.g. "((I can figure out any genre)" or "(55)((I
522       think...)". The following new content types is defined in ID3v2 and is
523       implemented in the same way as the numerig content types, e.g. "(RX)".
524
525         RX    Remix
526         CR    Cover
527
528
529
530
531   TCOP
532       The 'Copyright message' frame, which must begin with a year and a space
533       character (making five characters), is intended for the copyright holder
534       of the original sound, not the audio file itself. The absence of this
535       frame means only that the copyright information is unavailable or has
536       been removed, and must not be interpreted to mean that the sound is
537       public domain. Every time this field is displayed the field must be
538       preceded with "Copyright Â© ".
539
540
541
542   TDAT
543       The 'Date' frame is a numeric string in the DDMM format containing the
544       date for the recording. This field is always four characters long.
545
546
547
548   TDLY
549       The 'Playlist delay' defines the numbers of milliseconds of silence
550       between every song in a playlist. The player should use the "ETC" frame,
551       if present, to skip initial silence and silence at the end of the audio
552       to match the 'Playlist delay' time. The time is represented as a numeric
553       string.
554
555
556
557   TENC
558       The 'Encoded by' frame contains the name of the person or organisation
559       that encoded the audio file. This field may contain a copyright message,
560       if the audio file also is copyrighted by the encoder.
561
562
563
564   TEXT
565       The 'Lyricist(s)/Text writer(s)' frame is intended for the writer(s) of
566       the text or lyrics in the recording. They are seperated with the "/
567       " character.
568
569
570
571   TFLT
572       The 'File type' frame indicates which type of audio this tag defines. The
573       following type and refinements are defined:
574
575         MPG       MPEG Audio
576         /1        MPEG 1/2 layer I
577         /2        MPEG 1/2 layer II
578         /3        MPEG 1/2 layer III
579         /2.5      MPEG 2.5
580          /AAC     Advanced audio compression
581         VQF       Transform-domain Weighted Interleave Vector Quantization
582         PCM       Pulse Code Modulated audio
583
584
585 but other types may be used, not for these types though. This is used in a
586 similar way to the predefined types in the "TMED" frame, but without
587 parentheses. If this frame is not present audio type is assumed to be "MPG".
588
589
590   TIME
591       The 'Time' frame is a numeric string in the HHMM format containing the
592       time for the recording. This field is always four characters long.
593
594
595
596   TIT1
597       The 'Content group description' frame is used if the sound belongs to a
598       larger category of sounds/music. For example, classical music is often
599       sorted in different musical sections (e.g. "Piano Concerto", "Weather -
600       Hurricane").
601
602
603
604   TIT2
605       The 'Title/Songname/Content description' frame is the actual name of the
606       piece (e.g. "Adagio", "Hurricane Donna").
607
608
609
610   TIT3
611       The 'Subtitle/Description refinement' frame is used for information
612       directly related to the contents title (e.g. "Op. 16" or "Performed live
613       at Wembley").
614
615
616
617   TKEY
618       The 'Initial key' frame contains the musical key in which the sound
619       starts. It is represented as a string with a maximum length of three
620       characters. The ground keys are represented with "A","B","C","D","E", "F"
621       and "G" and halfkeys represented with "b" and "#". Minor is represented
622       as "m". Example "Cbm". Off key is represented with an "o" only.
623
624
625
626   TLAN
627       The 'Language(s)' frame should contain the languages of the text or
628       lyrics spoken or sung in the audio. The language is represented with
629       three characters according to ISO-639-2. If more than one language is
630       used in the text their language codes should follow according to their
631       usage.
632
633
634
635   TLEN
636       The 'Length' frame contains the length of the audiofile in milliseconds,
637       represented as a numeric string.
638
639
640
641   TMED
642       The 'Media type' frame describes from which media the sound originated.
643       This may be a text string or a reference to the predefined media types
644       found in the list below. References are made within "(" and ")" and are
645       optionally followed by a text refinement, e.g. "(MC) with four channels".
646       If a text refinement should begin with a "(" character it should be
647       replaced with "((" in the same way as in the "TCO" frame. Predefined
648       refinements is appended after the media type, e.g. "(CD/A)" or "(VID/PAL/
649       VHS)".
650
651         DIG     Other digital media
652             /A  Analog transfer from media
653
654         ANA     Other analog media
655            /WAC Wax cylinder
656            /8CA 8-track tape cassette
657
658         CD      CD
659              /A Analog transfer from media
660             /DD DDD
661             /AD ADD
662             /AA AAD
663
664         LD      Laserdisc
665              /A Analog transfer from media
666
667         TT      Turntable records
668             /33 33.33 rpm
669             /45 45 rpm
670             /71 71.29 rpm
671             /76 76.59 rpm
672             /78 78.26 rpm
673             /80 80 rpm
674
675         MD      MiniDisc
676              /A Analog transfer from media
677
678         DAT     DAT
679              /A Analog transfer from media
680              /1 standard, 48 kHz/16 bits, linear
681              /2 mode 2, 32 kHz/16 bits, linear
682              /3 mode 3, 32 kHz/12 bits, nonlinear, low speed
683              /4 mode 4, 32 kHz/12 bits, 4 channels
684              /5 mode 5, 44.1 kHz/16 bits, linear
685              /6 mode 6, 44.1 kHz/16 bits, 'wide track' play
686
687         DCC     DCC
688              /A Analog transfer from media
689
690         DVD     DVD
691              /A Analog transfer from media
692
693         TV      Television
694            /PAL PAL
695           /NTSC NTSC
696          /SECAM SECAM
697
698         VID     Video
699            /PAL PAL
700           /NTSC NTSC
701          /SECAM SECAM
702            /VHS VHS
703           /SVHS S-VHS
704           /BETA BETAMAX
705
706         RAD     Radio
707             /FM FM
708             /AM AM
709             /LW LW
710             /MW MW
711
712         TEL     Telephone
713              /I ISDN
714
715         MC      MC (normal cassette)
716              /4 4.75 cm/s (normal speed for a two sided cassette)
717              /9 9.5 cm/s
718              /I Type I cassette (ferric/normal)
719             /II Type II cassette (chrome)
720            /III Type III cassette (ferric chrome)
721             /IV Type IV cassette (metal)
722
723         REE     Reel
724              /9 9.5 cm/s
725             /19 19 cm/s
726             /38 38 cm/s
727             /76 76 cm/s
728              /I Type I cassette (ferric/normal)
729             /II Type II cassette (chrome)
730            /III Type III cassette (ferric chrome)
731             /IV Type IV cassette (metal)
732
733
734
735
736   TOAL
737       The 'Original album/movie/show title' frame is intended for the title of
738       the original recording (or source of sound), if for example the music in
739       the file should be a cover of a previously released song.
740
741
742
743   TOFN
744       The 'Original filename' frame contains the preferred filename for the
745       file, since some media doesn't allow the desired length of the filename.
746       The filename is case sensitive and includes its suffix.
747
748
749
750   TOLY
751       The 'Original lyricist(s)/text writer(s)' frame is intended for the text
752       writer(s) of the original recording, if for example the music in the file
753       should be a cover of a previously released song. The text writers are
754       seperated with the "/" character.
755
756
757
758   TOPE
759       The 'Original artist(s)/performer(s)' frame is intended for the performer
760       (s) of the original recording, if for example the music in the file
761       should be a cover of a previously released song. The performers are
762       seperated with the "/" character.
763
764
765
766   TORY
767       The 'Original release year' frame is intended for the year when the
768       original recording, if for example the music in the file should be a
769       cover of a previously released song, was released. The field is formatted
770       as in the "TYER" frame.
771
772
773
774   TOWN
775       The 'File owner/licensee' frame contains the name of the owner or
776       licensee of the file and it's contents.
777
778
779
780   TPE1
781       The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
782       used for the main artist(s). They are seperated with the "/" character.
783
784
785
786   TPE2
787       The 'Band/Orchestra/Accompaniment' frame is used for additional
788       information about the performers in the recording.
789
790
791
792   TPE3
793       The 'Conductor' frame is used for the name of the conductor.
794
795
796
797   TPE4
798       The 'Interpreted, remixed, or otherwise modified by' frame contains more
799       information about the people behind a remix and similar interpretations
800       of another existing piece.
801
802
803
804   TPOS
805       The 'Part of a set' frame is a numeric string that describes which part
806       of a set the audio came from. This frame is used if the source described
807       in the "TALB" frame is divided into several mediums, e.g. a double CD.
808       The value may be extended with a "/" character and a numeric string
809       containing the total number of parts in the set. E.g. "1/2".
810
811
812
813   TPUB
814       The 'Publisher' frame simply contains the name of the label or publisher.
815
816
817
818   TRCK
819       The 'Track number/Position in set' frame is a numeric string containing
820       the order number of the audio-file on its original recording. This may be
821       extended with a "/" character and a numeric string containing the total
822       numer of tracks/elements on the original recording. E.g. "4/9".
823
824
825
826   TRDA
827       The 'Recording dates' frame is a intended to be used as complement to the
828       "TYER", "TDAT" and "TIME" frames. E.g. "4th-7th June, 12th June" in
829       combination with the "TYER" frame.
830
831
832
833   TRSN
834       The 'Internet radio station name' frame contains the name of the internet
835       radio station from which the audio is streamed.
836
837
838
839   TRSO
840       The 'Internet radio station owner' frame contains the name of the owner
841       of the internet radio station from which the audio is streamed.
842
843
844
845   TSIZ
846       The 'Size' frame contains the size of the audiofile in bytes, excluding
847       the ID3v2 tag, represented as a numeric string.
848
849
850
851   TSRC
852       The 'ISRC' frame should contain the International Standard Recording Code
853       (ISRC) (12 characters).
854
855
856
857   TSSE
858       The 'Software/Hardware and settings used for encoding' frame includes the
859       used audio encoder and its settings when the file was encoded. Hardware
860       refers to hardware encoders, not the computer on which a program was run.
861
862
863
864   TYER
865       The 'Year' frame is a numeric string with a year of the recording. This
866       frames is always four characters long (until the year 10000).
867
868
869 4.2.2. User defined text information frame
870
871 This frame is intended for one-string text information concerning the audiofile
872 in a similar way to the other "T"-frames. The frame body consists of a
873 description of the string, represented as a terminated string, followed by the
874 actual string. There may be more than one "TXXX" frame in each tag, but only
875 one with the same description.
876
877   <Header for 'User defined text information frame', ID: "TXXX">
878   Text encoding    $xx
879   Description    <text string according to encoding> $00 (00)
880   Value    <text string according to encoding>
881
882
883 4.3. URL link frames
884
885 With these frames dynamic data such as webpages with touring information, price
886 information or plain ordinary news can be added to the tag. There may only be
887 one URL link frame of its kind in an tag, except when stated otherwise in the
888 frame description. If the textstring is followed by a termination ($00 (00))
889 all the following information should be ignored and not be displayed. All URL
890 link frame identifiers begins with "W". Only URL link frame identifiers begins
891 with "W". All URL link frames have the following format:
892
893   <Header for 'URL link frame', ID: "W000" - "WZZZ", excluding "WXXX" described
894   in 4.3.2.>
895   URL <text string>
896
897
898 4.3.1. URL link frames - details
899
900
901
902   WCOM
903       The 'Commercial information' frame is a URL pointing at a webpage with
904       information such as where the album can be bought. There may be more than
905       one "WCOM" frame in a tag, but not with the same content.
906
907
908
909   WCOP
910       The 'Copyright/Legal information' frame is a URL pointing at a webpage
911       where the terms of use and ownership of the file is described.
912
913
914
915   WOAF
916       The 'Official audio file webpage' frame is a URL pointing at a file
917       specific webpage.
918
919
920
921   WOAR
922       The 'Official artist/performer webpage' frame is a URL pointing at the
923       artists official webpage. There may be more than one "WOAR" frame in a
924       tag if the audio contains more than one performer, but not with the same
925       content.
926
927
928
929   WOAS
930       The 'Official audio source webpage' frame is a URL pointing at the
931       official webpage for the source of the audio file, e.g. a movie.
932
933
934
935   WORS
936       The 'Official internet radio station homepage' contains a URL pointing at
937       the homepage of the internet radio station.
938
939
940
941   WPAY
942       The 'Payment' frame is a URL pointing at a webpage that will handle the
943       process of paying for this file.
944
945
946
947   WPUB
948       The 'Publishers official webpage' frame is a URL pointing at the official
949       wepage for the publisher.
950
951
952 4.3.2. User defined URL link frame
953
954 This frame is intended for URL links concerning the audiofile in a similar way
955 to the other "W"-frames. The frame body consists of a description of the
956 string, represented as a terminated string, followed by the actual URL. The URL
957 is always encoded with ISO-8859-1. There may be more than one "WXXX" frame in
958 each tag, but only one with the same description.
959
960   <Header for 'User defined URL link frame', ID: "WXXX">
961   Text encoding    $xx
962   Description    <text string according to encoding> $00 (00)
963   URL    <text string>
964
965
966 4.4. Involved people list
967
968 Since there might be a lot of people contributing to an audio file in various
969 ways, such as musicians and technicians, the 'Text information frames' are
970 often insufficient to list everyone involved in a project. The 'Involved people
971 list' is a frame containing the names of those involved, and how they were
972 involved. The body simply contains a terminated string with the involvement
973 directly followed by a terminated string with the involvee followed by a new
974 involvement and so on. There may only be one "IPLS" frame in each tag.
975
976   <Header for 'Involved people list', ID: "IPLS">
977   Text encoding    $xx
978   People list strings    <text strings according to encoding>
979
980
981 4.5. Music CD identifier
982
983 This frame is intended for music that comes from a CD, so that the CD can be
984 identified in databases such as the CDDB. The frame consists of a binary dump
985 of the Table Of Contents, TOC, from the CD, which is a header of 4 bytes and
986 then 8 bytes/track on the CD plus 8 bytes for the 'lead out' making a maximum
987 of 804 bytes. The offset to the beginning of every track on the CD should be
988 described with a four bytes absolute CD-frame address per track, and not with
989 absolute time. This frame requires a present and valid "TRCK" frame, even if
990 the CD's only got one track. There may only be one "MCDI" frame in each tag.
991
992   <Header for 'Music CD identifier', ID: "MCDI">
993   CD TOC <binary data>
994
995
996 4.6. Event timing codes
997
998 This frame allows synchronisation with key events in a song or sound. The
999 header is:
1000
1001   <Header for 'Event timing codes', ID: "ETCO">
1002   Time stamp format    $xx
1003
1004 Where time stamp format is:
1005
1006   $01 Absolute time, 32 bit sized, using MPEG frames as unit
1007   $02 Absolute time, 32 bit sized, using milliseconds as unit
1008
1009 Absolute time means that every stamp contains the time from the beginning of the
1010 file.
1011 Followed by a list of key events in the following format:
1012
1013   Type of event   $xx
1014   Time stamp      $xx (xx ...)
1015
1016 The 'Time stamp' is set to zero if directly at the beginning of the sound or
1017 after the previous event. All events should be sorted in chronological order.
1018 The type of event is as follows:
1019
1020   $00     padding (has no meaning)
1021   $01     end of initial silence
1022   $02     intro start
1023   $03     mainpart start
1024   $04     outro start
1025   $05     outro end
1026   $06     verse start
1027   $07     refrain start
1028   $08     interlude start
1029   $09     theme start
1030   $0A     variation start
1031   $0B     key change
1032   $0C     time change
1033   $0D     momentary unwanted noise (Snap, Crackle &amp; Pop)
1034   $0E     sustained noise
1035   $0F     sustained noise end
1036   $10     intro end
1037   $11     mainpart end
1038   $12     verse end
1039   $13     refrain end
1040   $14     theme end
1041   $15-$DF reserved for future use
1042   $E0-$EF not predefined sync 0-F
1043   $F0-$FC reserved for future use
1044   $FD     audio end (start of silence)
1045   $FE     audio file ends
1046   $FF     one more byte of events follows (all the following bytes with the
1047   value $FF have the same function)
1048
1049 Terminating the start events such as "intro start" is not required. The 'Not
1050 predefined sync's ($E0-EF) are for user events. You might want to synchronise
1051 your music to something, like setting of an explosion on-stage, turning on your
1052 screensaver etc.
1053 There may only be one "ETCO" frame in each tag.
1054
1055 4.7. MPEG location lookup table
1056
1057 To increase performance and accuracy of jumps within a MPEG audio file, frames
1058 with timecodes in different locations in the file might be useful. The ID3v2
1059 frame includes references that the software can use to calculate positions in
1060 the file. After the frame header is a descriptor of how much the 'frame
1061 counter' should increase for every reference. If this value is two then the
1062 first reference points out the second frame, the 2nd reference the 4th frame,
1063 the 3rd reference the 6th frame etc. In a similar way the 'bytes between
1064 reference' and 'milliseconds between reference' points out bytes and
1065 milliseconds respectively.
1066 Each reference consists of two parts; a certain number of bits, as defined in
1067 'bits for bytes deviation', that describes the difference between what is said
1068 in 'bytes between reference' and the reality and a certain number of bits, as
1069 defined in 'bits for milliseconds deviation', that describes the difference
1070 between what is said in 'milliseconds between reference' and the reality. The
1071 number of bits in every reference, i.e. 'bits for bytes deviation'+'bits for
1072 milliseconds deviation', must be a multiple of four. There may only be one
1073 "MLLT" frame in each tag.
1074
1075   <Header for 'Location lookup table', ID: "MLLT">
1076   MPEG frames between reference   $xx xx
1077   Bytes between reference         $xx xx xx
1078   Milliseconds between reference  $xx xx xx
1079   Bits for bytes deviation        $xx
1080   Bits for milliseconds dev.      $xx
1081
1082 Then for every reference the following data is included;
1083
1084   Deviation in bytes         %xxx....
1085   Deviation in milliseconds  %xxx....
1086
1087
1088 4.8. Synchronised tempo codes
1089
1090 For a more accurate description of the tempo of a musical piece this frame
1091 might be used. After the header follows one byte describing which time stamp
1092 format should be used. Then follows one or more tempo codes. Each tempo code
1093 consists of one tempo part and one time part. The tempo is in BPM described
1094 with one or two bytes. If the first byte has the value $FF, one more byte
1095 follows, which is added to the first giving a range from 2 - 510 BPM, since $00
1096 and $01 is reserved. $00 is used to describe a beat-free time period, which is
1097 not the same as a music-free time period. $01 is used to indicate one single
1098 beat-stroke followed by a beat-free period.
1099 The tempo descriptor is followed by a time stamp. Every time the tempo in the
1100 music changes, a tempo descriptor may indicate this for the player. All tempo
1101 descriptors should be sorted in chronological order. The first beat-stroke in a
1102 time-period is at the same time as the beat description occurs. There may only
1103 be one "SYTC" frame in each tag.
1104
1105   <Header for 'Synchronised tempo codes', ID: "SYTC">
1106   Time stamp format    $xx
1107   Tempo data           <binary data>
1108
1109 Where time stamp format is:
1110
1111   $01 Absolute time, 32 bit sized, using MPEG frames as unit
1112   $02 Absolute time, 32 bit sized, using milliseconds as unit
1113
1114 Absolute time means that every stamp contains the time from the beginning of the
1115 file.
1116
1117 4.9. Unsychronised lyrics/text transcription
1118
1119 This frame contains the lyrics of the song or a text transcription of other
1120 vocal activities. The head includes an encoding descriptor and a content
1121 descriptor. The body consists of the actual text. The 'Content descriptor' is a
1122 terminated string. If no descriptor is entered, 'Content descriptor' is $00
1123 (00) only. Newline characters are allowed in the text. There may be more than
1124 one 'Unsynchronised lyrics/text transcription' frame in each tag, but only one
1125 with the same language and content descriptor.
1126
1127   <Header for 'Unsynchronised lyrics/text transcription', ID: "USLT">
1128   Text encoding       $xx
1129   Language            $xx xx xx
1130   Content descriptor  <text string according to encoding> $00 (00)
1131   Lyrics/text         <full text string according to encoding>
1132
1133
1134 4.10. Synchronised lyrics/text
1135
1136 This is another way of incorporating the words, said or sung lyrics, in the
1137 audio file as text, this time, however, in sync with the audio. It might also
1138 be used to describing events e.g. occurring on a stage or on the screen in sync
1139 with the audio. The header includes a content descriptor, represented with as
1140 terminated textstring. If no descriptor is entered, 'Content descriptor' is $00
1141 (00) only.
1142
1143   <Header for 'Synchronised lyrics/text', ID: "SYLT">
1144   Text encoding       $xx
1145   Language            $xx xx xx
1146   Time stamp format   $xx
1147   Content type        $xx
1148   Content descriptor  <text string according to encoding> $00 (00)
1149
1150 Encoding:
1151
1152   $00     ISO-8859-1 character set is used => $00 is sync identifier.
1153   $01     Unicode character set is used => $00 00 is sync identifier.
1154
1155 Content type:
1156
1157   $00     is other
1158   $01     is lyrics
1159   $02     is text transcription
1160   $03     is movement/part name (e.g. "Adagio")
1161   $04     is events (e.g. "Don Quijote enters the stage")
1162   $05     is chord (e.g. "Bb F Fsus")
1163   $06     is trivia/'pop up' information
1164
1165 Time stamp format is:
1166
1167   $01 Absolute time, 32 bit sized, using MPEG frames as unit
1168   $02 Absolute time, 32 bit sized, using milliseconds as unit
1169
1170 Absolute time means that every stamp contains the time from the beginning of the
1171 file.
1172 The text that follows the frame header differs from that of the unsynchronised
1173 lyrics/text transcription in one major way. Each syllable (or whatever size of
1174 text is considered to be convenient by the encoder) is a null terminated string
1175 followed by a time stamp denoting where in the sound file it belongs. Each sync
1176 thus has the following structure:
1177
1178   Terminated text to be synced (typically a syllable)
1179   Sync identifier (terminator to above string)    $00 (00)
1180   Time stamp      $xx (xx ...)
1181
1182 The 'time stamp' is set to zero or the whole sync is omitted if located
1183 directly at the beginning of the sound. All time stamps should be sorted in
1184 chronological order. The sync can be considered as a validator of the
1185 subsequent string.
1186 Newline ($0A) characters are allowed in all "SYLT" frames and should be used
1187 after every entry (name, event etc.) in a frame with the content type $03 -
1188 $04.
1189 A few considerations regarding whitespace characters: Whitespace separating
1190 words should mark the beginning of a new word, thus occurring in front of the
1191 first syllable of a new word. This is also valid for new line characters. A
1192 syllable followed by a comma should not be broken apart with a sync (both the
1193 syllable and the comma should be before the sync).
1194 An example: The "USLT" passage
1195
1196   "Strangers in the night" $0A "Exchanging glances"
1197
1198 would be "SYLT" encoded as:
1199
1200   "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00
1201   xx xx " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx
1202   "ing" $00 xx xx "glan" $00 xx xx "ces" $00 xx xx
1203
1204 There may be more than one "SYLT" frame in each tag, but only one with the same
1205 language and content descriptor.
1206
1207 4.11. Comments
1208
1209 This frame is indended for any kind of full text information that does not fit
1210 in any other frame. It consists of a frame header followed by encoding,
1211 language and content descriptors and is ended with the actual comment as a text
1212 string. Newline characters are allowed in the comment text string. There may be
1213 more than one comment frame in each tag, but only one with the same language
1214 and content descriptor.
1215
1216   <Header for 'Comment', ID: "COMM">
1217   Text encoding           $xx
1218   Language                $xx xx xx
1219   Short content descrip.  <text string according to encoding> $00 (00)
1220   The actual text         <full text string according to encoding>
1221
1222
1223 4.12. Relative volume adjustment
1224
1225 This is a more subjective function than the previous ones. It allows the user
1226 to say how much he wants to increase/decrease the volume on each channel while
1227 the file is played. The purpose is to be able to align all files to a reference
1228 volume, so that you don't have to change the volume constantly. This frame may
1229 also be used to balance adjust the audio. If the volume peak levels are known
1230 then this could be described with the 'Peak volume right' and 'Peak volume
1231 left' field. If Peakvolume is not known these fields could be left zeroed or,
1232 if no other data follows, be completely omitted. There may only be one "RVAD"
1233 frame in each tag.
1234
1235   <Header for 'Relative volume adjustment', ID: "RVAD">
1236   Increment/decrement             %00xxxxxx
1237   Bits used for volume descr.     $xx
1238   Relative volume change, right   $xx xx (xx ...)
1239   Relative volume change, left    $xx xx (xx ...)
1240   Peak volume right               $xx xx (xx ...)
1241   Peak volume left                $xx xx (xx ...)
1242
1243 In the increment/decrement field bit 0 is used to indicate the right channel
1244 and bit 1 is used to indicate the left channel. 1 is increment and 0 is
1245 decrement.
1246 The 'bits used for volume description' field is normally $10 (16 bits) for MPEG
1247 2 layer I, II and III and MPEG 2.5. This value may not be $00. The volume is
1248 always represented with whole bytes, padded in the beginning (highest bits)
1249 when 'bits used for volume description' is not a multiple of eight.
1250 This datablock is then optionally followed by a volume definition for the left
1251 and right back channels. If this information is appended to the frame the first
1252 two channels will be treated as front channels. In the increment/decrement
1253 field bit 2 is used to indicate the right back channel and bit 3 for the left
1254 back channel.
1255
1256   Relative volume change, right back      $xx xx (xx ...)
1257   Relative volume change, left back       $xx xx (xx ...)
1258   Peak volume right back                  $xx xx (xx ...)
1259   Peak volume left back                   $xx xx (xx ...)
1260
1261 If the center channel adjustment is present the following is appended to the
1262 existing frame, after the left and right back channels. The center channel is
1263 represented by bit 4 in the increase/decrease field.
1264
1265   Relative volume change, center  $xx xx (xx ...)
1266   Peak volume center              $xx xx (xx ...)
1267
1268 If the bass channel adjustment is present the following is appended to the
1269 existing frame, after the center channel. The bass channel is represented by
1270 bit 5 in the increase/decrease field.
1271
1272   Relative volume change, bass    $xx xx (xx ...)
1273   Peak volume bass                $xx xx (xx ...)
1274
1275
1276 4.13. Equalisation
1277
1278 This is another subjective, alignment frame. It allows the user to predefine an
1279 equalisation curve within the audio file. There may only be one "EQUA" frame in
1280 each tag.
1281
1282   <Header of 'Equalisation', ID: "EQUA">
1283   Adjustment bits $xx
1284
1285 The 'adjustment bits' field defines the number of bits used for representation
1286 of the adjustment. This is normally $10 (16 bits) for MPEG 2 layer I, II and
1287 III and MPEG 2.5. This value may not be $00.
1288 This is followed by 2 bytes + ('adjustment bits' rounded up to the nearest
1289 byte) for every equalisation band in the following format, giving a frequency
1290 range of 0 - 32767Hz:
1291
1292   Increment/decrement     %x (MSB of the Frequency)
1293   Frequency               (lower 15 bits)
1294   Adjustment              $xx (xx ...)
1295
1296 The increment/decrement bit is 1 for increment and 0 for decrement. The
1297 equalisation bands should be ordered increasingly with reference to frequency.
1298 All frequencies don't have to be declared. The equalisation curve in the
1299 reading software should be interpolated between the values in this frame. Three
1300 equal adjustments for three subsequent frequencies. A frequency should only be
1301 described once in the frame.
1302
1303 4.14. Reverb
1304
1305 Yet another subjective one. You may here adjust echoes of different kinds.
1306 Reverb left/right is the delay between every bounce in ms. Reverb bounces left/
1307 right is the number of bounces that should be made. $FF equals an infinite
1308 number of bounces. Feedback is the amount of volume that should be returned to
1309 the next echo bounce. $00 is 0%, $FF is 100%. If this value were $7F, there
1310 would be 50% volume reduction on the first bounce, 50% of that on the second
1311 and so on. Left to left means the sound from the left bounce to be played in
1312 the left speaker, while left to right means sound from the left bounce to be
1313 played in the right speaker.
1314 'Premix left to right' is the amount of left sound to be mixed in the right
1315 before any reverb is applied, where $00 id 0% and $FF is 100%. 'Premix right to
1316 left' does the same thing, but right to left. Setting both premix to $FF would
1317 result in a mono output (if the reverb is applied symmetric). There may only be
1318 one "RVRB" frame in each tag.
1319
1320   <Header for 'Reverb', ID: "RVRB">
1321   Reverb left (ms)                $xx xx
1322   Reverb right (ms)               $xx xx
1323   Reverb bounces, left            $xx
1324   Reverb bounces, right           $xx
1325   Reverb feedback, left to left   $xx
1326   Reverb feedback, left to right  $xx
1327   Reverb feedback, right to right $xx
1328   Reverb feedback, right to left  $xx
1329   Premix left to right            $xx
1330   Premix right to left            $xx
1331
1332
1333 4.15. Attached picture
1334
1335 This frame contains a picture directly related to the audio file. Image format
1336 is the MIME type and subtype for the image. In the event that the MIME media
1337 type name is omitted, "image/" will be implied. The "image/png" or "image/jpeg"
1338 picture format should be used when interoperability is wanted. Description is a
1339 short description of the picture, represented as a terminated textstring. The
1340 description has a maximum length of 64 characters, but may be empty. There may
1341 be several pictures attached to one file, each in their individual "APIC"
1342 frame, but only one with the same content descriptor. There may only be one
1343 picture with the picture type declared as picture type $01 and $02
1344 respectively. There is the possibility to put only a link to the image file by
1345 using the 'MIME type' "-->" and having a complete URL instead of picture data.
1346 The use of linked files should however be used sparingly since there is the
1347 risk of separation of files.
1348
1349   <Header for 'Attached picture', ID: "APIC">
1350   Text encoding   $xx
1351   MIME type       <text string> $00
1352   Picture type    $xx
1353   Description     <text string according to encoding> $00 (00)
1354   Picture data    <binary data>
1355
1356 Picture type:
1357
1358   $00     Other
1359   $01     32x32 pixels 'file icon' (PNG only)
1360   $02     Other file icon
1361   $03     Cover (front)
1362   $04     Cover (back)
1363   $05     Leaflet page
1364   $06     Media (e.g. lable side of CD)
1365   $07     Lead artist/lead performer/soloist
1366   $08     Artist/performer
1367   $09     Conductor
1368   $0A     Band/Orchestra
1369   $0B     Composer
1370   $0C     Lyricist/text writer
1371   $0D     Recording Location
1372   $0E     During recording
1373   $0F     During performance
1374   $10     Movie/video screen capture
1375   $11     A bright coloured fish
1376   $12     Illustration
1377   $13     Band/artist logotype
1378   $14     Publisher/Studio logotype
1379
1380
1381 4.16. General encapsulated object
1382
1383 In this frame any type of file can be encapsulated. After the header, 'Frame
1384 size' and 'Encoding' follows 'MIME type' represented as as a terminated string
1385 encoded with ISO-8859-1. The filename is case sensitive and is encoded as
1386 'Encoding'. Then follows a content description as terminated string, encoded as
1387 'Encoding'. The last thing in the frame is the actual object. The first two
1388 strings may be omitted, leaving only their terminations. There may be more than
1389 one "GEOB" frame in each tag, but only one with the same content descriptor.
1390
1391   <Header for 'General encapsulated object', ID: "GEOB">
1392   Text encoding           $xx
1393   MIME type               <text string> $00
1394   Filename                <text string according to encoding> $00 (00)
1395   Content description     $00 (00)
1396   Encapsulated object     <binary data>
1397
1398
1399 4.17. Play counter
1400
1401 This is simply a counter of the number of times a file has been played. The
1402 value is increased by one every time the file begins to play. There may only be
1403 one "PCNT" frame in each tag. When the counter reaches all one's, one byte is
1404 inserted in front of the counter thus making the counter eight bits bigger. The
1405 counter must be at least 32-bits long to begin with.
1406
1407   <Header for 'Play counter', ID: "PCNT">
1408   Counter         $xx xx xx xx (xx ...)
1409
1410
1411 4.18. Popularimeter
1412
1413 The purpose of this frame is to specify how good an audio file is. Many
1414 interesting applications could be found to this frame such as a playlist that
1415 features better audiofiles more often than others or it could be used to
1416 profile a person's taste and find other 'good' files by comparing people's
1417 profiles. The frame is very simple. It contains the email address to the user,
1418 one rating byte and a four byte play counter, intended to be increased with one
1419 for every time the file is played. The email is a terminated string. The rating
1420 is 1-255 where 1 is worst and 255 is best. 0 is unknown. If no personal counter
1421 is wanted it may be omitted. When the counter reaches all one's, one byte is
1422 inserted in front of the counter thus making the counter eight bits bigger in
1423 the same away as the play counter ("PCNT"). There may be more than one "POPM"
1424 frame in each tag, but only one with the same email address.
1425
1426   <Header for 'Popularimeter', ID: "POPM">
1427   Email to user   <text string> $00
1428   Rating          $xx
1429   Counter         $xx xx xx xx (xx ...)
1430
1431
1432 4.19. Recommended buffer size
1433
1434 Sometimes the server from which a audio file is streamed is aware of
1435 transmission or coding problems resulting in interruptions in the audio stream.
1436 In these cases, the size of the buffer can be recommended by the server using
1437 this frame. If the 'embedded info flag' is true (1) then this indicates that an
1438 ID3 tag with the maximum size described in 'Buffer size' may occur in the
1439 audiostream. In such case the tag should reside between two MPEG frames, if the
1440 audio is MPEG encoded. If the position of the next tag is known, 'offset to
1441 next tag' may be used. The offset is calculated from the end of tag in which
1442 this frame resides to the first byte of the header in the next. This field may
1443 be omitted. Embedded tags are generally not recommended since this could render
1444 unpredictable behaviour from present software/hardware.
1445 For applications like streaming audio it might be an idea to embed tags into
1446 the audio stream though. If the clients connects to individual connections like
1447 HTTP and there is a possibility to begin every transmission with a tag, then
1448 this tag should include a 'recommended buffer size' frame. If the client is
1449 connected to a arbitrary point in the stream, such as radio or multicast, then
1450 the 'recommended buffer size' frame should be included in every tag. Every tag
1451 that is picked up after the initial/first tag is to be considered as an update
1452 of the previous one. E.g. if there is a "TIT2" frame in the first received tag
1453 and one in the second tag, then the first should be 'replaced' with the second.
1454 The 'Buffer size' should be kept to a minimum. There may only be one "RBUF"
1455 frame in each tag.
1456
1457   <Header for 'Recommended buffer size', ID: "RBUF">
1458   Buffer size             $xx xx xx
1459   Embedded info flag      %0000000x
1460   Offset to next tag      $xx xx xx xx
1461
1462
1463 4.20. Audio encryption
1464
1465 This frame indicates if the actual audio stream is encrypted, and by whom.
1466 Since standardisation of such encryption scheme is beyond this document, all
1467 "AENC" frames begin with a terminated string with a URL containing an email
1468 address, or a link to a location where an email address can be found, that
1469 belongs to the organisation responsible for this specific encrypted audio file.
1470 Questions regarding the encrypted audio should be sent to the email address
1471 specified. If a $00 is found directly after the 'Frame size' and the audiofile
1472 indeed is encrypted, the whole file may be considered useless.
1473 After the 'Owner identifier', a pointer to an unencrypted part of the audio can
1474 be specified. The 'Preview start' and 'Preview length' is described in frames.
1475 If no part is unencrypted, these fields should be left zeroed. After the
1476 'preview length' field follows optionally a datablock required for decryption
1477 of the audio. There may be more than one "AENC" frames in a tag, but only one
1478 with the same 'Owner identifier'.
1479
1480   <Header for 'Audio encryption', ID: "AENC">
1481   Owner identifier        <text string> $00
1482   Preview start           $xx xx
1483   Preview length          $xx xx
1484   Encryption info         <binary data>
1485
1486
1487 4.21. Linked information
1488
1489 To keep space waste as low as possible this frame may be used to link
1490 information from another ID3v2 tag that might reside in another audio file or
1491 alone in a binary file. It is recommended that this method is only used when
1492 the files are stored on a CD-ROM or other circumstances when the risk of file
1493 seperation is low. The frame contains a frame identifier, which is the frame
1494 that should be linked into this tag, a URL field, where a reference to the file
1495 where the frame is given, and additional ID data, if needed. Data should be
1496 retrieved from the first tag found in the file to which this link points. There
1497 may be more than one "LINK" frame in a tag, but only one with the same
1498 contents. A linked frame is to be considered as part of the tag and has the
1499 same restrictions as if it was a physical part of the tag (i.e. only one "RVRB"
1500 frame allowed, whether it's linked or not).
1501
1502   <Header for 'Linked information', ID: "LINK">
1503   Frame identifier        $xx xx xx
1504   URL                     <text string> $00
1505   ID and additional data  <text string(s)>
1506
1507 Frames that may be linked and need no additional data are "IPLS", "MCID",
1508 "ETCO", "MLLT", "SYTC", "RVAD", "EQUA", "RVRB", "RBUF", the text information
1509 frames and the URL link frames.
1510 The "TXXX", "APIC", "GEOB" and "AENC" frames may be linked with the content
1511 descriptor as additional ID data.
1512 The "COMM", "SYLT" and "USLT" frames may be linked with three bytes of language
1513 descriptor directly followed by a content descriptor as additional ID data.
1514
1515 4.22. Position synchronisation frame
1516
1517 This frame delivers information to the listener of how far into the audio
1518 stream he picked up; in effect, it states the time offset of the first frame in
1519 the stream. The frame layout is:
1520
1521   <Head for 'Position synchronisation', ID: "POSS">
1522   Time stamp format   $xx
1523   Position            $xx (xx ...)
1524
1525 Where time stamp format is:
1526
1527   $01 Absolute time, 32 bit sized, using MPEG frames as unit
1528   $02 Absolute time, 32 bit sized, using milliseconds as unit
1529
1530 and position is where in the audio the listener starts to receive, i.e. the
1531 beginning of the next frame. If this frame is used in the beginning of a file
1532 the value is always 0. There may only be one "POSS" frame in each tag.
1533
1534 4.23. Terms of use frame
1535
1536 This frame contains a brief description of the terms of use and ownership of
1537 the file. More detailed information concerning the legal terms might be
1538 available through the "WCOP" frame. Newlines are allowed in the text. There may
1539 only be one "USER" frame in a tag.
1540
1541   <Header for 'Terms of use frame', ID: "USER">
1542   Text encoding   $xx
1543   Language        $xx xx xx
1544   The actual text <text string according to encoding>
1545
1546
1547 4.24. Ownership frame
1548
1549 The ownership frame might be used as a reminder of a made transaction or, if
1550 signed, as proof. Note that the "USER" and "TOWN" frames are good to use in
1551 conjunction with this one. The frame begins, after the frame ID, size and
1552 encoding fields, with a 'price payed' field. The first three characters of this
1553 field contains the currency used for the transaction, encoded according to ISO-
1554 4217 alphabetic currency code. Concatenated to this is the actual price payed,
1555 as a numerical string using "." as the decimal separator. Next is an 8
1556 character date string (YYYYMMDD) followed by a string with the name of the
1557 seller as the last field in the frame. There may only be one "OWNE" frame in a
1558 tag.
1559
1560   <Header for 'Ownership frame', ID: "OWNE">
1561   Text encoding   $xx
1562   Price payed     <text string> $00
1563   Date of purch.  <text string>
1564   Seller          <text string according to encoding>
1565
1566
1567 4.25. Commercial frame
1568
1569 This frame enables several competing offers in the same tag by bundling all
1570 needed information. That makes this frame rather complex but it's an easier
1571 solution than if one tries to achieve the same result with several frames. The
1572 frame begins, after the frame ID, size and encoding fields, with a price string
1573 field. A price is constructed by one three character currency code, encoded
1574 according to ISO-4217 alphabetic currency code, followed by a numerical value
1575 where "." is used as decimal seperator. In the price string several prices may
1576 be concatenated, seperated by a "/" character, but there may only be one
1577 currency of each type.
1578 The price string is followed by an 8 character date string in the format
1579 YYYYMMDD, describing for how long the price is valid. After that is a contact
1580 URL, with which the user can contact the seller, followed by a one byte
1581 'received as' field. It describes how the audio is delivered when bought
1582 according to the following list:
1583
1584   $00     Other
1585   $01     Standard CD album with other songs
1586   $02     Compressed audio on CD
1587   $03     File over the Internet
1588   $04     Stream over the Internet
1589   $05     As note sheets
1590   $06     As note sheets in a book with other sheets
1591   $07     Music on other media
1592   $08     Non-musical merchandise
1593
1594 Next follows a terminated string with the name of the seller followed by a
1595 terminated string with a short description of the product. The last thing is
1596 the ability to include a company logotype. The first of them is the 'Picture
1597 MIME type' field containing information about which picture format is used. In
1598 the event that the MIME media type name is omitted, "image/" will be implied.
1599 Currently only "image/png" and "image/jpeg" are allowed. This format string is
1600 followed by the binary picture data. This two last fields may be omitted if no
1601 picture is to attach.
1602
1603   <Header for 'Commercial frame', ID: "COMR">
1604   Text encoding     $xx
1605   Price string      <text string> $00
1606   Valid until       <text string>
1607   Contact URL       <text string> $00
1608   Received as       $xx
1609   Name of seller    <text string according to encoding> $00 (00)
1610   Description       <text string according to encoding> $00 (00)
1611   Picture MIME type <string> $00
1612   Seller logo       <binary data>
1613
1614
1615 4.26. Encryption method registration
1616
1617 To identify with which method a frame has been encrypted the encryption method
1618 must be registered in the tag with this frame. The 'Owner identifier' is a
1619 null-terminated string with a URL containing an email address, or a link to a
1620 location where an email address can be found, that belongs to the organisation
1621 responsible for this specific encryption method. Questions regarding the
1622 encryption method should be sent to the indicated email address. The 'Method
1623 symbol' contains a value that is associated with this method throughout the
1624 whole tag. Values below $80 are reserved. The 'Method symbol' may optionally be
1625 followed by encryption specific data. There may be several "ENCR" frames in a
1626 tag but only one containing the same symbol and only one containing the same
1627 owner identifier. The method must be used somewhere in the tag. See section
1628 3.3.1, flag j for more information.
1629
1630   <Header for 'Encryption method registration', ID: "ENCR">
1631   Owner identifier    <text string> $00
1632   Method symbol       $xx
1633   Encryption data     <binary data>
1634
1635
1636 4.27. Group identification registration
1637
1638 This frame enables grouping of otherwise unrelated frames. This can be used
1639 when some frames are to be signed. To identify which frames belongs to a set of
1640 frames a group identifier must be registered in the tag with this frame. The
1641 'Owner identifier' is a null-terminated string with a URL containing an email
1642 address, or a link to a location where an email address can be found, that
1643 belongs to the organisation responsible for this grouping. Questions regarding
1644 the grouping should be sent to the indicated email address. The 'Group symbol'
1645 contains a value that associates the frame with this group throughout the whole
1646 tag. Values below $80 are reserved. The 'Group symbol' may optionally be
1647 followed by some group specific data, e.g. a digital signature. There may be
1648 several "GRID" frames in a tag but only one containing the same symbol and only
1649 one containing the same owner identifier. The group symbol must be used
1650 somewhere in the tag. See section_3.3.1, flag j for more information.
1651
1652   <Header for 'Group ID registration', ID: "GRID">
1653   Owner identifier     <text string> $00
1654   Group symbol         $xx
1655   Group dependent data <binary data>
1656
1657
1658 4.28. Private frame
1659
1660 This frame is used to contain information from a software producer that its
1661 program uses and does not fit into the other frames. The frame consists of an
1662 'Owner identifier' string and the binary data. The 'Owner identifier' is a
1663 null-terminated string with a URL containing an email address, or a link to a
1664 location where an email address can be found, that belongs to the organisation
1665 responsible for the frame. Questions regarding the frame should be sent to the
1666 indicated email address. The tag may contain more than one "PRIV" frame but
1667 only with different contents. It is recommended to keep the number of "PRIV"
1668 frames as low as possible.
1669
1670   <Header for 'Private frame', ID: "PRIV">
1671   Owner identifier        <text string> $00
1672   The private data        <binary data>
1673
1674
1675
1676 5. The unsynchronisation scheme
1677
1678 The only purpose of the 'unsynchronisation scheme' is to make the ID3v2 tag as
1679 compatible as possible with existing software. There is no use in
1680 'unsynchronising' tags if the file is only to be processed by new software.
1681 Unsynchronisation may only be made with MPEG 2 layer I, II and III and MPEG 2.5
1682 files.
1683 Whenever a false synchronisation is found within the tag, one zeroed byte is
1684 inserted after the first false synchronisation byte. The format of a correct
1685 sync that should be altered by ID3 encoders is as follows:
1686
1687   %11111111 111xxxxx
1688
1689 And should be replaced with:
1690
1691   %11111111 00000000 111xxxxx
1692
1693 This has the side effect that all $FF 00 combinations have to be altered, so
1694 they won't be affected by the decoding process. Therefore all the $FF 00
1695 combinations have to be replaced with the $FF 00 00 combination during the
1696 unsynchronisation.
1697 To indicate usage of the unsynchronisation, the first bit in 'ID3 flags' should
1698 be set. This bit should only be set if the tag contains a, now corrected, false
1699 synchronisation. The bit should only be clear if the tag does not contain any
1700 false synchronisations.
1701 Do bear in mind, that if a compression scheme is used by the encoder, the
1702 unsynchronisation scheme should be applied *afterwards*. When decoding a
1703 compressed, 'unsynchronised' file, the 'unsynchronisation scheme' should be
1704 parsed first, decompression afterwards.
1705 If the last byte in the tag is $FF, and there is a need to eliminate false
1706 synchronisations in the tag, at least one byte of padding should be added.
1707
1708
1709 6. Copyright
1710
1711 Copyright Â© Martin Nilsson 1998. All Rights Reserved.
1712 This document and translations of it may be copied and furnished to others, and
1713 derivative works that comment on or otherwise explain it or assist in its
1714 implementation may be prepared, copied, published and distributed, in whole or
1715 in part, without restriction of any kind, provided that a reference to this
1716 document is included on all such copies and derivative works. However, this
1717 document itself may not be modified in any way and reissued as the original
1718 document.
1719 The limited permissions granted above are perpetual and will not be revoked.
1720 This document and the information contained herein is provided on an "AS IS"
1721 basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
1722 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
1723 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
1724 A PARTICULAR PURPOSE.
1725
1726
1727 7. References
1728
1729 [CDDB] Compact Disc Data Base http://www.cddb.com
1730
1731 [ID3v2] Martin Nilsson, "ID3v2_informal_standard".
1732
1733  [ISO-639-2] ISO/FDIS 639-2. Codes for the representation of names of
1734 languages, Part 2: Alpha-3 code. Technical committee / subcommittee: TC 37 / SC
1735 2
1736
1737  [ISO-4217] ISO 4217:1995. Codes for the representation of currencies and
1738 funds. Technical committee / subcommittee: TC 68
1739
1740  [ISO-8859-1] ISO/IEC DIS 8859-1. 8-bit single-byte coded graphic character
1741 sets, Part 1: Latin alphabet No. 1. Technical committee / subcommittee: JTC 1 /
1742 SC 2
1743
1744  [ISRC] ISO 3901:1986 International Standard Recording Code (ISRC). Technical
1745 committee / subcommittee: TC 46 / SC 9
1746
1747  [JFIF] JPEG File Interchange Format, version 1.02, http://www.w3.org/Graphics/
1748 JPEG/jfif.txt
1749
1750  [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions
1751 (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.,
1752 ftp://ftp.isi.edu/in-notes/rfc2045.txt
1753
1754  [MPEG] ISO/IEC 11172-3:1993. Coding of moving pictures and associated audio
1755 for digital storage media at up to about 1,5 Mbit/s, Part 3: Audio. Technical
1756 committee / subcommittee: JTC 1 / SC 29 and ISO/IEC 13818-3:1995 Generic coding
1757 of moving pictures and associated audio information, Part 3: Audio. Technical
1758 committee / subcommittee: JTC 1 / SC 29 and ISO/IEC DIS 13818-3 Generic coding
1759 of moving pictures and associated audio information, Part 3: Audio (Revision of
1760 ISO/IEC 13818-3:1995)
1761
1762  [PNG] Portable Network Graphics, version 1.0, http://www.w3.org/TR/REC-png-
1763 multi.html
1764
1765  [UNICODE] ISO/IEC 10646-1:1993. Universal Multiple-Octet Coded Character Set
1766 (UCS), Part 1: Architecture and Basic Multilingual Plane. Technical committee /
1767 subcommittee: JTC 1 / SC 2, http://www.unicode.org
1768
1769  [URL] T. Berners-Lee, L. Masinter &amp; M. McCahill, "Uniform Resource
1770 Locators (URL).", RFC 1738, December 1994., ftp://ftp.isi.edu/in-notes/
1771 rfc1738.txt
1772
1773  [ZLIB] P. Deutsch, Aladdin Enterprises &amp; J-L. Gailly, "ZLIB Compressed
1774 Data Format Specification version 3.3", RFC 1950, May 1996., url:ftp://
1775 ftp.isi.edu/in-notes/rfc1950.txt
1776
1777
1778
1779 8. Appendix
1780
1781
1782 8.1. Appendix A - Genre List from ID3v1
1783
1784 The following genres is defined in ID3v1
1785
1786    0. Blues
1787     1. Classic Rock
1788     2. Country
1789     3. Dance
1790     4. Disco
1791     5. Funk
1792     6. Grunge
1793     7. Hip-Hop
1794     8. Jazz
1795     9. Metal
1796    10. New Age
1797    11. Oldies
1798    12. Other
1799    13. Pop
1800    14. R&amp;B
1801    15. Rap
1802    16. Reggae
1803    17. Rock
1804    18. Techno
1805    19. Industrial
1806    20. Alternative
1807    21. Ska
1808    22. Death Metal
1809    23. Pranks
1810    24. Soundtrack
1811    25. Euro-Techno
1812    26. Ambient
1813    27. Trip-Hop
1814    28. Vocal
1815    29. Jazz+Funk
1816    30. Fusion
1817    31. Trance
1818    32. Classical
1819    33. Instrumental
1820    34. Acid
1821    35. House
1822    36. Game
1823    37. Sound Clip
1824    38. Gospel
1825    39. Noise
1826    40. AlternRock
1827    41. Bass
1828    42. Soul
1829    43. Punk
1830    44. Space
1831    45. Meditative
1832    46. Instrumental Pop
1833    47. Instrumental Rock
1834    48. Ethnic
1835    49. Gothic
1836    50. Darkwave
1837    51. Techno-Industrial
1838    52. Electronic
1839    53. Pop-Folk
1840    54. Eurodance
1841    55. Dream
1842    56. Southern Rock
1843    57. Comedy
1844    58. Cult
1845    59. Gangsta
1846    60. Top 40
1847    61. Christian Rap
1848    62. Pop/Funk
1849    63. Jungle
1850    64. Native American
1851    65. Cabaret
1852    66. New Wave
1853    67. Psychadelic
1854    68. Rave
1855    69. Showtunes
1856    70. Trailer
1857    71. Lo-Fi
1858    72. Tribal
1859    73. Acid Punk
1860    74. Acid Jazz
1861    75. Polka
1862    76. Retro
1863    77. Musical
1864    78. Rock &amp; Roll
1865    79. Hard Rock
1866
1867 The following genres are Winamp extensions
1868
1869    80. Folk
1870    81. Folk-Rock
1871    82. National Folk
1872    83. Swing
1873    84. Fast Fusion
1874    85. Bebob
1875    86. Latin
1876    87. Revival
1877    88. Celtic
1878    89. Bluegrass
1879    90. Avantgarde
1880    91. Gothic Rock
1881    92. Progressive Rock
1882    93. Psychedelic Rock
1883    94. Symphonic Rock
1884    95. Slow Rock
1885    96. Big Band
1886    97. Chorus
1887    98. Easy Listening
1888    99. Acoustic
1889   100. Humour
1890   101. Speech
1891   102. Chanson
1892   103. Opera
1893   104. Chamber Music
1894   105. Sonata
1895   106. Symphony
1896   107. Booty Bass
1897   108. Primus
1898   109. Porn Groove
1899   110. Satire
1900   111. Slow Jam
1901   112. Club
1902   113. Tango
1903   114. Samba
1904   115. Folklore
1905   116. Ballad
1906   117. Power Ballad
1907   118. Rhythmic Soul
1908   119. Freestyle
1909   120. Duet
1910   121. Punk Rock
1911   122. Drum Solo
1912   123. A capella
1913   124. Euro-House
1914   125. Dance Hall
1915
1916
1917
1918 9. Author's Address
1919
1920 Written by
1921 Martin Nilsson
1922 Rydsven 246 C. 30
1923 S-584 34 Linkoping
1924 Sweden
1925
1926 Email: nilsson at id3.org
1927
1928 Edited by
1929 Dirk Mahoney
1930 57 Pechey Street
1931 Chermside Q
1932 Australia 4032
1933
1934 Email: dirk at id3.org
1935
1936 Johan Sundstrom
1937 Alsttersgatan 5 A. 34
1938 S-584 35 Linkoping
1939 Sweden
1940
1941 Email: johan at id3.org
1942 id3v2.3.0 (last edited 2006-12-18 06:25:16 by DanONeill)