Nous sommes toujours sur les positionnement paramétrables des lignes de paroles. L'édition est fonctionnelle, il nous reste maintenant à traiter les problèmes de copier/coller et de compatibilité avec l'ancien système. Les méthodes MyrScript de manipulation de ce nouveau concept ont été implementé et semblent fonctionnelles. Bon week-end ! |
|
|
by Didier Guillion | | | |
|
Nous avançons dans la gestion fine des positions des lignes de paroles. Une première solution d'ergonomie a été partiellement implémentée puis abandonnée. L'édition se fera via le classique click droit/menu contextuel. Les possibilités seront : insérer une ligne, masquer une ligne, tout démasquer et éditer les paroles. Dans ce dernier cas, le texte global sera édité et la cellule cliquée présélectionnée dans le texte. A noter que les nouvelles fonctionnalités de masquage rendent obsolète les existantes (globales à toute la portée). Elles vont donc vraisemblablement disparaitre. Il reste maintenant à valider cela en profondeur. Déjà, cela donne des résultats assez intéressants sur les portées paroles multi-voix... |
|
|
by Didier Guillion | | |
| |
|
Les nouvelles fonctionnalités d'ornements associés aux clés nous ayant contraints à changer le format des fichiers de partition, nous en profitons pour réfléchir à d'autres améliorations qui pourraient être mises en place. Ainsi, nous avons continué nos expérimentations sur l'amélioration de la gestion des paroles, que Sylvain avait demandé il y a maintenant 5 ans. Un clic droit sur les cellules de paroles permettrait de les décaler vers le bas pour faire apparaître des lignes vides, ou vers le haut pour supprimer ces lignes. Une petite icône apparaitrait également dans le coin supérieur gauche de la première cellule de la sélection, et un clic ouvrirait un menu permettant de masquer les lignes désirées (ergonomiquement, tout n'est pas encore bien défini, nous continuons à chercher). Ces opérations de décalage ou de masquage s'effectueraient sur l'ensemble des mesures sélectionnées, permettant ainsi par exemple d'espacer les lignes afin de gérer les situations complexes comme celle présentée dans cette partition: |
|
|
by Olivier Guillion | | |
| |
|
La prochaine version (9.6.2) va entraîner un changement de format de fichier qui permettra d'intégrer les nouvelles fonctionnalités. Or, simultanément, nous avons rencontré des problèmes avec la nouvelle version d'Ubuntu (11.10). Nous avons donc gelé les mises à plat des sources pour produire rapidement des versions Linux fonctionnant sous 11.04 et 11.10 et respectant le format actuel. La journée a donc été passée à produire des archives Linux et nous sommes en train de les publier. Dès que cela sera fait nous pourrons entamer une mise à niveau pour les trois plateformes et proposer une bêta commune. |
|
|
by Didier Guillion | | | |
|
Implémentation du changement de taille des objets graphiques associés au début de mesure. Mise à niveau des ressources dans les différentes langues. Sauvegarde MusicXML : traitement des "cue" associé aux liés (notes silencieuses), correction de l'écriture des couleurs. Linux et Windows : correction de la position des pointés de note. |
|
|
by Didier Guillion | | | |
|
La possibilité d'associer des images au début de chacune des mesures est maintenant totalement implémentée y compris dans la gestion via MyrScript. Nous en avons profité pour étoffer la documentation MyrScript avec des exemples, qui nous l'espérons permettrons une prise en main plus rapide de ce nouveau concept. Du coté Linux, nous avons enfin réussi a générer un nouveau paquet fonctionnant sur 11.10. Mais ce n'a pas été sans mal, il y a pas de problème sous cette nouvelle version de Linux, en particulier dans la gestion des transparences et des bords arrondis des fenêtres. Normalement, nous devrions publier une bêta pour Linux début de semaine prochaine. Bon week end ! |
|
|
by Didier Guillion | | |
| |
|
Les images externes associées aux symboles (notes et silences) sont maintenant totalement implémentées, y compris leur gestion depuis MyrScript. Des tests de perte de mémoire ont été faits et, apparemment, c'est propre. Puisque nous avons remis les mains dans ces modules, nous avons décidé d'aller un peu plus loin et de mettre en place une fonctionnalité depuis longtemps demandée : pouvoir associer des ornements aux armures. Ceci permettrait d'utiliser des graphismes (externes) de clef exotique, de définir des tonalités Arabes, etc. Bien sur, ce serait purement graphique. La programmation est en cours, voici où nous en sommes : Les trois ornements ne sont associés à aucune note mais bien au début de la mesure. A noter la présence d'une nouvelle icône dans la palette des clefs. Précision, quand je dit "externe", cela veut dire : "provenant d'un fichier graphique externe". Les images sont embarquées dans le document musical et le fichier n'est plus nécessaire. |
|
|
by Didier Guillion | | |
| |
|
Attention, c'est long et technique. Mais on y a pataugé dedans pendant plus d'une journée, alors autant faire profiter tout le monde des éclaboussures ! Avec Ubuntu 11.10, le compilateur C/C++ (gcc, g++) et l'éditeur de liens (ld) sont passés en version 4.6.1. Il y a plusieurs changements dans ces nouvelles versions des outils qui brisent la compatibilité ascendante avec les anciens projets. Obliger les programmeurs à reprendre leurs projets existants pour arriver à les faire fonctionner comme avant, avec le nouveau compilateur, est à notre avis une faute grave dans la conception d'un outil de développement. Devoir de mathématiques: Obligez 10000 personnes à perdre leur temps pendant une heure, puis calculez la somme de temps perdu. Réponse: 417 jours, soit plus d'un an de travail gâché. Maintenant, considérez que nous n'y avons pas perdu une heure, mais plus d'un jour... Donc, pour aider les autres programmeurs qui googlent par là, voici les problèmes que nous avons rencontrés et comment nous les avons résolus. Pour rappel, nous avions des projets fonctionnels sur Ubuntu 11.04, sous Code:Blocks 10.05 Principalement, nous compilions une librairie bas niveau (accès graphiques et sonores) et un programme principal. Après passage à Ubuntu 11.10, lors de la compilation, les "warnings" (avertissements) apparaissent comme des erreurs, et la génération ne passe pas l'étape de l'édition de liens. Premier problème: la traduction de GCC le compilateur C ou C++ (GCC/G++) est un outil en ligne de commande que les puristes utilisent directement. Le fondement de Linux est qu'il est possible d'utiliser ces outils de base au sein d'un programme plus évolué, qui crée la ligne de commande de manière transparente, et analyse les résultats pour les présenter de manière agréable. C'est ce que fait Code:Blocks. Mais, pour analyser les résultats des appels en ligne de commande, il faut que ceux-ci soient dans un format facilement analysable, et surtout que ce format soit documenté et fixe. Or, il semble que dans la dernière version du compilateur GCC/G++, sur un système Ubuntu en français, les messages d'erreur et d'avertissement aient été traduits en français ! Au lieu de "Warning" on obtient "attention", etc. Pour analyser automatiquement les sorties, il faudrait que Code:Blocks connaisse par exemple le mot "attention" dans la centaine de langues disponibles pour Linux ?!! Nous avons donc modifié les paramètres de Code:Blocks pour lui faire comprendre ces nouveaux messages en français dans le texte: - "Settings > Compiler & Debugger > Global compiler settings" onglet "Other settings" - Cliquer "Advanced options..." - Onglet "Output parsing" Editer "Preprocessor warning" Regular expression: Code:([][{}() \t#%$~A-Za-z0-9_:+/\.-]+):([0-9]+):([0-9]+):[ \t]([Aa]ttention.:[ \t].*) |
| Editer "Compiler warning" Regular expression: même chose : Code:([][{}() \t#%$~A-Za-z0-9_:+/\.-]+):([0-9]+):([0-9]+):[ \t]([Aa]ttention.:[ \t].*) |
| - Remonter "Compiler note" au-dessus de "preprocessor error" dans la liste Deuxième problème: l'éditeur de liens ld Après compilation, l'édition de liens de notre projet échoue avec un message d'erreur du type : Quote: /usr/bin/ld: /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgtk-x11-2.0 .so: undefined reference to symbol 'gdk_window_focus' /usr/bin/ld: note: 'gdk_window_focus' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgtk-x11-2.0 .so so try adding it to the linker command line /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgtk-x11-2.0 .so: could not read symbols: Invalid operation collect2: ld a retourné 1 code d'état d'exécution |
| En gros, si on traduit en français : la fonction ne se trouve pas dans la librairie demandée. Essayez donc d'ajouter cette librairie à votre projet (ce qui est à la fois déjà fait, puisqu'il cherche déjà dedans, et inutile puisque la fonction n'y est apparemment pas). De toute façons, aucune fonction n'est trouvée dans cette librairie. Voila. Je pense que, dans la série "messages d'erreur incompréhensibles et inutiles", ce n'est battu que par "erreur inconnue à un endroit indéterminé". Après de longues recherches, voici ce que nous avons trouvé : dans cette version l'éditeur de liens ld est devenu beaucoup plus strict dans la gestion des fonctions utilisées par une librairie, elle-même utilisée par un programme. Auparavant, si on liait le programme Harmony à la librairie Acam, et que cette dernière appelait des fonctions de la librairie gdk, ça fonctionnait. Maintenant, non. La manière de gérer les librairies partagées, avec leur versionnement, étant tellement compliquée, mal documentée et apparemment incompréhensible pas seulement pour nous, que plutôt que de tenter d'adapter nos projets au nouveau comportement de l'éditeur de liens, nous avons modifié ce comportement pour le rendre identique à celui d'avant. Pour cela, dans les "Build options" de nos projets, onglet "Linker settings", cadre "Other linker options", il a fallu ajouter l'option -Wl,--no-as-needed avant la ligne `pkg-config gtk+-2.0 alsa libcurl --libs` Une indication du nom de cette option aurait été bienvenue dans le message d'erreur lui-même, et nous aurait évité de perdre quelques poignées de cheveux supplémentaires. En conclusion Plus d'une journée de perdue pour simplement recompiler nos programmes. Maintenant seulement, on s'attaque aux divergences dans la gestion des fenêtres qui rendent notre programme incompatible avec le nouvel Ubuntu. Cela va probablement prendre un jour de plus (aux dernières nouvelles, cela semblerait provenir d'un bug dans la fonction gtk_window_set_opacity qui permet de créer des fenêtres semi-transparentes). Et ça, c'était pour passer de la version d'Ubuntu 11.04 à 11.10. On n'ose même pas imaginer sans de bonnes sueurs froides ce que sera le passage à la version 12.0... On peut critiquer Windows tant qu'on veut, mais nous avons eu moins de problèmes à passer 4 versions majeures de Windows pendant 15 ans (les programmes se sont toujours recompilés, et les ajustements étaient minimes) que de gérer les incompatibilités lors d'une mise à jour mineure d'Ubuntu comme celle-ci. Ca ne laisse rien présager de bon, et on en vient à se demander si, en commençant à s'intéresser à Linux, on n'a pas coincé la manche de notre chemise dans un hachoir à viande. |
|
|
by Olivier Guillion | | |
| |
|
Olivier planche sur les problèmes liés à la nouvelle version d'Ubuntu. La première étape a été d'installer Code:Block sous 11.10 et d' essayer de recompiler Harmony. Ce qui aurait du se faire sans problème nous a fait perdre une journée sans trouver de solution. Apparemment le linker à changé et n'accepte plus nos projets, il refuse de lier avec les librairies systèmes. Si chaque nouvelle version d'Unix nous amène de telles déconvenues et pertes de temps inacceptables, cela va nous refroidir... Mais, bonne nouvelle, la gestion des objets graphiques liés aux notes et silences avance bien. Cela a été traité comme un nouvel ornement qui pourra être une image externe (bmp, pct, jpg, png...) ou une image vectorielle créée avec MyrScript. Nous avons passé les étapes de sélection du fichier, affichage, mise à l'échelle, gestion mémoire, sauvegarde et chargement, copier/coller et Album. Il nous reste a rendre ce nouvel ornement accessible en MyrScript. Ce type d'ornement sera très utile, par exemple dans des scripts comme les tablatures pour instruments à vent, ou pour permettre à quiconque d'ajouter un ornement "exotique". Le seul bémol est que cela entrainerait un changement de format de fichier (qui n'a pas bougé depuis la 9.4) et nous hésitons à proposer cela dans une sous-sous version... |
|
|
by Didier Guillion | | |
| |
|
Nous avons ajouté une fonctionnalité permettant de joindre les portées des systèmes par une ligne verticale du coté droit. Durant nos recherches préliminaires, nous n'étions pas tombés sur ce genre de partition, mais les membres du forum nous ont fait savoir que cela existait, donc ce sera dans la prochaine version. Nous étudions la possibilité d'ajouter des effets de type "graphisme", comme demandé par Danièl. En fonction de la complexité de la mise en place, et des risques que cela fera courir à la stabilité générale du programme, nous l'implémenterons dans cette prochaine version, ou attendrons la suivante. Nous avons installé la dernière version d'Ubuntu (11.10). Nos applications s'installent mais Harmony ne démarre pas, à cause d'une erreur que nous avons commise dans la liste des dépendances à des librairies partagées. Ceci pourra âtre corrigé assez facilement. Par contre, dans Melody (et donc à coup sûr également dans Harmony lorsqu'il se lancera), il y a un problème dans la gestion des fenêtres de menu. La programmation de toute cette partie (fenêtrage, passage des fenêtres à l'avant ou arrière-plan, etc) étant un véritable casse-tête, ça promet d'être chaud. Aucun rapport, mais j'en profite ici pour maudire Firefox, qui lorsqu'on a tapé un gros texte dans un champ de saisie, et qu'on appuie les touches Ctrl W (fermer) à la place de Ctrl C (copier), ferme la fenêtre et perd le texte en question sans sourciller. C'est la seule application à ma connaissance qui ne demande aucune confirmation lorsque l'utilisateur détruit son travail de manière irréparable. Ca aurait coûté quoi de poser une petite question lorsque l'utilisateur a tapé plus de 200 caractères sur une page? (A moins que ça existe et que je n'aie pas trouvé l'option?) |
|
|
by Olivier Guillion | | |
| |
|
Pour finir la semaine : Correction d'un problème de déplacement de palette sur les écrans multiples. Un de nos soucis constant est de garder une compatibilité maximale des fichiers entre les différentes plateformes. L'inclusion d'objets graphiques suppose que sur chaque OS, il soit possible de les afficher de la même manière. Nous avons donc travaillé simultanément sur Windows, Mac/OS et Linux et nous nous sommes rendu compte que l'implémentation était très proche. Donc, sur les trois plateformes, les objets libres de type image ou les objets associés à la portée peuvent être maintenant de type : PNG, JPEG, GIF ou TIFF. Bon week-end ! |
|
|
by Didier Guillion | | | |
|
C'est avec un pincement au coeur que nous avons appris la disparition de Dennis Ritchie, pionnier de l'informatique et demi-dieu de la communauté des programmeurs. En créant, avec quelques autres, le langage C, il a permis à de nombreux passionnés des années 80 de pouvoir enfin porter facilement leur travail d'un type de micro-ordinateur à l'autre sans avoir besoin de tout réécrire. Facile à lire, rapide, puissant et portable, ce langage a brisé la règle de non-interopérabilité qu'avaient mise en place les constructeurs pour garder leurs utilisateurs-programmeurs captifs. Notre premier programme en C, nous l'avons écrit vers le milieu des années 80, et ça a été la fin d'une souffrance, celle de l'écriture intégralement en assembleur. Nous n'avons plus jamais quitté le C depuis, et nos fréquentes excursions vers d'autres langages dits de plus haut niveau n'ont jamais réussi à nous convaincre de l'utilité de l'abandonner. Nous remercions donc ce programmeur ayant changé la vie des autres générations de programmeurs, pour le vent de liberté qu'il a fait souffler sur la communauté (n'oublions pas qu'il est également à l'origine d'Unix). Ce vent souffle encore aujourd'hui, en des temps ou les fabricants de matériel, nostalgiques des cloisons bien étanches séparant les premiers micro-ordinateurs, veulent nous enfermer à nouveau dans des langages propriétaires, des comités de vérification des applications, ou des plateformes imposées de distribution des logiciels. Bravo et merci, Dennis ! |
|
|
by Olivier Guillion | | |
| |
|
Nous avons commencé à implémenter les imports de formats graphiques compressés sur les différentes plateformes. Sur Macintosh, les fichiers PNG et JPG peuvent maintenant être utilisés en objet libre de type "image", ou en objet graphique associé à la portée. Sur Linux, ça commence à fonctionner, les fichiers PNG sont presque gérés (il y a un décalage graphique du résultat) Sur Windows enfin, ça ne fonctionne pas encore. Nous avons dû passer, pour les exports, par GDI+, la couche graphique C++ de Windows, et nous essayons également de l'utiliser pour les imports. Cela ne s'avère pas évident de faire fonctionner GDI+ sur nos objets graphiques ancien format (GDI tout court). On progresse cependant. Par contre, utiliser GDI+ risque de perturber sévèrement la compatibilité avec les anciennes versions de Windows (95 et 98/ME). Nous allons tout de même essayer de faire en sorte que, sur ces systèmes, les imports/exports dans les formats d'image complexes ne soient pas possibles, mais que le reste du programme continue à fonctionner normalement. |
|
|
by Olivier Guillion | | |
| |
|
On nous a souvent demandé de pourvoir exporter les pages dans d'autres formats que PICT ou BMP et en particulier des formats compressés, comme le JPEG ou le PNG. Nous avons donc analysé ceci aujourd'hui. Nous ne voulions pas lier notre code avec des librairies externes afin de ne pas alourdir nos programmes. Nous avons donc analysés les Codecs disponibles en standard sur les différents systèmes. Dans la prochaine version, sous Windows seront disponibles les export en PNG, JPEG et GIF. Sous Macintosh PNG et JPEG. Sous Linux PNG. Nous allons maintenant étudier la possibilité d'importer des images dans ces formats. |
|
|
by Didier Guillion | | | |
|
Nous avons installé la pré-version de Windows 8 sur une machine virtuelle. Ce nouveau système, pour l'instant, ressemble beaucoup à Windows 7. Le premier changement visible est la disparition du menu démarrer, remplacé par un écran présentant les diverses actions possibles. A noter que sur notre machine virtuelle dotée d'un pilote graphique "de base", sans prise en compte des cartes accélératrices 3D ou autres, le système gère maintenant la transparence dans les titres des fenêtres ou les effets graphiques de transition (mouvement, repliement) lors du passage d'une page à une autre. Nous avons pu télécharger, installer et exécuter la version beta d'Harmony Assistant sur ce système sans rencontrer de problème particulier. Apparemment, la compatibilité semble donc assurée. En parallèle, nous avons continué à corriger et améliorer Harmony Assistant: Des crashs dans l'édition des partitions en mode grégorien étaient apparus à l'occasion de la version beta. Ce sera corrigé dans la suivante. Nous avons réécrit la fonction de création des paroles par défaut de Virtual Singer ("La La La") qui pouvait présenter un défaut sur certaines portées, notamment en grégorien. |
|
|
by Olivier Guillion | | |
| |
|
Le problème de plug-in dans Firefox 7 version Mac a pu être résolu. Il semble que cette version du navigateur ne charge pas automatiquement le fichier ressource qui est situé dans le bundle du plug-in. Nous l'avons donc fait nous-même lors du lancement du plug-in, mais cela ne nous semble pas normal. Probablement une petite erreur dans cette version de Firefox. Sur Windows, le plug-in a été repris et fonctionne maintenant comme avant. Des erreurs dans la réécriture de certaines fonctions bas niveau sur Acam Windows décalaient la position des clics souris, qui n'actionnaient donc jamais les icônes visés. Une demande très ancienne et assez récurrente concernant Virtual Singer a été implémentée. Il s'agissait de le faire suivre au mieux les effets de coulé continu entre note, et les ornements de "bend" guitare. La technologie utilisée dans VS et dans les instruments des bases de sons n'étant pas les mêmes, l'évolution de la fréquence lors d'une glissade sera donc différente (les instruments effectuent une variation linéaire, VS une variation asymptotique). Nous avons cependant essayé d'imiter au plus près les glissades des instruments dans VS. A tester dans la prochaine beta (dans le courant de la semaine prochaine, probablement). Bon week-end à tous ! |
|
|
by Olivier Guillion | | | |
|
Aujourd'hui, nous avons repris le plug-in afin de l'adapter aux dernièrs changements. Sur Mac, il y a un problème avec Firefox 7 alors qu'il fonctionne très bien avec Firefox 4. Pour l'instant nous n'avons pas trouvé de solution. Pas de problème sur Chrome. Dans Harmony, correction de l'affichage du coulé sur les tablatures prioritaires. Mais aussi, les gagnants du 25 ème concours seront annoncés demain, cela a été un peu plus long que prévu, désolé ! En tout cas tout c'est joué dans un mouchoir de poche. Nous avons également lancé le 26 ème concours, avec pour thème, la danse. Comme illustration nous proposons une peinture d'une artiste de notre quartier, Mme Maestripieri. Le titre exact du tableau est "La sevillane". Mais cela nous semblait trop ardu, alors nous l'avons élargi à la danse en général. |
|
|
by Didier Guillion | | | |
|
Ca y est, la première version beta d'Harmony Assistant 9.6.2 vient d'être mise en ligne (voir le forum). Il s'agit d'une version beta publique, à laquelle n'importe qui (ou plutôt tout le monde) peut participer. La liste des nouveautés est disponible dans la documentation au chapitre "quoi de neuf", à la rubrique pour l'instant estampillée 9.6.1. Il n'y a pas de révolution dans les fonctionnalités, mais plutôt une consolidation générale, les couches basses (Acam) ayant été nettoyées et partiellement réécrites. Donc, pour les tests, rien de particulier à tester, sinon vérifier que le programme fonctionne bien comme avant, et que rien n'a été "cassé" pendant la reprogrammation. Bons tests! |
|
|
by Olivier Guillion | | | |
|
Il y avait plusieurs problèmes de gestion de 8va et 8vb en sauvegarde et en chargement que ce soit dans PDFtoMusic ou dans Harmony. Au chargement, le décalage s'appliquait également aux silences, ce qui générait des notes très basses. A la sauvegarde, c'était la note écrite qui était mémorisée dans le fichier et non la note entendue (décalée par le 8vb). Ces deux points ont été corrigés. On nous a demandé la possibilité de pouvoir ajuster la position des lignes de paroles lors des répétitions. Après quelques heures de réflexions, nous avons peut être trouvé une solution mais il reste à voir si son implémentation n'est pas trop risquée dans l'état actuel puisque nous sommes à deux doigts de la bêta. Enfin, Robert H. a levé un fameux lièvre de décalage de la tige des notes. Joli non ? Après analyse cela se produit en mode gravure, lors de l'utilisation d'une accroche spéciale sur une note liée. C'est donc à corriger... |
|
|
by Didier Guillion | | | |
|
Tout l'équipe vient juste de rentrer d'un long week-end en Allemagne, à Mainz (Mayence) près de Francfort. Bonne chère, accueil chaleureux, région superbe ! Nous reprenons le collier demain... |
|
|
by Didier Guillion | | |
| |
|
|