Sur Harmony/Melody, version Windows, des problèmes d'impression des objets graphiques avec transparence ont été mis en évidence, Windows 8 ne réagissant pas de la même façon que les versions précédentes du système. Cela devrait être corrigé (reste maintenant à tester ces modifications sur les anciens systèmes). Une source de crash a été découverte (et corrigée) dans les opérations de mise en couleur des notes par Edition > Aspect > Colorier. La gestion des curseurs linéaires dans les boîtes de dialogue (ceux qui ont leur valeur numérique écrite au-dessous) pouvait également poser problème. Dans l'import MusicXML, la gestion des images a été modifiées. Elles sont maintenant converties en PNG, afin d'en permettre une utilisation plus aisée. L'en-tête et pied de page par défaut définis dans "Configuration > Préférences générales > Imprime" sont maintenant pris en compte lors de l'import d'un fichier externe (par exemple MIDI) Une nouvelle version de PDFtoMusic, qui améliore entre autres la reconnaissance des ligatures, la prise en compte de certaines polices sans table de correspondance caractère-glyphe, et corrige une erreur lors de l'export MIDI, a été mise à disposition en beta et va bientôt être annoncée sur le forum. |
|
|
by Olivier Guillion | | |
| |
|
Le perfectionnement de notre outil de détection de pertes de mémoire sur Windows nous a permis de corriger pas mal de petits problèmes, et de rendre le programme globalement plus solide. Nous nous sommes remis aux instruments virtuels, et avons amélioré des rendus sonores, notamment le son des cordes étouffées et des glissés sur le trait. Nous avons déniché quelques fichiers MIDI qui sont visiblement des enregistrements bruts d'un interprète. Il y a donc des imperfections, mais cela nous permet d'écouter ce que donne notre synthèse lorsqu'elle interprète des données réelles. Par exemple, ce morceau est joué par 4 guitares. La rythmique a, semble-t-il, été entrée sur un éditeur de partition, mais les 2 guitares jouant la mélodie sont issue d'un enregistrement MIDI. Cliquez pour écouter Bon week-end à tous ! |
|
|
by Olivier Guillion | | |
| |
|
Nous avons entamé une session de recherche des irrégularités de gestion de la mémoire dans Harmony Assistant et PDFtoMusic. Sur Windows, notre outil développé en interne a dû être adapté à Windows 8. Ceci nous a permis de corriger des micro-pertes de mémoire dans la gestion des textes, qui ne devaient pas avoir d'incidence majeure sur le fonctionnement du programme, mais mieux vaut être propre. Sur PDFtoMusic, nous avons commencé à rafraîchir certaines icônes de l'application telles que le petit panneau indiquant une irrégularité dans la reconnaissance, le marqueur disant qu'une page a été reconnue sans problème, etc. Il faudra attendre la prochaine version beta pour en profiter. Notez que la date en bas à droite de toutes les pages de notre site a été modifiée pour indiquer 2013 au lieu de 2012. Cette année, nous y avons pensé avant Pâques |
|
|
by Olivier Guillion | | |
| |
|
Dans de rares fichiers PDF, les glyphes n'étaient pas retrouvés correctement. Ces fichiers contiennent des polices au format CID type 2, sans table de correspondance (cmap) entre le code du caractère et le numéro du glyphe. Dans ce cas, il peut y avoir une table de correspondance spéciale (CIDtoGID) permettant de faire la relation. Les divers visualiseurs de PDF sur Windows ou MacOS gèrent tout cela correctement. Nous avons donc essayé de suivre la documentation, sans succès. Les recherches sur Internet de code source relatif à cette fonctionnalité semblaient confirmer ce que nous faisions, et pourtant cela ne fonctionnait pas. C'est alors que nous nous sommes rendu compte que la table CIDtoGID n'était pas constituée de valeurs "short" (2 octets) mais de valeurs "long" (4 octets), contrairement à ce qu'affirme la doc (j'ai écrit en gras pour que les moteurs de recherche le voient bien, et que cela puisse aider d'autres programmeurs à l'avenir). En modifiant cela, tout s'est alors mis à fonctionner. On peut imaginer que les auteurs des fichiers source que nous avions trouvés avaient eux aussi suivi la doc, et ne s'étaient jamais aperçu de l'erreur, cette partie de leur programme n'ayant probablement jamais été testée. Nous avons cependant trouvé qu'une seule référence au fait que les éléments de la table fassent 4 octets au lieu de 2. Au fin fond d'un code source d'un module Java de gestion des PDF, le programmeur semblait avoir réalisé le problème, et multipliait l'index par deux afin de retomber sur le bon élément de table. Il semblerait donc que nous ne soyons pas très nombreux à avoir exploré cette partie du format PDF. A moins que quelque chose nous ait échappé, ou que nous ne possédions pas la bonne version de la documentation de chez Adobe. |
|
|
by Olivier Guillion | | | |
|
Auparavant, les icônes utilisées dans l'application étaient calculées grâce à un logiciel de dessin, en appliquant des ombres, reflets et autres effets à des collections d'images. Le résultat de ces calculs, c'est-à-dire chacune des différentes combinaisons d'image et d'effet était alors stocké dans un fichier graphique. Ce lot de fichier graphique était livré avec l'application. Ajouter ou modifier une icône nécessitait donc de recalculer tous les effets, de générer les résultats, et de les ajouter à la bibliothèque graphique du logiciel. Ce n'était ni simple, ni rapide, d'autant plus que nous avions du mal à relire les fichiers d'origine. Frank nous a renvoyé les originaux de ces fichiers, et nous avons pu extraire chacun des "morceaux". Grâce aux nouvelles commandes graphiques que nous avons développées pour l'édition d'instruments à cordes, nous n'avons maintenant plus besoin de stocker les résultats des calculs d'effets : toutes les icônes peuvent être calculées à partir de leurs divers éléments à chaque démarrage du logiciel. Nous y gagnerons en place, en flexibilité et en facilité de modification. Les icônes de la barre de commande ont déjà été traités de cette façon, nous attaquons maintenant les grosses icônes indiquant la progression du calcul. |
|
|
by Olivier Guillion | | | |
|
En import ABC, des parenthèses manquantes dans le texte importé pouvaient bloquer complètement le programme. Ceci a été corrigé. De même, plusieurs cas de dépassement de tampon (buffer overflow), pouvant générer des instabilités mémoire ou des crashs ont été corrigés dans l'import MusicXML. Dans PDFtoMusic, la fonction qui assure le suivi des portées d'un système à l'autre (certaines portées peuvent être omises sur une ligne si elles sont vides) a été accéléré. Des cas de problèmes dans la reconnaissance optique des glyphes lorsque les tracés étaient très fins ont également été traités. Sur MUSL, créer un répertoire dont le nom contenait des guillemets faisait dérailler le système, qui ne retrouvait plus fichiers et dossiers. Ceci a été corrigé coté serveur, de manière à ne pas avoir à attendre la prochaine version d'Harmony Assistant pour que ce soit réglé. Enfin, Kooplet a dépassé son record historique du nombre de partitions disponibles. Avec plus de 445000 fichiers indexés (et ça continue d'augmenter), Kooplet constitue probablement le moteur de recherche de partitions jouables le mieux fourni. |
|
|
by Olivier Guillion | | | |
|
Pour finir la semaine, nous avons complètement automatisé le fonctionnement des robots de Kooplet. Auparavant, nous devions les lancer à la main et vérifier leur fonctionnement. Ces robots collectent les fichiers musicaux sur Internet, et en maintiennent une liste. Ces fichiers sont ensuite traités par Harmony Assistant ou PDFtoMusic, afin de vérifier que le fichier est lisible, puis pré-calculer les séquences de notes et l'image miniature. De très nombreux fichiers bizarres, abîmés, très longs ou très courts, étaient ainsi traités, et parfois il arrivait que cela fasse planter le programme. Cela nous a donc permis de "durcir" le code d'Harmony et PDFtoMusic, mais on n'est jamais à l'abri d'un crash. Nous avons donc développé un script Perl de contrôle des processus. Il vérifie régulièrement que tous les programmes (les instances du robot de recherche, celles du robot de vérification de la base, ainsi qu'Harmony et PDFtoMusic) sont bien en train de tourner, et ne sont ni bloqués ni terminés. Il agit alors en conséquence, en "tuant" ou relançant les instances afin que tout continue à fonctionner de manière optimale. Nous l'avons fait tourner toute une nuit, et aucun problème majeur n'est survenu. Cet ensemble de programmes a ainsi pu ajouter à la base de données de Kooplet environ 20000 nouvelles partitions en seulement 24 heures. Et cette automatisation nous permettra de ne plus perdre de temps à surveiller le bon fonctionnement du système. Bon week-end à tous ! |
|
|
by Olivier Guillion | | | |
|
Le robot de collecte de fichier pour Kooplet ayant été relancé, des milliers de fichiers de partition d'origine et de format divers sont collectés chaque jour. Ceci nous permet de mettre à l'épreuve les fonctions d'import de fichier d'Harmony/Melody et les analyses de PDFtoMusic. Ainsi, plusieurs problèmes ont pu être corrigés par ce biais. Par exemple : - problèmes en import XML lorsque le type d'accolade/crochet dans la marge n'est pas spécifié - Lenteur de traitement sur de gros fichiers lors de la préservation/restauration des paroles - Crash lorsqu'un soufflet était à cheval sur la dernière barre de mesure du morceau En parallèle, nous avons corrigé des problèmes qui nous avaient été signalés auparavant : - Le changement de tonalité en 1e mesure du morceau n'insère plus une barre double en début - Sur les partitions contenant des changement de tempo et au moins une note avec un retard négatif important, un décalage pouvait se produire lors de l'interprétation. |
|
|
by Olivier Guillion | | |
| |
|
|