Vu que je n'arrive pas à uploader le moindre fichier sur MP ni même à en linker un via un ftp perso, je vous retransmet directement le lien vous permettant de télécharger la source de ce projet.
Pour tout commentaire, merci de créer un nouveau sujet. Celui-ci ne servant qu'à la publication des sources.
Ciao
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Nouveautés :
- un mini éditeur (ou plutôt afficheur) hexadecimal... on peut maintenant directement voir les bytes du fichier et du tag ID3 v 1 depuis le programme de test.
- des petites retouches dans le code comme par exemple l'ajout d'une méthode dans la classe EncodingFlag permettant de savoir si l'encodage demandé existe ou pas (renvoie un booléen).
Pas grand chose de plus donc, mais ces deux changement améliore déjà le code (moins de risque d'exceptions grâce à la nouvelle méthode) et simplifie les vérifications (vue hexa.)...
Pour tout commentaire, merci de créer un nouveau sujet. Celui-ci ne servant qu'à la publication des sources.
Ciao
PS : Je précise qu'il existe un sujet spécialement créé pour recevoir vos avis, bugs recensés et autres...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Nouveautés :
- tous les UserControls permettant de tester toutes les frames ont été créés (sauf un petit, qui est encore vide)... il ne restera plus qu'à leur ajouter ce qui faut pour enregistrer...
- toutes les méthodes Read et ToString de chaque frame id3 v 2 ont été écrites (sauf pour une frame qui est pas clair, j'ai placé un attribut renvoyant un warning devant la classe concernée)...
Voila... Tout est au point en principe... en testant un peu les nouvelles méthodes Read (Attached Picture et Unsynchronised Lyrics principalement, mais aussi Popularimeter), j'ai pu remarqué que j'avais fait une petite boulette : j'avais tout décalé de 1 cran à droite lors de la lecture et du coup, pas mal d'exceptions de IndexOutOfRange étaient levée... j'ai revérifié toutes les méthodes Main du coup... et fait les corrections nécessaires et en principe c'est bon...
Pour tout commentaire, merci de créer un nouveau sujet. Celui-ci ne servant qu'à la publication des sources.
Ciao et bonne continuation
PS : Je précise qu'il existe un sujet spécialement créé pour recevoir vos avis, bugs recensés et autres...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
- la dernière frame (celle dont j'avais parlé dans le post précédant) est implémenté (méthodes Read et ToString) ainsi que son UserControl associé.
... et... oups, j'en avais oubliée une autre... faite aussi avec cette petite mise à jour
Pour tout commentaire, merci de créer un nouveau sujet. Celui-ci ne servant qu'à la publication des sources.
Ciao
PS : Je précise qu'il existe un sujet spécialement créé pour recevoir vos avis, bugs recensés et autres...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
- tous les UserControls ont été modifiés de manière à permettre le renvoie des informations pour les sauvegardes, ce qui a entrainé que j'ai du recoder la partie qui s'occupait de répartir l'affichage des frames, pas mal de modifications sur ce morceau donc...
- sauvegarde et affichage complet des tags ID3 v 1.1 (sans problème en principe). Cette partie là est terminée en principe.
- sauvegarde d'un type de frame ID3 v 2.4 : les "Text Information Frames" (frames principales : artiste, album, etc.) avec interface et fonctions minimales implémentées (il n'y a pas encore les test de contraintes comme "cette frame ne doit exister qu'une seule fois ou plusieurs fois mais à la condition que ...").
- petite modification lors de la création du padding, celui-ci fait désormais le double de la taille des frames (c'était pas le cas avant).
- suppression totale du tag v 2 et nettoyage (clear).
Comme toujours, vous pouvez visualiser les résultats de vos modifications immédiatement grâce à "l'afficheur" hexadécimal du fichier dans le 1er onglet : "File Infos".
Pour tout commentaire, merci de créer un nouveau sujet ou de me contacter via la messagerie interne du site. Ce post ne servant qu'à la publication des sources.
Ciao
PS : Je précise qu'il existe un sujet spécialement créé pour recevoir vos avis, bugs recensés et autres...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Peu de changements, mais davantage de bugs sont gérés et la documentation XML est commencée (juste ce qui faut pour intellisense)...
Une nouvelle interface ajoutée au Tester, c'est celle de la library IdSharp, légèrement modifiée pour afficher les temps de réponse.
Comparez et dites moi qui gagne, mais y'a peu de chances que çà soit moi !
Pour tout commentaire, merci de créer un nouveau sujet ou de me contacter via la messagerie interne du site. Ce post ne servant qu'à la publication des sources.
Ciao
PS : Je précise qu'il existe un sujet spécialement créé pour recevoir vos avis, bugs recensés et autres...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Il y a beaucoup de nouveautés dans cette version. Je vais donc les trier par projet.
Pour le projet id3 en lui même (la bibliothèque) :
implémentation de toutes les fonctions Read & Write et vérification de leur bonne implémentation
implémentation de fonctions comparant les Frames entre elles
implémentation des conditions restrictives d'ajout de Frames (unicité, inexistance d'une valeur semblable ou d'une frame identique, etc.)
suppression de certaines exceptions qui ralentissaient le programme (notamment lors d'une frame inconnue)
en cas de frame inconnue, celle-ci est simplement "sautée" (pas d'exception de levée donc)
ajout de fonctions dans la classe statique EncodingFlag ainsi que d'une énumération
ajout d'un fichier ressource permettant d'obtenir facilement des informations sur chacune des frames (nom, type de contenu, etc.). Il s'agit de la classe FramesHelp
ajout de très nombreuses propriétés & méthodes dans la classe ID3v24 pour accéder aux données
possibilité d'écrire ou non le padding dans le tag v2
possibilité de récupérer directement les données binaires du tag v2 en cours (un tableau de bytes)
ajout (encore) de documentation XML
Pour le projet ID3Tester :
prévisualisation hexadécimale pour le tag ID3v2 (avant sauvegarde par exemple)
option d'ajout ou non de padding pour le tag ID3v2 (visible lors de la prévisualisation, effective lors de la sauvegarde)
pour le reste, pas grand chose de changé... mais en principe, on peut tout modifier (ou presque)... sauf que cette interface ne devient pas très pratique pour le coup (je ne savais pas encore ce qui m'attendais lorsque je l'avais commencé il y a déjà 2 ans ). Du coup, ce projet est abandonné et ne présente plus vraiment d'intérêt... Pour faire court, il n'est pas du tout adapté à l'édition pratique des fichiers MP3 mais plutôt dans la récupération d'informations...
C'est pour quoi, j'ai créé le projet MusicTAGEditor, basé sur le .NET Framework 3.5 (bien plus pratique comme vous pourrez le constater).
Ce projet permet une édition facile et rapide de mp3 un par un. Une édition par groupe de fichier et par dossier est prévue, mais elle est loin d'être implémentée (elle semble implémentée mais ne l'est pas du tout en fait... je dois encore réfléchir où la placer (dans la lib ou dans le .exe)).
Cependant, pour faciliter l'édition, vous êtes invité à sélectionner tout un dossier. Celui-ci est scanné et un arbre est créé à partir de là... Il ne vous reste plus ensuite qu'à cliquer sur le fichier mp3 à éditer et à l'éditer proprement dit... Vous pouvez enregistrer les modifications !
Voici toutes éditions possibles et enregistrables :
Text Informations
URL Link
Unsynchronised Lyrics
Synchronised Lyrics
Comments
Relative Volume Adjustement
Equalisation
Attached Picture
Le tout à chaque fois en offre complète (toutes les possibilités sont traitées exactement comme décrites dans les fichiers de documentation). C'est à dire :
Information sur les frames pour les Text Informations Frames, choix de l'encodage (commun ou particulier pour chaque frame)
Toutes les frames URL Link (simples et multiples)... On voit également ainsi comment se comportent les autres éditeurs (notamment Windows Media Player)
Choix de l'encodage et de la langue pour les Unsynchronised Lyrics...
Choix de la langue, de l'encodage, du format time stamp (seules les millisecondes fonctionnent dans les preview que j'ai codé), et du type de contenu pour les Synchronised Lyrics. Pour faciliter encore davantage l'édition dans ce mode, un lecteur Mp3 est adjoint et permet de synchroniser assez facilement les paroles et le texte... ou les images... ou les pages webs puisque ces options sont disponibles ici (conforme à la documentation). Un bouton preview permet de voir si les paroles ou les images sont bien synchronisées... Je crois me rappeller que la preview ne fonctionne pas encore avec les pages webs... Mais les fonctions de sauvegarde en elles-même ne posent pas de problème. (Je suis assez content de moi pour cette partie là tout de même)
Choix de la langue et de l'encodage pour les Comments
Le mode Relative Volume Adjustement est à voir. Il permet d'enregistrer les informations dans le fichier, c'est certain... Encore faut-il trouver un lecteur capable de les exploiter (comment savoir ?). Cette frame permet d'ajuster (ou de déséquilibrer) les hauts parleurs en augmentant ou diminuant les decibels que chacun doivent émettre pour le morceau.
Le mode Equalisation... difficile de vérifier si çà marche, mais c'est implémenté.
Ajout d'Attached Pictures, choix du type MIME, choix du type d'image, description de l'image requise, choix de l'encodage (de la description). Possibilité d'enregistrement sous forme de lien (conforme à la documentation).
Quelques remarques à propos de ce dernier projet et de son utilisation :
Je ne l'ai pas testé en mode 'Nightmare', mais il marche plutôt bien...
Ce projet n'est destiné qu'à l'édtion des tags ID3v2. Les tags ID3v1 n'apparaissent absolument pas !
Les conditions restrictives d'ajout de frames ne sont pas directement implémentées avec l'interface... Ces tests (conditionnels) sont effectués au moment où vous enregistrez les modifications... Ce qui veut dire que vous aurez par exemple le droit d'ajouter dans le logiciel deux fois les mêmes paroles (même langue et même description) mais que lors de la sauvegarde, une seule des deux frames sera prise en compte (la première en principe). Cependant, ceci est sans gravité en général étant donné que ces conditions restrictives sont logiques... Si vous ne faites pas n'importe quoi, vous ne devriez même pas vous en apercevoir...
Attention ! Dangereux lorsqu'est compliqué avec le système de gestion des tags de Microsoft Windows (différent de celui de Windows Media Player a priori) qui ne reconnait quasiment rien ! Dangereux également avec Windows Media Player.
Il est tout de même recommander de l'utiliser sur des fichiers tests. Windows ayant tendance à ignorer tout ce qu'il ne comprend pas, vous risqueriez de vous retrouver avec des tag v2 en double (çà m'est déjà arrivé :devil:) ou des débuts de fichiers MP3 contenant des padding dans la zone MP3 (perte de quelques Ko)... des trucs pas jojo que nous fait Mister Windows quand il est pomé...
Voila pour quoi je vous conseille de faire des tests sur des copies de vos musiques préférées... même si celles-ci ne seront jamais endommagées... Vous pourrez découvrir les trucs que Windows vous fait sur vos fichiers MP3 avec un petit éditeur hexadécimal à vos côtés... (Notepad++ par exemple ).
Au passage, quelques remarques :
Des screenshots sont disponibles dans la partie screenshots de ce projet.
Vu que j'ai utilisé le .NET Framework 3.5 pour ce projet, cela signifie que je travaille avec Visual C# 2008 ! Ce qui signifie que les projets ne sont plus directement ouvrable (en principe) avec les versions ultérieures de Visual... mais elles sont par contre utilisable ! Il vous suffit pour cela de récréer les projets avec une version précédente de Visual C# (2005 minimum) et d'y ajouter "à la main" les fichiers correspondant au projet.
Voila, que de longues listes... et c'est pas fini.
Le dernier des nouveaux projets et des nouveautés tout court est une application Console.
Nom de projet : HarnessConsole (pas très original, je sais )
Nom du programme : fpid3
Celui-ci vous permet d'avoir accès à pas mal d'infos (lecture et écriture) de vos MP3 et tout çà sans bouger de votre Terminal.
Plutôt destiné aux utilisateurs de Linux (sous Windows, vous avez le super programme longuement décrit ci-dessus... et puis, la Console, sous Windows, "c'est beuh beuh..."), ce programme permet de faire pas mal de choses rien que depuis le Terminal (pratique pour d'éventuels fichiers Shell Script).
Ci-dessous, l'aide complète du programme, histoire de voir un peu tout ce qu'il peut faire :
fpid3 dit : usage: id3 [options] filename
FPID3 Process ID3
Main options:
-L show license
-h show help
--help show help
--version show version
--list-genres list predefined id3v1 genres showing values and string
--list-frames [options] list id3v2 frames providing id, description and help
--display enable the intern command line program
--clear clear all tags
--delete delete all tags
--tag-version show the most recent tag version presents in the file
ID3v1 options:
--clear-v1 clear the id3v1 tag
--delete-v1 delete the id3v1 tag
--get-v1 show all id3v1 data
--get-album show the album name
--get-artist show the artist name
--get-comment show the comment
--get-genre show the genre
--get-title show the title
--get-track show the track number
--get-year show the year
--set-album <string> set the album name
--set-artist <string> set the artist name
--set-comment <string> set the comment
--set-genre <int> set the genre
--set-title <string> set the title
--set-track <int> set the track number
--set-year <int> set the year
ID3v2 options:
--clear-v2 clear the id3v2 tag
--delete-v2 delete the id3v2 tag
--get-v2 show all id3v2 data
--get-T000 show all text information frames
--set-T000 <id> <text> set a text information frame
--del-T000 <id> [<id>...]delete the text information frame(s)
--get-TXXX show all user defined text information frames
--set-TXXX <desc> <text> set a defined text information frame
--del-TXXX <desc> del a defined text information frame
--get-W000 show all url link frames
--set-W000 <id> <url> set a url link frame
--del-W000 <id> delete a url link frame
--get-WXXX show all user defined url link frames
--set-WXXX <desc> <url> set a user defined url link frame
--del-WXXX <desc> delete a user defined url link frame
--get-USLT show all unsynchronised lyrics frames
--set-USLT <path> set an unsynchronised lyrics frame from a file
--del-USLT <lng> <desc> delete an unsynchronised lyrics frame
--get-SYLT show all synchronised lyrics frames
--set-SYLT <path> set a synchronised lyrics frame from a file
--del-SYLT <lng> <desc> delete a synchronised lyrics frame
--get-COMM show all comment frames
--set-COMM <path> set a comment frame from a file
--del-COMM <lng> <desc> delete a comment frame
--get-PCNT show the play count
--set-PCNT <count> set the play count
--inc-PCNT increment the play count
--dec-PCNT decrement the play count
--del-PCNT delete the play count
--get-POPM show all popularimeter frame
--set-POPM <email> <count> <rating> set a popularimeter frames
--del-POPM <email> delete a popularimeter frame
--get-APIC export all attached pictures
--set-APIC <desc> <path> set an attached picture
Advanced options:
--dump dump id3v1 and id3v2 tags of a file
--dump-v1 dump the id3v1 tag of a file
--dump-v2 dump the id3v2 tag of a file
--intellidump enable colors when dumping
--disable-padding disable the id3v2 padding
--raise-events show events
--ro write on unlimited lines (more than 80 chars)
--raw-mode disable all colors and presentations
--list-frames options:
--sp allow simple pattern like T* or *A*
pattern a regular expression
--encoding [options] change encoding of specified frames
--encoding options:
<frame id>
<value> encodings values : ISO-8859-1, Unicode, UTF8
Some options are currently unvailaible...
Je précise qu'il a été testé sous Ubuntu et qu'il a besoin de Mono (ou DotGNU) d'installé (apparemment Mono est préinstallé et prélancé sur Ubuntu, donc rien à faire, juste lancer le programme).
Un fichier nommé faq.fpid3.txt est join aux projets et se trouve dans l'archive et explique comment utiliser le programme.
Quelques screenshots sont égalements disponibles pour cette application.
Tous ces projets, toutes ces fonctions ont été implémentées il y a déjà un certain temps, il est donc possible (probable) que j'en est oublié quelques unes... Mais comme vous pouvez le constater, il y en a déjà beaucoup.
Enjoy with your MP3 !
PS : Finalement, pour des raisons de format et de nombre, les nouveaux screenshots sont par ici : http://crazyfaboo.free.fr/screenshots
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.