Nous en parlions il y a quelques jours, un utilisateur était dans l'impossibilité de lancer Harmony Assistant sur son PC sous Vista. Il obtenait le message "Can't find resource file 'Toccata.rsr'" Après de nombreux échanges, et la fabrication de pas moins de six versions spéciales d'Harmony Assistant écrivant des informations dans un fichier-journal, nous avons pu enfin localiser le problème. Celui-ci est lié à une erreur de programmation dans un pilote d'impression PDF, Nuance PaperPort 11. Lorsque le pilote d'impression est interrogé par l'application afin de savoir quelles polices de caractères sont gérées, celui-ci ne remet pas le répertoire courant à la valeur qu'il avait en entrée. Harmony Assistant essaie alors de lire ses fichiers de données, mais n'est plus positionné dans le bon répertoire, d'où une erreur empêchant l'application de continuer. Ceci impacte de la même façon toutes nos autres applications, et probablement d'autres programmes. Il suffit que l'utilisateur ne définisse pas ce pilote comme pilote d'impression par défaut pour que cela fonctionne à nouveau. Les prochaines versions de nos logiciels seront cependant modifiées pour ne plus être gênées par ce dysfonctionnement du pilote. Il nous a pour l'instant été impossible de joindre le support technique de Nuance, l'assistance demandant un numéro de série du produit que nous n'avons pas, et les réponses aux questions d'ordre technique par e-mail étant apparemment payantes. Par le biais du formulaire de commentaire à propos de leur site Web, qui lui est gratuit, nous avons tenté de leur expliquer la situation, notant que nous serions prêts à travailler de concert avec leurs programmeurs afin de corriger ce problème dans leur logiciel, mais pas motivés au point de payer pour cela |
|
|
by Olivier Guillion | | |
| |
|
Cela fait maintenant dix jours que nous essayons vainement d'aider un utilisateur malheureux qui ne peut pas faire fonctionner Harmony Assistant. Les symptômes? Lors du démarrage de l'application sous Windows XP, une boîte d'alerte disant que le fichier Toccata.rsr n'a pas pu être ouvert, puis retour au bureau. Cela nous indique que le programme ne peut pas retrouver les fichiers de données qui lui sont associés. Après la conception et l'envoi d'une version spéciale d'Harmony Assistant permettant d'inscrire dans un fichier les opérations effectuées, nous avons pu déterminer qu'il s'agit d'un problème de répertoire par défaut. Lorsqu'une application démarre, le répertoire courant est censé être celui dans lequel a été double-cliqué le programme. Là, il est positionné au répertoire temporaire de Windows. S'agit-il d'une configuration particulière d'XP, d'un anti-virus ou autre anti-malware qui scanne le programme et "oublie" de remettre le système dans l'état où il l'a trouvé en entrant? Une nouvelle petite application spécifique a été fabriquée et envoyée. Nous attendons la réponse, mais le décalage horaire ne nous autorise guère plus d'un échange de mail par jour. A suivre, si nous trouvons finalement l'explication et qu'elle est susceptible de dépanner quelqu'un d'autre. |
|
|
by Olivier Guillion | | | |
|
Une idée, qui nous trotte dans la tête depuis un bon bout de temps, est remontée à la surface lorsque nous avons dû nous replonger dans le module de quantification des imports MIDI : beaucoup de fichiers MIDI sont en fait un enregistrement du jeu d'un interprète, qui a joué sans tenir compte du métronome. On obtient donc un fichier où les notes sont de longueur quelconque, et démarrent à peu près n'importe où, sans tenir aucun compte des positions des mesures ou des temps. Il pourrait alors être intéressant d'analyser ces positions et longueurs de notes, et d'en déduire automatiquement un battement métronome (pouvant être irrégulier, au gré des accélérations et ralentissements de l'interprète) permettant de représenter au mieux la partition. Les notes sur la partition seraient alors beaucoup mieux représentées, et une ligne contenant les variations de tempo permettrait d'obtenir, lorsqu'on rejouerait le morceau, un rendu identique à l'original. Cette fonction existe probablement dans d'autres logiciels ou a même pu faire l'objet de logiciels indépendants. Nous n'avons pas encore effectué de recherche bibliographique à ce sujet, d'autant plus que nous ignorons totalement comment une telle fonction pourrait être nommée. Quoi qu'il en soit (ou quoiqu'il en soit, choisissez l'orthographe qui vous convient le mieux), nous attendrons probablement la fin des projets en cours pour étudier cela. Nous commenceront, pour des raisons de commodités, à l'écrire en MyrScript, et si les résultats sont satisfaisants, nous l'intègrerons alors aux fonctions "en dur" d'Harmony Assistant. |
|
|
by Olivier Guillion | | |
| |
|
Nous en avions déjà parlé, nous avons repris l'export MIDI afin de régler les problèmes d'imprécision qui pouvaient donner une longueur légèrement différente à des notes pourtant identiques. Tant que nous y étions, nous avons amélioré le module d'import / export MIDI, histoire de ne plus avoir à y toucher dans les 10 ans qui viennent Pêle-mêle: - La "base de temps" du fichier MIDI, au lieu d'être toujours fixée à 192 unités pour une noire, valeur standard de la plupart des fichiers, est maintenant calculée afin de permettre une représentation exacte de toutes les notes comtenues dans la partition. Conséquence : dans l'export MIDI, même les notes très courtes ou compliquées auront une durée exacte. Effet indésirable : l'export MIDI risque de prendre un peu plus de temps dans ces cas-là. - Lorsqu'aucune quantification n'est demandée lors de l'import, l'accroche des notes en fonction des temps est maintenant correctement réalisée. - Lors de l'import MIDI sans quantification, les quintolets sont maintenant correctement représentés - L'option "quantification automatique et légère" (option par défaut de l'import MIDI) n'utilise la quantification que si c'est nécessaire. Conséquence : Si le fichier MIDI contient des notes facilement représentables, même courtes (quintolets, etc), elles ne seront plus remplacées par une alternances de double et triple croches par la quantification. - De même, en mode "quantification sur demande", le bouton par défaut est choisi en fonction du contenu de la partition : "quantifier" si toutes le notes ne sont pas facilement représentables, "ne pas quantifier" sinon. Conséquence : il suffira d'appuyer sur "Entrée" pour sélectionner l'option que propose le programme. |
|
|
by Olivier Guillion | | | |
|
Il y a des modules qu'on pensait ne jamais avoir à toucher. L'export MIDI en faisait partie. "Faisait", parce que JP (verpeauxjp) nous a fait remarquer dernièrement que lors de l'export de triolets de croches, le contenu du fichier MIDI faisait apparaître trois notes de durée légèrement inégale. Ceci est dû à la manière dont nous traitons l'export MIDI. Il s'agit en fait de faire jouer le fichier MIDI en accéléré, et d'écrire les commandes sur le fichier plutôt que de les envoyer vers un synthétiseur. Chaque pas de calcul représente 1/200e de seconde d'écoute, et cela peut ne pas tomber juste, en fonction des longueurs de notes dans la partition. Par exemple, les trois croches du triolet auraient dû avoir toutes une longueur de 64, mais on obtient en fait 63, 65 et 64 (remarquez que le total est correct). Lorsqu'on joue la partition, cette différence de quelques centièmes de seconde ne se remarque pas. Mais écrit dans un fichier MIDI, cela peut perturber les logiciels qui s'attendent à lire des durées de notes exactes. Nous avons donc repris tout le module d'export, vieux de plusieurs années, pour changer la méthode de sauvegarde. Cela fonctionne maintenant, à l'exception de certains effets (glissades, etc) dont les paramètres sont données en durée réelle, en fraction de seconde, plutôt qu'en durée musicale, en fraction de noire. Une fois ceci réglé, le plus long sera certainement de tester à nouveau tous les cas possibles (ornements, appoggiatures, crescendo, courbes de paramètres, et tout ce qu'on oublie) pour vérifier que rien n'a été cassé. |
|
|
by Olivier Guillion | | | |
|
Les lignes de portées sont un élément perturbant pour une reconnaissance de caractères musicaux. Le programme redresse déjà la page, afin que ces lignes soient parfaitement horizontales (à plus ou moins un pixel près). Il détecte ensuite la position de ces lignes. Donc, à partir d'une partition comme celle-ci : le programme est capable de "suivre" ces lignes horizontales et de les effacer, comme ceci : Mais si l'oeil humain est capable sans difficulté de combler les trous et de voir la forme générale, un programme de reconnaissance rencontre plus de problèmes. Nous travaillons donc sur des algorithmes de reconstitution des parties manquantes. Ces algorithmes essaient de deviner quels pouvaient être les pixels masqués par la ligne horizontale, et garde l'hypothèse la plus probable. Voici donc ce qu'on obtient : Ce n'est pas parfait, par exemple à la base des "4", mais cela devrait permettre à l'algorithme de reconnaissance d'identifier plus facilement les symboles. |
|
|
by Olivier Guillion | | | |
|
|