Présentation

Recherche

Catégories

Calendrier

Janvier 2012
L M M J V S D
            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          
<< < > >>
Lundi 30 avril 2007 1 30 /04 /Avr /2007 19:27
Bienvenue sur ce site qui a pour vocation de présenter et de partager mon modeste travail en développement PHP, mysql et javascript.

N'oubliez pas de faire F5 pour bénéficier des actualisations du CSS du site




Sommaire du BPM Project

 

... Avancé du Projet BPM ...

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


... Avancé du défi 1 million de titre ...

2%

 



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 :

C:/Program Files/VirtualDJ/ VirtualDJ Database (Nom de l utilisateur).XML

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 !

>>>>> Plus d info sur le parseur (Pas encore dispo)


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:



Le nettoyeur de titre est un module a part entière qui intervient dans ce projet mais sera aussi proposé gratuitement aux webradios partenaires qui auront bien contribuées au 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
David Guetta - Love Don T Let Me Go ( Rmx Ft Joachim Garraud)

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:

Base-de-donn--e.JPG

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!


Par U115 - Publié dans : BPM Project
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 29 avril 2007 7 29 /04 /Avr /2007 20:50
Ce projet est réalisé de façon totalement bénévole uniquement par moi même et tout le code de ce projet sera mis en ligne gratuitement pour toute personne qui a participer ou désire travailler dessus pour l améliorer.

Pourquoi participer?

C
e projet est aussi une présentation et une introduction au codage php qui représente 99% des sites actuellement sur internet, s y interesser et participer vous permettra de mieux comprendre le fonctionnement d un site ecrit en php et de mieux utiliser internet.

Participer a un projet bénévole qui pourra servir grandement plus tard a de nombreuse personnes (par exemple les DJ jouant sur platines vynils ou les personnes souhaitant rechercher des titres a acheter dans une gamme de BPM bien précise, etc), y compris a de grande webradio (concernant le module de nettoyage des titres).

Encourager un travail volontaire et bénévole sans aucune contrepartie.

Cela ne vous coute rien et vos morceaux seront mélangés dans une base géante donc pas de risque de se faire prendre ses idées.

Rentrer dans une mini compétition! Je suis en train de mettre au point un système de point qui permettra de juger la contribution de chaque personne, par exemple:
* 1 Point par titre soumis
* 5 points bonus par titre soumis non dans la base
* 5 points bonus par artiste soumis non dans la base
* Total des points multiplié par un coefficient de bonne écriture des titres: si vos titres sont dans l ensemble plutot bien nommé votre score sera multiplié par 2 a 3, sinon il restera normal en cas de catastrophe! (ceci pour encourager les personnes qui ont des titres bien nommés donc qui me prendront moins de temps a vérifier, mais ne paniquer pas le titre cleaner est la ;-)!)


Comment participer?

Deux cas de figure, pour l instant le parseur a été fait pour Virtual DJ:

>>> Vous posséder Virtual DJ <<<
>>> Vous ne posséder pas Virtual DJ <<<

FAQ

Je ne posséde pas beaucoup de titre, est interessant pour le projet de participer?
Oui bien sur, ce qui compte c'est le geste! Et vous pouvez toujours parler de ce projet a vos amis ou mettre un lien sur votre site avec une explication ou bien encore demander autour de vous et trouver des personnes interessées. Un système de parrainage sera mis en place pour vous permettre d'engrenger 25% des points des gens qui vous aurez ammener a participer!

Je n'aime pas dévoiler mes morceaux, c'est la force de mes sets
Aucun soucis, vos morceaux seront belle et bien présent dans la base finale mais noyer parmis des milliers d autres titres. De plus il ne s agit pas la d envoyer vos morceaux mais juste l information du titre et du BPM calculé par un logiciel.

Je ne veux pas publiquement dévoiler mes morceaux:
Il ne s agit pas la de dévoiler vos morceaux, lors de la participation vous me communiquer un pseudo sous lequel votre participation sera prise en compte et vous permettra de suivre vos points et bénéfices éventuels.
Toutes les données sont ensuite regroupé dans la base et je supprime le fichier de donnée que vous m avez envoyé afin de respecter votre choix.

Quels sont précisement les informations exploitées, par exemple dans mon fichier xml de Virtual DJ il y a aussi d autre information tel que les commentaires ou la durée d un morceau etc, sont elles protégée?
Oui bien sur, les seules données récolté par le parseur qui est déja fait sont: Auteur Titre et BPM. Les fichiers de données sont ensuite effacés une fois exploités.

Quel sont concrétement les retours que j'aurai de ce projet?
Le projet est a son début, concrétement vous aurez un listing complet et organisé de vos fichiers qui vous sera envoyé par email et qui sera tout bien renommé au niveau des titres. Ce listing vous permettra de voir par exemple la liste de vos morceaux a tel BPM.
Votre participation vous donnera aussi accès a la base finale a hauteur de votre contribution.
Vous aurez aussi si vous coder en php accès au module de nettoyage des titres qui peut etre évoluera vers un module de renommage de vos fichier mp3 sur votre ordinateur !

Que deviendra la base de donnée?
Si tout va bien elle donnera vie a un site mis a disposition gratuitement de tous. Sinon elle sera au minimum exposé et classé sur un simple site, tojours est il qu'elle sera a votre disposition et vous pourrez l exploiter par exemple avec Acces ou Excel.

Comment envoyer mon fichier de données?
Vous avez pluis de détail dans les sous sections, si vous avez Virtual DJ il faut me l'envoyer a geozzz2005@yahoo.fr sinon rechercher le fichier xml éventuel correspondant a votre logiciel et envoyer le moi je verrai si je peux faire une exploitation.

Je ne comprend pas l objectif véritable de ce projet?
Moi non plus lol non je rigole, a l origine je fais ce projet pour m améliorer en développement php, mais faite moi confiance ces répercutions seront conséquente.

Je suis développeur je veux participer?
Oui bien sur c'est possible et vous aurez tous les outils nécessaire pour participer, écriver moi a geozzz2005@yahoo.fr, si vous etes débutant c'est possible aussi.

Je dirige une webradio le module de nettoyage des titres m interesse grandement?
Je vous comprend ! Il sera disponible pour les webradio ayant participer, pour cela un barème minimum de point a avoir sera mis en place, il vous faut donc trouver de gens qui veulent bien participer et leur dire de vous mettre comme parain.
Une fois le nombre de point limite atteint vous recevrer le module de nettoyage et ses mises a  jour.


D'autres questions? les commentaires sont fait pour ca!



Par U115 - Publié dans : BPM Project
Ecrire un commentaire - Voir les 0 commentaires
Vendredi 27 avril 2007 5 27 /04 /Avr /2007 21:22
Virtual-DJ.JPG  
Vous avez le logiciel Virtual DJ alors votre contribution au projet ne vous demande aucun effort!


Il faut juste repérer l'emplacement du fichier Virtual DJ Database et me l'envoyer a geozzz2005@yahoo.fr, vous recevrez ensuite une confirmation de votre participation.

Je ne trouve pas le fichier ou est il?
Il se situe dans l emplacement: C: Program Files/Virtual DJ
Voici une illustration pour vous expliquer clairement:
emplacement.JPG
N hésitez pas en cas de problème a intervenir en commentaire.

Je ne suis pas sur que tous mes fichiers sont scanner ou je souhaite envoyer un maximum d info (plus de points !)
Vous avez beaucoup de fichier mp3 par exemple et vous ne les avez pas tous jouer ou scanner avec VDJ pour calculer leur BPM (cela se voit facilement quand vous jouer sur le logiciel tous les morceaux n ont pas l info BPM indiquer) alors augmenter vos chances d avoir un maximum de points en relancant le calculc complet de tous les titres, cela est unpeu long mais vous permettra plus tard d'avoir toutes les info pour jouer et pour le projet cela multiplira le nombre de titre renseigné!
Voici la démarche:

ETAPE 01: Cliquer sur Base de donnée locale dans Virtual DJ
scan1.JPG

