Intento hacer una base de datos de intercambio de musica desde hace años,
nunca he tenido mucho tiempo.
Ahora que estoy afuera de todo, me dedico a divertirme.
Asi que tengo este editor de id3 tags en proceso.
La información técnica está aqui
http://www.id3.orgLo primero que vemos es que hay id3v2-00 e id3v2.3.0
La version la identifico sin error
El drama es el tamaño (size) ya que como se ve es recursivo la busqueda de
tags
version2: aFile
| size flags id3 r |
id3 := Dictionary new.
flags := aFile next.
size := (aFile next: 4) asHex.
self halt.
size := 4
* (Number readFrom: size base: 16).
[aFile position < size]
whileTrue: [r := self nexTag: aFile.
id3 at: r first put: r last].
^ id3
La version preliminar de nexTag
nexTag: aFile
| tag fsize title artist year unknow album |
| tag fsize title artist year unknow album|
tag := aFile next: 3.
tag caseOf: {
['TAL'] ->
tag caseOf: {['TAL'] ->
[fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
album := aFile next: fsize].
['TT2'] ->
[fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
title := aFile next: fsize].
['TP1'] ->
[fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
artist := aFile next: fsize].
['TYE'] ->
[fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
year := aFile next: fsize]}
otherwise:
[fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
unknow := aFile next: fsize].
self halt.
self nexTag: aFile
La version depurada de lo mismo
nexTag: aFile
| tag fsize unknow |
tag := aFile next: 3.
fsize := (aFile next: 3) asHex.
fsize := Number readFrom: fsize base: 16.
unknow := aFile next: fsize.
^ Array with: tag with: unknow
Pregunta: porque no funciona siempre ?
En los 13129 mp3 que tengo hay version2 y version3.
Pensaba ³normalizar² a version 3, pero me encuentro con ese error.
Feedback ?
Y a ver si coincidimos en algo , que tanto hablar al gas ya da olor :=)
Edgar
Al gas = al pedo = hablar sin sentido y sin llegar a ninguna conclusión
Del diccionario Rosarino Español (ji ji ji)