Nous avons mis au propre pas mal de choses, et notamment l'aspect des résultats de la recherche sur le Web, et la présentation des détails sur chaque morceau. Un classement des résultats selon divers critères a été mis en place. Il fonctionne déjà dans Harmony Assistant, et fonctionnera dans la version Web dès que nous aurons permis à l'utilisateur de sélectionner l'ordre de tri. En parallèle, nous avons commencé à créer le formulaire qui permettra aux ayant-droits de signaler à notre attention les oeuvres non libres de droits qui pourraient avoir été indexées par le moteur. Une loi (la LCEN quelque chose) impose aux hébergeurs de supprimer les contenus litigieux dans les plus brefs délais après signalement. Bien que n'étant pas hébergeur, mais simple collecteur de liens sur des fichiers hébergés ailleurs, nous nous sentons moralement tenus de faire le ménage dans notre base de données, aussi appliquerons-nous le même principe à Kooplet. |
|
|
by Olivier Guillion | | | |
|
Ce week end nous avons lancé une collecte d'une nouvelle base. Une session d'Harmony et une de PDFtoMusic on traité 8000 fichiers. Ceci nous a permis de localiser des petites irrégularités et de les corriger. Par exemple, la page choisie pour l'aperçu n'est pas automatiquement la première du document puisque si la partition comporte de nombreuses portées, cette page ne comporte que le titre. La fenêtre présentant les résultats a été améliorée. On peut faire des tris selon un critère choisi, croissants ou décroissants. Nous nous sommes un peu amusé avec cette base et nous nous sommes rendus compte que l'on avait oublié de collecter la durée de la musique, ce qui est tout de même important ! Toutes ces petites choses font que nous allons redémarrer une base à zéro cette nuit. |
|
|
by Didier Guillion | | |
| |
|
En local, tout fonctionne maintenant. Encore quelques tests et nous pourrons lancer une reconstruction de la base, très certainement Lundi. Dans la base de donnée, nous allons mémoriser le nombre de fois où un fichier a été téléchargé et un indicateur de sa complexité. Ceci nous permettra à terme de présenter les fichiers les plus intéressants en premier. Nous avons implémenté une boite de configuration de la recherche. On peut y paramétrer la liste des types de fichiers à prendre en compte et ceux à exclure, le nombre maximal de fichiers dans les résultats, le mode de recherche dans les textes, la liste des sites à explorer et ceux à exclure et enfin, le dossier où se téléchargent les documents. Cela couvre tout les paramètres que l'on peut saisir dans le champ de recherche dans la version Web. |
|
|
by Didier Guillion | | | |
|
La structuration des données stockées dans les bases a été reprise. Nous avons pas mal réfléchi aux nouvelles options qui seraient intéressantes pour l'utilisateur, et nous nous posons encore quelques questions. Tout d'abord, la date et l'heure à laquelle le fichier a été découvert par Kooplet sera stockée. Bien entendu, à la première construction de la base, cela n'aura que peu d'intérêt, puisque tous les fichiers seront mis en base dans un intervalle de quelques jours. Mais par la suite, les fichiers musicaux nouvellement trouvés pourront être mis graphiquement en évidence, et les recherches pourront être limitées à un intervalle de temps, afin de ne montrer que les nouveaux fichiers. Une option possible, qui pourrait être mise en place avec peu de difficultés technique serait un système d'alerte par mail. Par exemple, vous cherchez un morceau dont le texte contient le mot "Beethoven" et qui contient une certaine séquence de notes (par exemple, Pom pom pom pom ). Si vous ne trouvez pas votre bonheur, vous pouvez poser une alerte sur cette recherche. Lorsque Kooplet trouve un nouveau morceau qui correspond à vos critères, il vous previent par e-mail. Mais cela serait-il bien utile? Si on ne trouve pas tout de suite le morceau qui nous intéresse, aura-t-on envie d'être prévenu la semaine suivante s'il est enfin trouvé ? Zatizecouechtion. Nous avons également mis en place la structure générale permettant de gérer une note de qualité attribuée à chaque morceau. Les utilisateurs pourraient évaluer la qualité des morceaux et ainsi modifier l'ordre d'apparition lors d'une recherche, ou permettre de restreindre la recherche aux morceaux au-dessus d'une certaine valeur de qualité. Mais nous hésitons également. Par expérience, il y a toujours un petit malin qui essaie de truquer le système pour voter plusieurs fois et faire monter artificiellement la note de tel ou tel morceau. Techniquement, nous pouvons difficilement mettre en place un système efficace pour contrer ces pratiques. Faut-il pour autant présenter les résultats dans un ordre indéterminé? Ici également, on est un peu dans le flou... |
|
|
by Olivier Guillion | | |
| |
|
Tout d'abord, la recherche via Kooplet a été intégré dans PDFtoMusic, et les premiers résultats de recherche ont été menés avec succès. Bien entendu, seuls les documents au format PDF sont affichés dans ce cas. Ensuite, les codes sur lesquels nous travaillions de manière séparée depuis la semaine dernière ont été fusionnés. Lors du traitement par Harmony des fichiers envoyés par le serveur, une petite image de la première page est générée, comprimée (voir billet précédent), retournée et mémorisée sur le serveur. Cette image est ensuite fournie par le serveur comme un élément d'information dans les résultats de la recherche et affichée dans la boîte de Kooplet. Nous avions quelques doutes sur l'utilité de cette prévisualisation mais en fait, c'est indéniablement indispensable : en un coup d'oeil on voit le nombre d'instruments, la complexité de l'instrumentation... Et en cas de doute, en un seul click, le document est chargé dans Harmony pour une consultation complète. Tout fonctionne donc bien, mais mauvaise nouvelle, il va très certainement falloir effacer notre base (82 000 documents) et repartir à zéro puisque jusqu'à présent nous ne collections pas cet aperçu... |
|
|
by Didier Guillion | | |
| |
|
Le stockage les aperçus graphiques des partitions collectées par Kooplet risquant de demander pas mal de place sur le disque coté serveur, nous avions besoin d'un compactage/décompactage efficace de ces images. Cet algorithme devait être disponible aussi bien en C, pour créer l'aperçu lors du traitement des fichiers collectés par notre version d'Harmony/PDFtoMusic qu'en Perl, pour afficher l'aperçu dans la recherche Kooplet sur le Web. Nous avons donc mis au point un algorithme de compactage spécifique combinant un RLE (run-length encoding, encodage des répétitions d'une même couleur) et un encodage de résidu, inspiré du codage de Rice. Ce compactage non destructif semble plus efficace que d'utiliser le format PNG ou que de ZIPper des données brutes. Il a été testé en Perl, et est en cours d'implémentation en C. |
|
|
by Olivier Guillion | | |
| |
|
Cet été nous avions écrit le frontal Web de Kooplet en C, intégré dans le Myriad Music Plug-In. Puis nous avons changé de fusil d'épaule et réécrit le tout en ActionScript dans un plug-in Flash. Mais le code n'était pas perdu puisque nous l'avons entièrement utilisé pour intégrer Kooplet dans Harmony. On peut maintenant considérer que la recherche Kooplet est maintenant quasiment intégrée à Harmony. Ce n'est plus une fenêtre modale, ce qui veut dire qu'après un téléchargement de fichier elle reste ouverte. Ceci permet de voir et d'écouter rapidement un résultat de la recherche sans perdre les autres. La fenêtre est retaillable. Il reste à gérer maintenant les images d'aperçu des documents. Ces images seraient, à terme également affichée dans la recherche Web de Kooplet. A noter qu'une nouvelle icône fait son apparition dans la palette d'édition. |
|
|
by Didier Guillion | | |
| |
|
L'intégration de la recherche Kooplet dans Harmony Assistant commence à fonctionner. Coté serveur, les scripts ont été adaptés de manière à accepter des requêtes de la part d'Harmony, et fournir en retour les résultats sous une forme facilement traitable par le programme. Nous en avons profité également pour mettre en place un système de popularité, qui altèrera l'ordre des résultats de recherche. Coté Harmony, la boîte de recherche est fonctionnelle : L'aspect graphique et l'organisation peuvent encore changer, mais la logique est déjà là. Le clic sur "Rechercher" fait apparaître les résultats dans la liste, et il est possible d'en sélectionner une ligne puis cliquer sur un des boutons du bas pour soit visiter la page du site original qui propose le fichier, soit directement télécharger la partition et l'éditer dans Harmony. La zone de droite, pour l'instant blanche, est destinée à accueillir l'aperçu du fichier sélectionné, si nous parvenons à mettre cela en place. Cela supposerait alors de recommencer la collecte de la base depuis le début. |
|
|
by Olivier Guillion | | |
| |
|
Nous avons quasiment terminé (mais cela peut-il être complètement terminé ?) la partie de Kooplet qui tourne sur le serveur distant. Nos bases de données se défragmentent en tâche de fond afin de conserver en permanence des performances optimales. Il nous reste maintenant à reprendre la partie "administration", qui nous permettra facilement d'ajouter ou enlever des sites, supprimer des partitions signalées comme non conformes aux droits d'auteur, et surveiller tous les processus. En parallèle, nous avons réfléchi à ce que Kooplet pourrait apporter aux utilisateurs de nos produits. Par exemple, pourquoi ne pas pouvoir sélectionner une séquence de notes dans Harmony Assistant, et la rechercher dans Kooplet grâce à un navigateur ? De là, l'utilisateur pourrait télécharger les fichiers trouvés et les visualiser dans Harmony Assistant. Mais alors, pourquoi ne pas lui simplifier la tâche et intégrer la recherche Kooplet dans Harmony ? Ainsi plus besoin de navigateur, et les fichiers seraient téléchargés de manière transparente, pour apparaître directement dans Harmony... Ce principe pourrait s'appliquer également à PDFtoMusic, avec une recherche sur le contenu des PDFs. Cela se présenterait ainsi : Une boîte, avec des boutons de configuration de la recherche, un champ de texte et une zone de saisie de notes. Cette zone serait automatiquement pré-remplie avec le contenu de la sélection lors de l'ouverture de la boîte. Après appui sur le bouton de recherche, les partitions trouvées apparaîtraient dans la zone du bas (avec, pourquoi pas, un aperçu graphique de leur première page). Il suffirait de cliquer sur la partition pour la télécharger et la voir apparaître dans Harmony Assistant. On pourrait également cliquer sur un lien au-dessous de la partition pour ouvrir dans un navigateur la page du site sur laquelle la partition avait été trouvée. A notre connaissance, nos produits deviendraient alors les premiers logiciels de musique à accéder directement à la gigantesque bibliothèque de fichiers musicaux disponibles sur Internet. Combien d'heure de travail économisées lorsqu'il suffira d'un clic pour choisir sa version de l'Ave Verum plutôt que de devenir la dix millième personne à l'avoir saisie en intégralité ! |
|
|
by Olivier Guillion | | |
| |
|
Une chose est sûre, la partie de notre travail qui nous rebute le plus c'est de faire la promotion de nos produits. Nous avons toutefois décidé de commencer à bâtir une section de notre site qui présentera nos solutions logicielles de manière transversale, au travers de cas-type d'utilisateur. Ce n'est pas vraiment de la publicité, plutôt de l'information. En tout cas cela nous permettra de rediriger les personnes intéressées vers un ensemble de réponses toutes prêtes. Le premier article est consacré aux chefs de choeur qui constituent une part non négligeable de nos utilisateurs. La rédaction en a été longue : il fallait éviter toute confusion, rester compréhensible, et fuir au maximum les superlatifs. En avant-première c'est ici : http://www.myriad-online.com/fr/info/choirs.htm Nous pensons le texte presque abouti, les illustrations à travailler et toute suggestion est bienvenue ! |
|
|
by Didier Guillion | | |
| |
|
Correction de l'importateur Tabledit. Correction de l'importateur Finale. Sur Mac, nos extensions de fichier propriétaire étaient associées à nos installateurs, ce qui pouvait être gênant, surtout que maintenant on ne peut plus associer manuellement une extension de fichier à un programme. Cela a été corrigé. |
|
|
by Didier Guillion | | | |
|
La recherche de fichiers musicaux sur Internet a plutôt bien tourné ce week-end, sous une surveillance constante. Le nombre rond de 65536 partitions a été dépassé dimanche, et nous en sommes maintenant à environ 76000. Quelques fichiers font encore "planter" Harmony Assistant, nous les avons conservés, et nous tenterons de corriger ça dès que possible. Il semble y avoir quelques petits problèmes dans la recherche, les séquences entrées ne semblent pas toujours être retrouvées dans les morceaux. Nous y travaillons, à partir de plusieurs cas-test. Dès que tout ceci sera corrigé et validé, nous remettrons en ligne une version beta de Kooplet. |
|
|
by Olivier Guillion | | | |
|
L'importateur Tabledit ne traitait pas les tablatures pour Dulcimer, c'est maintenant fait. Corrections mineures sur l'importateur Finale. Quelques corrections d'affichage des tablatures guitares. Nous avons réfléchi à l'implémentation de tablature pour piano : http://fr.wikipedia.org/wiki/Tablature_de_piano Franchement (ou alors quelque chose nous échappe) nous n'en voyons pas l'intérêt. Enfin, comme nous faisons le pont, nous allons laisser tourner le traitement de Kooplet pendant ces quatre jours. Nous en sommes à 34 307 documents, on verra le résultat Lundi ! |
|
|
by Didier Guillion | | |
| |
|
Quelques problèmes dans Harmony Assistant, pouvant entraîner une instabilité et des crashs inopinés ont été mis en évidence par le traitement des fichiers extraits par Kooplet. Il reste encore un crash, qui se produit très rarement, mais nous ne désespérons pas de le localiser. D'une manière générale, toutes les étapes de Kooplet, de la collecte à la mise en base de recherche, sont maintenant beaucoup plus solides. Des traitements longs, permettant l'indexation des morceaux et donc leur recherche ultérieure, bloquaient le traitement pendant plusieurs secondes, et ralentissaient l'ensemble. Nous expérimentons une nouvelle méthode pour gérer cela, le lancement d'un "daemon" sur notre serveur Web. Ce daemon tourne en permanence sur le serveur, et traite en tâche de fond les opérations de mise à jour de la base. La mise en oeuvre est très simple (une seule ligne de Perl), et ce principe pourrait être utilisé ultérieurement pour d'autres tâches que Kooplet. Il faudra que nous réfléchissions aux autres applications possibles d'un tel système. |
|
|
by Olivier Guillion | | | |
|
Aujourd'hui, pour commencer, traitement des emails du week end. Ensuite, des corrections sur les importateurs : Correction d'un crash en import S3M (débordement d'index) Correction de l'import NoteWorthy (problème sur les nuances) PDFtoMusic tourne maintenant sans crash depuis très longtemps et les 30 000 fichiers ont été dépassés. |
|
|
by Didier Guillion | | |
| |
|
Une irrégularité d'export en MusicXML des tuplets sur les silences, comme dans le cas suivant : nous a été signalé. Ceci est maintenant corrigé que ce soit dans Harmony ou PDFtoMusic. Par ailleurs, une fois l'export corrigé nous nous sommes rendu compte que l'import ne gérait pas ce cas de figure, cela a été corrigé. Toujours en export MusicXML commun à Harmony et PDFtoMusic, la localisation des silences remplissant la mesure était défectueuse ce qui pouvait engendrer des silences de durée illégale dans les mesures non vides. Cela a été corrigé. Bon week end ! |
|
|
by Didier Guillion | | | |
|
Alors que l'indexation se poursuit tranquillement, nous mettons au point quelques algorithmes permettant de mieux répartir la charge de travail sur notre serveur. En effet, lorsqu'un script utilisant une base de données est lancé, il se réserve l'accès à cette base, empêchant d'autres scripts (ou une autre instance du même script) d'y accéder en écriture dans le même temps. Si l'opération est longue, on risque d'obtenir un effet d'accordéon avec quelques secondes de calme entre deux afflux de demandes. Nous sommes donc en train d'implémenter un système permettant de lisser tout cela, afin que le fonctionnement du serveur et donc de notre site ne puisse pas être perturbé par le moteur d'indexation de Kooplet. |
|
|
by Olivier Guillion | | | |
|
Correction d'un problème de calcul de tablature pour accordéon sur les appoggiatures. On nous a demandé plusieurs fois de pouvoir appliquer un décalage en demi ton aux voix Virtual Singer. C'est fait. Lors de la transformation d'une portée avec instrument transpositeur en portée avec paroles, l'alerte expliquant que la transposition est impossible n'apparaîtra plus et le décalage en demi-ton et octave sera appliqué à la nouvelle voix humaine. Sinon, Kooplet progresse doucement avec 20 021 documents dans la base. |
|
|
by Didier Guillion | | | |
|
Nous avons fait tourner le crawler ce week-end, en l'interrompant assez souvent pour vérifier l'intégrité des différentes bases. Aucun problème majeur à signaler. Nous n'avons pas vraiment collecté à la vitesse maximale, car il nous a fallu quelques fois renvoyer la totalité des bases de données vers le serveur, et 300 Mo avec une liaison montante à 1 Mbits/seconde, ça prend un peu de temps (je vous laisse le soin de calculer). Vivement la fibre ! De plus, certains fichiers téléchargés faisaient planter Harmony Assistant. Nous avons corrigé la majorité de ces problèmes. Entre autres effets de bord, Kooplet nous aura donc permis d'améliorer notre connaissance du langage Perl, et de corriger quelques sources possibles de plantage dans Harmony et PDFtoMusic. |
|
|
by Olivier Guillion | | | |
|
|