La RC1 est lancé, les retours sont positifs. Apparemment les vilains bugs ont été éradiqués. De notre coté nous nous mettons dans la peau de l'utilisateur lambda, saisie d'une partition à partir de zéro, entrée de paroles, création de nouveaux scripts. Depuis ce matin pas de plantage, cela à l'air solide. Mais encore des choses énervantes, par exemple, dans l'édition des paroles sur la partition, pourquoi la touche effacement ne ramène t'elle pas le texte quand il y a un franchissement de mesure. On le note. Si tout continue comme cela, la version publique est pour Lundi. |
|
|
by Didier Guillion | | |
| |
|
Aujourd'hui nous avons laissé Kooplet de coté pour nous consacrer essentiellement à finaliser Harmony et Melody. Donc, lecture et relecture des documentations, vérification de l'interface et des installateurs. On nous a signalé en dernière minute un problème de "vue fantôme", assez préoccupant pour que nous le localisions et l'éradiquions, ce qui a été fait. Le plus long, en fait, a été d'arriver à le reproduire de notre coté. En vérifiant les scripts, nous avons mesuré l'imposant travail de Sylvain qui s'active à faire chanter Virtual Singer dans d'autres langages que ceux prévus initialement : Bosniaque, Bulgare, Esperanto... Nous allons placer en bonne place dans la liste des choses à analyser dans les mois à venir l'intégration directe de ces langages dans Virtual Singer avec l'ajout de fragments spécifiques si nécessaire. |
|
|
by Didier Guillion | | |
| |
|
On ne touche plus trop aux fonctionnalités du logiciel, mais on corrige ce qui pourrait vraiment poser problème lorsque cela se présente. Nous avons pu localiser un problème lors de la duplication de portées depuis un script, et l'avons corrigé. Nous "durcissons" également les imports de fichiers en format non natif, et avons traduit en anglais les nouvelles pages de la documentation anglaise. Il est trop tard pour lancer les traductions de ces pages dans les autres langues, cela attendra la prochaine sous-version. A ce sujet, nous n'excluons pas à l'avenir, lorsque les choses seront plus calmes, de proposer un espace collaboratif de traduction des documentations et de l'interface du logiciel, dans l'esprit "Wiki". Cela permettrait aux natifs des différentes langues de contribuer dans la mesure de leurs possibilités, en traduisant quelques mots ou phrases, ou en corrigeant ou confirmant la traduction des autres. |
|
|
by Olivier Guillion | | | |
|
La version publique étant imminente (il serait temps, la version 9.4 a maintenant presque un an...) nous avons travaillé à tester Harmony et Melody sur les différents OS en notre possession. Nous nous étions imposé comme contrainte de garder la compatibilité avec Mac OS X 10.3 et apparemment, c'est fait. Notre planning de sortie est, en premier lieu Harmony/Melody, viendront ensuite le Plug In, Melody Player et en final PDFtoMusic. L'annonce officielle de Kooplet attendra que nos bases soient complètes et fiables. Bien sur, il reste des problèmes en attente, comme des irrégularités dans l'import/export MusicXML, nous planifions de les intégrer dans une prochaine sous version. |
|
|
by Didier Guillion | | |
| |
|
Aujourd'hui, refonte de la recherche de Kooplet. Les nouveaux algorithmes, qui ne fonctionnent pas encore, n'ont donc pas été mis en ligne (on vous préviendra). Tout ça à cause de Jean-Armand , qui par son message dans les commentaires du billet de mardi, nous a poussé à nous lancer dans une indexation plus poussée de la base des notes. Nous avions -momentanément- écarté cette solution parce que tous les serveurs sur lesquels la recherche Kooplet pourrait éventuellement être installée ne possèdent pas de gestionnaire de base de données. Il faut donc écrire le système d'indexation en utilisant une simple gestion de fichiers. Pour parvenir au premier test d'efficacité, la somme de travail est donc assez importante, et c'est fastidieux (recalculer l'index pour les 160000 fichiers de notre base de test prenait, avant optimisation, près de 24 h). Le premier test de recherche nous dira si le jeu en vaut la chandelle. Si ce nouveau système s'avère trop peu performant, tout ce travail aura été inutile. C'est pourquoi nous avions reculé jusqu'ici. On s'y est mis, et dès que cela fonctionnera, on vous tiendra au courant des performances de la recherche. |
|
|
by Olivier Guillion | | | |
|
Sur plus de 25 000 fichiers PDF récoltés par Kooplet, 52 ne passent pas. Nous sommes en train de chercher pourquoi et appliquons quelques corrections au programme. Cependant comme nous approchons de la version publique de PDFtoMusic, nous marchons sur des oeufs de crainte d'introduire des erreurs à la dernière minute. Olivier est en train d'essayer un nouvel algorithme de recherche dans Kooplet, il détaillera cela demain. |
|
|
by Didier Guillion | | | |
|
Un peu de technique aujourd'hui. Le problème de corruption de la base de données a été localisé. Il s'agissait d'une erreur bête dans l'utilisation d'une "regular expression" (regexp) dans un des scripts. Pour les "techies", nous avions simplement oublié que le caractère "." ne voulait pas dire "n'importe quel caractère" mais "n'importe quel caractère sauf le retour chariot". Cela tronquait les phrases musicales sur environ 2% des fichiers de la base. Nous l'avons corrigé. Ensuite, nous avons travaillé sur l'accélération des recherches. Afin d'accélerer les comparaisons de séquences entre ce que cherche l'utilisateur et ce que contient un fichier, nous avons créé, pour chaque portée, une signature de 256 bits qui permet d'éliminer rapidement les portées dans lesquelles il n'y a aucune chance de trouver la séquence demandée. Cette signature avait été créée de manière empirique, mais maintenant que la base est plus complète, nous avons pu établir des statistiques détaillées sur 580000 portées (140 millions de notes). Un arbre binaire partiel sur les probabilités de présence de chaque note nous permet ainsi d'optimiser l'efficacité de cette signature. Il va cependant nous falloir recréer les signatures de toute la base de données, ce qui prend plusieurs heures, avant de valider le nouvel algorithme. Voila pour aujourd'hui. Les allergiques à la technique peuvent maintenant cesser d'éternuer et ranger leur mouchoir |
|
|
by Olivier Guillion | | |
| |
|
Avant de fournir aux aimables volontaires des versions de nos programmes capables de traiter les données, nous devons les valider. Du coté PDFtoMusic c'est solide, plusieurs dizaines d'heures de fonctionnement non stop sans aucun crash. Pour Harmony Assistant, c'est une autre histoire, toutes les deux ou trois heures nous tombons sur un fichier qui fait partir l'application en boucle infinie, ou même dans deux cas à planté la machine (et sur Mac OS X c'est vraiment exceptionnel), il va nous falloir débogger cela, et ce, dans l'importation Finale et NoteWorthy. Même si ces fichiers sont apparemment cassés et ne se chargent pas avec leur logiciels propriétaires. Enfin, nous avons découvert des données illégales dans nos bases de données et nous n'en comprenons pas la provenance. Nous sommes également sur ce problème. |
|
|
by Didier Guillion | | | |
|
Pas mal de questionnements et de travail sur Kooplet aujourd'hui. - A la base, nous n'avions pas prévu de répartir le calcul de la base de données entre plusieurs utilisateurs, il a fallu reprendre le mécanisme pour le faire fonctionner "en fond" de manière à ne pas perturber le travail de la personne qui peut être sur un autre logiciel au même moment. Nous avons déjà une petite liste de volontaires. Dès que ce sera finalisé, ils seront prévenus. - Le talon d'Achille de Kooplet, nous en sommes conscients, c'est la nécessité d'installer le Myriad Music Plug In. Nous pensons que peu de personnes le feront. Une solution serait d'écrire un plug-in simplifié en Flash puisque Flash est installé sur toutes les machines bien pensées. (Je ne nommerais pas les autres, suivez mon regard), il existe même sous Linux ! Un contact avec les outils de développement Flash disponibles sur l'Internet est assez réfrigérant. Les premiers que nous avons testés sont confus et spartiates. Nous espérions mieux, mais peut être n'avons nous pas cherché au bon endroit ? - Enfin, une grosse préoccupation : la charge de calcul pour notre serveur quand plusieurs personnes vont faire des recherches simultanément. Nous allons tout d'abord tenter d'optimiser notre code au maximum. Mais l'idéal serait de pouvoir partager la recherche entre plusieurs ordinateurs. Et pourquoi pas sur les ordinateurs des personnes qui font justement une recherche ? Chacun recevrait une petite portion de la base de donnée et notre serveur se chargerait de gérer les requêtes. Avantage, plus il y a de personnes sur Kooplet, plus la puissance de calcul augmente. Ça marcherait ? |
|
|
by Didier Guillion | | |
| |
|
Le robot d'indexation fonctionne bien, presque trop bien, même. Avec 4 instances en parallèle tournant sur la machine Linux dédiée, il parcourt les sites assez vite, et trouve un grand nombre de fichiers musicaux. Ces fichiers de format divers, il faut les traiter, c'est-à-dire, quel que soit leur format d'origine, en extraire les informations utilisables par Kooplet (notes, textes, paroles...) afin de compléter la base. Cette tâche est réalisée sur nos postes de travail par une fonction spéciale d'Harmony Assistant et de PDFtoMusic. Mais voila, nous travaillons toute la journée sur ces machines, et nous ne pouvons pas nous permettre de laisser tourner en permanence Harmony et PDFtoMusic en tâche de fond pour traiter les données de Kooplet. Alors, nous sommes en train de réfléchir à nouveau à une solution qui permettrait de distribuer la charge de travail. Si 25 personnes pouvaient laisser leur Harmony Assistant ou PDFtoMusic travailler tout seul en moyenne 1h par jour, cela doublerait la puissance de calcul allouée à la construction de la base. Pratiquement, cela pourrait se passer comme cela: - Une personnes désireuse de nous aider nous contacte par e-mail - En retour, nous lui expliquons comment basculer le programme en mode "traitement des données de Kooplet" - Lorsqu'il le peut, il enclenche ce mode pendant quelques minutes ou quelques heures, et le déconnecte dès qu'il veut à nouveau utiliser le programme Et voila. Son ordinateur accèdera exclusivement à notre propre site (aucune connexion à un autre serveur) et aucun fichier musical ne sera stocké sur sa machine. Tout est donc parfaitement transparent. Un peu de puissance de calcul de son ordinateur est utilisée durant le laps de temps, c'est tout. Nous n'avons pas, pour ce genre de projet dont le but n'est pas d'être rentable, les moyens d'investir dans une infrastructure technique importante. Il faudra donc que nous nous orientions vers des solutions alternatives, et le système collaboratif en fait partie. |
|
|
by Olivier Guillion | | |
| |
|
Nous avons encore travaillé sur Virtual Singer, pour gérer les cas limites. Par exemple, si, dans la dernière syllabe d'une mesure, on tape un espace ou un tiret, le curseur passe à la mesure suivante. Mais si on fait la même chose en mode d'édition complète des paroles (menu "Portées") on peut taper plusieurs tirets en trop dans la dernière syllabe avant le "slash" (/) marquant la fin de la mesure. Cela troublait Virtual Singer, qui prolongeait la dernière syllabe et décalait le chant jusqu'à la fin du morceau. Le cas se produisait notamment lors du copier/coller d'un texte de paroles sur une autre portée, ne contenant pas le même nombre de notes dans ses mesures. Un problème a été corrigé dans les opérations sur les chaînes de caractères utilisées notamment par MyrScript. Cela pouvait produire des crashs dans certains cas, sur tous les scripts manipulant des textes. Des corrections ont été appliquées au module d'importation Finale. Le script pouvait, dans certain cas, produire des notes décalées d'une ligne par rapport à la position voulue. |
|
|
by Olivier Guillion | | | |
|
Les appoggiatures n'étaient plus prises en compte par Virtual Singer. Cela a été corrigé. Par la même occasion, nous avons essayé de mieux gérer des cas limites dans Virtual Singer, par exemple lorsque la partition présente un mélisme avec des notes staccato. Virtual Singer ignorera les durées d'appui des notes en mélisme (une même syllabe chantée sur plusieurs notes) ou les silences entre ces notes. En effet, mélismes (note continue) et staccato (notes bien séparées) sont contradictoires, et il faut bien faire quelque chose. Si les notes ont été écrites, on suppose qu'elles doivent être entendues. Cela pourra donc changer la manière dont Virtual Singer chante les partitions qui présentent une telle anomalie. |
|
|
by Olivier Guillion | | |
| |
|
Aujourd'hui : Problème de compression du manuel MyrScript signalé par Daniel et corrigé. Problème de gestion des accroches dans le nouveau script "Saisie selon séquence", corrigé. Problème de création des courbes utilisateur en MyrScript, corrigé. Problème de débordement de chaine dans l'importeur NWC, corrigé. Enfin, la traduction en Italien a été finalisé. |
|
|
by Didier Guillion | | | |
|
Aujourd'hui nous avons travaillé sur la bêta 9 que nous proposons au téléchargement. Pas mal de modifications ont été apportées aux importateurs. Les traducteurs Espagnol et Allemand ont finalisés les textes manquants. Merci à eux pour leur travail ! Suite à une suggestion sur le Forum, un nouveau script est en phase de test (Sous menu Composition). Il est basé sur le principe que certaines musiques sont écrites avec des séquences rythmiques répétitives, et il est vrai qu'il est fastidieux de sélectionner les durées de notes de manières identiques un grand nombre de fois. Quand ce script est actif, la durée de la palette est ignorée et la note ajoutée avec la même durée que la note correspondante de la mesure précédente. A essayer donc... |
|
|
by Didier Guillion | | | |
|
Le nombre de fichiers indexés dépasse les 104 000... Importer ce grand nombre de fichiers, d'origines différentes, a mis à rude épreuve nos modules d'importations. Par exemple, nous avons découvert des fichiers MIDI avec des pistes "cassées" qui perturbait fortement Harmony. Ceci a permis d'améliorer notre importateur MIDI. Egalement, nous sommes tombés sur des fichiers propriétaires très anciens, dans des formats que nous n'avions jamais rencontré. Ces fichiers non traités sont rangés automatiquement dans un dossier particulier et quand nous en avons un certain nombre de ce type, nous cherchons ce qui cloche et tentons de le corriger. A noter qu'un fichier refusé par Harmony ou PDFtoMusic est représenté automatiquement trois fois avant son élimination. |
|
|
by Didier Guillion | | | |
|
Un problème de consommation de mémoire nous empêchait de faire tourner le crawler trop longtemps sur notre machine Linux. Au bout d'un moment, le programme utilisait plusieurs centaines de Méga-octets, et avec 4 instances simultanées, cela faisait effondrer les performance du petit ordinateur qui le fait tourner. Nous avons résolu le problème, qui n'était apparemment pas de notre coté, mais plus général à certains types de traitement dans le langage Perl. Nous avons également fixé une limite à la taille des fichiers analysés, considérant que des PDF de 50 Mo (si, si, on en a trouvé) contenaient probablement des scans de partitions papier et ne seraient donc de toute façon pas indexables. Depuis, l'utilisation mémoire a été réduite à 3 ou 4 Mo par instance, ce qui nous permet de le faire tourner en permanence. On approche donc de la barre des 100 000 fichiers, trouvés sur une quarantaine de sites. Comme il nous l'a été demandé, nous allons prévoir une option (cachée ou pas) qui permette à l'utilisateur de connaître la liste des sites indexés, et éventuellement de nous en proposer d'autres. |
|
|
by Olivier Guillion | | | |
|
Correction du menu déroulant de la grille d'accord Correction du script doigté pour guitare Correction du script NoteWorhty Correction du script Finale |
|
|
by Didier Guillion | | | |
|
Nous avons pu laisser tourner le programme d'indexation ce week-end sur la machine Linux, afin de voir si on pourrait le laisser étoffer la base tranquillement 24h/24. Nouis avons donc mis en place la connexion à distance afin de pouvoir le surveiller, avons sécurisé tout ça avec des mots de passe et un filtrage, et l'avons laissé tourner. Hélas, pas de chance, samedi après-midi tout s'est arrêté net. De retour sur place lundi matin, npus avons pu constater que l'ordinateur était figé sur un écran bariolé. Au redémarrage, la moitié de la mémoire avait disparu ! Cet ordinateur est resté dans un placard trop longtemps, et une barrette mémoire ne faisait plus bien contact. Après un peu de chauffe, elle s'est déconnectée en pleine opération. Donc a priori ni Ubuntu ni nos programmes n'étaient en cause ce coup-ci. Après démontage et remontage de la machine, nous avons tout relancé. |
|
|
by Olivier Guillion | | | |
|
Une nouvelle version du plug-in ( 5.5 beta 8 ) vient d'être mise à disposition ici. Elle contient une nouvelle version de l'objet ActiveX qui permet l'utilisation du plug-in sur Internet Explorer, et tous les modules, ainsi que l'installateur, sont maintenant signés avec notre signature numérique. A essayer, donc, sur un maximum possible de versions de Windows et d'IE. De son côté, le "crawler" continue à indexer les fichiers musicaux qu'il trouve sur Internet, et Kooplet a allègrement passé la barre des 80000 fichiers. Ceci a eu pour conséquence de mettre à l'épreuve les diverses fonction d'importation d'Harmony Assistant. Nous les avons améliorées, et la prochaine version en bénéficiera. Bon week-end à tous ! |
|
|
by Olivier Guillion | | |
| |
|
Nous avons fait les premiers essais de scellement de nos applications avec la signature numérique que nous avons reçue. Pour info, cette signature est valable 1 an (renouvelable), et le prix d'achat varie d'environ 100$ (mais on peut trouver moins cher, je crois) à 499$ selon le vendeur. Pour l'obtenir, il faut montrer patte blanche, et envoyer pas mal de documents officiels (extraits du registre de commerces, factures diverses) et répondre à un coup de fil des USA pour valider le numéro de téléphone. Mais cela a tout de même été plus rapide que nous le craignions, et cela a l'air de fonctionner plutôt bien et simplement jusqu'ici. Une version beta "signée" du plug-in devrait être disponible au test très prochainement. Nous avons également ressuscité une vielle machine, sur laquelle nous avons installé Ubuntu. C'est la première machine en Linux natif que nous avons ici. D'accord, nous l'utilisons en "bureau à distance", donc elle n'a pas de souris, pas de clavier, et pas d'écran, mais c'est un début Elle nous permet de faire tourner le "crawler" de Kooplet sur une machine dédiée, ce qui a deux avantages: - le langage dans lequel il est écrit (Perl) étant plus stable sur Linux, il vaut mieux le faire tourner sur ce système. - les calculs, vérifications, balayages de listes utilisant une puissance de calcul non négligeable , une machine dédiée nous permet de ne pas ralentir nos ordinateurs de développement pour cette tâche. Le PC principal de développement commence à ressembler à la salle de contrôle de la NASA. Sur ses deux écrans, outre ses propres fenêtres, la vue de la tête de pont réseau (mails, intranet, P2P...), celle du crawler sous Linux avec quatre agents tournant en parallèle, et la fenêtre de console SSH de notre serveur Web distant qui héberge Kooplet. Il vaut mieux mettre des fonds d'écran différents pour ne pas s'y perdre |
|
|
by Olivier Guillion | | |
| |
|
Aujourd'hui : Correction du script TimeCode Amélioration de l'importateur Tabledit Correction importateur MIDI quand des tracks étaient illicites, ils sont maintenant ignorés. Mais aussi : Nous avons reçu notre certificat authenticode, nous sommes en train de l'essayer. |
|
|
by Didier Guillion | | |
| |
|
Correction de la position des fenêtres lors du chargement. MyrScript ; correction d'un problème lors de l'insertion de paroles Export MusicXML, correction du traitement des liés |
|
|
by Didier Guillion | | | |
|
Nous avons recherché les cause du mauvais fonctionnement du plug-in avec Internet Explorer sur Windows Vista/7. Après avoir pateaugé un temps dans la gestion des comptes administrateurs, droits d'accès et autres joyeusetés incompréhensibles destinés à assurer la sécurité de l'utilisateur en le forçant à cliquer "Autoriser" toutes les 30 secondes, nous pensions avoir réussi à tout remettre en ordre. Mais voila-t-y-pas qu'Internet Exporer refuse d'effectuer les recherches sur Kooplet, en expliquant qu'il avait volontairement bloqué l'appel à notre contrôle ActiveX pour "des raisons de sécurité", et en ne permettant pas à l'utilisateur de passer outre? Seule solution: abaisser le niveau de sécurité de tout IE, ce que nous pouvons difficilement suggérer aux visiteurs de kooplet. Apparemment, les nouvelles versions de Windows sont de plus en plus avides de signatures numériques, et refusent par défaut de laisser faire ce qu'ils veulent aux contrôle ActiveX non authentifiés. Nous en revenons donc au problème évoqué en mai dernier dans ce billet: acquérir un certificat authenticode afin de pouvoir signer numériquement nos applications. Nous étudions cela, mais ça n'a l'air ni simple ni bon marché chez certains (apparemment les prix varient du simple au quintuple selon le fournisseur)... |
|
|
by Olivier Guillion | | |
| |
|
|