


This was essentially an MP3 player, so the name is a play on the words ‘MPEG-1 Audio Layer 3’.
As I write this I am listening to the album in the screenshot above, on this player, in a Windows XP virtual machine!
Option Explicit
Dim Fso As New Scripting.FileSystemObject
Dim Con As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim strSQL As String
Dim conStr As String
Public MP3 As New clsID3MP3
Dim INIFile As New clsINI
Dim lastButton As Integer
Dim splPercent As Integer
Dim splSPercent As Integer
Dim i As Long
Function ScanFolder(folderPath As String) As Boolean
'On Error GoTo Err
Dim currFolder As Folder
Dim subFolders As Folders
Dim fileItem As File
Dim folderItem As Folder
Dim allFiles As Files
Dim numFiles As Integer
Set currFolder = Fso.GetFolder(folderPath)
Set subFolders = currFolder.subFolders
Set allFiles = currFolder.Files
frmScan.Show
DoEvents
For Each folderItem In subFolders
ScanFolder (folderItem.path)
Next
For Each fileItem In allFiles
tlbControls.Tag = tlbControls.Tag + 1
Next
ScanFolder = True
Exit Function
Err:
ErrorMsg
ScanFolder = False
End Function
Sub ScanAndAddFiles(folderPath As String)
'On Error GoTo Err
Dim currFolder As Folder
Dim subFolders As Folders
Dim fileItem As File
Dim folderItem As Folder
Dim allFiles As Files
Dim numFiles As Integer
Dim newKey As Integer
Set currFolder = Fso.GetFolder(folderPath)
Set subFolders = currFolder.subFolders
Set allFiles = currFolder.Files
Set Con = New ADODB.Connection
Set Rs = New ADODB.Recordset
conStr = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & Me.Tag
Con.Open conStr
frmScan.lblScan.Caption = "Adding file information to the database..."
For Each folderItem In subFolders
DoEvents
If frmScan.cmdCancel.Tag = 1 Then
MsgBox "Process Aborted. " & tlbControls.Tag & " Files added to the database.", vbCritical, "Aborted"
frmScan.cmdCancel.Tag = 2
Exit Sub
ElseIf frmScan.cmdCancel.Tag = 2 Then
Exit Sub
End If
ScanAndAddFiles (folderItem.path)
Next
For Each fileItem In allFiles
DoEvents
If UCase(Right(fileItem.path, 4)) = ".MP3" Then
'Debug.Print fileItem.Path
MP3.FileName = fileItem.path
'If Mid(MP3.UniqueKey, 6) Then
'If Left(MP3.UniqueKey, 5) = "RCUK#" Then
'code if file has UID
' Debug.Print MP3.FileName
' Else
Mp.FileName = fileItem.path
strSQL = "SELECT DISTINCT Max(Main.iUniqueKey) AS MaxKey FROM Main"
Set Rs = Con.Execute(strSQL)
If IsNull(Rs!maxKey) Then
newKey = 1
Else
newKey = Rs!maxKey + 1
End If
MP3.UniqueKey = "RCUK#" & newKey
If Not MP3.Update(ID3TT_ALL) Then MsgBox "Update failed..."
strSQL = "INSERT INTO Main (File, iUniqueKey, iAlbum, iArtist, iTitle, iGenre, iYear, " & _
"iTrackNo, mLength, mFrames, mMPEGVer, mLayer, mDataRate, mSampleRate, iComment) VALUES ('" & _
Replace(fileItem.path, "'", "~") & "', '" & _
Replace(newKey, "'", "~") & "', '" & _
Replace(MP3.Album, "'", "~") & "', '" & _
Replace(MP3.Artist, "'", "~") & "', '" & _
Replace(MP3.Title, "'", "~") & "', '" & _
Replace(MP3.Genre, "'", "~") & "', '" & _
Replace(MP3.Year, "'", "~") & "', '" & _
Replace(MP3.Track, "'", "~") & "', '" & _
Replace(Mp.TrackLength, "'", "~") & "', '" & _
Replace(Mp.Frames, "'", "~") & "', '" & _
Replace(Mp.MPEGVersion, "'", "~") & "', '" & _
Replace(Mp.Layer, "'", "~") & "', '" & _
Replace(Mp.DataRate, "'", "~") & "', '" & _
Replace(Mp.SampleRate, "'", "~") & "', '" & _
Replace(MP3.Comments, "'", "~") & "')"
Con.Execute strSQL
'Debug.Print strSQL
'Debug.Print "Path = " & fileItem.path
tlbControls.Tag = tlbControls.Tag + 1
DoEvents
frmScan.lblScanVal.Caption = tlbControls.Tag
'End If
End If
frmScan.progScan.Value = frmScan.progScan.Value + 1
Next
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub cmbGenre_GotFocus()
If cmbGenre.ListCount = 0 Then
LoadGenreList
End If
End Sub
Private Sub cmdClear_Click()
Set picAttach.Picture = Nothing
End Sub
Private Sub cmdLoad_Click()
On Error GoTo Err
cmDlg.CancelError = True
' On Error GoTo Err
cmDlg.Filter = "Image Files (*.jpg, *.bmp, *.gif)|*.bmp;*.gif;*.jpg |Icons (*.ico) |*.ico"
cmDlg.InitDir = App.path & "\Images"
cmDlg.ShowOpen
picAttach.Picture = LoadPicture(cmDlg.FileName)
Exit Sub
Err:
Exit Sub
End Sub
Private Sub Form_Load()
'On Error GoTo Err
Dim picPath As String
If RegGetSplitMain = "" Then
splPercent = 30
Else
splPercent = RegGetSplitMain
End If
If RegGetSplitSec = "" Then
splSPercent = 60
Else
splSPercent = RegGetSplitSec
End If
Me.Tag = RegGetDB
If Me.Tag = "" Then
MsgBox "No Database specified. Please specify one in Tools > Options."
Else
LoadDBData
End If
Me.Width = 12120
Me.Height = 8700
Set splitMain.Control1 = trBrowser
Set splitMain.Control2 = splitSec
Set splitSec.Control1 = lstTracks
Set splitSec.Control2 = picID3
splitMain.SplitPercent = splPercent
splitSec.SplitPercent = splSPercent
picPath = RegGetPic
If picPath = "" Then
Exit Sub
Else
lstTracks.Picture = LoadPicture(picPath)
End If
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub Form_Resize()
' tabView.Left = 0
' tabView.Top = picID3.Top
' tabView.Width = Me.Width
' tabView.Height = Me.Height
splitMain.Left = 30
splitMain.Top = 1000
splitMain.Width = Me.Width - 170
If Me.Height - 2070 > 0 Then splitMain.Height = Me.Height - 2070
' splitExp.Width = Me.Width - 200
'If Me.Height - 4000 > 500 Then splitExp.Height = Me.Height - 4000
'If Not RegGetSplitMain = "" Then MsgBox RegGetSplitMain 'splitMain.SplitPercent = RegGetSplitMain
picID3_Resize
End Sub
Private Sub lstFrames_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
lstFrames.SortKey = ColumnHeader.Index - 1
lstFrames.Sorted = True
End Sub
Private Sub lstTracks_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
lstTracks.SortKey = ColumnHeader.Index - 1
lstTracks.Sorted = True
End Sub
Private Sub mnuComp_Click()
'On Error GoTo Err
Dim isComp As Boolean
Dim tmpTreeItem As Integer
tmpTreeItem = trBrowser.SelectedItem.Index
If trBrowser.SelectedItem.Parent = "Album" Then
isComp = True
mnuComp.Checked = True
Else
isComp = False
mnuComp.Checked = False
End If
Set Con = New ADODB.Connection
Set Rs = New ADODB.Recordset
conStr = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & Me.Tag
Con.Open conStr
strSQL = "UPDATE Main SET Main.IsCompilation = " & isComp & " WHERE Main!iAlbum = '" & Right(trBrowser.DropHighlight.Key, Len(trBrowser.DropHighlight.Key) - 3) & "'"
Con.Execute strSQL
Con.Close
LoadDBData
trBrowser.Nodes(tmpTreeItem).EnsureVisible
trBrowser.Nodes(tmpTreeItem).Selected = True
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub mnuNewPlist_Click()
trBrowser.Nodes.Add "Pl", tvwChild, "kPl", "New Playlist", 1, 1
End Sub
Private Sub mnuOptions_Click()
frmOptions.Show
End Sub
Private Sub mnuSearch_Click()
'On Error GoTo Err
Dim folderPath As String
Dim Result As String
Set Fso = CreateObject("Scripting.FileSystemObject")
Result = BrowseForFolder("Please select a folder to scan...", Me)
If Not Result = "" Then
folderPath = Result
Else
Exit Sub
End If
Result = ScanFolder(folderPath)
If Result = False Then Exit Sub
frmScan.progScan.Max = tlbControls.Tag
tlbControls.Tag = 0
ScanAndAddFiles (folderPath)
If frmScan.cmdCancel.Tag = 1 Or frmScan.cmdCancel.Tag = 2 Then
frmScan.lblScan.Caption = "Aborted!"
Else
frmScan.lblScan.Caption = "Complete!"
End If
Con.Close
tlbControls.Tag = 0
frmScan.cmdDone.Enabled = True
Form_Load
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub picID3_Resize()
tabView.Top = 0
tabView.Left = 0
tabView.Width = picID3.Width
If picID3.Height - 100 > 0 Then tabView.Height = picID3.Height - 100
If tabView.Tab = 0 Then
picTag.BorderStyle = 0
picSlider.BorderStyle = 0
picTag.Left = 0
picTag.Top = 0
picSlider.Left = 0
picSlider.Width = picID3.Width - scrTag.Width - 80
picTag.Width = picID3.Width
If picID3.Height - 500 > 0 Then picTag.Height = picID3.Height - 500
scrTag.Top = 0
scrTag.Left = picTag.Width - scrTag.Width - 60
scrTag.Height = picTag.Height
If 8200 - picTag.Height > 0 Then
scrTag.Enabled = True
scrTag.Max = (8200 - picTag.Height) / 10
Else
scrTag.Enabled = False
picSlider.Top = 0
End If
End If
If tabView.Tab = 1 Then
lstFrames.Left = 100
lstFrames.Top = 100
lstFrames.Width = picID3.Width - 250
If picID3.Height - 700 > 0 Then lstFrames.Height = picID3.Height - 700
If tabView.Height < 1000 Then
lstFrames.Visible = False
Else
lstFrames.Visible = True
End If
End If
If tabView.Tab = 2 Then
txtLyrics.Top = 100
txtLyrics.Left = 100
txtLyrics.Width = picID3.Width - 250
If picID3.Height - 700 > 0 Then txtLyrics.Height = picID3.Height - 700
End If
If tabView.Tab = 3 Then
picInfo.BorderStyle = 0
picSlider2.BorderStyle = 0
picInfo.Left = 0
picInfo.Top = 0
picInfo.Width = picID3.Width
If picID3.Height - 500 > 0 Then picInfo.Height = picID3.Height - 500
picSlider2.Left = 0
picSlider2.Width = picID3.Width - scrInfo.Width - 80
scrInfo.Top = 0
scrInfo.Left = picInfo.Width - scrInfo.Width - 60
scrInfo.Height = picInfo.Height
If 3400 - picInfo.Height > 0 Then
scrInfo.Enabled = True
scrInfo.Max = (3400 - picInfo.Height) / 10
Else
scrInfo.Enabled = False
picSlider2.Top = 0
End If
If picID3.Height - 500 > 0 Then picInfo.Height = picID3.Height - 500
End If
End Sub
Private Sub scrInfo_Change()
picSlider2.Top = -scrInfo.Value * 10
End Sub
Private Sub scrInfo_Scroll()
picSlider2.Top = -scrInfo.Value * 10
End Sub
Private Sub scrTag_Change()
picSlider.Top = -scrTag.Value * 10
End Sub
Private Sub scrTag_Scroll()
picSlider.Top = -scrTag.Value * 10
End Sub
Private Sub splitMain_Resize()
RegSetSplitMain (splitMain.SplitPercent)
End Sub
Private Sub splitSec_Resize()
RegSetSplitSec (splitSec.SplitPercent)
End Sub
Private Sub tabView_Click(PreviousTab As Integer)
picID3_Resize
If Not lstTracks.SelectedItem Is Nothing Then
RefreshPanes
End If
End Sub
Private Sub trBrowser_DblClick()
'On Error GoTo Err
If NodeHasParent(trBrowser.SelectedItem) = True Then
If lastButton = 1 Then
' Select Case trBrowser.SelectedItem.Key
' Case "Al": 'MsgBox "Case"
' Case "Co": 'MsgBox "Case"
' Case "Ar": 'MsgBox "Case"
' Case "Ge": 'MsgBox "Case"
' Case Else
frmPlayer.Show
frmPlayer.wMP.Stop
frmPlayer.wMP.FileName = lstTracks.SelectedItem.SubItems(5)
frmPlayer.txtDuration = Format(Int(wMP.Duration / 60), "00") & ":" & Format(wMP.Duration Mod 60, "00")
frmPlayer.PlayTrack
' End Select
End If
RefreshPanes
End If
lstTracks.Refresh
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub trBrowser_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Set trBrowser.DropHighlight = trBrowser.SelectedItem
Else
Set trBrowser.DropHighlight = Nothing
End If
End Sub
Private Sub trBrowser_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
lastButton = Button
If Button = 2 And trBrowser.Nodes.Count > 0 Then
' Set trBrowser.DropHighlight = trBrowser.Nodes(1)
Select Case trBrowser.DropHighlight.Key
Case "Al": 'MsgBox "Case"
Case "Co": 'MsgBox "Case"
Case "Ar": 'MsgBox "Case"
Case "Ge": 'MsgBox "Case"
Case Else:
Select Case trBrowser.DropHighlight.Parent.Key
Case "Al"
mnuComp.Visible = True
mnuComp.Checked = False
mnuRename.Visible = True
Case "Co"
mnuComp.Visible = True
mnuComp.Checked = True
mnuRename.Visible = True
Case "Ge"
mnuComp.Visible = False
mnuRename.Visible = False
Case Else
mnuComp.Visible = False
mnuRename.Visible = True
End Select
PopupMenu mnuAlbum
End Select
End If
Set trBrowser.DropHighlight = Nothing
End Sub
Private Sub trBrowser_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo Err
Dim attrTrack As String
Dim lstItem As ListItem
lstTracks.ListItems.Clear
If NodeHasParent(Node) = True Then
Select Case trBrowser.SelectedItem.Parent.Key
Case "Al": attrTrack = "iAlbum"
Case "Ar": attrTrack = "iArtist"
Case "Ge": attrTrack = "iGenre"
Case "Co": attrTrack = "iAlbum"
End Select
conStr = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & Me.Tag
Con.Open conStr
strSQL = "SELECT iUniqueKey, iTrackNo, iTitle, iArtist, iAlbum, iGenre, File FROM Main WHERE " & attrTrack & " = '" & Right(trBrowser.SelectedItem.Key, Len(trBrowser.SelectedItem.Key) - 3) & "' "
Set Rs = Con.Execute(strSQL)
Do While Rs.EOF = False
Set lstItem = lstTracks.ListItems.Add()
If Not IsNull(Rs!iTrackNo) Then
If Rs!iTrackNo < 10 Then
lstItem.Text = "0" & Rs!iTrackNo
Else
lstItem.Text = Rs!iTrackNo
End If
Else
lstItem.Text = "N/A"
End If
lstItem.SubItems(1) = Replace(Rs!iTitle, "~", "'")
lstItem.SubItems(2) = Replace(Rs!iArtist, "~", "'")
lstItem.SubItems(3) = Replace(Rs!iGenre, "~", "'")
lstItem.SubItems(4) = Replace(Rs!iAlbum, "~", "'")
lstItem.SubItems(5) = Replace(Rs!File, "~", "'")
Rs.MoveNext
Loop
Con.Close
RefreshPanes
End If
lstTracks.Refresh
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub lstTracks_DblClick()
frmPlayer.Show
wMP.FileName = lstTracks.SelectedItem.ListSubItems(5).Text
'trackLen = wMP.Duration
frmPlayer.txtDuration = Format(Int(wMP.Duration / 60), "00") & ":" & Format(wMP.Duration Mod 60, "00")
frmPlayer.PlayTrack
End Sub
Private Sub lstTracks_ItemClick(ByVal Item As MSComctlLib.ListItem)
frmPlayer.Show
If Not wMP.PlayState = mpPlaying Then
frmPlayer.wMP.FileName = lstTracks.SelectedItem.ListSubItems(5).Text
frmPlayer.txtDuration = Format(Int(wMP.Duration / 60), "00") & ":" & Format(wMP.Duration Mod 60, "00")
End If
RefreshPanes
End Sub
Private Sub TracksAutoScroll()
MsgBox "d"
End Sub
Sub LoadDBData()
'On Error GoTo Err
Dim strArtist
Set Rs = New ADODB.Recordset
Set Con = New ADODB.Connection
conStr = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & Me.Tag
Con.Open conStr
trBrowser.Nodes.Clear
DoEvents
strSQL = "SELECT DISTINCT iAlbum, Min(iArtist) AS Artist FROM Main WHERE IsCompilation = 0 GROUP BY iAlbum ORDER BY MIN(iArtist)"
Set Rs = Con.Execute(strSQL)
If IsNull(Rs!iAlbum) Then
Con.Close
Exit Sub
End If
trBrowser.Nodes.Add , , "Al", "Album", 1, 1
Do While Rs.EOF = False
If Not IsNull(Rs!Artist) Then strArtist = Replace(Rs!Artist, "~", "'")
trBrowser.Nodes.Add "Al", tvwChild, "kAl" & Rs!iAlbum, strArtist & " - " & Replace(Rs!iAlbum, "~", "'"), 1, 1
Rs.MoveNext
Loop
strSQL = "SELECT DISTINCT iAlbum, Min(iYear) AS MinYear From Main WHERE IsCompilation = -1 GROUP BY iAlbum"
Set Rs = Con.Execute(strSQL)
trBrowser.Nodes.Add , , "Co", "Compilation", 1, 1
Do While Rs.EOF = False
trBrowser.Nodes.Add "Co", tvwChild, "kCo" & Rs!iAlbum, Replace(Rs!iAlbum, "~", "'"), 1, 1
Rs.MoveNext
Loop
strSQL = "SELECT DISTINCT iArtist, Min(iYear) AS MinYear From Main GROUP BY iArtist"
Set Rs = Con.Execute(strSQL)
trBrowser.Nodes.Add , , "Ar", "Artist", 5, 5
Do While Rs.EOF = False
trBrowser.Nodes.Add "Ar", tvwChild, "kAr" & Rs!iArtist, Replace(Rs!iArtist, "~", "'"), 5, 5
Rs.MoveNext
Loop
strSQL = "SELECT DISTINCT iGenre, Min(iYear) AS MinYear From Main GROUP BY iGenre"
Set Rs = Con.Execute(strSQL)
trBrowser.Nodes.Add , , "Ge", "Genre", 3, 3
Do While Rs.EOF = False
trBrowser.Nodes.Add "Ge", tvwChild, "kGe" & Rs!iGenre, Replace(Rs!iGenre, "~", "'"), 3, 3
Rs.MoveNext
Loop
Con.Close
trBrowser.Nodes.Add , , "Np", "Now Playing", 1, 1
trBrowser.Nodes.Add , , "Pl", "Playlists", 1, 1
trBrowser.Nodes.Add , , "Hi", "History", 1, 1
trBrowser.Nodes.Add , , "PoAl", "Most Popular Albums", 1, 1
trBrowser.Nodes.Add , , "PoTr", "Most Popular Tracks", 1, 1
Exit Sub
Err:
ErrorMsg
End Sub
Private Sub CreateRegistryEntries()
MsgBox "Code here to create default reg entries"
End Sub
Private Function NodeHasParent(Node As MSComctlLib.Node) As Boolean
On Error GoTo Err
NodeHasParent = True
Dim strNode As String
strNode = Node.Parent
Exit Function
Err:
NodeHasParent = False
Exit Function
End Function
Private Sub RefreshPanes()
Dim SelTrack As String
SelTrack = lstTracks.SelectedItem.ListSubItems(5).Text
Select Case tabView.Tab
Case 0: LoadFields SelTrack
Case 1: LoadFramesGrid SelTrack
Case 2: LoadLyrics SelTrack
Case 3: LoadInfo SelTrack
End Select
End Sub
Private Sub LoadFields(MP3Filename As String)
Dim sDesc As String
txtComments = ""
MP3.FileName = MP3Filename
txtArtist.Text = MP3.Artist
txtAlbum.Text = MP3.Album
'cmbGenre.Text = MP3.Genre
txtTitle.Text = MP3.Song
txtTrack.Text = MP3.Track & "/" & MP3.TotalTracks
txtYear.Text = MP3.Year
txtID.Text = MP3.UniqueKey
picAttach.Picture = MP3.Picture
For i = 1 To MP3.colFrames.Count
If MP3.colFrames(i).FrameAbbr = "COMM" Then
If MP3.colFrames(i).sDescription <> "" Then sDesc = MP3.colFrames(i).sDescription & ": "
txtComments.Text = txtComments.Text & sDesc & MP3.colFrames(i).vValue & Chr(13) & Chr(10)
End If
Next i
End Sub
Private Sub LoadFramesGrid(MP3Filename As String)
Dim frNo As String
lstFrames.ListItems.Clear
MP3.FileName = MP3Filename
For i = 1 To MP3.colFrames.Count
If i < 10 Then
frNo = "0" & i
Else
frNo = i
End If
With lstFrames.ListItems.Add(, , frNo)
.SubItems(1) = MP3.colFrames(i).eType
.SubItems(2) = MP3.colFrames(i).FrameAbbr
.SubItems(3) = MP3.colFrames(i).FrameTitle
.SubItems(4) = MP3.colFrames(i).sDescription
.SubItems(5) = MP3.colFrames(i).vValue
End With
Next i
End Sub
Private Sub LoadLyrics(MP3Filename As String)
txtLyrics = MP3.LyricsUnsynced
End Sub
Private Sub LoadInfo(MP3Filename As String)
Mp.FileName = MP3Filename
lblSize.Caption = Mp.FileSize
lblLength.Caption = Mp.TrackLength
lblFrames.Caption = Mp.Frames
lblVer.Caption = Mp.MPEGVersion
lblLayer.Caption = Mp.Layer
lblDataRate.Caption = Mp.DataRate
lblSampleRate.Caption = Mp.SampleRate
lblChannel.Caption = Mp.ChannelMode
lblCopy.Caption = Mp.Copyrighted
lblOriginal.Caption = Mp.Original
End Sub
Private Sub LoadGenreList()
cmbGenre.AddItem "Blues": cmbGenre.ItemData(cmbGenre.NewIndex) = 0
cmbGenre.AddItem "Classic Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 1
cmbGenre.AddItem "Country": cmbGenre.ItemData(cmbGenre.NewIndex) = 2
cmbGenre.AddItem "Dance": cmbGenre.ItemData(cmbGenre.NewIndex) = 3
cmbGenre.AddItem "Disco": cmbGenre.ItemData(cmbGenre.NewIndex) = 4
cmbGenre.AddItem "Funk": cmbGenre.ItemData(cmbGenre.NewIndex) = 5
cmbGenre.AddItem "Grunge": cmbGenre.ItemData(cmbGenre.NewIndex) = 6
cmbGenre.AddItem "Hip-Hop": cmbGenre.ItemData(cmbGenre.NewIndex) = 7
cmbGenre.AddItem "Jazz": cmbGenre.ItemData(cmbGenre.NewIndex) = 8
cmbGenre.AddItem "Metal": cmbGenre.ItemData(cmbGenre.NewIndex) = 9
cmbGenre.AddItem "New Age": cmbGenre.ItemData(cmbGenre.NewIndex) = 10
cmbGenre.AddItem "Oldies": cmbGenre.ItemData(cmbGenre.NewIndex) = 11
cmbGenre.AddItem "Other": cmbGenre.ItemData(cmbGenre.NewIndex) = 12
cmbGenre.AddItem "Pop": cmbGenre.ItemData(cmbGenre.NewIndex) = 13
cmbGenre.AddItem "R&B": cmbGenre.ItemData(cmbGenre.NewIndex) = 14
cmbGenre.AddItem "Rap": cmbGenre.ItemData(cmbGenre.NewIndex) = 15
cmbGenre.AddItem "Reggae": cmbGenre.ItemData(cmbGenre.NewIndex) = 16
cmbGenre.AddItem "Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 17
cmbGenre.AddItem "Techno": cmbGenre.ItemData(cmbGenre.NewIndex) = 18
cmbGenre.AddItem "Industrial": cmbGenre.ItemData(cmbGenre.NewIndex) = 19
cmbGenre.AddItem "Alternative": cmbGenre.ItemData(cmbGenre.NewIndex) = 20
cmbGenre.AddItem "Ska": cmbGenre.ItemData(cmbGenre.NewIndex) = 21
cmbGenre.AddItem "Death Metal": cmbGenre.ItemData(cmbGenre.NewIndex) = 22
cmbGenre.AddItem "Pranks": cmbGenre.ItemData(cmbGenre.NewIndex) = 23
cmbGenre.AddItem "Soundtrack": cmbGenre.ItemData(cmbGenre.NewIndex) = 24
cmbGenre.AddItem "Euro-Techno": cmbGenre.ItemData(cmbGenre.NewIndex) = 25
cmbGenre.AddItem "Ambient": cmbGenre.ItemData(cmbGenre.NewIndex) = 26
cmbGenre.AddItem "Trip-Hop": cmbGenre.ItemData(cmbGenre.NewIndex) = 27
cmbGenre.AddItem "Vocal": cmbGenre.ItemData(cmbGenre.NewIndex) = 28
cmbGenre.AddItem "Jazz+Funk": cmbGenre.ItemData(cmbGenre.NewIndex) = 29
cmbGenre.AddItem "Fusion": cmbGenre.ItemData(cmbGenre.NewIndex) = 30
cmbGenre.AddItem "Trance": cmbGenre.ItemData(cmbGenre.NewIndex) = 31
cmbGenre.AddItem "Classical": cmbGenre.ItemData(cmbGenre.NewIndex) = 32
cmbGenre.AddItem "Instrumental": cmbGenre.ItemData(cmbGenre.NewIndex) = 33
cmbGenre.AddItem "Acid": cmbGenre.ItemData(cmbGenre.NewIndex) = 34
cmbGenre.AddItem "House": cmbGenre.ItemData(cmbGenre.NewIndex) = 35
cmbGenre.AddItem "Game": cmbGenre.ItemData(cmbGenre.NewIndex) = 36
cmbGenre.AddItem "Sound Clip": cmbGenre.ItemData(cmbGenre.NewIndex) = 37
cmbGenre.AddItem "Gospel": cmbGenre.ItemData(cmbGenre.NewIndex) = 38
cmbGenre.AddItem "Noise": cmbGenre.ItemData(cmbGenre.NewIndex) = 39
cmbGenre.AddItem "Alt. Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 40
cmbGenre.AddItem "Bass": cmbGenre.ItemData(cmbGenre.NewIndex) = 41
cmbGenre.AddItem "Soul": cmbGenre.ItemData(cmbGenre.NewIndex) = 42
cmbGenre.AddItem "Punk": cmbGenre.ItemData(cmbGenre.NewIndex) = 43
cmbGenre.AddItem "Space": cmbGenre.ItemData(cmbGenre.NewIndex) = 44
cmbGenre.AddItem "Meditative": cmbGenre.ItemData(cmbGenre.NewIndex) = 45
cmbGenre.AddItem "Instrumental Pop": cmbGenre.ItemData(cmbGenre.NewIndex) = 46
cmbGenre.AddItem "Instrumental Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 47
cmbGenre.AddItem "Ethnic": cmbGenre.ItemData(cmbGenre.NewIndex) = 48
cmbGenre.AddItem "Gothic": cmbGenre.ItemData(cmbGenre.NewIndex) = 49
cmbGenre.AddItem "Darkwave": cmbGenre.ItemData(cmbGenre.NewIndex) = 50
cmbGenre.AddItem "Techno-Industrial": cmbGenre.ItemData(cmbGenre.NewIndex) = 51
cmbGenre.AddItem "Electronic": cmbGenre.ItemData(cmbGenre.NewIndex) = 52
cmbGenre.AddItem "Pop-Folk": cmbGenre.ItemData(cmbGenre.NewIndex) = 53
cmbGenre.AddItem "Eurodance": cmbGenre.ItemData(cmbGenre.NewIndex) = 54
cmbGenre.AddItem "Dream": cmbGenre.ItemData(cmbGenre.NewIndex) = 55
cmbGenre.AddItem "Southern Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 56
cmbGenre.AddItem "Comedy": cmbGenre.ItemData(cmbGenre.NewIndex) = 57
cmbGenre.AddItem "Cult": cmbGenre.ItemData(cmbGenre.NewIndex) = 58
cmbGenre.AddItem "Gangsta": cmbGenre.ItemData(cmbGenre.NewIndex) = 59
cmbGenre.AddItem "Top 40": cmbGenre.ItemData(cmbGenre.NewIndex) = 60
cmbGenre.AddItem "Christian Rap": cmbGenre.ItemData(cmbGenre.NewIndex) = 61
cmbGenre.AddItem "Pop/Funk": cmbGenre.ItemData(cmbGenre.NewIndex) = 62
cmbGenre.AddItem "Jungle": cmbGenre.ItemData(cmbGenre.NewIndex) = 63
cmbGenre.AddItem "Native American": cmbGenre.ItemData(cmbGenre.NewIndex) = 64
cmbGenre.AddItem "Cabaret": cmbGenre.ItemData(cmbGenre.NewIndex) = 65
cmbGenre.AddItem "New Wave": cmbGenre.ItemData(cmbGenre.NewIndex) = 66
cmbGenre.AddItem "Psychadelic": cmbGenre.ItemData(cmbGenre.NewIndex) = 67
cmbGenre.AddItem "Rave": cmbGenre.ItemData(cmbGenre.NewIndex) = 68
cmbGenre.AddItem "Showtunes": cmbGenre.ItemData(cmbGenre.NewIndex) = 69
cmbGenre.AddItem "Trailer": cmbGenre.ItemData(cmbGenre.NewIndex) = 70
cmbGenre.AddItem "Lo-Fi": cmbGenre.ItemData(cmbGenre.NewIndex) = 71
cmbGenre.AddItem "Tribal": cmbGenre.ItemData(cmbGenre.NewIndex) = 72
cmbGenre.AddItem "Acid Punk": cmbGenre.ItemData(cmbGenre.NewIndex) = 73
cmbGenre.AddItem "Acid Jazz": cmbGenre.ItemData(cmbGenre.NewIndex) = 74
cmbGenre.AddItem "Polka": cmbGenre.ItemData(cmbGenre.NewIndex) = 75
cmbGenre.AddItem "Retro": cmbGenre.ItemData(cmbGenre.NewIndex) = 76
cmbGenre.AddItem "Musical": cmbGenre.ItemData(cmbGenre.NewIndex) = 77
cmbGenre.AddItem "Rock & Roll": cmbGenre.ItemData(cmbGenre.NewIndex) = 78
cmbGenre.AddItem "Hard Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 79
cmbGenre.AddItem "Folk": cmbGenre.ItemData(cmbGenre.NewIndex) = 80
cmbGenre.AddItem "Folk-Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 81
cmbGenre.AddItem "National Folk": cmbGenre.ItemData(cmbGenre.NewIndex) = 82
cmbGenre.AddItem "Swing": cmbGenre.ItemData(cmbGenre.NewIndex) = 83
cmbGenre.AddItem "Fast Fusion": cmbGenre.ItemData(cmbGenre.NewIndex) = 84
cmbGenre.AddItem "Bebob": cmbGenre.ItemData(cmbGenre.NewIndex) = 85
cmbGenre.AddItem "Latin": cmbGenre.ItemData(cmbGenre.NewIndex) = 86
cmbGenre.AddItem "Revival": cmbGenre.ItemData(cmbGenre.NewIndex) = 87
cmbGenre.AddItem "Celtic": cmbGenre.ItemData(cmbGenre.NewIndex) = 88
cmbGenre.AddItem "Bluegrass": cmbGenre.ItemData(cmbGenre.NewIndex) = 89
cmbGenre.AddItem "Avantgarde": cmbGenre.ItemData(cmbGenre.NewIndex) = 90
cmbGenre.AddItem "Gothic Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 91
cmbGenre.AddItem "Progressive Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 92
cmbGenre.AddItem "Psychedelic Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 93
cmbGenre.AddItem "Symphonic Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 94
cmbGenre.AddItem "Slow Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 95
cmbGenre.AddItem "Big Band": cmbGenre.ItemData(cmbGenre.NewIndex) = 96
cmbGenre.AddItem "Chorus": cmbGenre.ItemData(cmbGenre.NewIndex) = 97
cmbGenre.AddItem "Easy Listening": cmbGenre.ItemData(cmbGenre.NewIndex) = 98
cmbGenre.AddItem "Acoustic": cmbGenre.ItemData(cmbGenre.NewIndex) = 99
cmbGenre.AddItem "Humour": cmbGenre.ItemData(cmbGenre.NewIndex) = 100
cmbGenre.AddItem "Speech": cmbGenre.ItemData(cmbGenre.NewIndex) = 101
cmbGenre.AddItem "Chanson": cmbGenre.ItemData(cmbGenre.NewIndex) = 102
cmbGenre.AddItem "Opera": cmbGenre.ItemData(cmbGenre.NewIndex) = 103
cmbGenre.AddItem "Chamber Music": cmbGenre.ItemData(cmbGenre.NewIndex) = 104
cmbGenre.AddItem "Sonata": cmbGenre.ItemData(cmbGenre.NewIndex) = 105
cmbGenre.AddItem "Symphony": cmbGenre.ItemData(cmbGenre.NewIndex) = 106
cmbGenre.AddItem "Booty Bass": cmbGenre.ItemData(cmbGenre.NewIndex) = 107
cmbGenre.AddItem "Primus": cmbGenre.ItemData(cmbGenre.NewIndex) = 108
cmbGenre.AddItem "Porn Groove": cmbGenre.ItemData(cmbGenre.NewIndex) = 109
cmbGenre.AddItem "Satire": cmbGenre.ItemData(cmbGenre.NewIndex) = 110
cmbGenre.AddItem "Slow Jam": cmbGenre.ItemData(cmbGenre.NewIndex) = 111
cmbGenre.AddItem "Club": cmbGenre.ItemData(cmbGenre.NewIndex) = 112
cmbGenre.AddItem "Tango": cmbGenre.ItemData(cmbGenre.NewIndex) = 113
cmbGenre.AddItem "Samba": cmbGenre.ItemData(cmbGenre.NewIndex) = 114
cmbGenre.AddItem "Folklore": cmbGenre.ItemData(cmbGenre.NewIndex) = 115
cmbGenre.AddItem "Ballad": cmbGenre.ItemData(cmbGenre.NewIndex) = 116
cmbGenre.AddItem "Power Ballad": cmbGenre.ItemData(cmbGenre.NewIndex) = 117
cmbGenre.AddItem "Rhythmic Soul": cmbGenre.ItemData(cmbGenre.NewIndex) = 118
cmbGenre.AddItem "Freestyle": cmbGenre.ItemData(cmbGenre.NewIndex) = 119
cmbGenre.AddItem "Duet": cmbGenre.ItemData(cmbGenre.NewIndex) = 120
cmbGenre.AddItem "Punk Rock": cmbGenre.ItemData(cmbGenre.NewIndex) = 121
cmbGenre.AddItem "Drum Solo": cmbGenre.ItemData(cmbGenre.NewIndex) = 122
cmbGenre.AddItem "A Capella": cmbGenre.ItemData(cmbGenre.NewIndex) = 123
cmbGenre.AddItem "Euro-House": cmbGenre.ItemData(cmbGenre.NewIndex) = 124
cmbGenre.AddItem "Dance Hall": cmbGenre.ItemData(cmbGenre.NewIndex) = 125
End Sub
Leave a Reply