Myriad Blog 1.3.0 Monday, Nov 24th, 2014 at 10:40am 

Dev News Wednesday, Oct 26th, 2011 at 05:03pm
Harmony 9.6 étape 206

 
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
 5 comments.

Technical Wednesday, Oct 19th, 2011 at 05:06pm
Ubuntu 11.10

 
 
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
 6 comments.

Dev News Monday, Oct 17th, 2011 at 05:06pm
Harmony 9.6 étape 200

 
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
 8 comments.

Mood Thursday, Oct 13th, 2011 at 05:16pm
So long, Dennis

 
 
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
 1 comment.

Dev News Wednesday, Oct 12th, 2011 at 05:01pm
Harmony 9.6 et autre étape 198

 
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
 1 comment.

Dev News Monday, Oct 10th, 2011 at 04:58pm
Harmony 9.6 et autre étape 196

 
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
 3 comments.

Dev News Friday, Oct 7th, 2011 at 05:00pm
Harmony 9.6 et autre étape 195

 
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

Dev News Wednesday, Oct 5th, 2011 at 05:02pm
Harmony 9.6 et autre étape 193

 
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


Full view
Reduced view
Most recent first
Oldest first
All
Didier Guillion
Olivier Guillion
Sylvie Ricard
All
Dev News
Technical
Mood
Memories
Myriad Life
To be seen
30 previous days
Apr 2006
May 2006
Jun 2006
Jul 2006
Aug 2006
Sep 2006
Oct 2006
Nov 2006
Dec 2006
Jan 2007
Feb 2007
Mar 2007
Apr 2007
May 2007
Jun 2007
Jul 2007
Aug 2007
Sep 2007
Oct 2007
Nov 2007
Dec 2007
Jan 2008
Feb 2008
Mar 2008
Apr 2008
May 2008
Jun 2008
Jul 2008
Aug 2008
Sep 2008
Oct 2008
Nov 2008
Dec 2008
Jan 2009
Feb 2009
Mar 2009
Apr 2009
May 2009
Jun 2009
Jul 2009
Aug 2009
Sep 2009
Oct 2009
Nov 2009
Dec 2009
Jan 2010
Feb 2010
Mar 2010
Apr 2010
May 2010
Jun 2010
Jul 2010
Aug 2010
Sep 2010
Oct 2010
Nov 2010
Dec 2010
Jan 2011
Feb 2011
Mar 2011
Apr 2011
May 2011
Jun 2011
Jul 2011
Aug 2011
Sep 2011
Oct 2011
Nov 2011
Dec 2011
Jan 2012
Feb 2012
Mar 2012
Apr 2012
May 2012
Jun 2012
Jul 2012
Aug 2012
Sep 2012
Oct 2012
Nov 2012
Dec 2012
Jan 2013
Feb 2013
Mar 2013
Apr 2013
May 2013
Jun 2013
Jul 2013
Aug 2013
Sep 2013
Oct 2013
Nov 2013
Dec 2013
Jan 2014
Feb 2014
Mar 2014
Apr 2014
May 2014
Jun 2014
Jul 2014
Aug 2014
Sep 2014
Oct 2014
Nov 2014
Nov 22nd, 2014 at 09:41am 
Comment from JP
Association des altérations à la tonalité
Nov 21st, 2014 at 04:57pm 
Article from Didier Guillion
PDFtoMusic 1.5.0
Nov 21st, 2014 at 04:57pm 
Article from Didier Guillion
PDFtoMusic 1.5.0
Nov 20th, 2014 at 10:57pm 
Comment from Sylvain
Nov 20th, 2014 at 10:27pm 
Comment from Geo
Itou
Nov 20th, 2014 at 10:27pm 
Comment from Geo
Itou
Nov 20th, 2014 at 07:23pm 
Comment from JP
Bon courage!
Nov 20th, 2014 at 07:23pm 
Comment from JP
Bon courage!
Nov 20th, 2014 at 04:54pm 
Article from Olivier Guillion
PDFtoMusic 1.5.0 (Technique)
Nov 19th, 2014 at 04:56pm 
Article from Didier Guillion
PDFtoMusic 1.5.0

Top of page
Last update:  (c) Myriad 2013