Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | tag mp3 | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Dim 5 Oct 2014 - 21:35 | |
| Tu peux dégrossir la recherche avec la liste de wikipedia ( http://en.wikipedia.org/wiki/ID3 ), et si tu as un doute regarder dans le dump fichier si le contenu ressemble à une image... Et comme je disais je pense qu'il y a d'autres formats que le jpg, peut-être le png ? mais c'est douteux parce que c'est un format non compressé je crois. | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 5 Oct 2014 - 23:48 | |
| Je suis d' accord avec toi JL35 il y a s^rement d' autres formats que le jpg pris en compte. Mais pour le cas, je pense bien que des images doivent être stocké dans d' autres marqueurs car pour l' exemple des mp3 extraits de vidéo de chez you... le marqueur APIC est absent et pourtant la miniature du fichier en montre une. Il va falloir faire de la plongée dans les marqueurs...mais pas ce soir, je suis cuit... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Lun 6 Oct 2014 - 10:33 | |
| Tu pourrais me donner un lien vers une vidéo/mp3 youtube qui contienne une image sans APIC ? J'en ai essayé plusieurs, mais pas d'images... (même en mp si tu ne veux pas ici). Juste le lien vidéo, je ferai la conversion moi-même. Au moins, une image sans APIC ça ne donne pas le vertige | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 6 Oct 2014 - 13:12 | |
| Voilà la question que je redoutais... J' ai plus de 1500 fichiers *.mp3 sur ma bécane ( Légaux ) Maintenant pour remettre la main sur mon fichier foireux... ...il a suffit que j' essai de me remémorer le nom pour ne pas arriver à m' en souvenir... "Alzheimer, quand tu nous tiens..." Je vais chercher et dès que j' y remets le curseur dessus, je le mettrai sur mon webdav. C' est un fichier que j' ai converti en ligne depuis un fichier vidéo de youtube. PS: j' ai voulu mettre ta sub listag() en boucle... J' ai droit à des messages tous plus impolis les uns que les autres de Windows... | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 6 Oct 2014 - 13:51 | |
| @ JL35, Une autre adresse pour des infos sur les fichiers mp3 : icic' est très interessant, pour retrouver la partie "musique" d' un mp3. Je pense qu' avec ces infos nous serons arrivés à détricoter un fichier mp3 dans sa plus grande partie, il ne restera plus qu' à faire un outil de qualité... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Lun 6 Oct 2014 - 15:09 | |
| Effectivement, avec ton lien les infos semblent très complètes. Y'a plus qu'à... Et effectivement, avec mes s/p je récupère parfois plein d'erreurs du genre Access violation, Invalid pointer... mais ce n'est pas systématique, pour le même fichier des fois ça marche, c'est bien ce qui est troublant, des fois non, comme si j'allais bombarder la mémoire en dehors des zones autorisées, mais j'ai beau éplucher le code je ne vois rien qui cloche... Parfois l'erreur n'apparaît qu'à la fermeture du programme... | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 6 Oct 2014 - 18:13 | |
| Moi j' ai un pb avec la dll mais je n' arrive pas à voir d' où cela vient. Le pire c' est que cela doit être sous mon nez mais où entre l' écran et le clavier....? Je vais mettre un zip sur mon webdav "Extract_Audio_from_mp3". | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Lun 6 Oct 2014 - 20:53 | |
| C'est l'audio que tu veux extraire du mp3 ??? | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 6 Oct 2014 - 21:13 | |
| @ JL35,
D' après la doc, le debut de la partie audio est sur 2 octet "FF" "F..." ou "FF" "E..." Bref, sachant cela, j' ai essayé d' extraire sur le fichier *.mp3, joint dans le zip,la bande son. Sachant que ce fichier est sans Tag id3v1 ni Tag id3v2 sauf quelques marqueurs.
J' ai essayé avec les fonctions de la dll de klaus mais, apparemment, j' ai encore du raté une étape mais je ne vois pas laquelle. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Lun 6 Oct 2014 - 21:32 | |
| Des FFF ou FFE il doit y en avoir un peu partout, il faudrait un repère chiffré... ou au moins une balise... Mais bon, d'un autre côté je ne vois pas trop l'intérêt d'extraire la bande son d'un fichier mp3 ? Je n'utilise plus la dll de l'ami Klaus, je fais tout avec les FILEBIN_BLOCK_READ ou WRITE, j'ai tout recodé et il ne semble plus y avoir d'erreurs. Un premier jet (lecture des tags et extraction d'une image): - Code:
-
LABEL Chf, Extrac, Dump DIM rp$,f$,i%,k%,a$,xx%,fr$,w,h,fdum$ rp$ = "C:\MP3TEST" fr$ = "Z:\Image.jpg": ' <<<<<<<<<<<<<<<<<<<<<<< IMAGE RÉSULTAT fdum$ = "C:\UTIL\Frhed-1.6.0-exe\Frhed.exe ": ' dump, pour info WIDTH 0,400: HEIGHT 0,620: font_bold 0: color 0,192,255,255: CAPTION 0,"Tags MP3" ALPHA 9: TOP 9,3: CAPTION 9,"Fichier mp3:" EDIT 10: LEFT 10,70: WIDTH 10,270: ON_CLICK 10,Chf: color 10,255,255,128 BUTTON 11: LEFT 11,LEFT(10)+WIDTH(10)+2: WIDTH 11,40: HEIGHT 11,20: CAPTION 11,"Dump" ON_CLICK 11,Dump OPEN_DIALOG 15 FILTER 15,"Fichiers mp3|*.mp3" MEMO 1: TOP 1,20: WIDTH 1,WIDTH(0)-16: HEIGHT 1,280 FONT_NAME 1,"Lucida Console": FONT_SIZE 1,10 BUTTON 2: TOP 2,TOP(1)+HEIGHT(1): LEFT 2,100: WIDTH 2,150 CAPTION 2,"Extraire l'image": ON_CLICK 2, Extrac ALPHA 3: TOP 3,TOP(2)+7: LEFT 3,LEFT(2)+WIDTH(2)+10 PICTURE 5: TOP 5,TOP(2)+30: WIDTH 5,WIDTH(0)-16: HEIGHT 5,250: STRETCH_ON 5 COLOR 5,192,192,255 END ' ============================================================================== ' ============================================================================== Chf: f$ = FILE_NAME$(15): TEXT 10,f$ Lis_Tag(f$): ' Liste des tags ID3 v1 et/ou v2 du fichier CLIPBOARD_PASTE 1 RETURN ' ============================================================================== Extrac: ' recherche du 1er tag APIC (picture) xx% = 0 FOR i% = 1 TO COUNT(1) a$ = ITEM_READ$(1,i%) IF LEFT$(a$,5) = "APIC:" k% = INSTR(a$,",") IF k% > 0 xx% = VAL(MID$(a$,7,k%-7)) ELSE xx% = VAL(MID$(a$,7,20)) END_IF EXIT_FOR END_IF NEXT i% IF xx% > 0 Img_Tag(f$,xx%,fr$): ' extraction de l'image DimJpg(fr$) CAPTION 3,STR$(w)+" x " + STR$(h) WIDTH 5,HEIGHT(5)*w/h FILE_LOAD 5,fr$: ' affichage END_IF RETURN ' ============================================================================== Dump: EXECUTE fdum$ + f$ RETURN ' ============================================================================== SUB Img_Tag(f$,xx%,fr$) ' Extraction de l'image de f$ du Tag APIC situé en xx%, résultat dans fr$ DIM_LOCAL n%,i%,a$,x%,lg%,nbc%,rst% n% = 2000: dim v%(n%): ' nombre d'octets en lecture (maxi) FILEBIN_OPEN_READ 9,f$: FILEBIN_OPEN_WRITE 8,fr$ FILEBIN_POSITION 9,xx%: FILEBIN_BLOCK_READ 9,100,v%(0): ' début du tag 'APIC' lg% = v%(7)+256*v%(6) + 10: ' longueur totale du tag image FOR i% = 1 TO 100 IF v%(i%)=255 AND v%(i%+1)=216: ' FF D8: début d'image jpg x% = xx%+i%: lg% = lg%-i%: exit_for END_IF NEXT i% nbc% = INT(lg%/n%): rst% = lg%-nbc%*n%: ' nombre de lectures, et reste FILEBIN_POSITION 9,x% FOR i% = 1 TO nbc% FILEBIN_BLOCK_READ 9,n%,v%(0): FILEBIN_BLOCK_WRITE 8,n%,v%(0) NEXT i% IF rst%>0 THEN FILEBIN_BLOCK_READ 9,rst%,v%(0): FILEBIN_BLOCK_WRITE 8,rst%,v%(0) FILEBIN_CLOSE 9: FILEBIN_CLOSE 8 END_SUB ' ============================================================================== SUB Lis_Tag(f$) ' Liste des tags ID3 d'un fichier mp3 -> clipboard ' Rendu: une ligne par tag: ' ID3v1: Nom du tag + contenu ' ID3v2: Nom du tag, Position, Longueur DIM_LOCAL a$,sz%,v%(2000),i%,k%,v1$,v2$,rc$,lt%, xx% rc$ = CHR$(13)+CHR$(10)
FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9) FILEBIN_POSITION 9,sz%-128: FILEBIN_BLOCK_READ 9,128,v%(0) IF v%(0)=84 AND v%(1)=65 AND v%(2)=71: ' 'TAG' (tags ID3v1) a$ = "--- Tags ID3v1 ---" a$ = a$+rc$+"Titre : ": i% = 3 WHILE v%(i%)<>0: a$=a$+CHR$(v%(i%)): i%=i%+1: END_WHILE a$=a$+rc$+"Auteur: ": i% = 33 WHILE v%(i%)<>0: a$=a$+CHR$(v%(i%)): i%=i%+1: END_WHILE a$=a$+rc$+"Album : ": i% = 63 WHILE v%(i%)<>0: a$=a$+CHR$(v%(i%)): i%=i%+1: END_WHILE a$=a$+rc$+"Année : ": i% = 93 WHILE v%(i%)<>0: a$=a$+CHR$(v%(i%)): i%=i%+1: END_WHILE a$=a$+rc$+"Comnt : ": i% = 97 WHILE v%(i%)<>0: a$=a$+CHR$(v%(i%)): i%=i%+1: END_WHILE a$=a$+rc$+"Genre : "+STR$(v%(127)) v1$ = a$ END_IF FILEBIN_POSITION 9,0: FILEBIN_BLOCK_READ 9,9,v%(0) IF v%(0)=73 AND v%(1)=68 AND v%(2)=51: ' 'ID3' (tags ID3v2) lt% = v%(8)+256*v%(7)+256*256*v%(6): ' taille totale a$ = "--- Tags ID3v2 ---" xx% = 10: ' 1er tag WHILE xx%<(lt%+20) FILEBIN_POSITION 9,xx%: FILEBIN_BLOCK_READ 9,100,v%(0) a$ = a$+rc$+CHR$(v%(0))+CHR$(v%(1))+CHR$(v%(2))+CHR$(v%(3)): ' nom du tag k% = v%(7)+256*v%(6)+10: ' longueur totale du tag a$ = a$+": "+STR$(xx%)+","+STR$(k%): ' indice et longueur xx% = xx%+k% END_WHILE v2$ = a$ END_IF FILEBIN_CLOSE 9 CLIPBOARD_STRING_COPY v1$+rc$+v2$ END_SUB ' ============================================================================== SUB DimJpg(f$) ' dimensions d'un jpg -> w, h : frame FF C0 ' (frames: FF tt 00 yy xx ... ' tt = type de frame, xx+256*yy taille du contenu (+2 = taille totale) DIM_LOCAL sz,t,x,v%(10) FILEBIN_OPEN_READ 9,f$: sz = FILEBIN_SIZE(9): x = 2 WHILE x < sz FILEBIN_POSITION 9,x: FILEBIN_BLOCK_READ 9,10,v%(0) t = v%(1): ' type de frame (FF xx) IF t=192 OR t=193 OR t=194 OR t=195: ' C0, C1, C2, C3 frame dimensions h = v%(6)+256*v%(5): w = v%(8)+256*v%(7) EXIT_WHILE END_IF x = x+v%(3)+256*v%(2)+2: ' frame suivant END_WHILE FILEBIN_CLOSE 9 END_SUB ' ============================================================================== Mais il reste plein de choses à préciser: si ce n'est pas du jpg, s'il y a plusieurs images, etc. | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 6 Oct 2014 - 23:10 | |
| L' avantage d' extraire la bande son, est de pouvoir nettoyer tout les tags et de pouvoir repartir sur quelque chose de propre et personnalisé. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Lun 6 Oct 2014 - 23:58 | |
| Ah d'accord, je comprends mieux comme ça. Tiens, un petit cadeau au passage, une petite sub qui permet de visualiser le dump d'un fichier (pour éviter l'utilisation d'une ressource externe, comme Frhed: c'est moins sophistiqué, mais ça fait l'essentiel). Il faut préciser les coordonnées et la hauteur de la fenêtre d'affichage. Les boutons servent à se déplacer d'une page (flèches) ou au début ou fin, ou quitter: - Code:
-
SUB DumpF(f$,x%,y%,h%) ' dump de f$, affiché en x%,y% de l'écran, de hauteur h% pixels IF LABEL("Boutdum") = 0 THEN LABEL Boutdum IF LABEL("Dumdum") = 0 THEN LABEL Dumdum IF LABEL("Closdum") = 0 THEN LABEL Closdum DIM_LOCAL ff%,fd%,xd%,tp%,ads%, di%, dj%, dk%, ba$, ca$, cc$, sz%, nl%, rda$ ff%=1000: FORM ff%: TOP ff%,y%: LEFT ff%,x%: WIDTH ff%,555: HEIGHT ff%,h% BORDER_SMALL ff%: color ff%,200,255,255: ON_CLOSE ff%,Closdum LIST ff%+1: PARENT ff%+1,ff%: TOP ff%+1,0: WIDTH ff%+1,WIDTH(ff%)-16 HEIGHT ff%+1,HEIGHT(ff%)-35: FONT_NAME ff%+1,"Lucida Console" BUTTON ff%+2: PARENT ff%+2,ff%: TOP ff%+2,10: WIDTH ff%+2,20: LEFT ff%+2,WIDTH(ff%+1)-21 CAPTION ff%+2,CHR$(235) BUTTON ff%+3: PARENT ff%+3,ff%: TOP ff%+3,35: WIDTH ff%+3,20: LEFT ff%+3,LEFT(ff%+2) CAPTION ff%+3,CHR$(233) BUTTON ff%+4: PARENT ff%+4,ff%: TOP ff%+4,60: WIDTH ff%+4,20: LEFT ff%+4,LEFT(ff%+2) CAPTION ff%+4,CHR$(234) BUTTON ff%+5: PARENT ff%+5,ff%: TOP ff%+5,85: WIDTH ff%+5,20: LEFT ff%+5,LEFT(ff%+2) FONT_BOLD ff%+5: CAPTION ff%+5,"F" FOR di%=ff%+2 TO ff%+4: FONT_NAME di%,"Wingdings": NEXT di% FOR di%=ff%+2 TO ff%+5: ON_CLICK di%,Boutdum: NEXT di%
nl% = INT(h%/(TEXT_HEIGHT("AB",ff%+1)-1)): ' nb de lignes affichables tp% = 16*nl%: ' nb d'octets affichés dans la page FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9): FILEBIN_CLOSE 9 CAPTION ff%,f$+" ("+STR$(sz%)+" octets = "+HEX$(sz%)+"h)" fd% = 0: xd% = 0: GOSUB Dumdum WHILE fd% = 0: WAIT 100: END_WHILE: DELETE ff%: EXIT_SUB: ' clic fin ' ------------------------------------------------------------------------------ Dumdum: FILEBIN_OPEN_READ 9,f$: FILEBIN_POSITION 9,xd%: ba$ = FILEBIN_HEXA_READ$(9,tp%) FILEBIN_CLOSE 9 CLEAR ff%+1 ads% = xd%: rda$ = "" FOR di% = 1 TO LEN(ba$) STEP 32 rda$ = RIGHT$("00000"+HEX$(ads%),6) + ": ": ca$ = " " FOR dj% = di% TO di%+30 STEP 2 cc$ = MID$(ba$, dj%, 2) rda$ = rda$ + cc$ + " ": dk% = HEX(cc$) IF dk% > 31 ca$ = ca$ + CHR$(dk%) ELSE ca$ = ca$ + "." END_IF NEXT dj% ITEM_ADD ff%+1,rda$+ca$ ads% = ads% + 16 NEXT di% RETURN ' ------------------------------------------------------------------------------ Boutdum: di% = NUMBER_CLICK IF di% = ff%+2 THEN xd% = 0: GOTO Dumdum: ' début IF di% = ff%+3: ' page précédente xd%=xd%-tp%: IF xd%<0 THEN xd%=0 GOTO Dumdum END_IF IF di% = ff%+4: ' page suivante xd%=xd%+tp%: IF xd%>(sz%-tp%) THEN xd%=sz%-tp% GOTO Dumdum END_IF IF di% = ff%+5 THEN xd%=sz%-tp%: GOTO Dumdum: 'Fin RETURN ' ------------------------------------------------------------------------------ Closdum: fd% = 1 RETURN END_SUB | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Oct 2014 - 1:02 | |
| Merci pour le cadeau JL35. Je vais prendre un exemple pour illustrer ce que j' écrivais plus haut. Lorsque l' on télécharge, copie un fichier depuis un cd puis le transforme en mp3 ou que l' on se procure un mp3 d 'une facon ou d' une autre, chaque logiciel ou chaque éditeur y va de sa facon de coder les tags. Ainsi on peut se retrouver avec un fichier mp3 plus lourd qu' un wave ( plus d' infos, plus d' octets ) Avec toutes ces infos on peut procéder comme suit. Récup des infos id3v1 et id3v2.3 voir plus Récupérer la bande son Puis recréer un fichier mp3 avec Id3v2.3 (codage maison) + bande son le codage maison peut, lui, se faire avec des plages fixes pour tous les marqueurs Si il y a plusieurs APIC, on peut en éliminer ( allègement considerable en octets ) Une fois tous les fichiers sur un même format de tags "maison" il devient plus facile de se faire une bibliothèque de ses mp3 et d' en afficher les infos. Perso, seuls 5 ou 6 champs m' intéressent : Titre,Interprète,Album,Année (et encore...), Piste (Pratique pour créer une playlist), genre ( quand il peut être défini ), Pochette ( plus joli que l' icone par défaut ) | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Mar 7 Oct 2014 - 14:10 | |
| Vu comme ça je comprends ton but. C'est vrai que seuls certains tags v1 sont intéressants, et pour les v2 seulement une image éventuelle, et encore, plus symbolique qu'autre chose, donc le plus réduite possible. J'en conclus que tu n'as à récupérer les tags v1, plus la 1ère image v2 éventuelle. Déjà ça, avec toutes les variantes possibles, c'est déjà du boulot pour arriver à coder quelque chose d'universel, qui passe dans tous les cas... | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Oct 2014 - 16:12 | |
| Oui JL35,
le principal intérêt des id3v2 pour moi est le Marqueur APIC. Toutefois, puisque l' on sait récupérer les autres, il peut être intéressant de les avoir dans le cas où le "taggage" n' est était fait que dans l' une des variantes id3v2 pour pour pouvoir reconstituer un Tag id3v1 propre et complet. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Mar 7 Oct 2014 - 17:44 | |
| Ouais... il faut quand même être motivé et avoir une belle collection de mp3 à classer et/ou harmoniser. Pour moi je dois avoir une ou deux versions d'Au clair de la lune et du bon roi Dagobert, et aussi la mère Michel (genre: rock'n roll), alors... | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 8 Oct 2014 - 3:50 | |
| @ JL35, J' en ai un peu plus...377 rien que sur le disque dur de l' ordi + mon DD de sauvegarde, heu...j' arrête de compter Mais avec des noms de fichier plus les uns que les autres et les Tags c' est un vrai foutware . C' est ma faute, je ne me suis pas fixé de règle précise au départ. Maintenant, une chose est sûr, le prochain qui cherchera des infos sur les mp3 sera servi avec ce sujet... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Mer 8 Oct 2014 - 11:26 | |
| C'est vrai que les musiques récupérées sur le web ont toutes des noms de 3km de long, ce n'est pas facile à manipuler, il faudrait prendre l'habitude de les renommer systématiquement en plus court, sachant que les infos sont dans les tags. | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 8 Oct 2014 - 11:51 | |
| Quoi de que... Le fichier que j' ai mis dans le zip est fichier extrait d' un clip par une appli en ligne et tu remarqueras que les Marqueurs les plus intéressants sont aux abonnés absents...
En fait, dans ce cas, il faut découper le nom du fichier pour créer le tag avec les blocs extraits du nom de fichier et renommer le fichier pour qu' il est un nom "propre" au sens littéral du terme.
Pour mon classement je me suis fixé des petites règles:
- les fichiers audio sont tous dans "Ma Musique" - les fichiers "chansons" sont tous classés dans un sous dossier du nom de l' interprète exemple : "- Renaud" ( pas de sous dossiers album ) - J' ai ajouté un tiret devant le nom de l' interprète pour différencier les sous dossier "chansons" des autres et surtout des sous dossiers placés là par des applications diverses et variées. - Un fichier *.mp3 porte le nom de la chanson - Toutes autres informations sont dans les tags - Le marqueur de la piste est vide comme celui du genre ( je ne garde que le titre, l' interprète, l' album [si connu],l' année et éventuellement la pochette si elle existe. | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 9 Oct 2014 - 4:12 | |
| Voilà un truc qui pourrait être utile... - Code:
-
dim f$,f2$ f2$="C:\Users\Yannick\Desktop\Song.mp3"
caption 0,"Mp3 Cleaner" height 0,300 :width 0,336 font_name 0,"Courrier" font_size 0,8
Progress_bar 3 top 3,height(0)-68 :left 3,10 : width 3,200 min 3,0 : max 3,7 : position 3,0
memo 4 top 4,5 : left 4,5 : height 4,height(0)-88 : width 4,width(0)-26
Open_dialog 5 dir_dialog 5,"C:\Users\Yannick\Music" filter 5,"*.mp3|*.mp3" f$=file_name$(5) if f$<>"_" work() else terminate end_if
end
sub work() dim_local x%,tf%,v%,v1%,p%,dep%,ts%,id3v1%(128),id3v2%(3),num%
filebin_open_read 1,f$
' taille du fichier tf%=filebin_size(1) position 3,1 item_add 4,"Taille du fichier en octets : "+str$(tf%)
' recherche du début de la bande son for x%=0 to tf% filebin_read 1,v% if hex$(v%)="FF" or hex$(v%)="ff" filebin_read 1,v1% if hex$(v1%)="FB" or hex$(v1%)="fb" p%=1 dep%=x% position 3,2 item_add 4,"Octet de début de la bande son : "+str$(dep%) exit_for end_if end_if next x% display
' recherche de la présence de id3v2 filebin_position 1,0 filebin_block_read 1,3,id3v2%(0) pause 1000 position 3,3 if chr$(id3v2%(0))+chr$(id3v2%(1))+chr$(id3v2%(2))="ID3" item_add 4,"id3v2 : Oui" else item_add 4,"id3v2 : Non" end_if display
' recherche de la présence de id3v1 filebin_position 1,tf%-128 filebin_block_read 1,128,id3v1%(0) pause 1000 position 3,4 if chr$(id3v1%(0))+chr$(id3v1%(1))+chr$(id3v1%(2))="TAG" tf%=tf%-128 item_add 4,"id3v1 : Oui" else item_add 4,"id3v1 : Non" end_if display
' lecture/ecriture des fichiers if p%=1 ts%=tf%-(dep%-1) dim bloc%(ts%) position 3,5 item_add 4,"Lecture bande son : "+file_extract_name$(f$) display filebin_position 1,dep% filebin_block_read 1,ts%,bloc%(0) filebin_close 1
position 3,6 item_add 4,"Ecriture : "+file_extract_name$(f2$) display if file_exists(f2$)=1 while file_exists(f2$)=1 num%=num%+1 f2$=file_extract_path$(f2$)+"Song("+str$(num%)+").mp3" end_while end_if filebin_open_write 2,f2$ filebin_block_write 2,ts%,bloc%(0) filebin_close 2 end_if
position 3,7 item_add 4,"Fin !!!..." item_add 4,"Fichier "+f2$+" créé." pause 3000 Terminate
end_sub Dans la journée, je rajouterai le marqueur APE. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Jeu 9 Oct 2014 - 13:58 | |
| C'est propre, je n'ai pas étudié le résultat mais je pense que ce que ça fait ce que tu disais dans ton post précédent. Et c'est assez rapide pour envisager de le faire sur des séries. | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 9 Oct 2014 - 14:19 | |
| Oui, cela fonctionne, du moins sur les deux fichier que j' ai testé... En fait, la "bande son" est constituée de "plages" qui commencent toutes par "FF FB" donc si on a la première... Il me reste le marqueur des données APE ("APETAGEX") qui est placé à la fin avant les id3v1 ("TAG") pour avoir tout viré... Cette appli demande à être développé...je vais me pauser dessus quelque temps... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Jeu 9 Oct 2014 - 16:21 | |
| J'ai l'impression que les APE sont plutôt rares, mais hélas tu es bien obligé d'en tenir compte... | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 9 Oct 2014 - 19:38 | |
| Effectivement, ils sont rares mais parfois ils sont là. Dommage, dommage, j' ai regardé un petit peu du côté du compilateur pour gagner encore un peu de temps mais certaines commandes sont encore indisponibles et d' autres marquées comme " ne sera jamais disponible..." Celà m' obligerai à passer par la dll et c' était bien en tout panoramic... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tag mp3 Jeu 9 Oct 2014 - 19:44 | |
| D'un autre côté, tu n'as peut-être pas vraiment besoin que ça aille à la vitesse de l'éclair, c'est ponctuel comme utilisation. Une petite remarque anodine dans ton code ci-dessus: - Code:
-
if file_exists(f2$)=1 while file_exists(f2$)=1 num%=num%+1 f2$=file_extract_path$(f2$)+"Song("+str$(num%)+").mp3" end_while end_if le if file_exists ne sert à rien, le while fait le boulot. Aussi, perso j'aurais mis f$ en paramètre de la sub: work(f$), et je n'aurais pas mis le terminate dans la sub, mais au retour, ça me parait plus logique: - Code:
-
if f$<>" " then work(): pause 3000 terminate Sinon, ça y est, tu maîtrises bien les fichiers binaires ! | |
| | | Contenu sponsorisé
| Sujet: Re: tag mp3 | |
| |
| | | | tag mp3 | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |