Aujourd'hui, finalisation des problèmes pouvant se rencontrer entre l'ajout de portées (ou la suppression) les groupes et les vues. Cela devrait corriger pas mal de choses. 33 musiques sont en lice pour le 23ème Concours, 1h44 de musique, le sujet était assez strict et semble avoir été plutôt très bien respecté. Rappelons que certaines de ces oeuvres vont être interprétées par une vrai chorale, le jury va devoir faire entrer en ligne de compte la jouabilité. Plusieurs membres à vie du Jury, ont choisit de participer en temps que compositeur, ils ne pourrons donc par voter cette fois ci. Bien entendu, la chorale aura également son mot à dire...
Amélioration de l'édition des accords dans la grille d'accord. Les accords imposés dans la grille d'accord ne sont plus recalculés lors du chargement, seul le nom de la note est éventuellement adapté en fonction de la notation latine/américaine. Le sujet du 24 ème Concours a été arrêté. Il a été écrit et est en cours de traduction. Publication très bientôt. Ce sera certainement le plus difficile que nous ayons jamais proposé mais nous avons confiance dans le talent des participants.
Aujourd'hui, travail sur le format ABC. Le problème de l'ABC est qu'il a été abandonné par son concepteur et a commencé à diverger. Cependant depuis quelques années, à défaut d'un consensus clair, des docs plus précises ont été rédigées sur ce qui est standard, moins standard et carrément exotique.
Import ABC : Correction de la gestion des listes de parts. Import et export ABC : Traitement des tonalités complexes Import et export ABC : Traitement de l'ornement mordant supérieur
Aujourd'hui test et publication de la version 9.5.1 d'Harmony et 7.5.1 de Melody. Juste après, Grorom nous signale un problème d'affichage avec cette nouvelle version. L'archive est désactivée temporairement, une correction rapide appliquée et nous sommes en train de publier la version 9.5.1c ...
Il restait quelques problèmes assez important dans les archives postées hier : problème de décompression des images du MUSL, duplication d'un sous-dossier dans le dossier des scripts, etc, nous avons aussitôt publié un correctif. Nous espérons que cette version n'a pas de problème majeur caché. Il faut dire que le nombre de fonctionnalités et d'interactions entre elles est astronomique. Nous testons au maximum, mais nous ne pouvons tout vérifier. Heureusement qu'il y a des utilisateurs perspicaces pour nous aider... La prochaine étape va être de réanimer le projet Kooplet en stand-by depuis quelques mois. Allez, une petite vidéo marrante sur les Accords Magiques pour passer la soirée :
Quelques corrections dans MyrScript, en particulier Symbol.Scale qui ne pouvait descendre en dessous de la valeur un. Ajustements de l'import MusicXML. Corrections dans le mixeur.
Au début on se dit, "Mais c'est quoi ce truc ?", et on se laisse ensuite porter par la magie et l'originalité du concept. Mince, ce n'est pas tous les jours que l'on voit Stephen Hawking dans un clip vidéo... http://www.symphonyofscience.com/
Edition de la note : problème de recalcul de sens de la tige. Sur Mac, possible erreur dans l'extraction des listes de fichier. Décalage d'items dans certaines langues dans la boite d'aperçu avant impression. La nouvelle version d'XCode propose une fonction assez sympathique d'analyse de source, nous sommes en train de l'utiliser pour localiser du code inutile ou d'éventuelles erreurs.
Aujourd'hui finalisation et publication d'Harmony Assistant 9.5.1e et Melody Assistant 7.5.1e. Avec un peu de chance ce sera la version définitive et on pourra attaquer autre chose...
Myrscript : bridage du nombre de bits par sample lors de l'export MP3 puisque notre librairie ne le gère pas. Melody Player : possibilité de définir un délai en secondes entre chaque musique de la liste. Correction retaillage mode page.
Aujourd'hui, compilation test et publication de la dernière version du Player et du Plug-in. Quelques améliorations mais surtout une mise à niveau vis à vis de Melody et d'Harmony. Quelques jours de patience et nous allons générer le CD pour une publication en P2P. Depuis quelques années nous proposions en téléchargement sur notre site, la base de son numérique SE : la GMSEBase. Maintenant, et grâce à l'augmentation de notre bande passante, elle est intégrée par défaut dans tous nos produits. Les pages correspondantes ont donc été supprimées.
Nous explorons donc Flash et plus précisément Flex pour voir s'il est possible de réécrire la partie du plug-in qui gère la saisie de la recherche Kooplet. L'environnement de développement Flash Builder est basé sur Eclipse, donc c'est assez mou en réactivité mais plutôt solide. Les fichiers sources sont en XML, nous ne sommes pas dépaysés. La syntaxe est très très proche du C++, nous avançons en territoire connu. Première bonne surprise, le déboggeur est opérationnel. Rappelons au passage qu'Apple n'a jamais été capable de finaliser un déboggueur pour son propre langage, AppleScript... Deuxième surprise, interface et documentation technique sont en Français. Et la traduction est excellente. Petit bémol, il y a eut plusieurs versions d'ActionScript (le langage, nous en sommes à la v3) et les mécanismes ont violemment changés dans le temps, ce qui fait que pas mal de codes d'exemples sont erronés. Le même problème se retrouve sur l'Internet.
Certains mécanismes nous sont absolument indispensables : pouvoir afficher ce que l'on veut dans une aire, récupérer en temps réel la position de la souris, être informé d'un click souris et enfin pouvoir être invoqué régulièrement via un "Idle". Il n'y a pas d'élément d'interface "vide", alors nous rusons en définissant une image qui sert de fond et sur laquelle on peut faire des tracés. Des méthodes sont données pour demander la position de la souris et recevoir les évènements de click. Bien. Par contre pas de Idle, quelques heures à potasser la doc et on trouve que l'on peut programmer un timer (setInterval) qui va nous invoquer à intervalle régulier. Les 4 points de base sont validés. Nous en sommes là :
Maintenant il nous faut "embarquer" notre police STOCCATA dans le projet et réussir à tracer des caractères musicaux. Le premier point a été très ardu, mais nous pensons y être arrivé. Pour les développeurs que cela intéresse, il faut placer en début de la section <![CDATA[ [Embed(source='../STOCCATA.TTF', fontName = 'stoccata', mimeType="application/x-font")] private static var stoccata:Class;
Las ! Malgré que notre police soit correctement embarqué, impossible de l'utiliser. Dès que le champ texte est marqué comme acceptant ce genre de police, l'affichage est vide. Nous avons épluché les docs Adobe et apparemment c'est un problème connu qui n'est pas prêt d'être corrigé. Nous avons alors tenté d'afficher les symboles via des fichiers images PNG avec un fond transparent. Déconfiture. Nous n'avons pas trouvé de moyen de charger un fichier image et de l'afficher plusieurs fois à des positions différentes. Apparemment un concept nous échappe. Alors, un peu fatigués, nous avons progressé sur l'interface. Les boutons de commande ont été définis, avec de vrais morceaux d' icône dedans. Nous gérons les click sur quelques un de ceux-ci et cela fonctionne plutôt bien. Nous en sommes là : D'après les docs Adobe, il serait possible de communiquer avec la page Web via JavaScript et de jouer de la musique avec un système de buffering temps réél. C'est une bonne nouvelle mais nous ne l'avons pas encore expérimenté... Pas de découragement, cela ne fait que deux jours que nous travaillons sur ActionScript/Flex/Spark/Flash. Nous n'avons d'ailleurs toujours pas compris où commence l'un et finit l'autre. Et pour l'anecdote, c'est vuvuzela toute la journée pour moi : une guêpe solitaire a entrepris de construire son "nid" dans la feuillure de ma fenêtre, à moins de deux mètres de ma tête, et elle vronzine du lever au coucher du soleil. Je ne peux plus fermer la fenêtre.
Gloria ! Nous avons réussi (au bout d'une journée) à enfin trouver comment afficher des images bitmap en AS3 (ActionScript 3). Si cela peut intéresser quelqu'un... Soit un fichier PNG "vuvu.png", on déclare : Code:
Son nom (ID) devient "vuvu". On réfère à l'objet via son nom : vuvu. Pour l'afficher à une position (x,y) donnée : Code:
private function getBitMapData(img:Image):BitmapData { var dp:DisplayObject = img.content; var bmp:BitmapData = new BitmapData(dp.width, dp.height, true, 0x00000000); bmp.draw(dp); return bmp; } protected function AffichePict(This:DisplayObjectContainer,image:Image,x:Number,y:Number,co lor:Number):int { var myBitmap:Bitmap; var mySprite:Sprite = new Sprite();
Et on invoque: AffichePict(parent,vuvu,10,10,couleur); Pour l'instant la couleur n'est pas gérée mais cela doit être possible. Nous en sommes là :
Nous allons maintenant dessiner les différents objets sous forme de PNG avec couche alpha et cela devrait rouler... Nous gardons à l'esprit que la taille du SWF obtenu est très importante : il sera chargé sur notre serveur à chaque requête. Je ne sais pas si les navigateurs gèrent un cache pour ce genre de fichier.
Quand à Vuvu, notre hyménoptère préféré, que voici :
Il (elle plutôt) a construit 7 cellules de terre ces derniers jours, et en a presque fini quatre de mieux aujourd'hui.
Nous avançons par bonds sur le plug-in Flash. Parfois, nous bloquons sur un problème qui nous prends trois ou quatre heures, puis la solution vient et des pans entiers de code que nous avions écrit se mettent à fonctionner. Alors, voici les avancées de cette journée : Premier essai d'un jeu d'images pour représenter les notes, avec couche alpha de transparence. Utilisation de ces mêmes images pour les boutons. Gestion de l'activité des boutons selon le mode d'édition choisi. Premiers essais de récupération de paramètres depuis JavaScript et envoi des paramètres à JavaScript lors de la demande de recherche. La note à poser est représentée sur la portée lorsque l'on bouge la souris. Affichage des images dans une couleur donnée (pour le curseur note) Le plug-in flash a été testé sur Windows (nous développons sur Mac) et fonctionne de la même façon.
Nous en sommes là : Certaines fonctionnalités sont opérationnelles sous l'interface Flex, mais ne marchent plus si on transfère le SWF dans un autre dossier. C'est très étrange, il nous faut comprendre cela.