~njh-aelius/maxosx/musicbrainz-tags

« back to all changes in this revision

Viewing changes to Frameworks/taglib/taglib/taglib/mpeg/id3v2/id3v2.2.0.txt

  • Committer: stephen_booth
  • Date: 2008-04-30 02:09:12 UTC
  • Revision ID: svn-v4:6b6cea13-1402-0410-9567-a7afb52bf336:trunk:1372
Update to latest taglib SVN

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
Informal standard                                             M. Nilsson
 
3
Document: id3v2-00.txt                                   26th March 1998
 
4
 
 
5
 
 
6
                            ID3 tag version 2
 
7
 
 
8
Status of this document
 
9
 
 
10
   This document is an Informal standard and is released so that
 
11
   implementors could have a set standard before the formal standard is
 
12
   set. The formal standard will use another version number if not
 
13
   identical to what is described in this document. The contents in this
 
14
   document may change for clarifications but never for added or altered
 
15
   functionallity.
 
16
 
 
17
   Distribution of this document is unlimited.
 
18
 
 
19
 
 
20
Abstract
 
21
 
 
22
   The recent gain of popularity for MPEG layer III audio files on the
 
23
   internet forced a standardised way of storing information about an
 
24
   audio file within itself to determinate its origin and contents.
 
25
 
 
26
   Today the most accepted way to do this is with the so called ID3 tag,
 
27
   which is simple but very limited and in some cases very unsuitable.
 
28
   The ID3 tag has very limited space in every field, very limited
 
29
   numbers of fields, not expandable or upgradeable and is placed at the
 
30
   end of a the file, which is unsuitable for streaming audio. This draft
 
31
   is an attempt to answer these issues with a new version of the ID3
 
32
   tag.
 
33
 
 
34
 
 
35
1.   Table of contents
 
36
 
 
37
   2.   Conventions in this document
 
38
   3.   ID3v2 overview
 
39
     3.1.   ID3v2 header
 
40
     3.2.   ID3v2 frames overview
 
41
   4.   Declared ID3v2 frames
 
42
     4.1.   Unique file identifier
 
43
     4.2.   Text information frames
 
44
       4.2.1.   Text information frames - details
 
45
       4.2.2.   User defined text information frame
 
46
     4.3.   URL link frames
 
47
       4.3.1.   URL link frames - details
 
48
       4.3.2.   User defined URL link frame
 
49
     4.4.   Involved people list
 
50
     4.5.   Music CD Identifier
 
51
     4.6.   Event timing codes
 
52
     4.7.   MPEG location lookup table
 
53
     4.8.   Synced tempo codes
 
54
     4.9.   Unsychronised lyrics/text transcription
 
55
     4.10.  Synchronised lyrics/text
 
56
     4.11.  Comments
 
57
     4.12.  Relative volume adjustment
 
58
     4.13.  Equalisation
 
59
     4.14.  Reverb
 
60
     4.15.  Attached picture
 
61
     4.16.  General encapsulated object
 
62
     4.17.  Play counter
 
63
     4.18.  Popularimeter
 
64
     4.19.  Recommended buffer size
 
65
     4.20.  Encrypted meta frame
 
66
     4.21.  Audio encryption
 
67
     4.22.  Linked information
 
68
   5.   The 'unsynchronisation scheme'
 
69
   6.   Copyright
 
70
   7.   References
 
71
   8.   Appendix
 
72
     A.   Appendix A - ID3-Tag Specification V1.1
 
73
       A.1.   Overview
 
74
       A.2.   ID3v1 Implementation
 
75
       A.3.   Genre List
 
76
       A.4.   Track addition - ID3v1.1
 
77
   9.   Author's Address
 
78
 
 
79
 
 
80
2.   Conventions in this document
 
81
 
 
82
   In the examples, text within "" is a text string exactly as it appears
 
83
   in a file. Numbers preceded with $ are hexadecimal and numbers
 
84
   preceded with % are binary. $xx is used to indicate a byte with
 
85
   unknown content. %x is used to indicate a bit with unknown content.
 
86
   The most significant bit (MSB) of a byte is called 'bit 7' and the
 
87
   least significant bit (LSB) is called 'bit 0'.
 
88
 
 
89
   A tag is the whole tag described in this document. A frame is a block
 
90
   of information in the tag. The tag consists of a header, frames and
 
91
   optional padding. A field is a piece of information; one value, a
 
92
   string etc. A numeric string is a string that consists of the
 
93
   characters 0-9 only.
 
94
 
 
95
 
 
96
3.   ID3v2 overview
 
97
 
 
98
   The two biggest design goals were to be able to implement ID3v2
 
99
   without disturbing old software too much and that ID3v2 should be
 
100
   expandable.
 
101
 
 
102
   The first criterion is met by the simple fact that the MPEG [MPEG]
 
103
   decoding software uses a syncsignal, embedded in the audiostream, to
 
104
   'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid
 
105
   syncsignal, no software will attempt to play the tag. If, for any
 
106
   reason, coincidence make a syncsignal appear within the tag it will be
 
107
   taken care of by the 'unsynchronisation scheme' described in section
 
108
   5.
 
109
 
 
110
   The second criterion has made a more noticeable impact on the design
 
111
   of the ID3v2 tag. It is constructed as a container for several
 
112
   information blocks, called frames, whose format need not be known to
 
113
   the software that encounters them. At the start of every frame there
 
114
   is an identifier that explains the frames's format and content, and a
 
115
   size descriptor that allows software to skip unknown frames.
 
116
 
 
117
   If a total revision of the ID3v2 tag should be needed, there is a
 
118
   version number and a size descriptor in the ID3v2 header.
 
119
 
 
120
   The ID3 tag described in this document is mainly targeted to files
 
121
   encoded with MPEG-2 layer I, MPEG-2 layer II, MPEG-2 layer III and
 
122
   MPEG-2.5, but may work with other types of encoded audio.
 
123
 
 
124
   The bitorder in ID3v2 is most significant bit first (MSB). The
 
125
   byteorder in multibyte numbers is most significant byte first (e.g.
 
126
   $12345678 would be encoded $12 34 56 78).
 
127
 
 
128
   It is permitted to include padding after all the final frame (at the
 
129
   end of the ID3 tag), making the size of all the frames together
 
130
   smaller than the size given in the head of the tag. A possible purpose
 
131
   of this padding is to allow for adding a few additional frames or
 
132
   enlarge existing frames within the tag without having to rewrite the
 
133
   entire file. The value of the padding bytes must be $00.
 
134
 
 
135
 
 
136
3.1.   ID3v2 header
 
137
 
 
138
   The ID3v2 tag header, which should be the first information in the
 
139
   file, is 10 bytes as follows:
 
140
 
 
141
     ID3/file identifier      "ID3"
 
142
     ID3 version              $02 00
 
143
     ID3 flags                %xx000000
 
144
     ID3 size             4 * %0xxxxxxx
 
145
 
 
146
   The first three bytes of the tag are always "ID3" to indicate that
 
147
   this is an ID3 tag, directly followed by the two version bytes. The
 
148
   first byte of ID3 version is it's major version, while the second byte
 
149
   is its revision number. All revisions are backwards compatible while
 
150
   major versions are not. If software with ID3v2 and below support
 
151
   should encounter version three or higher it should simply ignore the
 
152
   whole tag. Version and revision will never be $FF.
 
153
 
 
154
   The first bit (bit 7) in the 'ID3 flags' is indicating whether or not
 
155
   unsynchronisation is used (see section 5 for details); a set bit
 
156
   indicates usage.
 
157
 
 
158
   The second bit (bit 6) is indicating whether or not compression is
 
159
   used; a set bit indicates usage. Since no compression scheme has been
 
160
   decided yet, the ID3 decoder (for now) should just ignore the entire
 
161
   tag if the compression bit is set.
 
162
 
 
163
   The ID3 tag size is encoded with four bytes where the first bit (bit
 
164
   7) is set to zero in every byte, making a total of 28 bits. The zeroed
 
165
   bits are ignored, so a 257 bytes long tag is represented as $00 00 02
 
166
   01.
 
167
 
 
168
   The ID3 tag size is the size of the complete tag after
 
169
   unsychronisation, including padding, excluding the header (total tag
 
170
   size - 10). The reason to use 28 bits (representing up to 256MB) for
 
171
   size description is that we don't want to run out of space here.
 
172
 
 
173
   A ID3v2 tag can be detected with the following pattern:
 
174
     $49 44 33 yy yy xx zz zz zz zz
 
175
   Where yy is less than $FF, xx is the 'flags' byte and zz is less than
 
176
   $80.
 
177
 
 
178
 
 
179
3.2.   ID3v2 frames overview
 
180
 
 
181
   The headers of the frames are similar in their construction. They
 
182
   consist of one three character identifier (capital A-Z and 0-9) and
 
183
   one three byte size field, making a total of six bytes. The header is
 
184
   excluded from the size. Identifiers beginning with "X", "Y" and "Z"
 
185
   are for experimental use and free for everyone to use. Have in mind
 
186
   that someone else might have used the same identifier as you. All
 
187
   other identifiers are either used or reserved for future use.
 
188
 
 
189
   The three character frame identifier is followed by a three byte size
 
190
   descriptor, making a total header size of six bytes in every frame.
 
191
   The size is calculated as framesize excluding frame identifier and
 
192
   size descriptor (frame size - 6).
 
193
 
 
194
   There is no fixed order of the frames' appearance in the tag, although
 
195
   it is desired that the frames are arranged in order of significance
 
196
   concerning the recognition of the file. An example of such order:
 
197
   UFI, MCI, TT2 ...
 
198
 
 
199
   A tag must contain at least one frame. A frame must be at least 1 byte
 
200
   big, excluding the 6-byte header.
 
201
 
 
202
   If nothing else is said a string is represented as ISO-8859-1
 
203
   [ISO-8859-1] characters in the range $20 - $FF. All unicode strings
 
204
   [UNICODE] use 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). All
 
205
   numeric strings are always encoded as ISO-8859-1. Terminated strings
 
206
   are terminated with $00 if encoded with ISO-8859-1 and $00 00 if
 
207
   encoded as unicode. If nothing else is said newline character is
 
208
   forbidden. In ISO-8859-1 a new line is represented, when allowed, with
 
209
   $0A only. Frames that allow different types of text encoding have a
 
210
   text encoding description byte directly after the frame size. If
 
211
   ISO-8859-1 is used this byte should be $00, if unicode is used it
 
212
   should be $01.
 
213
 
 
214
   The three byte language field is used to describe the language of the
 
215
   frame's content, according to ISO-639-2 [ISO-639-2].
 
216
 
 
217
   All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt".
 
218
 
 
219
   If a frame is longer than it should be, e.g. having more fields than
 
220
   specified in this document, that indicates that additions to the
 
221
   frame have been made in a later version of the ID3 standard. This
 
222
   is reflected by the revision number in the header of the tag.
 
223
 
 
224
 
 
225
4.   Declared ID3v2 frames
 
226
 
 
227
   The following frames are declared in this draft.
 
228
 
 
229
   4.19  BUF Recommended buffer size
 
230
 
 
231
   4.17  CNT Play counter
 
232
   4.11  COM Comments
 
233
   4.21  CRA Audio encryption
 
234
   4.20  CRM Encrypted meta frame
 
235
 
 
236
   4.6   ETC Event timing codes
 
237
   4.13  EQU Equalization
 
238
 
 
239
   4.16  GEO General encapsulated object
 
240
 
 
241
   4.4   IPL Involved people list
 
242
 
 
243
   4.22  LNK Linked information
 
244
 
 
245
   4.5   MCI Music CD Identifier
 
246
   4.7   MLL MPEG location lookup table
 
247
 
 
248
   4.15  PIC Attached picture
 
249
   4.18  POP Popularimeter
 
250
 
 
251
   4.14  REV Reverb
 
252
   4.12  RVA Relative volume adjustment
 
253
 
 
254
   4.10  SLT Synchronized lyric/text
 
255
   4.8   STC Synced tempo codes
 
256
 
 
257
   4.2.1 TAL Album/Movie/Show title
 
258
   4.2.1 TBP BPM (Beats Per Minute)
 
259
   4.2.1 TCM Composer
 
260
   4.2.1 TCO Content type
 
261
   4.2.1 TCR Copyright message
 
262
   4.2.1 TDA Date
 
263
   4.2.1 TDY Playlist delay
 
264
   4.2.1 TEN Encoded by
 
265
   4.2.1 TFT File type
 
266
   4.2.1 TIM Time
 
267
   4.2.1 TKE Initial key
 
268
   4.2.1 TLA Language(s)
 
269
   4.2.1 TLE Length
 
270
   4.2.1 TMT Media type
 
271
   4.2.1 TOA Original artist(s)/performer(s)
 
272
   4.2.1 TOF Original filename
 
273
   4.2.1 TOL Original Lyricist(s)/text writer(s)
 
274
   4.2.1 TOR Original release year
 
275
   4.2.1 TOT Original album/Movie/Show title
 
276
   4.2.1 TP1 Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group
 
277
   4.2.1 TP2 Band/Orchestra/Accompaniment
 
278
   4.2.1 TP3 Conductor/Performer refinement
 
279
   4.2.1 TP4 Interpreted, remixed, or otherwise modified by
 
280
   4.2.1 TPA Part of a set
 
281
   4.2.1 TPB Publisher
 
282
   4.2.1 TRC ISRC (International Standard Recording Code)
 
283
   4.2.1 TRD Recording dates
 
284
   4.2.1 TRK Track number/Position in set
 
285
   4.2.1 TSI Size
 
286
   4.2.1 TSS Software/hardware and settings used for encoding
 
287
   4.2.1 TT1 Content group description
 
288
   4.2.1 TT2 Title/Songname/Content description
 
289
   4.2.1 TT3 Subtitle/Description refinement
 
290
   4.2.1 TXT Lyricist/text writer
 
291
   4.2.2 TXX User defined text information frame
 
292
   4.2.1 TYE Year
 
293
 
 
294
   4.1   UFI Unique file identifier
 
295
   4.9   ULT Unsychronized lyric/text transcription
 
296
 
 
297
   4.3.1 WAF Official audio file webpage
 
298
   4.3.1 WAR Official artist/performer webpage
 
299
   4.3.1 WAS Official audio source webpage
 
300
   4.3.1 WCM Commercial information
 
301
   4.3.1 WCP Copyright/Legal information
 
302
   4.3.1 WPB Publishers official webpage
 
303
   4.3.2 WXX User defined URL link frame
 
304
 
 
305
 
 
306
4.1.   Unique file identifier
 
307
 
 
308
   This frame's purpose is to be able to identify the audio file in a
 
309
   database that may contain more information relevant to the content.
 
310
   Since standardisation of such a database is beyond this document, all
 
311
   frames begin with a null-terminated string with a URL [URL] containing
 
312
   an email address, or a link to a location where an email address can
 
313
   be found, that belongs to the organisation responsible for this
 
314
   specific database implementation. Questions regarding the database
 
315
   should be sent to the indicated email address. The URL should not be
 
316
   used for the actual database queries. If a $00 is found directly after
 
317
   the 'Frame size' the whole frame should be ignored, and preferably be
 
318
   removed. The 'Owner identifier' is then followed by the actual
 
319
   identifier, which may be up to 64 bytes. There may be more than one
 
320
   "UFI" frame in a tag, but only one with the same 'Owner identifier'.
 
321
 
 
322
     Unique file identifier  "UFI"
 
323
     Frame size              $xx xx xx
 
324
     Owner identifier        <textstring> $00
 
325
     Identifier              <up to 64 bytes binary data>
 
326
 
 
327
 
 
328
4.2.   Text information frames
 
329
 
 
330
   The text information frames are the most important frames, containing
 
331
   information like artist, album and more. There may only be one text
 
332
   information frame of its kind in an tag. If the textstring is followed
 
333
   by a termination ($00 (00)) all the following information should be
 
334
   ignored and not be displayed. All the text information frames have the
 
335
   following format:
 
336
 
 
337
     Text information identifier  "T00" - "TZZ" , excluding "TXX",
 
338
                                   described in 4.2.2.
 
339
     Frame size                   $xx xx xx
 
340
     Text encoding                $xx
 
341
     Information                  <textstring>
 
342
 
 
343
 
 
344
4.2.1.   Text information frames - details
 
345
 
 
346
  TT1
 
347
   The 'Content group description' frame is used if the sound belongs to
 
348
   a larger category of sounds/music. For example, classical music is
 
349
   often sorted in different musical sections (e.g. "Piano Concerto",
 
350
   "Weather - Hurricane").
 
351
 
 
352
  TT2
 
353
   The 'Title/Songname/Content description' frame is the actual name of
 
354
   the piece (e.g. "Adagio", "Hurricane Donna").
 
355
 
 
356
  TT3
 
357
   The 'Subtitle/Description refinement' frame is used for information
 
358
   directly related to the contents title (e.g. "Op. 16" or "Performed
 
359
   live at wembley").
 
360
 
 
361
  TP1
 
362
   The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
 
363
   used for the main artist(s). They are seperated with the "/"
 
364
   character.
 
365
 
 
366
  TP2
 
367
   The 'Band/Orchestra/Accompaniment' frame is used for additional
 
368
   information about the performers in the recording.
 
369
 
 
370
  TP3
 
371
   The 'Conductor' frame is used for the name of the conductor.
 
372
   
 
373
  TP4
 
374
   The 'Interpreted, remixed, or otherwise modified by' frame contains
 
375
   more information about the people behind a remix and similar
 
376
   interpretations of another existing piece.
 
377
 
 
378
  TCM
 
379
   The 'Composer(s)' frame is intended for the name of the composer(s).
 
380
   They are seperated with the "/" character.
 
381
 
 
382
  TXT
 
383
   The 'Lyricist(s)/text writer(s)' frame is intended for the writer(s)
 
384
   of the text or lyrics in the recording. They are seperated with the
 
385
   "/" character.
 
386
 
 
387
  TLA
 
388
   The 'Language(s)' frame should contain the languages of the text or
 
389
   lyrics in the audio file. The language is represented with three
 
390
   characters according to ISO-639-2. If more than one language is used
 
391
   in the text their language codes should follow according to their
 
392
   usage.
 
393
 
 
394
  TCO
 
395
   The content type, which previously (in ID3v1.1, see appendix A) was
 
396
   stored as a one byte numeric value only, is now a numeric string. You
 
397
   may use one or several of the types as ID3v1.1 did or, since the
 
398
   category list would be impossible to maintain with accurate and up to
 
399
   date categories, define your own.
 
400
   References to the ID3v1 genres can be made by, as first byte, enter
 
401
   "(" followed by a number from the genres list (section A.3.) and
 
402
   ended with a ")" character. This is optionally followed by a
 
403
   refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be
 
404
   made in the same frame, e.g. "(51)(39)". If the refinement should
 
405
   begin with a "(" character it should be replaced with "((", e.g. "((I
 
406
   can figure out any genre)" or "(55)((I think...)". The following new
 
407
   content types is defined in ID3v2 and is implemented in the same way
 
408
   as the numerig content types, e.g. "(RX)".
 
409
   
 
410
     RX  Remix
 
411
     CR  Cover
 
412
 
 
413
  TAL
 
414
   The 'Album/Movie/Show title' frame is intended for the title of the
 
415
   recording(/source of sound) which the audio in the file is taken from.
 
416
   
 
417
  TPA
 
418
   The 'Part of a set' frame is a numeric string that describes which
 
419
   part of a set the audio came from. This frame is used if the source
 
420
   described in the "TAL" frame is divided into several mediums, e.g. a
 
421
   double CD. The value may be extended with a "/" character and a
 
422
   numeric string containing the total number of parts in the set. E.g.
 
423
   "1/2".
 
424
 
 
425
  TRK
 
426
   The 'Track number/Position in set' frame is a numeric string
 
427
   containing the order number of the audio-file on its original
 
428
   recording. This may be extended with a "/" character and a numeric
 
429
   string containing the total numer of tracks/elements on the original
 
430
   recording. E.g. "4/9".
 
431
 
 
432
  TRC
 
433
   The 'ISRC' frame should contian the International Standard Recording
 
434
   Code [ISRC].
 
435
 
 
436
  TYE
 
437
   The 'Year' frame is a numeric string with a year of the recording.
 
438
   This frames is always four characters long (until the year 10000).
 
439
 
 
440
  TDA
 
441
   The 'Date' frame is a numeric string in the DDMM format containing
 
442
   the date for the recording. This field is always four characters
 
443
   long.
 
444
 
 
445
  TIM
 
446
   The 'Time' frame is a numeric string in the HHMM format containing
 
447
   the time for the recording. This field is always four characters
 
448
   long.
 
449
   
 
450
  TRD
 
451
   The 'Recording dates' frame is a intended to be used as complement to
 
452
   the "TYE", "TDA" and "TIM" frames. E.g. "4th-7th June, 12th June" in
 
453
   combination with the "TYE" frame.
 
454
 
 
455
  TMT
 
456
   The 'Media type' frame describes from which media the sound
 
457
   originated. This may be a textstring or a reference to the predefined
 
458
   media types found in the list below. References are made within "("
 
459
   and ")" and are optionally followed by a text refinement, e.g. "(MC)
 
460
   with four channels". If a text refinement should begin with a "("
 
461
   character it should be replaced with "((" in the same way as in the
 
462
   "TCO" frame. Predefined refinements is appended after the media type,
 
463
   e.g. "(CD/S)" or "(VID/PAL/VHS)".
 
464
 
 
465
    DIG    Other digital media
 
466
      /A    Analog transfer from media
 
467
 
 
468
    ANA    Other analog media
 
469
      /WAC  Wax cylinder
 
470
      /8CA  8-track tape cassette
 
471
 
 
472
    CD     CD
 
473
      /A    Analog transfer from media
 
474
      /DD   DDD
 
475
      /AD   ADD
 
476
      /AA   AAD
 
477
 
 
478
    LD     Laserdisc
 
479
      /A     Analog transfer from media
 
480
 
 
481
    TT     Turntable records
 
482
      /33    33.33 rpm
 
483
      /45    45 rpm
 
484
      /71    71.29 rpm
 
485
      /76    76.59 rpm
 
486
      /78    78.26 rpm
 
487
      /80    80 rpm
 
488
     
 
489
    MD     MiniDisc
 
490
      /A    Analog transfer from media
 
491
     
 
492
    DAT    DAT
 
493
      /A    Analog transfer from media
 
494
      /1    standard, 48 kHz/16 bits, linear
 
495
      /2    mode 2, 32 kHz/16 bits, linear
 
496
      /3    mode 3, 32 kHz/12 bits, nonlinear, low speed
 
497
      /4    mode 4, 32 kHz/12 bits, 4 channels
 
498
      /5    mode 5, 44.1 kHz/16 bits, linear
 
499
      /6    mode 6, 44.1 kHz/16 bits, 'wide track' play
 
500
     
 
501
    DCC    DCC
 
502
      /A    Analog transfer from media
 
503
    
 
504
    DVD    DVD
 
505
      /A    Analog transfer from media
 
506
    
 
507
    TV     Television
 
508
      /PAL    PAL
 
509
      /NTSC   NTSC
 
510
      /SECAM  SECAM
 
511
    
 
512
    VID    Video
 
513
      /PAL    PAL
 
514
      /NTSC   NTSC
 
515
      /SECAM  SECAM
 
516
      /VHS    VHS
 
517
      /SVHS   S-VHS
 
518
      /BETA   BETAMAX
 
519
    
 
520
    RAD    Radio
 
521
      /FM   FM
 
522
      /AM   AM
 
523
      /LW   LW
 
524
      /MW   MW
 
525
    
 
526
    TEL    Telephone
 
527
      /I    ISDN
 
528
    
 
529
    MC     MC (normal cassette)
 
530
      /4    4.75 cm/s (normal speed for a two sided cassette)
 
531
      /9    9.5 cm/s
 
532
      /I    Type I cassette (ferric/normal)
 
533
      /II   Type II cassette (chrome)
 
534
      /III  Type III cassette (ferric chrome)
 
535
      /IV   Type IV cassette (metal)
 
536
    
 
537
    REE    Reel
 
538
      /9    9.5 cm/s
 
539
      /19   19 cm/s
 
540
      /38   38 cm/s
 
541
      /76   76 cm/s
 
542
      /I    Type I cassette (ferric/normal)
 
543
      /II   Type II cassette (chrome)
 
544
      /III  Type III cassette (ferric chrome)
 
545
      /IV   Type IV cassette (metal)
 
546
 
 
547
  TFT
 
548
   The 'File type' frame indicates which type of audio this tag defines.
 
549
   The following type and refinements are defined:
 
550
   
 
551
     MPG    MPEG Audio
 
552
       /1     MPEG 2 layer I
 
553
       /2     MPEG 2 layer II
 
554
       /3     MPEG 2 layer III
 
555
       /2.5   MPEG 2.5
 
556
       /AAC   Advanced audio compression
 
557
     
 
558
   but other types may be used, not for these types though. This is used
 
559
   in a similar way to the predefined types in the "TMT" frame, but
 
560
   without parenthesis. If this frame is not present audio type is
 
561
   assumed to be "MPG".
 
562
 
 
563
  TBP
 
564
   BPM is short for beats per minute, and is easily computed by
 
565
   dividing the number of beats in a musical piece with its length. To
 
566
   get a more accurate result, do the BPM calculation on the main-part
 
567
   only. To acquire best result measure the time between each beat and
 
568
   calculate individual BPM for each beat and use the median value as
 
569
   result. BPM is an integer and represented as a numerical string.
 
570
 
 
571
  TCR
 
572
   The 'Copyright message' frame, which must begin with a year and a
 
573
   space character (making five characters), is intended for the
 
574
   copyright holder of the original sound, not the audio file itself. The
 
575
   absence of this frame means only that the copyright information is
 
576
   unavailable or has been removed, and must not be interpreted to mean
 
577
   that the sound is public domain. Every time this field is displayed
 
578
   the field must be preceded with "Copyright " (C) " ", where (C) is one
 
579
   character showing a C in a circle.
 
580
 
 
581
  TPB
 
582
   The 'Publisher' frame simply contains the name of the label or
 
583
   publisher.
 
584
 
 
585
  TEN
 
586
   The 'Encoded by' frame contains the name of the person or
 
587
   organisation that encoded the audio file. This field may contain a
 
588
   copyright message, if the audio file also is copyrighted by the
 
589
   encoder.
 
590
 
 
591
  TSS
 
592
   The 'Software/hardware and settings used for encoding' frame
 
593
   includes the used audio encoder and its settings when the file was
 
594
   encoded. Hardware refers to hardware encoders, not the computer on
 
595
   which a program was run.
 
596
 
 
597
  TOF
 
598
   The 'Original filename' frame contains the preferred filename for the
 
599
   file, since some media doesn't allow the desired length of the
 
600
   filename. The filename is case sensitive and includes its suffix.
 
601
 
 
602
  TLE
 
603
   The 'Length' frame contains the length of the audiofile in
 
604
   milliseconds, represented as a numeric string.
 
605
 
 
606
  TSI
 
607
   The 'Size' frame contains the size of the audiofile in bytes
 
608
   excluding the tag, represented as a numeric string.
 
609
 
 
610
  TDY
 
611
   The 'Playlist delay' defines the numbers of milliseconds of silence
 
612
   between every song in a playlist. The player should use the "ETC"
 
613
   frame, if present, to skip initial silence and silence at the end of
 
614
   the audio to match the 'Playlist delay' time. The time is represented
 
615
   as a numeric string.
 
616
 
 
617
  TKE
 
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",
 
621
   "F" and "G" and halfkeys represented with "b" and "#". Minor is
 
622
   represented as "m". Example "Cbm". Off key is represented with an "o"
 
623
   only.
 
624
 
 
625
  TOT
 
626
   The 'Original album/Movie/Show title' frame is intended for the title
 
627
   of the original recording(/source of sound), if for example the music
 
628
   in the file should be a cover of a previously released song.
 
629
   
 
630
  TOA
 
631
   The 'Original artist(s)/performer(s)' frame is intended for the
 
632
   performer(s) of the original recording, if for example the music in
 
633
   the file should be a cover of a previously released song. The
 
634
   performers are seperated with the "/" character.
 
635
 
 
636
  TOL
 
637
   The 'Original Lyricist(s)/text writer(s)' frame is intended for the
 
638
   text writer(s) of the original recording, if for example the music in
 
639
   the file should be a cover of a previously released song. The text
 
640
   writers are seperated with the "/" character.
 
641
 
 
642
  TOR
 
643
   The 'Original release year' frame is intended for the year when the
 
644
   original recording, if for example the music in the file should be a
 
645
   cover of a previously released song, was released. The field is
 
646
   formatted as in the "TDY" frame.
 
647
 
 
648
 
 
649
4.2.2.   User defined text information frame
 
650
 
 
651
   This frame is intended for one-string text information concerning the
 
652
   audiofile in a similar way to the other "T"xx frames. The frame body
 
653
   consists of a description of the string, represented as a terminated
 
654
   string, followed by the actual string. There may be more than one
 
655
   "TXX" frame in each tag, but only one with the same description.
 
656
 
 
657
     User defined...   "TXX"
 
658
     Frame size        $xx xx xx
 
659
     Text encoding     $xx
 
660
     Description       <textstring> $00 (00)
 
661
     Value             <textstring>
 
662
 
 
663
 
 
664
4.3.   URL link frames
 
665
 
 
666
   With these frames dynamic data such as webpages with touring
 
667
   information, price information or plain ordinary news can be added to
 
668
   the tag. There may only be one URL [URL] link frame of its kind in an
 
669
   tag, except when stated otherwise in the frame description. If the
 
670
   textstring is followed by a termination ($00 (00)) all the following
 
671
   information should be ignored and not be displayed. All URL link
 
672
   frames have the following format:
 
673
 
 
674
     URL link frame   "W00" - "WZZ" , excluding "WXX" 
 
675
                                      (described in 4.3.2.)
 
676
     Frame size       $xx xx xx
 
677
     URL              <textstring>
 
678
 
 
679
 
 
680
4.3.1.   URL link frames - details
 
681
 
 
682
  WAF
 
683
   The 'Official audio file webpage' frame is a URL pointing at a file
 
684
   specific webpage.
 
685
   
 
686
  WAR
 
687
   The 'Official artist/performer webpage' frame is a URL pointing at
 
688
   the artists official webpage. There may be more than one "WAR" frame
 
689
   in a tag if the audio contains more than one performer.
 
690
   
 
691
  WAS
 
692
   The 'Official audio source webpage' frame is a URL pointing at the
 
693
   official webpage for the source of the audio file, e.g. a movie.
 
694
   
 
695
  WCM
 
696
   The 'Commercial information' frame is a URL pointing at a webpage
 
697
   with information such as where the album can be bought. There may be
 
698
   more than one "WCM" frame in a tag.
 
699
   
 
700
  WCP
 
701
   The 'Copyright/Legal information' frame is a URL pointing at a
 
702
   webpage where the terms of use and ownership of the file is described.
 
703
   
 
704
  WPB
 
705
   The 'Publishers official webpage' frame is a URL pointing at the
 
706
   official wepage for the publisher.
 
707
 
 
708
 
 
709
4.3.2.   User defined URL link frame
 
710
 
 
711
   This frame is intended for URL [URL] links concerning the audiofile in
 
712
   a similar way to the other "W"xx frames. The frame body consists of a
 
713
   description of the string, represented as a terminated string,
 
714
   followed by the actual URL. The URL is always encoded with ISO-8859-1
 
715
   [ISO-8859-1]. There may be more than one "WXX" frame in each tag, but
 
716
   only one with the same description.
 
717
 
 
718
     User defined...   "WXX"
 
719
     Frame size        $xx xx xx
 
720
     Text encoding     $xx
 
721
     Description       <textstring> $00 (00)
 
722
     URL               <textstring>
 
723
 
 
724
 
 
725
4.4.   Involved people list
 
726
 
 
727
   Since there might be a lot of people contributing to an audio file in
 
728
   various ways, such as musicians and technicians, the 'Text
 
729
   information frames' are often insufficient to list everyone involved
 
730
   in a project. The 'Involved people list' is a frame containing the
 
731
   names of those involved, and how they were involved. The body simply
 
732
   contains a terminated string with the involvement directly followed by
 
733
   a terminated string with the involvee followed by a new involvement
 
734
   and so on. There may only be one "IPL" frame in each tag.
 
735
 
 
736
     Involved people list   "IPL"
 
737
     Frame size             $xx xx xx
 
738
     Text encoding          $xx
 
739
     People list strings    <textstrings>
 
740
 
 
741
 
 
742
4.5.   Music CD Identifier
 
743
 
 
744
   This frame is intended for music that comes from a CD, so that the CD
 
745
   can be identified in databases such as the CDDB [CDDB]. The frame
 
746
   consists of a binary dump of the Table Of Contents, TOC,  from the CD,
 
747
   which is a header of 4 bytes and then 8 bytes/track on the CD making a
 
748
   maximum of 804 bytes. This frame requires a present and valid "TRK"
 
749
   frame. There may only be one "MCI" frame in each tag.
 
750
 
 
751
     Music CD identifier   "MCI"
 
752
     Frame size            $xx xx xx
 
753
     CD TOC                <binary data>
 
754
 
 
755
 
 
756
4.6.   Event timing codes
 
757
 
 
758
   This frame allows synchronisation with key events in a song or sound.
 
759
   The head is:
 
760
 
 
761
     Event timing codes   "ETC"
 
762
     Frame size           $xx xx xx
 
763
     Time stamp format    $xx
 
764
     
 
765
   Where time stamp format is:
 
766
     
 
767
     $01  Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
 
768
     $02  Absolute time, 32 bit sized, using milliseconds as unit
 
769
 
 
770
   Abolute time means that every stamp contains the time from the
 
771
   beginning of the file.
 
772
 
 
773
   Followed by a list of key events in the following format:
 
774
 
 
775
     Type of event   $xx
 
776
     Time stamp      $xx (xx ...)
 
777
 
 
778
   The 'Time stamp' is set to zero if directly at the beginning of the
 
779
   sound or after the previous event. All events should be sorted in
 
780
   chronological order. The type of event is as follows:
 
781
 
 
782
     $00  padding (has no meaning)
 
783
     $01  end of initial silence
 
784
     $02  intro start
 
785
     $03  mainpart start
 
786
     $04  outro start
 
787
     $05  outro end
 
788
     $06  verse begins
 
789
     $07  refrain begins
 
790
     $08  interlude
 
791
     $09  theme start
 
792
     $0A  variation
 
793
     $0B  key change
 
794
     $0C  time change
 
795
     $0D  unwanted noise (Snap, Crackle & Pop)
 
796
 
 
797
     $0E-$DF  reserved for future use
 
798
 
 
799
     $E0-$EF  not predefined sync 0-F
 
800
 
 
801
     $F0-$FC  reserved for future use
 
802
 
 
803
     $FD  audio end (start of silence)
 
804
     $FE  audio file ends
 
805
     $FF  one more byte of events follows (all the following bytes with
 
806
          the value $FF have the same function)
 
807
 
 
808
   The 'Not predefined sync's ($E0-EF) are for user events. You might
 
809
   want to synchronise your music to something, like setting of an
 
810
   explosion on-stage, turning on your screensaver etc.
 
811
 
 
812
   There may only be one "ETC" frame in each tag.
 
813
 
 
814
 
 
815
4.7.   MPEG location lookup table
 
816
 
 
817
   To increase performance and accuracy of jumps within a MPEG [MPEG]
 
818
   audio file, frames with timecodes in different locations in the file
 
819
   might be useful. The ID3 frame includes references that the software
 
820
   can use to calculate positions in the file. After the frame header is
 
821
   a descriptor of how much the 'frame counter' should increase for every
 
822
   reference. If this value is two then the first reference points out
 
823
   the second frame, the 2nd reference the 4th frame, the 3rd reference
 
824
   the 6th frame etc. In a similar way the 'bytes between reference' and
 
825
   'milliseconds between reference' points out bytes and milliseconds
 
826
   respectively.
 
827
   
 
828
   Each reference consists of two parts; a certain number of bits, as
 
829
   defined in 'bits for bytes deviation', that describes the difference
 
830
   between what is said in 'bytes between reference' and the reality and
 
831
   a certain number of bits, as defined in 'bits for milliseconds
 
832
   deviation', that describes the difference between what is said in
 
833
   'milliseconds between reference' and the reality. The number of bits
 
834
   in every reference, i.e. 'bits for bytes deviation'+'bits for
 
835
   milliseconds deviation', must be a multiple of four. There may only be
 
836
   one "MLL" frame in each tag.
 
837
   
 
838
     Location lookup table          "MLL"
 
839
     ID3 frame size                 $xx xx xx
 
840
     MPEG frames between reference  $xx xx
 
841
     Bytes between reference        $xx xx xx
 
842
     Milliseconds between reference $xx xx xx
 
843
     Bits for bytes deviation       $xx
 
844
     Bits for milliseconds dev.     $xx
 
845
 
 
846
   Then for every reference the following data is included;
 
847
 
 
848
     Deviation in bytes         %xxx....
 
849
     Deviation in milliseconds  %xxx....
 
850
 
 
851
 
 
852
4.8.   Synced tempo codes
 
853
 
 
854
   For a more accurate description of the tempo of a musical piece this
 
855
   frame might be used. After the header follows one byte describing
 
856
   which time stamp format should be used. Then follows one or more tempo
 
857
   codes. Each tempo code consists of one tempo part and one time part.
 
858
   The tempo is in BPM described with one or two bytes. If the first byte
 
859
   has the value $FF, one more byte follows, which is added to the first
 
860
   giving a range from 2 - 510 BPM, since $00 and $01 is reserved. $00 is
 
861
   used to describe a beat-free time period, which is not the same as a
 
862
   music-free time period. $01 is used to indicate one single beat-stroke
 
863
   followed by a beat-free period.
 
864
 
 
865
   The tempo descriptor is followed by a time stamp. Every time the tempo
 
866
   in the music changes, a tempo descriptor may indicate this for the
 
867
   player. All tempo descriptors should be sorted in chronological order.
 
868
   The first beat-stroke in a time-period is at the same time as the beat
 
869
   description occurs. There may only be one "STC" frame in each tag.
 
870
 
 
871
     Synced tempo codes  "STC"
 
872
     Frame size          $xx xx xx
 
873
     Time stamp format   $xx
 
874
     Tempo data          <binary data>
 
875
 
 
876
   Where time stamp format is:
 
877
     
 
878
     $01  Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
 
879
     $02  Absolute time, 32 bit sized, using milliseconds as unit
 
880
 
 
881
   Abolute time means that every stamp contains the time from the
 
882
   beginning of the file.
 
883
 
 
884
 
 
885
4.9.   Unsychronised lyrics/text transcription
 
886
 
 
887
   This frame contains the lyrics of the song or a text transcription of
 
888
   other vocal activities. The head includes an encoding descriptor and
 
889
   a content descriptor. The body consists of the actual text. The
 
890
   'Content descriptor' is a terminated string. If no descriptor is
 
891
   entered, 'Content descriptor' is $00 (00) only. Newline characters
 
892
   are allowed in the text. Maximum length for the descriptor is 64
 
893
   bytes. There may be more than one lyrics/text frame in each tag, but
 
894
   only one with the same language and content descriptor.
 
895
 
 
896
     Unsynced lyrics/text "ULT"
 
897
     Frame size           $xx xx xx
 
898
     Text encoding        $xx
 
899
     Language             $xx xx xx
 
900
     Content descriptor   <textstring> $00 (00)
 
901
     Lyrics/text          <textstring>
 
902
 
 
903
 
 
904
4.10.   Synchronised lyrics/text
 
905
 
 
906
   This is another way of incorporating the words, said or sung lyrics,
 
907
   in the audio file as text, this time, however, in sync with the audio.
 
908
   It might also be used to describing events e.g. occurring on a stage
 
909
   or on the screen in sync with the audio. The header includes a content
 
910
   descriptor, represented with as terminated textstring. If no
 
911
   descriptor is entered, 'Content descriptor' is $00 (00) only.
 
912
 
 
913
     Synced lyrics/text   "SLT"
 
914
     Frame size           $xx xx xx
 
915
     Text encoding        $xx
 
916
     Language             $xx xx xx
 
917
     Time stamp format    $xx
 
918
     Content type         $xx
 
919
     Content descriptor   <textstring> $00 (00)
 
920
 
 
921
 
 
922
   Encoding:   $00  ISO-8859-1 [ISO-8859-1] character set is used => $00
 
923
                    is sync identifier.
 
924
               $01  Unicode [UNICODE] character set is used => $00 00 is
 
925
                    sync identifier.
 
926
 
 
927
   Content type:   $00 is other
 
928
                   $01 is lyrics
 
929
                   $02 is text transcription
 
930
                   $03 is movement/part name (e.g. "Adagio")
 
931
                   $04 is events (e.g. "Don Quijote enters the stage")
 
932
                   $05 is chord (e.g. "Bb F Fsus")
 
933
 
 
934
   Time stamp format is:
 
935
     
 
936
     $01  Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
 
937
     $02  Absolute time, 32 bit sized, using milliseconds as unit
 
938
 
 
939
   Abolute time means that every stamp contains the time from the
 
940
   beginning of the file.
 
941
 
 
942
   The text that follows the frame header differs from that of the
 
943
   unsynchronised lyrics/text transcription in one major way. Each
 
944
   syllable (or whatever size of text is considered to be convenient by
 
945
   the encoder) is a null terminated string followed by a time stamp
 
946
   denoting where in the sound file it belongs. Each sync thus has the
 
947
   following structure:
 
948
 
 
949
     Terminated text to be synced (typically a syllable)
 
950
     Sync identifier (terminator to above string)   $00 (00)
 
951
     Time stamp                                     $xx (xx ...)
 
952
 
 
953
   The 'time stamp' is set to zero or the whole sync is omitted if
 
954
   located directly at the beginning of the sound. All time stamps should
 
955
   be sorted in chronological order. The sync can be considered as a
 
956
   validator of the subsequent string.
 
957
 
 
958
   Newline characters are allowed in all "SLT" frames and should be used
 
959
   after every entry (name, event etc.) in a frame with the content type
 
960
   $03 - $04.
 
961
 
 
962
   A few considerations regarding whitespace characters: Whitespace
 
963
   separating words should mark the beginning of a new word, thus
 
964
   occurring in front of the first syllable of a new word. This is also
 
965
   valid for new line characters. A syllable followed by a comma should
 
966
   not be broken apart with a sync (both the syllable and the comma
 
967
   should be before the sync).
 
968
 
 
969
   An example: The "ULT" passage
 
970
 
 
971
     "Strangers in the night" $0A "Exchanging glances"
 
972
 
 
973
   would be "SLT" encoded as:
 
974
 
 
975
     "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
 
976
     " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
 
977
     xx "glan" $00 xx xx "ces" $00 xx xx
 
978
 
 
979
   There may be more than one "SLT" frame in each tag, but only one with
 
980
   the same language and content descriptor.
 
981
 
 
982
 
 
983
4.11.   Comments
 
984
 
 
985
   This frame replaces the old 30-character comment field in ID3v1. It
 
986
   consists of a frame head followed by encoding, language and content
 
987
   descriptors and is ended with the actual comment as a text string.
 
988
   Newline characters are allowed in the comment text string. There may
 
989
   be more than one comment frame in each tag, but only one with the same
 
990
   language and content descriptor.
 
991
 
 
992
     Comment                   "COM"
 
993
     Frame size                $xx xx xx
 
994
     Text encoding             $xx
 
995
     Language                  $xx xx xx
 
996
     Short content description <textstring> $00 (00)
 
997
     The actual text           <textstring>
 
998
 
 
999
 
 
1000
4.12.   Relative volume adjustment
 
1001
 
 
1002
   This is a more subjective function than the previous ones. It allows
 
1003
   the user to say how much he wants to increase/decrease the volume on
 
1004
   each channel while the file is played. The purpose is to be able to
 
1005
   align all files to a reference volume, so that you don't have to
 
1006
   change the volume constantly. This frame may also be used to balance
 
1007
   adjust the audio. If the volume peak levels are known then this could
 
1008
   be described with the 'Peak volume right' and 'Peak volume left'
 
1009
   field. If Peakvolume is not known these fields could be left zeroed
 
1010
   or completely omitted.  There may only be one "RVA" frame in each
 
1011
   tag.
 
1012
 
 
1013
     Relative volume adjustment    "RVA"
 
1014
     Frame size                    $xx xx xx
 
1015
     Increment/decrement           %000000xx
 
1016
     Bits used for volume descr.   $xx
 
1017
     Relative volume change, right $xx xx (xx ...)
 
1018
     Relative volume change, left  $xx xx (xx ...)
 
1019
     Peak volume right             $xx xx (xx ...)
 
1020
     Peak volume left              $xx xx (xx ...)
 
1021
 
 
1022
   In the increment/decrement field bit 0 is used to indicate the right
 
1023
   channel and bit 1 is used to indicate the left channel. 1 is
 
1024
   increment and 0 is decrement.
 
1025
 
 
1026
   The 'bits used for volume description' field is normally $10 (16 bits)
 
1027
   for MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not
 
1028
   be $00. The volume is always represented with whole bytes, padded in
 
1029
   the beginning (highest bits) when 'bits used for volume description'
 
1030
   is not a multiple of eight.
 
1031
 
 
1032
 
 
1033
4.13.   Equalisation
 
1034
 
 
1035
   This is another subjective, alignment frame. It allows the user to
 
1036
   predefine an equalisation curve within the audio file. There may only
 
1037
   be one "EQU" frame in each tag.
 
1038
 
 
1039
     Equalisation       "EQU"
 
1040
     Frame size         $xx xx xx
 
1041
     Adjustment bits    $xx
 
1042
 
 
1043
   The 'adjustment bits' field defines the number of bits used for
 
1044
   representation of the adjustment. This is normally $10 (16 bits) for
 
1045
   MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not be
 
1046
   $00.
 
1047
 
 
1048
   This is followed by 2 bytes + ('adjustment bits' rounded up to the
 
1049
   nearest byte) for every equalisation band in the following format,
 
1050
   giving a frequency range of 0 - 32767Hz:
 
1051
 
 
1052
     Increment/decrement   %x (MSB of the Frequency)
 
1053
     Frequency             (lower 15 bits)
 
1054
     Adjustment            $xx (xx ...)
 
1055
 
 
1056
   The increment/decrement bit is 1 for increment and 0 for decrement.
 
1057
   The equalisation bands should be ordered increasingly with reference
 
1058
   to frequency. All frequencies don't have to be declared. Adjustments
 
1059
   with the value $00 should be omitted. A frequency should only be
 
1060
   described once in the frame.
 
1061
 
 
1062
 
 
1063
4.14.   Reverb
 
1064
 
 
1065
   Yet another subjective one. You may here adjust echoes of different
 
1066
   kinds. Reverb left/right is the delay between every bounce in ms.
 
1067
   Reverb bounces left/right is the number of bounces that should be
 
1068
   made. $FF equals an infinite number of bounces. Feedback is the amount
 
1069
   of volume that should be returned to the next echo bounce. $00 is 0%,
 
1070
   $FF is 100%. If this value were $7F, there would be 50% volume
 
1071
   reduction on the first bounce, yet 50% on the second and so on. Left
 
1072
   to left means the sound from the left bounce to be played in the left
 
1073
   speaker, while left to right means sound from the left bounce to be
 
1074
   played in the right speaker.
 
1075
 
 
1076
   'Premix left to right' is the amount of left sound to be mixed in the
 
1077
   right before any reverb is applied, where $00 id 0% and $FF is 100%.
 
1078
   'Premix right to left' does the same thing, but right to left. Setting
 
1079
   both premix to $FF would result in a mono output (if the reverb is
 
1080
   applied symmetric). There may only be one "REV" frame in each tag.
 
1081
 
 
1082
     Reverb settings                  "REV"
 
1083
     Frame size                       $00 00 0C
 
1084
     Reverb left (ms)                 $xx xx
 
1085
     Reverb right (ms)                $xx xx
 
1086
     Reverb bounces, left             $xx
 
1087
     Reverb bounces, right            $xx
 
1088
     Reverb feedback, left to left    $xx
 
1089
     Reverb feedback, left to right   $xx
 
1090
     Reverb feedback, right to right  $xx
 
1091
     Reverb feedback, right to left   $xx
 
1092
     Premix left to right             $xx
 
1093
     Premix right to left             $xx
 
1094
 
 
1095
 
 
1096
4.15.   Attached picture
 
1097
 
 
1098
   This frame contains a picture directly related to the audio file.
 
1099
   Image format is preferably "PNG" [PNG] or "JPG" [JFIF]. Description
 
1100
   is a short description of the picture, represented as a terminated
 
1101
   textstring. The description has a maximum length of 64 characters,
 
1102
   but may be empty. There may be several pictures attached to one file,
 
1103
   each in their individual "PIC" frame, but only one with the same
 
1104
   content descriptor. There may only be one picture with the picture
 
1105
   type declared as picture type $01 and $02 respectively. There is a
 
1106
   possibility to put only a link to the image file by using the 'image
 
1107
   format' "-->" and having a complete URL [URL] instead of picture data.
 
1108
   The use of linked files should however be used restrictively since
 
1109
   there is the risk of separation of files.
 
1110
 
 
1111
     Attached picture   "PIC"
 
1112
     Frame size         $xx xx xx
 
1113
     Text encoding      $xx
 
1114
     Image format       $xx xx xx
 
1115
     Picture type       $xx
 
1116
     Description        <textstring> $00 (00)
 
1117
     Picture data       <binary data>
 
1118
 
 
1119
 
 
1120
   Picture type:  $00  Other
 
1121
                  $01  32x32 pixels 'file icon' (PNG only)
 
1122
                  $02  Other file icon
 
1123
                  $03  Cover (front)
 
1124
                  $04  Cover (back)
 
1125
                  $05  Leaflet page
 
1126
                  $06  Media (e.g. lable side of CD)
 
1127
                  $07  Lead artist/lead performer/soloist
 
1128
                  $08  Artist/performer
 
1129
                  $09  Conductor
 
1130
                  $0A  Band/Orchestra
 
1131
                  $0B  Composer
 
1132
                  $0C  Lyricist/text writer
 
1133
                  $0D  Recording Location
 
1134
                  $0E  During recording
 
1135
                  $0F  During performance
 
1136
                  $10  Movie/video screen capture
 
1137
                  $11  A bright coloured fish
 
1138
                  $12  Illustration
 
1139
                  $13  Band/artist logotype
 
1140
                  $14  Publisher/Studio logotype
 
1141
 
 
1142
 
 
1143
4.16.   General encapsulated object
 
1144
 
 
1145
   In this frame any type of file can be encapsulated. After the header,
 
1146
   'Frame size' and 'Encoding' follows 'MIME type' [MIME] and 'Filename'
 
1147
   for the encapsulated object, both represented as terminated strings
 
1148
   encoded with ISO 8859-1 [ISO-8859-1]. The filename is case sensitive.
 
1149
   Then follows a content description as terminated string, encoded as
 
1150
   'Encoding'. The last thing in the frame is the actual object. The
 
1151
   first two strings may be omitted, leaving only their terminations.
 
1152
   MIME type is always an ISO-8859-1 text string. There may be more than
 
1153
   one "GEO" frame in each tag, but only one with the same content
 
1154
   descriptor.
 
1155
 
 
1156
     General encapsulated object "GEO"
 
1157
     Frame size                  $xx xx xx
 
1158
     Text encoding               $xx
 
1159
     MIME type                   <textstring> $00
 
1160
     Filename                    <textstring> $00 (00)
 
1161
     Content description         <textstring> $00 (00)
 
1162
     Encapsulated object         <binary data>
 
1163
 
 
1164
 
 
1165
4.17.   Play counter
 
1166
 
 
1167
   This is simply a counter of the number of times a file has been
 
1168
   played. The value is increased by one every time the file begins to
 
1169
   play. There may only be one "CNT" frame in each tag. When the counter
 
1170
   reaches all one's, one byte is inserted in front of the counter thus
 
1171
   making the counter eight bits bigger.  The counter must be at least
 
1172
   32-bits long to begin with.
 
1173
 
 
1174
     Play counter   "CNT"
 
1175
     Frame size     $xx xx xx
 
1176
     Counter        $xx xx xx xx (xx ...)
 
1177
 
 
1178
 
 
1179
4.18.   Popularimeter
 
1180
 
 
1181
   The purpose of this frame is to specify how good an audio file is.
 
1182
   Many interesting applications could be found to this frame such as a
 
1183
   playlist that features better audiofiles more often than others or it
 
1184
   could be used to profile a persons taste and find other 'good' files
 
1185
   by comparing people's profiles. The frame is very simple. It contains
 
1186
   the email address to the user, one rating byte and a four byte play
 
1187
   counter, intended to be increased with one for every time the file is
 
1188
   played. The email is a terminated string. The rating is 1-255 where
 
1189
   1 is worst and 255 is best. 0 is unknown. If no personal counter is
 
1190
   wanted it may be omitted.  When the counter reaches all one's, one
 
1191
   byte is inserted in front of the counter thus making the counter
 
1192
   eight bits bigger in the same away as the play counter ("CNT").
 
1193
   There may be more than one "POP" frame in each tag, but only one with
 
1194
   the same email address.
 
1195
   
 
1196
     Popularimeter   "POP"
 
1197
     Frame size      $xx xx xx
 
1198
     Email to user   <textstring> $00
 
1199
     Rating          $xx
 
1200
     Counter         $xx xx xx xx (xx ...)
 
1201
 
 
1202
 
 
1203
4.19.   Recommended buffer size
 
1204
 
 
1205
   Sometimes the server from which a audio file is streamed is aware of
 
1206
   transmission or coding problems resulting in interruptions in the
 
1207
   audio stream. In these cases, the size of the buffer can be
 
1208
   recommended by the server using this frame. If the 'embedded info
 
1209
   flag' is true (1) then this indicates that an ID3 tag with the
 
1210
   maximum size described in 'Buffer size' may occur in the audiostream.
 
1211
   In such case the tag should reside between two MPEG [MPEG] frames, if
 
1212
   the audio is MPEG encoded. If the position of the next tag is known,
 
1213
   'offset to next tag' may be used. The offset is calculated from the
 
1214
   end of tag in which this frame resides to the first byte of the header
 
1215
   in the next. This field may be omitted. Embedded tags is currently not
 
1216
   recommended since this could render unpredictable behaviour from
 
1217
   present software/hardware. The 'Buffer size' should be kept to a
 
1218
   minimum. There may only be one "BUF" frame in each tag.
 
1219
 
 
1220
     Recommended buffer size   "BUF"
 
1221
     Frame size                $xx xx xx
 
1222
     Buffer size               $xx xx xx
 
1223
     Embedded info flag        %0000000x
 
1224
     Offset to next tag        $xx xx xx xx
 
1225
 
 
1226
 
 
1227
4.20.   Encrypted meta frame
 
1228
 
 
1229
   This frame contains one or more encrypted frames. This enables
 
1230
   protection of copyrighted information such as pictures and text, that
 
1231
   people might want to pay extra for. Since standardisation of such an
 
1232
   encryption scheme is beyond this document, all "CRM" frames begin with
 
1233
   a terminated string with a URL [URL] containing an email address, or a
 
1234
   link to a location where an email adress can be found, that belongs to
 
1235
   the organisation responsible for this specific encrypted meta frame.
 
1236
 
 
1237
   Questions regarding the encrypted frame should be sent to the
 
1238
   indicated email address. If a $00 is found directly after the 'Frame
 
1239
   size', the whole frame should be ignored, and preferably be removed.
 
1240
   The 'Owner identifier' is then followed by a short content description
 
1241
   and explanation as to why it's encrypted. After the
 
1242
   'content/explanation' description, the actual encrypted block follows.
 
1243
 
 
1244
   When an ID3v2 decoder encounters a "CRM" frame, it should send the
 
1245
   datablock to the 'plugin' with the corresponding 'owner identifier'
 
1246
   and expect to receive either a datablock with one or several ID3v2
 
1247
   frames after each other or an error. There may be more than one "CRM"
 
1248
   frames in a tag, but only one with the same 'owner identifier'.
 
1249
 
 
1250
     Encrypted meta frame  "CRM"
 
1251
     Frame size            $xx xx xx
 
1252
     Owner identifier      <textstring> $00 (00)
 
1253
     Content/explanation   <textstring> $00 (00)
 
1254
     Encrypted datablock   <binary data>
 
1255
 
 
1256
 
 
1257
4.21.   Audio encryption
 
1258
 
 
1259
   This frame indicates if the actual audio stream is encrypted, and by
 
1260
   whom. Since standardisation of such encrypion scheme is beyond this
 
1261
   document, all "CRA" frames begin with a terminated string with a
 
1262
   URL containing an email address, or a link to a location where an
 
1263
   email address can be found, that belongs to the organisation
 
1264
   responsible for this specific encrypted audio file. Questions
 
1265
   regarding the encrypted audio should be sent to the email address
 
1266
   specified. If a $00 is found directly after the 'Frame size' and the
 
1267
   audiofile indeed is encrypted, the whole file may be considered
 
1268
   useless.
 
1269
 
 
1270
   After the 'Owner identifier', a pointer to an unencrypted part of the
 
1271
   audio can be specified. The 'Preview start' and 'Preview length' is
 
1272
   described in frames. If no part is unencrypted, these fields should be
 
1273
   left zeroed. After the 'preview length' field follows optionally a
 
1274
   datablock required for decryption of the audio. There may be more than
 
1275
   one "CRA" frames in a tag, but only one with the same 'Owner
 
1276
   identifier'.
 
1277
 
 
1278
     Audio encryption   "CRA"
 
1279
     Frame size         $xx xx xx
 
1280
     Owner identifier   <textstring> $00 (00)
 
1281
     Preview start      $xx xx
 
1282
     Preview length     $xx xx
 
1283
     Encryption info    <binary data>
 
1284
 
 
1285
 
 
1286
4.22.   Linked information
 
1287
 
 
1288
   To keep space waste as low as possible this frame may be used to link
 
1289
   information from another ID3v2 tag that might reside in another audio
 
1290
   file or alone in a binary file. It is recommended that this method is
 
1291
   only used when the files are stored on a CD-ROM or other circumstances
 
1292
   when the risk of file seperation is low. The frame contains a frame
 
1293
   identifier, which is the frame that should be linked into this tag, a
 
1294
   URL [URL] field, where a reference to the file where the frame is
 
1295
   given, and additional ID data, if needed. Data should be retrieved
 
1296
   from the first tag found in the file to which this link points. There
 
1297
   may be more than one "LNK" frame in a tag, but only one with the same
 
1298
   contents. A linked frame is to be considered as part of the tag and
 
1299
   has the same restrictions as if it was a physical part of the tag
 
1300
   (i.e. only one "REV" frame allowed, whether it's linked or not).
 
1301
   
 
1302
     Linked information  "LNK"
 
1303
     Frame size          $xx xx xx
 
1304
     Frame identifier    $xx xx xx
 
1305
     URL                 <textstring> $00 (00)
 
1306
     Additional ID data  <textstring(s)>
 
1307
   
 
1308
   Frames that may be linked and need no additional data are "IPL",
 
1309
   "MCI", "ETC", "LLT", "STC", "RVA", "EQU", "REV", "BUF", the text
 
1310
   information frames and the URL link frames.
 
1311
   
 
1312
   The "TXX", "PIC", "GEO", "CRM" and "CRA" frames may be linked with the
 
1313
   content descriptor as additional ID data.
 
1314
   
 
1315
   The "COM", "SLT" and "ULT" frames may be linked with three bytes of
 
1316
   language descriptor directly followed by a content descriptor as
 
1317
   additional ID data.
 
1318
 
 
1319
 
 
1320
5.   The 'unsynchronisation scheme'
 
1321
 
 
1322
   The only purpose of the 'unsychronisation scheme' is to make the ID3v2
 
1323
   tag as compatible as possible with existing software. There is no use
 
1324
   in 'unsynchronising' tags if the file is only to be processed by new
 
1325
   software. Unsynchronisation may only be made with MPEG 2 layer I, II
 
1326
   and III and MPEG 2.5 files.
 
1327
 
 
1328
   Whenever a false synchronisation is found within the tag, one zeroed
 
1329
   byte is inserted after the first false synchronisation byte. The
 
1330
   format of a correct sync that should be altered by ID3 encoders is as
 
1331
   follows:
 
1332
 
 
1333
         %11111111 111xxxxx
 
1334
 
 
1335
   And should be replaced with:
 
1336
 
 
1337
         %11111111 00000000 111xxxxx
 
1338
 
 
1339
   This has the side effect that all $FF 00 combinations have to be
 
1340
   altered, so they won't be affected by the decoding process. Therefore
 
1341
   all the $FF 00 combinations have to be replaced with the $FF 00 00
 
1342
   combination during the unsynchonisation.
 
1343
 
 
1344
   To indicate usage of the unsynchronisation, the first bit in 'ID3
 
1345
   flags' should be set. This bit should only be set if the tag
 
1346
   contained a, now corrected, false synchronisation. The bit should
 
1347
   only be clear if the tag does not contain any false synchronisations.
 
1348
   
 
1349
   Do bear in mind, that if a compression scheme is used by the encoder,
 
1350
   the unsyncronisation scheme should be applied *afterwards*. When
 
1351
   decoding a compressed, 'unsyncronised' file, the 'unsyncronisation
 
1352
   scheme' should be parsed first, compression afterwards.
 
1353
 
 
1354
 
 
1355
6.   Copyright
 
1356
 
 
1357
   Copyright (C) Martin Nilsson 1998. All Rights Reserved.
 
1358
 
 
1359
   This document and translations of it may be copied and furnished to
 
1360
   others, and derivative works that comment on or otherwise explain it
 
1361
   or assist in its implementation may be prepared, copied, published
 
1362
   and distributed, in whole or in part, without restriction of any
 
1363
   kind, provided that a reference to this document is included on all
 
1364
   such copies and derivative works. However, this document itself may
 
1365
   not be modified in any way and reissued as the original document.
 
1366
 
 
1367
   The limited permissions granted above are perpetual and will not be
 
1368
   revoked.
 
1369
 
 
1370
   This document and the information contained herein is provided on an
 
1371
   "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR
 
1372
   IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
 
1373
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
 
1374
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
1375
 
 
1376
 
 
1377
7.   References
 
1378
 
 
1379
   [CDDB] Compact Disc Data Base
 
1380
 
 
1381
      <url:http://www.cddb.com>
 
1382
 
 
1383
   [ISO-639-2] ISO/FDIS 639-2.
 
1384
   Codes for the representation of names of languages, Part 2: Alpha-3
 
1385
   code. Technical committee / subcommittee: TC 37 / SC 2
 
1386
 
 
1387
   [ISO-8859-1] ISO/IEC DIS 8859-1.
 
1388
   8-bit single-byte coded graphic character sets, Part 1: Latin
 
1389
   alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2
 
1390
 
 
1391
   [ISRC] ISO 3901:1986
 
1392
   International Standard Recording Code (ISRC).
 
1393
   Technical committee / subcommittee: TC 46 / SC 9
 
1394
 
 
1395
   [JFIF] JPEG File Interchange Format, version 1.02
 
1396
 
 
1397
      <url:http://www.w3.org/Graphics/JPEG/jfif.txt>
 
1398
      
 
1399
   [MIME] Freed, N.  and N. Borenstein,  "Multipurpose Internet Mail
 
1400
   Extensions (MIME) Part One: Format of Internet Message Bodies",
 
1401
   RFC 2045, November 1996.
 
1402
 
 
1403
      <url:ftp://ftp.isi.edu/in-notes/rfc2045.txt>
 
1404
      
 
1405
   [MPEG] ISO/IEC 11172-3:1993.
 
1406
   Coding of moving pictures and associated audio for digital storage
 
1407
   media at up to about 1,5 Mbit/s, Part 3: Audio.
 
1408
   Technical committee / subcommittee: JTC 1 / SC 29
 
1409
   and   
 
1410
   ISO/IEC 13818-3:1995
 
1411
   Generic coding of moving pictures and associated audio information,
 
1412
   Part 3: Audio.
 
1413
   Technical committee / subcommittee: JTC 1 / SC 29
 
1414
   and   
 
1415
   ISO/IEC DIS 13818-3
 
1416
   Generic coding of moving pictures and associated audio information,
 
1417
   Part 3: Audio (Revision of ISO/IEC 13818-3:1995)
 
1418
 
 
1419
 
 
1420
   [PNG] Portable Network Graphics, version 1.0
 
1421
 
 
1422
      <url:http://www.w3.org/TR/REC-png-multi.html>
 
1423
 
 
1424
   [UNICODE] ISO/IEC 10646-1:1993.
 
1425
   Universal Multiple-Octet Coded Character Set (UCS), Part 1:
 
1426
   Architecture and Basic Multilingual Plane. Technical committee
 
1427
   / subcommittee: JTC 1 / SC 2
 
1428
 
 
1429
      <url:http://www.unicode.org>
 
1430
 
 
1431
   [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource
 
1432
   Locators (URL).", RFC 1738, December 1994.
 
1433
 
 
1434
      <url:ftp://ftp.isi.edu/in-notes/rfc1738.txt>
 
1435
 
 
1436
 
 
1437
8.   Appendix
 
1438
 
 
1439
 
 
1440
A.   Appendix A - ID3-Tag Specification V1.1
 
1441
 
 
1442
   ID3-Tag Specification V1.1 (12 dec 1997) by Michael Mutschler
 
1443
   <amiga2@info2.rus.uni-stuttgart.de>, edited for space and clarity
 
1444
   reasons.
 
1445
 
 
1446
 
 
1447
A.1.   Overview
 
1448
 
 
1449
   The ID3-Tag is an information field for MPEG Layer 3 audio files.
 
1450
   Since a standalone MP3 doesn't provide a method of storing other
 
1451
   information than those directly needed for replay reasons, the
 
1452
   ID3-tag was invented by Eric Kemp in 1996.
 
1453
 
 
1454
   A revision from ID3v1 to ID3v1.1 was made by Michael Mutschler to
 
1455
   support track number information is described in A.4.
 
1456
 
 
1457
 
 
1458
A.2.   ID3v1 Implementation
 
1459
 
 
1460
   The Information is stored in the last 128 bytes of an MP3. The Tag
 
1461
   has got the following fields, and the offsets given here, are from
 
1462
   0-127.
 
1463
 
 
1464
     Field      Length    Offsets
 
1465
     Tag        3           0-2
 
1466
     Songname   30          3-32
 
1467
     Artist     30         33-62
 
1468
     Album      30         63-92
 
1469
     Year       4          93-96
 
1470
     Comment    30         97-126
 
1471
     Genre      1           127
 
1472
 
 
1473
 
 
1474
   The string-fields contain ASCII-data, coded in ISO-Latin 1 codepage.
 
1475
   Strings which are smaller than the field length are padded with zero-
 
1476
   bytes.
 
1477
 
 
1478
     Tag: The tag is valid if this field contains the string "TAG". This
 
1479
        has to be uppercase!
 
1480
 
 
1481
     Songname: This field contains the title of the MP3 (string as
 
1482
        above).
 
1483
 
 
1484
     Artist: This field contains the artist of the MP3 (string as above).
 
1485
 
 
1486
     Album: this field contains the album where the MP3 comes from
 
1487
        (string as above).
 
1488
 
 
1489
     Year: this field contains the year when this song has originally
 
1490
        been released (string as above).
 
1491
 
 
1492
     Comment: this field contains a comment for the MP3 (string as
 
1493
        above). Revision to this field has been made in ID3v1.1. See
 
1494
        A.4.
 
1495
 
 
1496
     Genre: this byte contains the offset of a genre in a predefined
 
1497
        list the byte is treated as an unsigned byte. The offset is
 
1498
        starting from 0. See A.3.
 
1499
 
 
1500
 
 
1501
A.3.   Genre List
 
1502
 
 
1503
   The following genres is defined in ID3v1 
 
1504
 
 
1505
      0.Blues
 
1506
      1.Classic Rock
 
1507
      2.Country
 
1508
      3.Dance
 
1509
      4.Disco
 
1510
      5.Funk
 
1511
      6.Grunge
 
1512
      7.Hip-Hop
 
1513
      8.Jazz
 
1514
      9.Metal
 
1515
     10.New Age
 
1516
     11.Oldies
 
1517
     12.Other
 
1518
     13.Pop
 
1519
     14.R&B
 
1520
     15.Rap
 
1521
     16.Reggae
 
1522
     17.Rock
 
1523
     18.Techno
 
1524
     19.Industrial
 
1525
     20.Alternative
 
1526
     21.Ska
 
1527
     22.Death Metal
 
1528
     23.Pranks
 
1529
     24.Soundtrack
 
1530
     25.Euro-Techno
 
1531
     26.Ambient
 
1532
     27.Trip-Hop
 
1533
     28.Vocal
 
1534
     29.Jazz+Funk
 
1535
     30.Fusion
 
1536
     31.Trance
 
1537
     32.Classical
 
1538
     33.Instrumental
 
1539
     34.Acid
 
1540
     35.House
 
1541
     36.Game
 
1542
     37.Sound Clip
 
1543
     38.Gospel
 
1544
     39.Noise
 
1545
     40.AlternRock
 
1546
     41.Bass
 
1547
     42.Soul
 
1548
     43.Punk
 
1549
     44.Space
 
1550
     45.Meditative
 
1551
     46.Instrumental Pop
 
1552
     47.Instrumental Rock
 
1553
     48.Ethnic
 
1554
     49.Gothic
 
1555
     50.Darkwave
 
1556
     51.Techno-Industrial
 
1557
     52.Electronic
 
1558
     53.Pop-Folk
 
1559
     54.Eurodance
 
1560
     55.Dream
 
1561
     56.Southern Rock
 
1562
     57.Comedy
 
1563
     58.Cult
 
1564
     59.Gangsta
 
1565
     60.Top 40
 
1566
     61.Christian Rap
 
1567
     62.Pop/Funk
 
1568
     63.Jungle
 
1569
     64.Native American
 
1570
     65.Cabaret
 
1571
     66.New Wave
 
1572
     67.Psychadelic
 
1573
     68.Rave
 
1574
     69.Showtunes
 
1575
     70.Trailer
 
1576
     71.Lo-Fi
 
1577
     72.Tribal
 
1578
     73.Acid Punk
 
1579
     74.Acid Jazz
 
1580
     75.Polka
 
1581
     76.Retro
 
1582
     77.Musical
 
1583
     78.Rock & Roll
 
1584
     79.Hard Rock
 
1585
     
 
1586
   The following genres are Winamp extensions
 
1587
     
 
1588
     80.Folk
 
1589
     81.Folk-Rock
 
1590
     82.National Folk
 
1591
     83.Swing
 
1592
     84.Fast Fusion
 
1593
     85.Bebob
 
1594
     86.Latin
 
1595
     87.Revival
 
1596
     88.Celtic
 
1597
     89.Bluegrass
 
1598
     90.Avantgarde
 
1599
     91.Gothic Rock
 
1600
     92.Progressive Rock
 
1601
     93.Psychedelic Rock
 
1602
     94.Symphonic Rock
 
1603
     95.Slow Rock
 
1604
     96.Big Band
 
1605
     97.Chorus
 
1606
     98.Easy Listening
 
1607
     99.Acoustic
 
1608
    100.Humour
 
1609
    101.Speech
 
1610
    102.Chanson
 
1611
    103.Opera
 
1612
    104.Chamber Music
 
1613
    105.Sonata
 
1614
    106.Symphony
 
1615
    107.Booty Bass
 
1616
    108.Primus
 
1617
    109.Porn Groove
 
1618
    110.Satire
 
1619
    111.Slow Jam
 
1620
    112.Club
 
1621
    113.Tango
 
1622
    114.Samba
 
1623
    115.Folklore
 
1624
    116.Ballad
 
1625
    117.Power Ballad
 
1626
    118.Rhythmic Soul
 
1627
    119.Freestyle
 
1628
    120.Duet
 
1629
    121.Punk Rock
 
1630
    122.Drum Solo
 
1631
    123.A capella
 
1632
    124.Euro-House
 
1633
    125.Dance Hall
 
1634
 
 
1635
 
 
1636
A.4.   Track addition - ID3v1.1
 
1637
 
 
1638
   In ID3v1.1, Michael Mutschler revised the specification of the
 
1639
   comment field in order to implement the track number. The new format
 
1640
   of the comment field is a 28 character string followed by a mandatory
 
1641
   null ($00) character and the original album tracknumber stored as an
 
1642
   unsigned byte-size integer. In such cases where the 29th byte is not
 
1643
   the null character or when the 30th is a null character, the
 
1644
   tracknumber is to be considered undefined.
 
1645
 
 
1646
 
 
1647
9.   Author's Address
 
1648
 
 
1649
   Martin Nilsson
 
1650
   Rydsv�gen 246 C. 30
 
1651
   S-584 34 Link�ping
 
1652
   Sweden
 
1653
 
 
1654
   Email: nilsson@id3.org
 
1655
 
 
1656
   Co-authors:
 
1657
 
 
1658
   Johan Sundstr�m   Email: johan@id3.org
 
1659
 
 
1660