Mp3 tag

cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007 - 19 sept. 2007 à 08:03
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012 - 29 oct. 2007 à 19:08
Salut,

Je voudrais savoir quelle est la différence entre les tags v1 et v2: Je sais que ça correspond aux 128 derniers octets du fichier mais pourquoi y a t il des informations également au début du fichier? Est ce que les tags v1 sont au début et les v2 à la fin ou l'inverse?

Merci d'avance pour vos réponses!

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 sept. 2007 à 09:14
demande a google .........

http://fr.wikipedia.org/wiki/ID3
0
cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007
20 sept. 2007 à 18:59
Merci!
J'avais cherché sur google mais j'avais rien trouvé, comme quoi google n'est pas toujours notre ami...
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
20 sept. 2007 à 19:32
Salut,
En effet, le Tag V1 d'un mp3 est inscrit en fin de fichier et n'a qu'une longueur (plus minime!) fixé à 128 octects, avec des noms de champs eux aussi déjà fixés (artiste, album...).
Ce tag étant beaucoup trop limité, la version 2 (ID3 V2) est sorti (inscrit cette fois-ci en début de fichier). La longueur total du tag n'est plus figée, beaucoup plus de champs sont disponibles, et l'on peut même ajouter des champs personnalisés.

Voilà en gros la différence entre les deux versions.
Nota : Avec le temps, la V2 s'est déclinée en plusieurs sous versions, la dernière étant la V2.4.

titicar
0
cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007
22 sept. 2007 à 11:36
Merci pour ces réponses.

Pour les tags v1, pas de soucis j'arrive à les lire et écrire (je précise que je suis en train de créer un gestionnaire de tags en vb 2005) par contre pour les tags v2, comment faire pour les lire sachant qu'ils ont une taille variable? j'arrive à repérer les balises mais aprés ça coince. est ce qu'il faut lire autrement qu'en binaire?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
2 oct. 2007 à 20:04
Je tarde un peu à répondre car je cherche aussi le moyen de gérer (lecture/écriture) les différents tags de la v2.4. La structure de cette version est plus compliqué à programmer que la version 1. Il faut réussir à comprendre (pas évident!) la structure de la v2 pour trouver toutes les différentes 'balises'.

Pour connaitre uniquement les balises principales comme le nom de l'artiste, album, année, genre, etc, c'est assez simple et il y a pleins d'exemples sur ce site. Le plus abouti à mon avis est une source de Yoom. Quoique j'ai pas tout compris :-(

Par contre, si tu veux modifier un Tag tout en gardant toutes les 'balises' déjà mémorisées dans ton mp3 (du genre jaquette du CD, tagé avec Windows Media Player, MusicMatch JukeBox,...), c'est peine perdu avec les différentes sources trouvées sur ce site, ou d'autres (VBAccelerator...). Cela dit, si je me trompe, merci de nous prévenir ! :-)

Pour ce qui est de ce familiariser avec la structure de la v2.4, y a plusieurs sites hélas en anglais : je n'ai pas trouvé de traduction... Donc si quelqu'un connais une version française...

Pour ma part, étant aussi intéressé par la gestion de la v2.4, je vais tout reprendre à zéro en commencant, avec mon peu de connaissance, par une traduction 'maison' des sites anglais (le traducteur dans Google a déclaré forfait).

titicar
0
cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007
3 oct. 2007 à 08:03
Salut,

En effet j'ai aussi trouvé les sites en anglais comme id3.org, il a l'air super bien fait mais malheureusement il est un peu trop en anglais pour moi !

Au sujet des sources j'en ai vu aussi mais j'ai un peu de mal a capter le principe de lecture en fait vu que avec la v1 je lis en binaire et que la ce n'est plus possible...


Si tu as besoin d'aide pour la traduction des sites fais moi signe, peut être qu'a 2 ce sera plus simple, a+
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
3 oct. 2007 à 19:27
Je ne comprends pas trop ce que tu veux dire par "c'est pas possible de lire en binaire le tag v2". Si tu pense à un accès séquentiel (genre 'Open fichier For Input/Output...), ce type d'accès n'est valable dans aucune version de tag.
Dans tous les cas, on utilise un accès binaire (genre Open fichier For Binary Access Read/Write...)
De plus, dans la v2.4, il faut des fois faire des conversions de nombres binaires en nombres entiers, et inversement.

Sinon, merci de me proposer ton aide pour la traduction : si tu connais un site de conversion de 'grosse masse' de texte (vu que Google a déclaré forfait), ça m'évitera de découper le texte en plusieurs parties.

@+
titicar
0
cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007
3 oct. 2007 à 21:30
J'utilise un accés binaire également et ça fonctionne bien pour la v1, mais pour la v2 ça pose pose un probleme car les champs d'information ont une taille variable et donc je repère les balises qui sont situés a la fin des champs et de là je lis en binaire un certain nombre de caractères...seulement les champs étant variables, ça marche pour un mp3 mais pas pour le suivant! je sais pas si j'ai été clair, c'est pas simple a expliquer.

Un exemple, le tag d'un mp3 que j'ai ouvert avec le bloc note:

ID3�3;    �8; TALB   �12;   Let There Be RockTYER   �5;   1977TIT2   �15;   03-Let There Be RockTPE1   �6;   AC-DCCOMM   7    nt Generated By Oxilog Audio Library

Si je veux lire le titre de l'album je repere la balise TYER et je lis 16 caractères avant et j'obtiens: "Let There Be Rock", seulement si je veux lire un titre plus long la fois suivante et que je veux lire 30 caractères par exemple j'obtiendrais: " �8; TALB   �12;   Let There Be Rock". Voila tout mon probleme, peut être c'est moi qui n'utilise pas la bonne technique je sais pas...


Sinon au sujet de la traduction je vais chercher des sites de traduction mais je suis pas sur que ça réussisse mieux que google vu que c'est trés technique comme site mais si je trouve je te tiens au courant

a+


 
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
4 oct. 2007 à 21:11
Et oui évidemment, la souplesse de la v2, avec des balises personnalisable et de longueur variables, rendent la programmation plus compliquée. C'est pourquoi il faut connaitre la structure de la v2 pour comprendre comment l'utiliser.
Je vais essayer de faire un résumé sur la structure de la v2.3 (mais pas la v2.4 car elle se complique !). Tout cela juste pour te dire comment on récupère, de façon THEORIQUE, la longueur d'une balise 'normale'.


V2.3 est divisé en 2 grande partie:
- Le Header
- Les différentes balises.


1) Le header
Il a une longueur FIXE de 10 caractères (ou 10 bits ou 10 chiffres binaires, à ne pas confondre avec bytes [anglais] qui correspond à 1 octet [français]) :

