il codice non è realizzato per ricavare la lunghezza di una canzone ma solamente i titoli, inoltre se l' mp3 utilizza tag IDV3v1 mi pare che non memorizzi la durata .
riguardando il codice mi sembra veramente molto elementare da capire, se si tratta di un idv3v1 per ogni tag è disponibile una dimensione fissa di caratteri per cui si possono leggere semplicemente con dei mid()
IF Left$(tag, 3) = "TAG" THEN 'controlla se è un idv3 v1
'effettua la lettura dei tag
FMain.tag_titolo = Trim$(Mid$(tag, 4, 30))
FMain.tag_artista = Trim$(Mid(tag, 34, 30))
FMain.tag_album = Trim$(Mid(tag, 64, 30))
FMain.tag_anno = Trim$(Mid(tag, 94, 4))
FMain.tag_commento = Trim$(Mid(tag, 98, 28))
FMain.tag_null = Trim$(Mid(tag, 126, 1))
FMain.tag_traccia = Trim$(Mid(tag, 127, 1))
FMain.tag_genere = Trim$(Mid(tag, 128, 1))
se si tratta di un idv3v2 lo spazio relativo ad ogni tag non è fisso , quindi bisogna trovare l' inizio del tag e la sua fine e poi leggerlo quindi per esempio per leggere il titolo:
pos = InStr(pippo, "TIT2")
pos = pos + 4
size = Asc((Mid$(pippo, pos, 1)))
size1 = Asc((Mid$(pippo, pos + 1, 1)))
size2 = Asc((Mid$(pippo, pos + 2, 1)))
size3 = Asc((Mid$(pippo, pos + 3, 1)))
FMain.tag_titolo = Mid$(pippo, pos + 7, size3 - 1)
quindi cerco TIT2 che indica l' inizio del tag titolo, poi tramite size3 leggo quanti caratteri impiega il tag ed infine lo leggo