Dans l'édition avancée du gratté, nous avons essayé de représenter l'ensemble des paramètres de manière graphique. La représentation obtenue est correcte et fonctionnelle, mais à notre avis assez ardue et un peu "space" : (les numéros des poignées de contrôle n'apparaîtront pas dans le programme) Ce graphe représente l'impulsion qui est donnée à la corde par le gratté à une vélocité donnée. De gauche à droite, le temps. Le premier graphe (pré-pluck) correspond au bruit que fait le plectre en frappant la corde. Ce bruit est peu filtré par la caisse de l'instrument. On peut régler le temps auquel il démarre (1), son volume (2), et le temps auquel il s'arrête (3), donc sa durée et l'écart qui le sépare du lâcher de la corde. Les deux graphes suivant correspondent au lâcher de la corde, qui se met alors à vibrer. Les deux graphes sont mixés lorsque l'impulsion est transmise à la corde, et sont entendus par transmission par la caisse de l'instrument. Celui du haut est la composante harmonique de cette impulsion. Elle correspond à un son plutôt "rond". On peut régler sa durée totale (4), la position du début de relâche de l'impulsion (5), son volume (6) et la brillance de ce son (7). Graphiquement, agir sur cette poignée écarte ou resserre les pointillés à l'intérieur de la courbe. De gros points écartés correspondent à une impulsion ronde, des petits points resserrés à une impulsion brillante. Celui du bas est la composante "bruit" de cette impulsion. Elle correspond à un son brillant. On peut régler sa durée totale (8 ), la position du début de relâche de l'impulsion (9) et son volume (10). Ces 10 poignées permettent de régler chacun des 10 paramètres numériques définissant un niveau de vélocité. Donc, techniquement et informatiquement, tout est correct et fonctionnel. Mais visuellement, nous ne sommes pas vraiment satisfaits. Le graphe fait un peu "échantillons de tissus" et tranche vraiment beaucoup avec la représentation réaliste du plectre dans le volet simplifié. Nous continuons donc à réfléchir à l'amélioration de cette représentation graphique. Si vous pensez avoir l'idée géniale qui rendrait tout cela plus présentable, n'hésitez pas à nous en faire part... |
|
|
by Olivier Guillion | | |
| |
|
L'intégralité des textes a été déplacé dans un fichier texte UTF. Nous avons réfléchi a une édition plus sympathique des boites de dialogue. Pour l'instant nous éditions les ressources via ResEdit sous SheepShaver (Emulateur Mac OS 9) ce qui fonctionne très bien mais n'est guère pratique. Une voie était possible, utiliser notre propre éditeur de ressource : celui de l'Interface Composeur de MyrScript. Nous avons donc adapté notre code pour cela et cela marche. Avec un peu de travail (la principale différence vient du fait que les différents objets ne sont pas accessibles par leur index mais par leur nom) nous avons grandement gagné en souplesse et Olivier, sous Windows, peut aussi enfin éditer aussi les ressources ! Et de fait, les ressources à l'ancien format ont fondus comme neige au soleil, elles vont peut être d'ailleurs disparaitre complètement. |
|
|
by Didier Guillion | | | |
|
Nous avons ajouté une nouvelle fonction au traitement des images : le mixeur de canaux. Cette fonction permet de modifier globalement les couleurs d'une image en choisissant, pour chacune des composantes rouge, vert et bleu de l'image de résultat, de quelle proportion des composantes de l'image d'origine elles seront constituées. Cela nous permet de réduire le nombre d'images nécessaires, pour les décliner à l'envi. Par exemple, à partir du plectre "acier" : on obtient le plectre "or" : sans nécessiter d'images de texture supplémentaires. Lorsque ces fonctions seront disponibles en MyrScript, les amateurs de programmation pourront bien s'amuser. Il devient tout à fait envisageable de créer un logiciel complet de retouche de photo ou de travail sur les images en MyrScript. |
|
|
by Olivier Guillion | | |
| |
|
La version simplifiée de l'édition des microphones est quasiment finalisée. Dans la boite de sélection des instruments d'Harmony, on peut passer en mode "Instrument virtuel", choisir un instrument par défaut dans la liste et l'éditer. Enfin, et pour finir la semaine, nous sommes en train de mettre en place une méthode permettant une traduction rapide des différents volets. |
|
|
by Didier Guillion | | | |
|
Suite à la représentation du plectre du billet précédent, avec un creux pour le doigt, un perfectionniste nous a fait remarquer que l'inscription gravée sur le plectre devrait légèrement s'incurver lorsqu'elle chevauche le creux. Sitôt dit, sitôt fait. Nous avons mis en place, dans nos fonctions graphiques, un kit permettant de déformer une partie de l'image. Voila comment ça fonctionne : On part d'une image noir et blanc. Cette image représente un objet en relief. Les points blancs sont les plus élevés (épaisseur maximale), les points noirs les points les plus bas. Par exemple, une demi-sphère donne ceci: Le programme applique alors à l'image une déformation optique induite par cet objet. Si on donne à l'objet un indice de réfraction un peu plus petit que l'air, cela fait une lentille divergente. Le creux du plectre déforme alors légèrement le texte : Nous nous sommes alors dit : que se passerait-il, pour voir, si on lui donnait un indice de réfraction bien plus élevé, et qu'on calculait automatiquement les reflets à la surface de la lentille? Cela n'a aucun intérêt pour l'édition du plectre, mais c'était juste par curiosité. Et bien cela donne cette image : La lentille devient alors convergente. En créant un objet optique plus complexe, obtenu en posant aléatoirement des gros points ça et là : On obtient cet effet : Et pour finir de nous amuser avec ce nouveau jouet, avec un profil en goutte d'eau : On obtient cette animation : étonnant, non ? |
|
|
by Olivier Guillion | | |
| |
|
Graphiquement, le volet d'édition simplifiée du gratté est presque au point. Le plectre est représenté, et 4 curseurs au-dessous permettent de régler le matériau (classés du moins dur au plus dur), l'épaisseur, la hauteur de prise en main (représentée par la hauteur du creux sur le plectre), et la puissance générale de jeu. Cette dernière n'est pas représentée, car nous n'avons pas trouvé de moyen de traduire graphiquement cette information. Des étincelles ou des flammes à la pointe du plectre, ce serait un peu violent... Quoique les guitaristes de metal apprécieraient probablement une telle représentation |
|
|
by Olivier Guillion | | |
| |
|
Lorsqu'il y a plusieurs listes dans le même volet, c'est la dernière cliquée qui reçoit les évènements clavier. Le changement rapide de volet a été amélioré. La gestion clavier sur les listes a été généralisée pour tous les volets. Une nouvelle icône dans le titre change rapidement l'aspect de l'interface. Les différents paramètres de l'interface (aspect, volume, etc) sont sauvegardés dans un fichier de préférence. Le volet Microphones a été divisé en deux. Une version simplifiée permet d'ajuster rapidement le volume des microphones. Le volet actuel, avec les réglages fin, passe en "avancé". |
|
|
by Didier Guillion | | | |
|
Nous avons travaillé sur l'onglet simplifié du "gratté". Il faut proposer à l'utilisateur un choix de matériaux pour le plectre. Le dessin du plectre reflètera le choix de dureté de ce matériau. Voici un exemple de représentations qu'on pourra obtenir (pour l'instant, non classées par dureté) : Ensuite, le dessin devra refléter également l'épaisseur du plectre. Voila ce que cela pourrait donner pour du bois, du plus fin au plus épais : et pour du métal : J'en entends dans le fond qui chuchotent que le bois et le métal ne sont pas des matériaux très courants pour les plectres. Nous sommes d'accord, mais le but ici est juste de donner un aperçu des représentation graphiques qu'on devrait obtenir. |
|
|
by Olivier Guillion | | |
| |
|
Nous avons finalisé l'onglet simplifié des cordes. Dans une première liste, on peut donc choisir le nombre de cordes et leur accordage, et dans la liste de droite leur matériau, combinaison de matériau, et présence de cordes filées ou non. Nous faisons en sorte que toutes les listes de valeurs prédéfinies qui sont présentées à l'utilisateur puissent être complétées par celui-ci. Il y aura donc, dans les paramètres avancées, un bouton de sauvegarde, qui ajoute les paramètres actuels à la liste des prédéfinis. A part cela, nous avons : - corrigé un crash dans PDFtoMusic lorsqu'une longue phrase était considérée comme la syllabe de paroles d'une note, - pris en compte, dans MyrScript, la plateforme Linux dans "Application.Computer" - Corrigé une irrégularité qui rendait certaines portées inaudibles lorsque le document était sauvegardé avec une version beta, et rechargées avec la version publique courante Voila, ce sera tout pour cette semaine. Bon week-end à tous ! |
|
|
by Olivier Guillion | | | |
|
Le volet d'édition des accordages a été remanié. L'actuel, très pointu, a été déplacé dans un mode avancé. Le mode simplifié propose une liste d'accordages (piqué dans la très longue liste des accordages prédéfinis d'Harmony) et un type de corde : Nylon, métal, etc. Il reste maintenant à établir la corrélation logique entre ses paramètres simplifiés et les paramètres avancés. |
|
|
by Didier Guillion | | | |
|
Nous avons repensé quelques panneaux de l'édition d'instrument frettés : - Le panneau "Cordes" aura un mode simplifié, dans lequel l'utilisateur pourra choisir un type de jeu de cordes (nylon, acier, bronze...) ainsi qu'un accordage d'instrument. - Le panneau "Gratté" aura lui aussi un mode simplifié, permettant de choisir la matière du plectre, son épaisseur, la position de saisie du plectre, et un paramètre de "violence" du gratté. Nous avons également repris les fonctions de travail sur les images afin de les rendre indépendantes de l'édition des instruments, et ainsi pouvoir les réutiliser ailleurs dans le programme. Enfin, ous avons testé d'autres formes de corps, et utilisé les fonctions graphiques pour faciliter la mise en place de ces nouvelles formes. En voici un exemple (il s'agit juste d'un test, l'image n'est ni définitive, ni même calée correctement) |
|
|
by Olivier Guillion | | | |
|
Un click droit sur les boutons de changement d'onglet ouvre un menu contextuel de changement rapide. Une aide contextuelle s'affiche pour expliquer rapidement les différents éléments de l'interface. Dans la boite d'édition rapide du corps de l'instrument, une liste propose les différents corps prédéfinis. |
|
|
by Didier Guillion | | |
| |
|
La plupart des fonctions de travail sur les images dont nous avions besoin ont été écrites. En modifiant certains paramètres des images préalablement stockées, ces fonctions nous permettront de réduire notre travail en amont. Par exemple, à partir une seule image d'une caisse de guitare, nous pourrons l'afficher en perspective dans l'onglet "caisse", ou vue de dessus dans l'onglet "manche". De même, afficher en surbrillance la corde actuellement sélectionnée ne nous obligera pas à prévoir deux versions de l'image de la corde. Voici un exemple de résultat de ces fonctions: Ces fonctions sont vraiment puissantes et pratiques. Une fois qu'elles seront terminées, nous verrons dans quelle mesure il serait possible de les rendre accessibles par MyrScript. Le traitement d'images n'est évidemment pas l'objectif premier d'Harmony Assistant, mais si ces fonctions existent, ce serait dommage de ne pas en faire profiter les utilisateurs de MyrScript. |
|
|
by Olivier Guillion | | |
| |
|
Pour finir la semaine : Correction du positionnement des clefs dans le jeu de caractère "Petrucci". Les récentes primitives de traitement d'image : transparence, rotation, mise en sur-brillance ont été utilisées pour définir de nouveaux taquets de changement de taille des objets. Nous travaillons sur un changement rapide d'onglet via un click-droit sur les boutons. Bon week-end ! |
|
|
by Didier Guillion | | |
| |
|
Revenons ici sur l'incident technique qui a touché notre serveur Web il y a deux jours. En fin de matinée, la totalité de notre site a cessé de répondre. Nous avons prévenu notre hébergeur, qui a détecté une personne à la recherche d'une faille, et qui demandait plusieurs centaines de pages à la seconde. Cette personne a été bannie grâce au firewall, et tout est rentré dans l'ordre. Enfin, presque. Nous avons noté des ralentissements importants tout au long de la journée. Un coup d'oeil sur les processus en cours nous montrait que le logiciel de forum était parti dans une boucle infinie, occupant une grosse partie de la puissance de calcul du serveur. Lorsque plusieurs instances du forum étaient ainsi bloquée, le serveur ralentissait considérablement. C'est la conjonction de ce problème avec les accès intensifs du petit malin qui aboutissait au blocage complet. Nous avons donc cherché ce qui ne fonctionnait pas sur le forum, et après près d'une demi-journée d'investigation, nous avons résolu le mystère : Nous avions ajouté, sur le forum, la possibilité d'inclure des vidéos (Youtube, Dailymotion ou Vimeo) grâce à de nouveaux "tags". Par exemple, écrire "[ youtube]xxxxx[/ youtube]" incluait la vidéo Youtube numéro xxxxx dans le message. Une erreur dans la gestion de ces "tags" faisait boucler le logiciel indéfiniment lorsque le mot "youtube" n'était pas écrit en minuscules. Et, malheureusement, un utilisateur avait posté un message contenant [ Youtube] (avec un Y majuscule). Un seul bit mal placé mettait donc en péril la totalité de notre serveur ! Nous avons corrigé le logiciel de forum, et entamé une profonde réflexion sur le thème "On est quand même bien peu de chose ma bonne dame". |
|
|
by Olivier Guillion | | | |
|
En nous appuyant sur ce que nous avons compris récemment sur le fonctionnement des contextes graphiques Quartz et sur les nouvelles entrées apparues dans l'API, nous nous sommes replongés dans le Myriad Music plug-in et son non fonctionnement sur Safari. En théorie, cela devait être simple. Le plug-in peut interroger le navigateur, pour lui demander deux choses : - Fonctionne tu avec des évènements Cocoa ? - Le tracé graphique s'effectue t'il sur une surface QuickDraw ou sur une surface CoreGraphic ? En fonction de cela, le plug-in peut s'adapter pour gérer les évènement qu'il reçoit (ça cela fonctionne depuis longtemps), et convertir ses affichages (ça on sait faire depuis peu). C'est là que les problèmes commencent... Le Navigateur est censé envoyer dans le cas du fonctionnement en mode CoreGraphic, les valeurs du contexte permettant les affichages. Mais bien que le contexte soit là et correctement dimensionné, rien ne se passe à l'écran. Si l'on active le mode "évènement Cocoa" on reçoit également un contexte graphique, et on obtient une visualisation correcte (Champagne !), mais uniquement la première fois, apparemment ce contexte graphique est flottant et on ne peut le réutiliser. Si on active les deux (mauvaise, très mauvaise idée), on ne reçoit plus aucune information sur le contexte, petit détail qui nous a bloqué une bonne journée. Donc, encore choux blanc, et encore l'impression de défricher des zones de codes où l'absence d'exemple et les erreurs flagrantes dans la documentation officielle, semblent montrer que nous sommes certainement une petite poignée à vouloir faire cela : continuer à faire fonctionner ce qui a marché sans problème pendant des années. Une course sur place. |
|
|
by Didier Guillion | | |
| |
|
Nous avons enfin trouvé moyen, en utilisant les nouveaux accès graphiques de Mac OS X (Quartz), d'accéder aux données brutes des images que nous manipulons. C'était déjà possible sur Windows et Linux, mais manquait sur Macintosh. Cela nous permettra de déformer des images, en changer les couleurs, leur appliquer des rotations, jouer sur la "couche alpha", pour les rendre semi-transparentes, y ajouter des ombres ou des reflets, etc. Reste maintenant à écrire toutes ces fonctions de traitement d'images. Aujourd'hui, en fin de matinée notre site Web a été bloqué par une attaque. Nous recevions des demandes d'accès extrêmement rapprochées (plusieurs dizaines par seconde), qui ont fini par saturer le serveur. L'émetteur n'essayait probablement pas de commettre une véritable attaque DOS, mais apparemment, tentait de découvrir une faille dans notre site en accédant à des scripts d'administration de PHPMyAdmin (que nous n'utilisons pas). Tous ces essais se soldaient par une erreur "404", mais monopolisaient le serveur. Notre hébergeur a banni l'adresse IP du petit malin, et tout est alors rentré dans l'ordre. |
|
|
by Olivier Guillion | | | |
|
L'édition du corps de l'instrument a bien avancé, les poignées sont correctement positionnées et on peut considérer que cela est suffisant pour une bêta future. L'ordre des cordes a été inversé dans l'édition des cordes et des microphones, des ajustements nombreux ont été appliqués de ci de là. Un prototype du premier volet de réglage de l'aspect humain de l'instrument a été mis en place, il concerne la manière de gratter les cordes : choix du médiator, angle d'attaque, les paramètres exacts ne sont pas encore définis, il nous faut encore éplucher un peu de bibliographie. Par exemple, ceci est intéressant : http://www.lesoreilles.com/articles/GP205_86_89_Dossier_Mediator.pdf |
|
|
by Didier Guillion | | |
| |
|
Nous continuons à traiter les photos prises hier, et nous en servons pour construire les nouveaux graphismes de l'interface. Le panneau "Microphones" a donc été repris : ainsi que le panneau "Cordes" : Voici un détail de la représentation des cordes (la corde en cours d'édition est sur fond blanc). Les épaisseurs des cordes sont volontairement exagérées, afin de permettre une meilleure visualisation, ainsi que la représentation des enroulements du trait. Nous avons prévu des graphismes pour le panneau "gratté", mais il semble que les paramètres que nous avions prévus ne correspondent pas à ceux réellement mis en oeuvre par un vrai guitariste. Il nous faut donc continuer à y réfléchir. Bon week-end à tous ! |
|
|
by Olivier Guillion | | |
| |
|
Afin de faciliter la lecture des valeurs dans la liste nous avons ajouté la possibilité de "geler" la première colonne. Quand la liste se décale horizontalement la première colonne reste en place. Ceci est particulièrement utile dans l'édition avancée du gratté des cordes, quelle que soit la position dans les paramètres, la colonne des vélocités reste visible : Comme il y avait un beau soleil sur Toulouse, nous avons fait une séance de photographies des différentes guitares en notre possession dans le but de remplacer les images de test utilisées jusqu'ici. Voici le panneau d'édition simplifié du corps de l'instrument : |
|
|
by Didier Guillion | | |
| |
|
Nous avons déterminé les paramètres qui pourront être ajustés par l'utilisateur en mode simplifié d'édition du gratté. Les notes de la partition peuvent être jouées à 128 puissances différentes, appelées vélocités, et numérotées de 0 (silence) à 127 (très fort). Le son de la guitare doit varier harmonieusement entre ces valeurs. L'utilisateur doit définir les paramètres du gratté pour la vélocité 0 (généralement, il n'y a pas de contact avec la corde), pour la vélocité 127 (les paramètres pour un son le plus puissant possible), et s'il le désire, à différentes autres valeurs de son choix. Les paramètres sur lesquels il pourra agir seront : - un paramètre général, définissant la dureté du matériau grattant la corde (pulpe du doigt, ongle ou plectre) Puis, pour chacun des niveaux de vélocité définis : - la force de maintien du plectre, de 0% pour un plectre tenu mollement à 100% pour un plectre serré très fort entre les doigts - la vitesse de mouvement du plectre - la taille de la partie du plectre qui frotte la corde, de 0% (effleure à peine la corde) à 100% (tape sur la corde "plein fer") - l'angle d'attaque du plectre (parallèle à la corde ou de biais) Avec ces 5 paramètres, ils devrait déjà être possible d'obtenir une bonne palette de sonorités variant selon la force à donner à la note. Reste maintenant à trouver une manière de présenter graphiquement ces paramètres à l'utilisateur... |
|
|
by Olivier Guillion | | | |
|
L'édition des paramètres physiques de l'instrument virtuel est quasiment finalisé. Il reste à peaufiner l'aspect graphique mais ceci sera général à tous les panneaux de la boite de contrôle. Nous avons entamé l'édition de la partie "humaine" de l'instrument virtuel, c'est à dire la manière dont l'interprète utilise l'instrument. Et en premier lieu la façon de gratter les cordes. Ceci nous a demandé de complexifier la gestion des listes de l'interface. Il est maintenant possible de faire défiler horizontalement la liste, la colonne et la ligne en cours d'édition sont matérialisées, etc. Voici un premier aperçu du mode avancé qui montre, en fonction des vélocités définies, les différents paramètres. Le mode simplifié devrait permettre de régler de manière moins fine mais plus intuitive la façon de gratter les cordes. |
|
|
by Didier Guillion | | |
| |
|
Plusieurs problèmes signalés ont été corrigés: - Le calcul automatique des tablatures pour accordéon d'Harmony Assistant n'était pas identique à celui du player ou du plug-in. Ceci pouvait conduire à une visualisation de la partition complètement différente, aussi bien en ce qui concerne les accords que les notes de la mélodie. - Dans le player et le plug-in, le chargement de fichiers MusicXML compressés générés par une application tierce et contenant des fichiers graphiques (JPG ou PNG) pouvait générer un crash. Ce type d'inclusion de fichiers graphiques n'est pour l'instant pas géré, mais ils apparaissent maintenant comme une image non disponible. - Un crash pouvait survenir à la fermeture de la boîte de configuration de l'aspect de la partition dans Harmony Assistant. - Les problèmes de démarrage d'Harmony Asssistant sur Linux Mint 13 étaient bien dûs à la non-création du raccourci sur l'application lors de l'installation. Créer un raccourci à la main sur "/usr/bin/Harmony Assistant" règle le problème. Sauf demande expresse, nous ne pousserons pas nos investigations pour déterminer la cause de ce problème d'installation. |
|
|
by Olivier Guillion | | | |
|
|