- Les 3 premiers bits doivent être égal à "ID3" (dès lors, on est déjà dans une version v2): autrement dit, lors de la lecture du tag, si ce test est négatif, alors pas besoin d'aller plus loin : on quitte la procédure (sans oublier de 'fermer' le fichier qu'on vient d'ouvrir pour lire).

- Le 4ème et 5ème bits réprésente la version du Tag v2. Par exemple, c'est 03 et 00 pour dire ID3 v2.3.0... On passe...

- Le 6ème bit est un 'flag'... on passe aussi...

- Et les 4 derniers, donc de 7 à 10 représente la longueur TOTAL du tag v2, mais sans la taille du header. Ca représente donc la longueur total des différentes 'balises'. C'est très important car c'est dans cette longueur de zone qu'on va rechercher toutes les balises! Au delà de cette zone se trouve la partie 'audio' proprement dite qui n'a plus rien à voir avec le Tag.
D'un point de vue programmation, il va falloir travailler sur ces 4 bits pour les transformer en une seule valeur entière (donc sans virgule, à base décimale donc nos fameux 10 chiffres).


2) Les différentes balises
En fait, chaque balise est assimilé à un ensemble de 3 informations et cet ensemble est appelé 'Frame' dans la doc anglaise.
Et pour rechercher une balise, on va rechercher dans toutes les frames, LA frame contenant le nom associé à cette balise.
Chaque frame a donc 3 informations:

- Le nom de la balise: QUATRE bits uniquement, comme TALB, TIT2,...

- La longueur de la donnée associé à la balise, enregistré également dans 4 bits, qu'il faut convertir en un nombre entier (et voilà ton problème!)

- Et la donnée dont la longueur a été précisée juste avant.


CQFD! Voilà, tu connais maintenant la théorie pour connaître la longueur total d'un Tag, et la longueur d'une balise (ou d'un champ).
Je n'ai pas parlé de la conversion de plusieurs bits en une valeur décimale entière, mais peut-être le sais-tu déjà.


Oups, j'ai failli oublié : Pour scruter l'intérieur d'un fichier (surtout si l'on parle de binaire), j'espère que tu utilises plutôt un editeur hexa-décimale plutôt qu'un éditeur de texte.

titicar
0
cs_Jamsss Messages postés 11 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 28 octobre 2007
28 oct. 2007 à 21:43
Salut,


Merci pour toutes ces explications elles m'aident vraiment a avancer sur mon projet, merci beaucoup!


Pour scruter l'interieur des fichiers j'utilise edithexa, c'était juste pour l'exemple le bloc note. sinon pour ceci:

"D'un point de vue programmation, il va falloir travailler sur ces 4 bits pour les transformer en une seule valeur entière (donc sans virgule, à base décimale donc nos fameux 10 chiffres)"

cela me pose un probleme car j'ai essayé d'ajouter les 4 bits en binaire puis de transformer en décimal mais ça ne fonctionne pas (peut être pas la bonne méthode)... en plus j'ai quelques mp3 qui n'ont même pas de valeur dans ces bits la!
0
cs_titicar Messages postés 181 Date d'inscription jeudi 30 mai 2002 Statut Membre Dernière intervention 19 août 2012
29 oct. 2007 à 19:08
Salut,

Tu n'utilises peut-être pas la bonne méthode pour la conversion binaire en décimal. Va voir du coté de Yomm dans sa classe pour le Tag v2.
Attention car la conversion n'est pas la même dans le Header et dans les Frames.

Sinon, c'est étonnant, mais peut être possible (je ne suis pas encore tombé sur ce cas) qu'il n'y est pas de valeur inscrite dans les bits respectifs du Header. C'est peut-être possible car plusieurs programmes ont l'air de 'bafouer' le standart de l'ID3v2 (ou alors, il y aurait plusieurs normes ???). Dès lors, pour rechercher la fin du Tag, il faudrait chercher le début de l'entête suivant, c-a-d l'entête MPEG... Oui ça se complique ! Et c'est ce que Yomm a fait.

Par curiosité, connais-tu le programme qui a 'tagger' ton mp3 ?

titicar
0
Rejoignez-nous