ETAPE 2: Lancer le scan
Cas 1 vous n'avez jamais fais cela alors une fenetre de dialogue s ouvre choississez OUI
scan2.JPG
Cas deux rien ne s'affiche avec un clic normal alors faite clic droit et Parcourir le disque
scan3.JPG

ETAPE 3: Configurer correctement le scan
Selectionner tous les disque dur contenant des morceaux et cocher analyse étendu pour que le logiciel calcul automatiquement le BPM de chaque morceaux.
Le processu est long mais en vaut la peine vous aurez ensuite toutes les infos sur vos morceaux.


ETAPE4: Attendre:
Le processus étant assez long vous pouvez le lancer quand vous n utiliser pas Virtual DJ par exemple
scan5.JPG

Etape finale: Fermer le logiciel et allez chercher le fichier XML correspondant qui doit avoir une taille supérieure a 100Ko si vous avez un minimum de morceaux, envoyer moi ce fichier pour participer.

Des questions?
Par U115 - Publié dans : BPM Project
Ecrire un commentaire - Voir les 0 commentaires
Mardi 24 avril 2007 2 24 /04 /Avr /2007 21:59
Vous ne possedez pas Virtual DJ, ce n'est pas grave ce projet n'est pas forcément associé a ce logiciel.

Vous devez regarder dans le répertoire de votre logiciel si il y a un fichier qui contient les informations sur le BPM des morceaux que vous avez, ce fichier est bien souvent un fichier XML.
Votre logiciel doit bien sur etre capable de calculer ce BPM et de vous l afficher si c'est le cas alors il a surement un fichier de base de donnée.

Une fois que j'aurai de nouveau format de fichier je tentererai de réaliser de nouveau parseur pour rendre compatible un maximum de logiciel.

>> Envoi a geozzz2005@yahoo.fr.
Par U115 - Publié dans : BPM Project
Ecrire un commentaire - Voir les 0 commentaires
Lundi 23 avril 2007 1 23 /04 /Avr /2007 22:24

Présentation du module Titre Cleaner
Date de lancement: Avril 2005
Version Actuelle: 7 (Version 8 beta en cours)
Auteur: U115
Contribution: Aucune contribution pour le moment
Télécharger: (Pas encore dispo, interesser mettez un commentaire)

Ils utilisent Titre Cleaner sur leur site:


Nom du site/projet

URL

Depuis le

BPM Project

Site

04/2007

VOUS?

INFO


(Nouveau) La Version 8 Beta en cours de préparation !

Une nouvelle version très prometteuse qui est en cours d'optimisation et qui donne des résultats impressionants avec un taux de correction bien supérieur a la dernière version en ligne.

Au menu:

  • Correction de plus de 90% des bugs de la dernière version
  • Traitement des suffixes indésirables (Plus de 430 répertoriés a ce jour, à sa sortie la version 8 en comprendra environ 600)
  • Optimisation majeur du traitement de l'étiquette de la version du morceau (par exemple (Original Mix))
  • Rajouts de spécificités

