Loading ...
Sorry, an error occurred while loading the content.

ID3 Tag Format

Expand Messages
  • Zach
    After countless seconds of searching I found the ID3 tag format. I am sure most people have this but I figured I post it here just as a reference point. The
    Message 1 of 3 , May 26, 2001
    • 0 Attachment
      After countless seconds of searching I found the ID3 tag format. I am
      sure most people have this but I figured I post it here just as a
      reference point.

      The ID3 tag begins at 128 bytes from the end of the file and has the
      following format. All byte positions are referenced from 128 bytes
      from the end of the file.

      Byte Position:
      0-2 : "TAG" <- Indicates it has ID3 tag. If this isn't there, there
      is no tag.

      3-32 : Track Name
      33-62 : Artist Name
      63-92 : Album Name
      93-96 : Year
      97-126 : Comment
      127 : Genre (See Below)

      Here is the genre list although I doubt we would use it:

      Byte Description
      ---------------------
      00 - Blues
      01 - Classic Rock
      02 - Country
      03 - Dance
      04 - Disco
      05 - Funk
      06 - Grunge
      07 - Hip-Hop
      08 - Jazz
      09 - Metal
      10 - New Age
      11 - Oldies
      12 - Other
      13 - Pop
      14 - R&B
      15 - Rap
      16 - Reggae
      17 - Rock
      18 - Techno
      19 - Industrial
      20 - Alternative
      21 - Ska
      22 - Death Metal
      23 - Pranks
      24 - Soundtrack
      25 - Euro-Techno
      26 - Ambient
      27 - Trip-Hop
      28 - Vocal
      29 - Jazz+Funk
      30 - Fusion
      31 - Trance
      32 - Classical
      33 - Instrumental
      34 - Acid
      35 - House
      36 - Game
      37 - Sound Clip
      38 - Gospel
      39 - Noise
      40 - Alternative Rock
      41 - Bass
      42 - Soul
      43 - Punk
      44 - Space
      45 - Meditative
      46 - Instrumental Pop
      47 - Instrumental Rock
      48 - Ethnic
      49 - Gothic
      50 - Darkwave
      51 - Techno-Industrial
      52 - Electronic
      53 - Pop-Folk
      54 - Eurodance
      55 - Dream
      56 - Southern Rock
      57 - Comedy
      58 - Cult
      59 - Gangsta
      60 - Top 40
      61 - Christian Rap
      62 - Pop/Funk
      63 - Jungle
      64 - Native US
      65 - Cabaret
      66 - New Wave
      67 - Psychadelic
      68 - Rave
      69 - Showtunes
      70 - Trailer
      71 - Lo-Fi
      72 - Tribal
      73 - Acid Punk
      74 - Acid Jazz
      75 - Polka
      76 - Retro
      77 - Musical
      78 - Rock & Roll
      79 - Hard Rock
      Added on December 12, 1997 in cooperation with Winamp:
      80 - Folk
      81 - Folk-Rock
      82 - National Folk
      83 - Swing
      84 - Fast Fusion
      85 - Bebob
      86 - Latin
      87 - Revival
      88 - Celtic
      89 - Bluegrass
      90 - Avantgarde
      91 - Gothic Rock
      92 - Progressive Rock
      93 - Psychedelic Rock
      94 - Symphonic Rock
      95 - Slow Rock
      96 - Big Band
      97 - Chorus
      98 - Easy Listening
      99 - Acoustic
      100 - Humour
      101 - Speech
      102 - Chanson
      103 - Opera
      104 - Chamber Music
      105 - Sonata
      106 - Symphony
      107 - Booty Bass
      108 - Primus
      109 - Porn Groove
      110 - Satire
      Added on January 26, 1998 to ensure compatibility with Winamp 1.7:
      111 - Slow Jam
      112 - Club
      113 - Tango
      114 - Samba
      115 - Folklore
      Added on April 13, 1998 to ensure compatibility with Winamp 1.90:
      116 - Ballad
      117 - Power Ballad
      118 - Rhytmic Soul
      119 - Freestyle
      120 - Duet
      121 - Punk Rock
      122 - Drum Solo
      123 - Acapella
      124 - Euro-House
      125 - Dance Hall
      126 - Goa
      127 - Drum & Bass
      128 - Club-House
      129 - Hardcore
      130 - Terror
      131 - Indie
      132 - BritPop
      133 - Negerpunk
      134 - Polsk Punk
      135 - Beat
      136 - Christian Gangsta Rap
      137 - Heavy Metal
      138 - Black Metal
      139 - Crossover
      140 - Contemporary Christian
      141 - Christian Rock
      Added on Jun 1, 1998 to ensure compatibility with Winamp 1.91:
      142 - Merengue
      143 - Salsa
      144 - Trash Metal
      145 - Anime
      146 - Jpop
      147 - Synthpop

      Ha ha... Next we could work on the Lyrics3 tags so we can make the
      bouncing ball that follows along with the lyrics on the LCD screen.
      Hmmm... maybe that's more for code realease 0.437.1.1

      -Zach
    • perrychow@yahoo.com
      Hi Zach, Just to let you know, that is the older ID3 version 1.0 and 1.1 style. There is a newer version ID3v1.2 and beyond which starts at the beginning of an
      Message 2 of 3 , May 30, 2001
      • 0 Attachment
        Hi Zach,

        Just to let you know, that is the older ID3 version 1.0 and 1.1 style.
        There is a newer version ID3v1.2 and beyond which starts at the
        beginning of an mp3 file. It begins with the ascii characters "ID3"
        and can contain quite a few fields. It is also variable length, up to
        256Mb I believe. The format allows more than just text info to be
        embedded into the tag.

        I found out the hard way that mp3 songs can contain BOTH tags, and
        parsing the newer version is kind of *wicked*. Good luck.

        Perry

        --- In pjrcmp3@y..., "Zach" <brown.1304@o...> wrote:
        > After countless seconds of searching I found the ID3 tag format. I am
        > sure most people have this but I figured I post it here just as a
        > reference point.
        >
        > The ID3 tag begins at 128 bytes from the end of the file and has the
        > following format. All byte positions are referenced from 128 bytes
        > from the end of the file.
        >

        [ snipped for brevity ]

        > -Zach
      • Paul
        ... style. ... to ... I m glad someone mentioned this. I ve run into it a few times. The new ID3 versions are indeed quite complex, but I m sure it can be
        Message 3 of 3 , Jun 1, 2001
        • 0 Attachment
          > Just to let you know, that is the older ID3 version 1.0 and 1.1
          style.
          > There is a newer version ID3v1.2 and beyond which starts at the
          > beginning of an mp3 file. It begins with the ascii characters "ID3"
          > and can contain quite a few fields. It is also variable length, up
          to
          > 256Mb I believe. The format allows more than just text info to be
          > embedded into the tag.
          >
          > I found out the hard way that mp3 songs can contain BOTH tags, and
          > parsing the newer version is kind of *wicked*. Good luck.

          I'm glad someone mentioned this. I've run into it a few times.
          The new ID3 versions are indeed quite complex, but I'm sure it
          can be done eventually. As I recall, these new versions also
          give some really useful info, like the run length of the file.

          I recall seeing a detailed spec for this format at the beginning
          of the file. I probably saved a copy in my growing collection
          of specs and datasheets... somewhere. If anyone has a link to
          an authoratitive document for ID3v2, please post it.

          I want to do ID3v2 eventually, but in the grand scheme of things,
          a nice caching strategy is probably my top priority, followed by
          playlists and some nice user-interface features on the display.
          By a caching strategy, what I have in mind is playing arbitrarily
          long files (regardless of SIMM size), using all the SIMM even when
          playing small files, and pre-loading the first part of several
          upcoming (and previous) files for rapid response to the buttons
          even when the drive isn't spinning. These things are much more
          important (at least in my mind) than supporting the newer ID3v2
          tags. Of course, if someone writes good code for ID3v2, it'll go
          into the project ASAP :)


          Paul
        Your message has been successfully submitted and would be delivered to recipients shortly.