- Une erreur très bas niveau dans notre gestion mémoire (sur Windows et Linux) pouvait entraîner une instabilité générale des programmes. Etant donnée la complexité de ces fonctions, il nous est difficile de dire quel était l'impact réel de ce problème sur les versions publiques de nos programmes. - Nous avons travaillé sur l'ergonomie des objets de l'interface du réglage des instruments à corde, pour éliminer les actions non voulues sur ces objets lors de certains clics. - Sur notre nouvelle machine Windows 8, nous avons terminé de mettre en place les machines virtuelles : Linux 32 et 64 bits, et anciennes versions de Windows (98 à 2000). Les machines virtuelles sous Linux-Ubuntu nous servent à développer sur cette plateforme. Nous leur avons alloué plusieurs coeurs du processeur afin d'accélérer les compilations. - Toujours sur cette machine, nous essayons de mettre en place un système de sauvegarde automatique de nos données. Le système d'historique de fichiers inclus dans le système ne nous convient pas, car peu configurable. Nous essayons donc des produits de sauvegarde tiers. L'idéal aurait été de pouvoir allumer la machine toutes les nuits, afin qu'elle lance la sauvegarde et s'éteigne ensuite, mais nous ne sommes pas parvenus à régler un tel allumage automatique dans le BIOS (pour autant qu'une telle chose soit possible). - Enfin, nous avons récupéré toutes les données possibles du disque externe de sauvegarde abîmé du Macintosh. Le pauvre disque dur est dans un sale état, l'accès en lecture à un bon tiers de ses fichiers se solde par l'arrêt du disque, qu'il faut alors éteindre et rallumer pour continuer. |
|
|
by Olivier Guillion | | |
| |
|
- Le "golpe" est maintenant entièrement intégré (voir épisodes précédents). En jouant sur la proportion entre le son en prise directe et le son filtré, nous avons pu réduire les échantillons pré-enregistrés à seulement un par type de coup. Cela facilitera les mises au point de ces sons, et allègera l'archive du programme. Voici un extrait sonore présentant en situation quelques-un de ces coups. Nous nous excusons auprès des amateurs de guitare flamenco, il ne s'agit là que d'un test, sans autre prétention. Le volume relatif des coups "golpe" par rapport au son de la guitare, et leur brillance n'ont pas encore été réglés : Test de Golpe - Certains utilisateurs ayant commandé la base de sons GOLD par téléchargement rencontraient des problèmes pour visualiser la page Web leur donnant accès à l'archive. L'adresse de cette page leur était envoyée par e-mail, et lorsque nous l'essayions depuis chez nous, cela fonctionnait. Ce n'est qu'après de longues recherches que nous nous sommes rendu compte de la chose suivante : . Lorsqu'on inclut une adresse dans un e-mail, le logiciel de mail du destinataire lui permet d'y cliquer dessus. Pour cela, ce logiciel analyse le texte et repère les adresses (commençant par http). . Les adresses que nous envoyons sont différentes pour chaque utilisateur (elle contiennent un code personnel). Elles se terminent donc par une série de caractères constituée de lettres, chiffres ou "+" ou "-" . Certains lecteurs de mail, sur Windows et sur Linux (à moins qu'il ne s'agisse d'une seule et même plateforme Webmail) suppriment le dernier caractère de l'adresse s'il s'agit d'un "+" ou d'un "-". Dans ce cas, l'adresse visitée n'est donc plus conforme à ce que nous avions indiqué, et une erreur est alors affichée. Nous ne savons pas pour quelle raison ces caractères sont ainsi oubliés. Nous avons vérifié dans les docs que nous avions le droit de les utiliser, et c'est le cas. Le problème ne vient donc pas de notre coté, mais nous avons tout de même remplacé ces deux caractères par d'autres ("$" et "_") afin qu'à l'avenir, ce problème ne se reproduise plus. |
|
|
by Olivier Guillion | | | |
|
La mise en place du "golpe" (coup sur la caisse de l'instrument) a été mise en place techniquement. Un nouvel ornement (un carré creux) peut donc être placé sur les notes ou les silences pour matérialiser ce coup dans la partition. Malheureusement, il n'y a pas de notation standard pour différencier les divers types de golpe (avec le pouce, la paume, l'ongle de l'annulaire...). Ils seront donc tous notés de la même façon, mais l'édition de l'ornement permettra à l'utilisateur de choisir le type et la force du coup. Dans le paramétrage de l'instrument, on pourra configurer la manière dont ce coup fait résonner la caisse et les cordes. Nous sommes maintenant en train d'enregistrer le son brut des coups sur la caisse, à différents niveaux d'intensité pour chaque type. Cela fait une vingtaine d'échantillons numériques prédéfinis, qu'il faut ajuster soigneusement. Bon week-end à tous ! |
|
|
by Olivier Guillion | | | |
|
Tous les ordinateurs "modernes" sont équipés de processeurs multi-coeur, c'est-à-dire capables d'effectuer plusieurs opérations distinctes en même temps, en parallèle. Dans le cadre de la programmation séquentielle (non parallèle) que nous utilisons, lorsqu'une tâche lourde est demandée à un programme, par exemple une boucle de calcul, un seul coeur est mobilisé pour cette opération. C'est ainsi qu' une telle tâche, occupera un ancien processeur (monocoeur) à 100%, mais cette tâche n'occupera pas plus de 10 à 15% d'un processeur à 8 coeurs. Nous avons donc cherché un moyen d'utiliser plus de puissance de calcul, et donc mobiliser plusieurs coeurs pour écourter les temps d'attente de l'utilisateur. Cela pourrait être utile par exemple dans PDFtoMusic, où le traitement de gros fichiers peut s'avérer assez long. En cherchant un peu, nous avons découvert que notre compilateur C pour Windows (Visual C++) supportait OpenMP, qui permet de spécifier les portions de code pouvant être exécutées en parallèle sur plusieurs coeurs. Nos premiers essais ont montré que ça fonctionnait. Il nous faut maintenant trouver les boucles pouvant être "parallélisées". En effet, plusieurs itérations de la boucle étant réalisées en même temps, on ne peut plus compter sur le résultat de l'itération précédente pour compléter la suivante. Seuls certains calculs très particuliers peuvent donc être modifiés en ce sens. OpenMP existant également sur Linux (gcc), nous avons bon espoir de pouvoir l'utiliser sur Macintosh (XCode). |
|
|
by Olivier Guillion | | |
| |
|
Suite à diverses pannes, nous avons pris conscience que notre PC de développement commençait à prendre sérieusement de l'âge. Ajoutons à cela que de plus en plus d'utilisateurs de nos produits possédaient une version de Windows beaucoup plus récente que la nôtre, compliquant l'assistance technique, et cela explique que nous ayons été contraints de franchir le pas, et de changer de PC. Depuis hier, nous le configurons, installons et testons soigneusement, afin d'être certains qu'aucun grain de sable ne viendra nous bloquer lorsque l'ancien ordinateur aura été remisé au grenier ou transmuté en machine Linux. La prise en main de Windows 8 n'a pas été aussi difficile qu'attendu. Après quelques heures de flottement où nous avons désespérément cherché des moyens simples d'accéder aux fonctions de base, nous avons créé des raccourcis sur le bureau, qui nous permettent enfin de réaliser ce que nous désirons sans nécessiter de clics droits dans tous les coins de l'écran ou de vaines recherches d'icônes dans des tableaux multicolores. L'interface standard, que nous n'utiliserons probablement pas, est résolument moderne, et plaira certainement aux amateurs d'art du même nom. Pour donner une idée, l'ergonomie est directement issue du dadaïsme et la conception graphique de l'oeuvre de Gerhard Richter. Mis à part ces petits détails et le fait que le pilote de notre imprimante (HP Laserjet 1022n) ne soit pas disponible pour Windows 8, le tout fonctionne plutôt bien, et la compatibilité avec XP presque totale. C'est tout de même à noter, à l'heure où Apple semble songer à encore changer de famille de processeurs pour sa gamme Mac. Grâce à la puissance du processeur core i7, les temps de compilation de nos plus gros projets ont été divisés par 3. Nous pouvons donc envisager de faire tourner des calculs assez lourds sans trop d'efforts, et de travailler sur Linux dans des machines virtuelles en conservant des performances acceptables. Nous pourrons nous remettre à la programmation dès demain. Ça va dépoter ! |
|
|
by Olivier Guillion | | |
| |
|
Les joueurs de guitare, et plus spécialement les amateurs de flamenco ne se contentent pas de gratter les cordes. Ils rythment également leur morceaux par des coups sur la caisse de l'instrument. Cette technique de jeu, appelé "golpe", est relativement codifiée. Le coup peut être porté avec le pouce ou avec l'index au-dessus des cordes, avec l'annulaire au-dessous, ou avec le plat de la main. Nos instruments virtuels contiennent tous les paramètres permettant de gérer un son de ce type, alors nous avons commencé à étudier la possibilité de les inclure dans nos calculs. Voici comment nous avons procédé : - Le coup lui-même (avec l'ongle, le plat de la main, la pulpe du doigt) est beaucoup trop compliqué à modéliser mathématiquement. Nous avons donc décidé de partir d'enregistrements de ces coups sur une surface non résonnante. Un premier enregistrement de test a donné cela : Enregistrement brut Il s'agit d'une prise directe au microphone de bruits de main frappant ou frottant une surface non résonnante. A partir de là commencent les calculs. Les paramètres de la caisse de notre instrument virtuel nous permettent de calculer ce qui serait entendu à l'intérieur de la caisse de l'instrument si ces coups étaient portés dessus. Imaginons donc un microphone à l'intérieur de la caisse, il capterait ceci : Calcul du son transmis par la caisse Le son est très assourdi, seules les fréquences transmises par le bois sont entendues. Enfin, on peut à partir de là calculer ce qui est véritablement entendu par l'auditeur. Il s'agit d'un mélange entre : - Le bruit d'origine, entendu directement et transmis seulement par l'air - Le bruit assourdi provenant de la caisse - Le son des cordes excitées par la vibration de la caisse. Dans notre exemple, cela donne ceci : Calcul du son entendu Il reste maintenant à affiner les paramétrages, et inclure ces calculs dans nos modules. Il faudra également se décider sur la manière de noter les différents "golpe" sur une partition. En bref, pas mal de boulot pour la semaine prochaine... |
|
|
by Olivier Guillion | | | |
|
Nous avons mis au point l'adaptation des morceaux de test aux caractéristiques de l'instrument à cordes en cours d'édition. Reste maintenant à organiser ces morceaux de manière à ce qu'ils soient proposés sélectivement dans chacun des panneaux. Par exemple, lors de l'édition des cordes, il faut un morceau de test qui joue sur toutes les cordes séparément et lors de l'édition du gratté, des exemples d'accords ou d'arpèges à différentes vélocités. Coté serveur Web, nous avons (enfin, diront certains) géré le problème des caractères accentués dans les attachements postés sur le forum de discussion. Les noms de fichiers sont maintenant "nettoyés" pour éviter les problèmes. Nous nous sommes rendus compte que les sauvegardes automatiques des parties dynamiques de notre serveur (messages du forum, billets de blog, etc) ne fonctionnaient pas bien depuis quelques mois. Nous nous heurtons à des problèmes de déconnexions intempestives de notre serveur FTP local recevant les archives de sauvegarde. Nous n'avons pour l'instant pas réussi à résoudre ces problèmes. En passant, nous nous sommes aperçus que le répertoire des fichiers attachés aux messages du forum dépasse maintenant les 400 Mo. Il nous est pourtant difficile d'en supprimer, certains anciens messages perdraient leur signification dans cette opération. Là aussi, nous ne sommes pas encore parvenu à trouver un moyen de limiter l'inflation, sans pour autant nuire à la lisibilité des anciens sujets du forum. |
|
|
by Olivier Guillion | | |
| |
|
Lors du recalcul du sens des tiges, les ornement pouvant s'inverser, par exemple le point d'orgue, ne se positionnaient pas toujours du bon coté dans les accords complexes, et perdaient les ajustements fins appliqués par l'utilisateur. Dans l'édition d'un instrument à frettes, nous voudrions permettre à l'utilisateur de tester son instrument en situation, par un choix de morceaux de test complet et éclectique. Mais il nous faut gérer l'adaptation de ces morceaux aux caractéristiques de l'instrument. Si l'utilisateur accorde sa guitare autrement qu'en Mi/La/Ré/Sol/Si/Mi, les morceaux doivent continuer à jouer la même mélodie. Le programme doit alors recalculer une tablature pour que les hauteurs des notes jouées restent les même. Par contre, lorsqu'il s'agit de tester une corde en particulier, on va jouer par exemple la corde à vide, puis la case 2 et 4. Si l'accordage n'est pas le même, le programme ne doit pas alors chercher à jouer une autre corde. Il nous faut donc trouver un système qui nous permette de décrire quels changements le programme est autorisé à faire sur chaque morceau, puis créer chacun de ces morceaux et le tester. Pas mal de boulot en perspective... |
|
|
by Olivier Guillion | | | |
|
Nous avons corrigé pas mal de petits détails dans Harmony Assistant : - L'annulation d'une opération de changement d'échelle d'impression (mode page) ne fonctionnait pas correctement. Procédure : . Créer un nouveau document très simple . Changer l'échelle d'impression à 50% (Options d'impression) . Ctrl Z A partir de là, le curseur pour poser une note n'était pas de la bonne taille et ne tombait pas juste sur les lignes. - Mauvaise prise en compte des retour chariots dans le calcul des largeurs de syllabes de paroles en mode gravure - Dans la documentation, pour désinstaller Virtual Singer, nous conseillions de mettre son dossier à la corbeille. Ceci ne fonctionnait plus, et affichait des alertes. - Une image de la documentation (chapitre "notation en couleurs") ne s'affichait pas correctement sous Internet Explorer, et sur certaines machines, plantait l'affichage ultérieur de certaines images GIF ou JPG. Après analyse, il apparaît qu'IE réagit mal lorsqu'on lui demande d'afficher une image JPG renommée en PNG (vous pouvez l'essayer chez vous). Le fait que ça altère l'affichage ultérieur d'autres images laisse à penser qu'il pourrait y avoir une faille de sécurité dans une telle opération. A vérifier. - Diverses corrections d'irrégularités dans le plug-in et le player |
|
|
by Olivier Guillion | | | |
|
Nous avons changé le bloc d'alimentation de notre PC de développement, et l'avons remis en route. Il commence à se faire vieux : une attache en plastique du radiateur du processeur a lâché, ne permettant plus un contact suffisant. Le PC, en surchauffe, s'éteignait tout seul au bout de 30 secondes. Pour réparer cela définitivement, il nous faut commander un nouveau radiateur et ventilateur, ainsi qu'un peu de pâte thermique. En attendant, nous avons rafistolé tout ça afin de nous permettre de compléter nos sauvegardes, et de continuer à travailler jusqu'à ce que nous ayons trouvé une nouvelle configuration. A priori, nous tenterons de passer sous Windows 8 - 64 bits, afin de ne pas être en retard sur les utilisateurs. Coté développement : - Le curseur de choix de l'échelle des graphismes associés à un ornement a été corrigé dans l'édition des paramètres de la note - La valeur MyrScript correspondante, Ornament.GraphicSize, a été modifiée pour être exprimée en pourcentage. Pour fixer l'échelle 1, il faut utiliser la valeur 100 et plus 1 - Le script "Tablature pour instruments à vent" a été repris pour gérer correctement les appoggiatures. |
|
|
by Olivier Guillion | | | |
|
|