Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

Rated
Read 50,168 times

Related Categories

MP3 Tag information

The Windows Media Player provides an easy, quick way to drop MP3
capability into a Visual Basic application. However, once you have
an MP3, you may have wondered how to read information about the song,
such as the song title and artist's name. If the MP3 file uses the
most popular tag encryption, ID3, then you're in luck. This standard
stores the Tag information in the last 128 bytes of the file
(Tag:3, Title:30, Artist:30, Album:30, Year:4, Comment:30, Genre:1)

To read this information, first open the MP3 file and grab the last
128 bytes. With ID3, the first three slots hold the string TAG if the
file actually contains information. If the file does contain Tag
information, store the last 128 bytes in a custom variable. After that,
cycle through the MP3 file, extracting information as you go. The
following procedure shows the code that extracts this information as
well as creates several important variables to use later on:

Option Explicit
Private Type TagInfo
    Tag As String * 3
    Songname As String * 30
    artist As String * 30
    album As String * 30
    year As String * 4
    comment As String * 30
    genre As String * 1
End Type

Dim FileName As String
Dim CurrentTag As TagInfo

Private Sub Form1_Load()
Dim temp As String
On Error Resume Next

FileName = App.Path & "myMP3.mp3"   
Open FileName For Binary As #1
With CurrentTag
    Get #1, FileLen(FileName) - 127, .Tag
    If Not .Tag = "TAG" Then
        label8.Caption = "No tag"
        Close #1
        Exit Sub
    End If
    Get #1, , .Songname
    Get #1, , .artist
    Get #1, , .album
    Get #1, , .year
    Get #1, , .comment
    Get #1, , .genre
    Close #1

    txtTitle = RTrim(.Songname)
    txtArtist = RTrim(.artist)
    txtAlbum = RTrim(.album)
    txtYear = RTrim(.year)
    txtComment = RTrim(.comment)

    Temp = RTrim(.genre)
    txtGenreCode = Asc(Temp)
    Combo1.ListIndex = CInt(txtGenreCode) - 1
End With
End Sub


Notice that the code has to handle the genre character a little
differently. That's because ID3 stores this data as a single ASCII
character. To match up the actual number with its corresponding
description--say contained in a combobox--the procedure converts the
ASCII to a number, and then looks up that number in the combobox.

© 2001 Element K Journals, a division of Element K Press LLC ("Element K"). Element K and the Element K logo are trademarks of Element K LLC

Comments

  • Re: [114] MP3 Tag information

    Posted by Burger2227 on 06 Jun 2008

    Why is Tag included in the TYPE definition? It would appear to me that once Tag = "TAG" then you could use one GET to gather the other information using the Type variable DIMen...

  • Write Id3v1/id3v2 Tags

    Posted by VBCool on 14 Mar 2004

    Here you can find something

    http://members.a1.net/pasce/index.htm

  • Read/Write Id3v1/Id3v2 Tags

    Posted by VBCool on 14 Mar 2004

    hi!

    http://members.a1.net/pasce/index.htm

    here you find something to read & write Id3v1/Id3v2 Tags!

    mfg VBCool


  • MP3 Reading

    Posted by §¥Ñ©®ÕÑ¥ZË on 09 Dec 2003

    Thanks thats an excellent article and works well...

    I would like two supplementals:
    The first on how to read mp3 quality information 192kb/s etc
    The second on how to write this data back out to...

  • Posted by Slafs on 13 Jun 2003

    [quote][1]Posted by [b]rama_ii[/b] on 9 Sep 2002 07:08 PM[/1]
    I had the same problem with id3v2 tag. Maybe this URL will help you:
    http://id3lib.sourceforge.net/
    [/quote]
    Did you get it to work? T...