La version 8 beta est utilisée actuellement pour le BPM Project et permet de réduire le temps de traitement pour 100 morceaux de 9 minutes à 4 minutes environ avec un taux de correction amélioré de plus de 40%. (Une partie du temps gagné dans le traitement vient de l'amélioration du formulaire de traitement).

La sortie c'est pour quand?

La version 8 a pour ambition d'être une version vraiment aboutie, sa sortie est conditionnée par plusieurs points:

>> La version devra être testé et optimisé sur 10 000 titres

>> Le formulaire de saisie pour le bpm project permet d'inscrire dans un fichier les titres qui ont mal été traité par le correcteur de titre, actuellement environ 1000 titres mal traités doivent être inspecté et une adaptation du nettoyeur envisagé pour chaque si possible, cette étape minutieuse devra être terminée avant la sortie.

Vous l'avez bien compris cette version 8 sera la version de référence une fois sortie et marquera la fin de la phase de test du concept.

 

 

 

Présentation rapide:
Ce module écrit en php a pour objectif de standardiser l ecriture des titres musicaux dans le but
soit de gérer la qualité d une base de donnée (BPM Project) soit de fournir des
informations en live sur le titre en cours pour une webradio (Des webradios interessées, voir la page INFO).

A long terme il pourra aboutir sur la création d un logiciel permettant d utiliser ces filtres sur son
ordinateur en local.

Standard pour le titre d'un morceau

Ce module php a pour but d arriver a une écriture standard des morceaux afin par exemple de ne pas faire
de doublon inutiles dans une base de donnée ou de rendre propre et cohérent l affichage d
une playlist sur une webradio.
Le standard choisi a été peaufinné par mes soins au cours de mon expérience en tant que DJ
(non professionel), il est donc assujeti a une grande expérience dans ce domaine.

Descriptif du standard:


Auteur Ft Auteur2 - Titre (Type de la version)

>Le champs Auteur

Ce champ est scindé en deux parties Auteur et Auteur2 ou plus, chaque artiste étant écrit avec une majuscule au départ et espacé, la sépration entre l artiste principale et les autres se fait par
un Ft signifiant featuring.

>La séparation Auteur Titre

La séparation se fait avec le tiret avec un espace avant et après le tiret. Les différents mot dans le titre global du morceau sont séparés par des espaces et non des "_" ou autres.

Le tiret doit etre présent une seule fois.

>Le type de la version

Ce champs doit etre mis entre parenthèse "( )" avec une seule répétition (pas de "(( ))") et pas d utilisation d autre symbole par exemple "[ ]".
Les mots utilisés dans ce champs sont soumis a une orthographe stricte par exemple:
Rmx: pour remix et non remixed, remix, rmix etc
Original Mix: pour une version original et non Originale Mix, Original Version etc
Acapella: pour une version seul avec les voix et non akapella, accapella etc

Descriptif des filtres présent dans le module

Cette description n est volontairement pas complète mais vous donne déja de bon exemple sur l'action du script.
L 'usage du module est instantané et est supporté par une architecture en PHP uniquement.


Mise en compatibilité des résultats avec le format HTML (pas besoin d utiliser des fonctions
comme htmlentities) Censure des adresses email dans les titres et des URL avec effacement
automatique des parenthèses autour de cette info

Effacement complet des accents comme par exemple à qui devient a ou é qui devient e.

Traitement des caractéres en double abusif: adapté au tiret et au parenthèse,
par exemple un "- -" deviendra "-" ou un "((((( )))))" deviendraa "( )". Capable jusqu a plus de 100
répétitions et sans bouclage du code.

Effacement du suffixe audio par exemple du .mp3

Traitement de standardisation des mots courant, comme par exemple
une version remixé sera tojours noté Rmx, idem pour un acapella.

Effacement des points présents dans le titre (pour une meilleur compatibilité php)

Traitement des fautes d orthographe couramment rencontré par exemple sur Mix ou acapella.
Sera optimiser avec le temps.

Effacement des guillements, par exemple "Il S'est Planter" devient "Il S Est Planter"

Controle des espacement après le séparateur Artiste Titre et les parenthèses

Fermeture automatique d une parenthèse non fermée

Standardisation du placement des majuscules
(y compris des usages spéciaux comme DJ qui ne sera jamais écrit Dj puis dj etc mais
toujours DJ ou mise en majuscule de part et d autre du caractère &)

Mise en sortie dans deux variable distinctes de l auteur et du titre.

D autres idées, vos suggestions en commentaire
Quelques exemples
En rouge le titre avant le traitement
En vert le titre après le traitement


David Guetta---Love doN't Let me go
(((Remix featuring Joachim garraud)))(geozzz2005@yahoo.fr)(http://u115php.over-blog.fr)

David Guetta - Love Don T Let Me Go ( Rmx Ft Joachim Garraud)

Frankie GoEs To hollywood -- Relax '[Original New York Mix]
Frankie Goes To Hollywood - Relax (Original New York Mix)

Kool & The Gang - Fresh [[[Remix Akapella par Dj édithôs]]]
Kool & The Gang - Fresh ( Rmx Akapella Par DJ Edithos )


D autres exemple soumettez le code a l épreuve en m envoyant en commentaire un titre que vous voulez voir réécrit.

Par U115 - Publié dans : BPM Project
Ecrire un commentaire - Voir les 0 commentaires
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus