N'oubliez pas de faire F5 pour bénéficier des actualisations du CSS du site
Sommaire du BPM Project
- Présentation (voir ci dessous)
- Comment participer ?
- Explications pour les utilisateurs de VDJ
- Explications pour les utilisateurs d'autres logiciels
- Le nettoyeur de titre ! (Nouveau présentation V8 a venir)
-
Tester en ligne le titre cleaner (Bientôt une nouvelle version!)(Version 7
déja en ligne)
- Le classement: explications du calcul des points (Nouveau système de calcul, explication bientôt)
-
Voir le CLASSEMENT (Mis à Jour!)
- Accéder a la base globale (Indisponible)
| Nombre d'artistes répertoriés | 9161 |
| Nombre de titres répertoriés | 18449 |
| Nombre de participants | 7 |
| Nombre de points attribués | 28602 |
| Mis a jour le 11/05/07 >> Classement | |
Le BPM Project
Qui peut être interessé?
>> Les utilisateurs de logiciels de mix qui peuvent participer au projet et en récolter les fruits
>> Les DJs qui pourraient plus tard se servir de cette base
>> Les webradios qui seront particulièrement interessées par le Titre Cleaner
>> Les développeurs PHP qui pourront optimiser le code qui sera mis en OPEN SOURCE
>> Les curieux qui veulent mieux comprendre les possibilités d' Internet
Présentation
L' objectif de ce premier projet est de constituer une base géante qui permet de
trouver le rythme d un morceau, ce que l'on appelle son BPM.
L' utilisateur n'aura plus qu'à tapper le nom de l'artiste ou du titre pour voir s'afficher la liste des morceaux dans la base correspondante. La base a pour objectif de répertorier un
million de morceau, et de réussir a l exploiter de facon fluide, l'enjeu est donc de taille.
Composante du projet
La récupération des données
Cette récupération doit être automatisée ou plutot assistée par le php afin de tenir l'objectif ambitieux du nombre de morceaux répertoriés. Les données sont
récupérées sur des logiciels qui sont capables de calculer les BPM des morceaux:
La source
* Virtual DJ: Ce logiciel fournit un fichier XML avec les données qui nous interesse, c'est à dire le titre du morceau son auteur et le BPM
* ID3Tag: Ce logiciel est capable d' exporter au format excel les données des ID3tag.
Tout autre logiciel de mix ou de calcul de BPM est normalement compatible et je lancerai la création d un parseur (code qui permet la récupération automatique des données) pour ces nouveaux
formats lorsque des personnes m' auront transmis ces fichiers spécifiques.
La récupération automatisée
Je vais présenter le premier parseur qui est validé pour VirtualDJ:
Ce logiciel stoque le résultat de l'analyse de ces BPM sous forme d' un fichier XML situé dans :
Voici un extrait pour vous permettre de mieux comprendre la démarche:
|
FileName="AdamZ ft Electric Boogie - The AdamZ Project.mp3" FileSize="3047424" TagDate="703111858"> Bpm="20352" Phase="17664" BeatPhase="1" /> |
Pour récupérer l' information qui nous interesse donc le titre du morceau contenu dans Filename, il faut faire ce qu' on appelle un parseur. Ce code php permet d' analyser a la
volé le fichier xml et d' en extraire dans une table a deux colonnes les infos:
Table $database:
| Artiste - Titre | BPM |
| AdamZ ft Electric Boogie - The AdamZ Project | 20352 |
| Cadatta - Tri (Jeff Hil0 rmx) | 20835 |
Cetta variable tableau est ensuite stockée une fois nettoyée dans la base finale qui contient les informations.
Passons maintenant a l'étape de nettoyage !
Le nettoyage des titres
Pour gérer un telle base provenant de la contribution de diverse utilisateurs avec leur habitude pour nommer leur morceau, il est indispensable d' établir une régle de
"nommage" des titres rigoureuses et de l'appliquer sur les fichiers de données reçus afin d éviter au maximum les doublons dans la base.
J'ai donc commencé par mettre en oeuvre mon standard d'écriture des titres qui est présenté plus en détail sur un autre article et peut servir d' exemple d'ailleurs pour toutes personnes
souhaitant arrivées à un certain niveau d' excellence dans l' organisation de ses morceaux.
Concrétement pour notre projet ce standard doit etre appliqué à tous les titres de morceaux reçus et ce de façon assistée par l ordinateur sinon le travail serait trop énorme ! et trop compliqué
pour arriver à une base finale optimisée.
Voici donc un petit graphique pour vous expliquer où intervient ce nettoyeur et la structure globale du projet:
Ce module permet de présenter dans un formulaire la liste des titres contenu dans le fichier de données(XML) en les pré nettoyant afin de gagner un temps considérable pour le remplissage de la base finale et surtout d' uniformiser au maximum et de façon certaine la façon de nommer les titres, ce module pourra pour les webradios leur permettre d'assurer un bon nettoyage de l' info titre en cours et ce en live afin d'assurer à leur visiteurs une meilleur information de qualité.
Quelques exemples de l' action du nettoyeur:
Titre avant traitement:
David Guetta---Love doN't Let me go (((Remix featuring Joachim garraud)))(geozzz2005@yahoo.fr)(http://u115php.over-blog.fr)
On voit sur ce titre de nombreux défauts par exemple:
* Le shéma Artiste - Titre est respecté mais avec plusieurs tirets et sans espace
* Les majuscules sont mal placée
* Des parenthèses sont redondantes
* L' utilisateur a mis son adresse email et son URL de site internet ce qu'il faut effacer!
* La guillement peut faire un ravage dans le code php d' un site de webradio ou dans la manipulation
Mais le nettoyeur est là !!!
Voici le Titre après traitement
Le shéma est alors bien respecté, ce titre nettoyé est ensuite séparé automatiquement en Auteur et Titre puis injecté dans un table formulaire que je vérifie visuellement pour assurer les défaillances éventuelles du nettoyeur.
Au fur et à mesure de l' exploitation j'optimise ce nettoyeur.
Une fois bien revérifier il ne reste plus qu'à valider pour que les données soient enregistrés dans la base finale.
Exploitation de la base finale
La base finale a été pensé pour être la plus légére possible.
Nous avons donc la structure suivante:
Il est plus judicieux de créer un table artiste séparée que de stoquer dans une même table les données Artistes et Titres car cela impliquerai une redondance des données si un même artiste a plusieurs titres ce qui va forcément arriver (esperons le ou sinon c'est le fiasco du projet !).
Cette base une fois bien remplie sera exploitée par une application AJAX pour faire un site internet dédié (enfin essayer, c'est ma première tentative en ajax).
Pour mieux comprendre cela je vous conseille d' aller jeter un oeil sur les exemples en ligne fournit par Rico.
C'est l extension Livegrid qui sera utilisée ici, si quelqun si connais pour cela il faut m' aider car je n'ai pas d ' expérience dans ce domaine.
N' hésitez pas à poster vos commentaires!