Myriad Blog 1.3.0 Tuesday, Sep 16th, 2014 at 11:37am 

Dev News Wednesday, Jun 1st, 2011 at 05:04pm
Acam III, version Ubuntu, étape 34

 
Nous avons résolu une partie des problèmes liés au système de fenêtrage, abordés dans le billet de l'étape 31.
N'ayant pas trouvé de solution "propre", nous avons exploité une fonction a priori pas destinée à cela, mais qui nous permet de réaliser ce que l'on désire, c'est-à-dire positionner les fenêtres les unes au-dessus des autres dans l'ordre voulu.
 
Nous espérons seulement que cela fonctionnera de la même façon dans les autres versions de Gnome, et les futures versions d'Ubuntu.
 
Reste un problème inhérent au système, qui est le délai entre les ordres donnés au gestionnaire de fenêtres et leur résultat effectif. En résumé, cela veut dire que notre programme positionne une fenêtre sur l'écran, lui donne une taille, mais cette position et cette taille ne seront réellement appliquées qu'au bout d'un certain temps, et encore, peut-être pas avec les valeurs demandées.
 
Cela a donc nécessité de mettre en place un système de feedback qui réajuste les valeurs internes à  ACAM par rapport à ce qui s'est véritablement passé sur l'écran. Il y a encore quelques ratés, mais globalement ça fonctionne plutôt bien.
 
Nous implémentons maintenant les curseurs souris définis par l'application. En effet, en leur absence, la forme du curseur reste fixée sur un rond avec des points qui tournent, équivalent Ubuntu du sablier de Windows.
Cela nous gène pour voir ce qu'il y a sous la souris, et pour cliquer précisément sur les icônes ou sur la partition.
by Olivier Guillion
 1 comment.

Dev News Tuesday, Jun 7th, 2011 at 05:02pm
Acam III, version Ubuntu, étape 36

 
Nous continuons à progresser, parfois pas aussi vite que nous le voudrions, principalement en raison du manque de documentation complète de chacun des modules du système.
 
Mais bon, nous avons pu mettre en place:
 
- La gestion de la forme du curseur de la souris, ceci incluant les formes définies par l'application
 
- Les processus permettant à l'application de prendre en compte les mouvements et redimensionnements de fenêtres que le système n'a pas pu mener à bien
 
- L'ordre d'empilage des fenêtres, notre petite astuce (voir étape 34) ne fonctionnant pas sur Unity. Nous avons trouvé une parade, mais nous ne pouvons pas être certain qu'elle fonctionnera sur les prochaines versions...
 
Dès que nous aurons une version de Melody qui tourne de manière à peu près satisfaisante, nous ferons bien entendu appel aux Linuxiens parmi vous pour démarrer une session d'alpha-test. Mais, à l'heure actuelle, c'est encore un peu prématuré : les problèmes de fonctionnement sont encore nombreux, et nous les détectons aisément. Des rapports de problème ne nous seraient donc pas utiles à ce stade.
by Olivier Guillion

Dev News Thursday, Jun 9th, 2011 at 05:03pm
Acam III, version Ubuntu, étape 38

 
Aujourd'hui, nous avons momentanément laissé tomber les problèmes d'ordre d'empilage des fenêtres (sous Unity, il faut cliquer 2 fois sur un document pour  faire passer sa fenêtre à l'avant-plan) afin d'avoir l'impression d'avancer un peu.  
 
Nous avons donc implémenté:
 
- Les clics et double-clics souris avec les deux boutons (en fait, jusqu'à 5 boutons)
 
- Les défilements rapides avec la molette de la souris
 
- Les touches du clavier "modifiers" (Ctrl, Maj, Alt, etc)
 
- Les raccourcis clavier dans les menus (Ctrl N pour "Nouveau", etc)
 
- L'entrée de textes au clavier. Pour l'instant, c'est une version très simplifiée, qui ne permet pas d'entrer les caractères accentués sur deux touches (ê, ï, etc) ni les langues complexes (japonais, arabe,...), mais c'est déjà suffisant pour tester en profondeur.
 
- Les touches fléchées, page précédente, page suivante, suppressions, tabulations, etc dans l'édition des textes
 
Maintenant, nous essayons, au sens propre, d'arrondir les angles de nos fenêtres, en bataillant avec les documentations incomplètes, obsolètes ou même trop à jour, Ubuntu n'intégrant pas encore la dernière version de GTK.
by Olivier Guillion
 2 comments.

Dev News Wednesday, Jun 15th, 2011 at 05:03pm
Acam III, version Ubuntu, étape 41

 
La gestion des entrées-sorties MIDI a été implémentée sans trop de difficultés. Nous avons pu trouver les fonctions très bas niveau (choix de l'interface MIDI, envoi des données MIDI brutes) dont nous avions besoin.
 
On peut donc maintenant sélectionner une interface MIDI dans la boîte de configuration matérielle, et appuyer sur le bouton "Test" pour entendre des notes se jouer sur la MIDI.
 
Nous avons ensuite essayé de passer à l'étape suivante, jouer la musique sur une sortie MIDI. Et là, nous nous heurtons à un problème ardu : la difficulté (l'impossibilité?) sur Linux de définir qu'une fonction est appelée à intervalle régulier, et très souvent, par exemple à chaque millième de seconde.
Cela nous est nécessaire pour obtenir une sortie MIDI bien régulière et synchronisée, et, pour l'instant, nous n'avons pas réussi à trouver une manière de faire cela.
by Olivier Guillion

Dev News Friday, Jun 17th, 2011 at 05:08pm
Acam III, version Ubuntu, étape 43

 
Côté synchronisation des envois de données MIDI, les choses se présentent mal. Contrairement à MacOS ou à Windows, Linux ne semble pas prévu en standard pour effectuer des tâches temps réel, nécessitant une synchronisation précise. Il semblerait que pour cela, il faille travailler à un niveau beaucoup plus bas, ce qui compliquerait beaucoup trop l'application et son installation.
 
Donc, nous avons essayé de faire avec ce que nous avions, notamment les "timers" d'Alsa. Grâce à eux, il est possible de définir qu'une partie de notre programme (celle qui envoie les données MIDI) soit appelée régulièrement, toutes les millisecondes, par exemple. Cela a d'abord plutôt bien fonctionné, et nous avons pu tester la régularité des appels et la fiabilité de ce système, puis avons tout mis au propre, croyant que notre problème était résolu.
 
Malheureusement, il semble que, dans la pratique, cette fonctionnalité ne soit pas gérable. Elle perturbe gravement tous les timings du reste du programme, en rendant inutilisables  les fonctions système telles que "sleep" ou "usleep", et en induisant des ralentissements sensibles dans la gestion des événements de l'interface graphique.
 
Croyant que nous avions commis une erreur dans l'écriture du  code, nous avons compilé l'exemple "timer.c" livré avec ALSA et l'avons essayé sur une vraie machine Linux. Même résultat. C'est donc bien un problème inhérent aux timers ALSA, et nous en sommes revenus au point de départ, avec de moins en moins d'espoir de pouvoir faire fonctionner la sortie MIDI correctement dans la version Linux.
by Olivier Guillion
 6 comments.

Dev News Monday, Jun 20th, 2011 at 05:02pm
Acam III, version Ubuntu, étape 44

 
Un peu lassés de buter pendant des jours sur quelques points critiques (synchros MIDI, saisies complexes au clavier, etc), nous nous sommes un peu détendus en s'attaquant à d'autres fonctions pas encore écrite ou pas complètement fonctionnelles.
 
Ainsi, nous avons finalisé la gestion des pointeurs souris, la vérification des périphériques de sortie utilisés par une partition, avons géré le presse-papier, qui permet de coller dans Melody des textes copiés depuis une autre application Linux (et vice-versa), et avons arrangé l'export MP3.
 
Au sujet de cet export, justement, en tant que programmeurs assez expérimentés, nous sommes restés bouche bée devant le comportement de certaines fonctions C sur Linux.
Le C, qui est destiné à être portable, utilise en interne le point décimal (.) pour séparer la partie entière de la partie à virgule des nombres. Ainsi, 4 et demi s'écrit 4.5
 
Plusieurs des fichiers de données de Melody (tables MP3, voix Virtual Singer, etc) sont en fait des fichiers au format texte contenant de telles valeurs.  
 
Lors de la lecture de ces fichiers, le programme tronquait des valeurs, puis plantait lamentablement. Ce n'est qu'après quelques heures de recherche que nous nous sommes rendu compte que le programme attendait comme séparateur une virgule et non un point, puisque notre système est en français. Il a fallu explicitement fixer le séparateur à "." pour que cela fonctionne ! Du jamais vu, sur aucun des systèmes que nous ayons pu rencontrer ces 20 dernières années.
 
Cela a sans doute des conséquences sur le fonctionnement de pas mal de programmes. Si un programmeur américain écrit, dans un programme GTK, quelque chose d'aussi basique que :
Code:
if(atof("4.5")>4.0) printf("All right");

son programme fonctionnera chez lui mais pas en France... Si nous avions été anglophones, nous ne nous en serions probablement aperçus que lors du signalement de problèmes de quelques clients étrangers. Rassurez-moi, il y en a d'autres, des monstruosités comme celles-là?
by Olivier Guillion
 5 comments.

Dev News Wednesday, Jun 22nd, 2011 at 05:15pm
Acam III, version Ubuntu, étape 46

 
 
Quelques fonctionnalités ont été mises en place ou améliorées:
 
- la couleur de certaines icônes (par exemple, l'icône du chanteur dans la palette VS)  était erronée. Cela a été corrigé.
 
- Les textes n'étaient pas affichés exactement au bon endroit. Cela a été amélioré.
 
- Les textes en rotation n'étaient pas bien gérés.
 
- Enfin, nous avons mis en place un système permettant à l'application d'être mono-instance. Cela signifie que lorsque l'application est lancée, et que vous double-cliquez à nouveau dessus, elle n'est pas lancée une seconde fois. Ou, si vous double-cliquez sur un fichier musical, il s'ouvre dans l'application déjà lancée, sans démarrer une deuxième copie du programme.
 
Ce type de comportement d'application n'était pas prévu dans les versions précédentes de GTK. Des librairies avaient été écrites pour gérer cela, puis elles ont été remplacées par des appels dédiés dans le système. Il nous a été impossible de les faire fonctionner l'un ou l'autre correctement. Nous avons donc dû nous résoudre à mettre en place notre propre système, qui passe par des communications inter-processus bas niveau de Linux.
by Olivier Guillion

Dev News Friday, Jun 24th, 2011 at 05:06pm
Acam III, version Ubuntu, étape 48

 
Nous avons travaillé sur plusieurs points :  
 
- D'abord, la gestion du clavier, avec la prise en compte des touches mortes telles que l'accent circonflexe qui ne montre rien jusqu'à ce qu'on tape une voyelle. En théorie, le programme gère aussi les IME, méthodes de saisie au clavier destinées aux langues à la graphie complexe (Chinois, Japonais...), mais nous n'avons pas réussi à configurer le système Ubuntu pour le tester. Il ne subsiste que quelques problèmes dans la gestion des raccourcis clavier de Melody.
 
- Ensuite, nous avons complété les trous dans les fonctions d'affichage des textes, avec la prise en compte des styles souligné, relief, ombré, condensé et étendu :
 

 
- Nous avons à nouveau cherché vainement le moyen d'utiliser une police de caractères sans l'installer préalablement dans le système. Il est extrêmement étonnant que cette fonctionnalité n'existe pas, car cela empêcherait d'envisager des applications portables (utilisables sans installation depuis une clé USB) qui embarqueraient leurs propres polices. Mais on a pourtant bien cherché...
 
L'un dans l'autre, il commence tout de même à y avoir de moins en moins de problèmes visibles, la version beta approche à grands pas.
 
Sur ce, bon week-end à tous !
by Olivier Guillion

Dev News Tuesday, Jun 28th, 2011 at 05:14pm
Acam III, version Ubuntu, étape 50

 
Les dernières imperfections graphiques flagrantes ont été corrigées, notamment lors du redimensionnement de fenêtres. Des irrégularités dans l'appel aux fonctions d'impression de GTK ont également été corrigées.
 
Nous avons ensuite mis en place la gestion des numéros de série pour Linux de Melody Assistant et Virtual Singer, ainsi que les diverses autres protections du logiciel.
 
Outre Acam et Linux, nous avons par ailleurs été pas mal occupés par un problème sur notre serveur de mails, qui a duré près d'une journée entre dimanche soir et lundi. Certains messages de spam, contenant une très grosse liste de de destinataires (plusieurs dizaines de milliers) occupaient notre filtre anti-spam suffisamment longtemps pour empêcher une relève correcte de nos e-mails. Nous avons donc "patché" le programme de filtrage, écrit en Perl, pour ignorer les listes trop longues.
by Olivier Guillion

Dev News Thursday, Jun 30th, 2011 at 05:05pm
Acam III, version Ubuntu, étape 52

 
Nous avons poursuivi la mise au point de l'installation de Melody Assistant sous Linux, avec l'association des types de documents (myr, mus,..) à l'application, l'icône spécifique au document, etc.
Cela s'est bien passé sur certains points, alors que d'autres ne fonctionnent pas. Cette partie du système semble plutôt bancale, avec plusieurs méthodes pour arriver au même résultat, chacune "coiffant" l'autre dans un ordre indéterminé.
 
Dans le programme lui-même, certaines choses qui fonctionnaient sur nos versions de développement se sont mises à réagir différemment sur la version beta que nous préparions. Cela va donc être assez difficile à corriger. De plus, nous nous sommes dits qu'il serait judicieux de détourner les crashes de l'application vers une de nos fonctions, afin de nous permettre une recherche et une résolution plus faciles des  problèmes rencontrés.
 
C'est pourquoi nous allons vraisemblablement attendre encore quelques jours avant de proposer une version beta (ou alpha), afin d'être prêts à gérer les retours dans de bonnes conditions. Déjà que nous ne sommes pas spécialistes de Linux, si en plus nous n'avions pas toutes les informations possibles sur un dysfonctionnement, les corrections s'avéreraient vite compliqiuées.
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
Sep 15th, 2014 at 05:01pm 
Article from Olivier Guillion
Harmony 9.6 étape 717
Sep 13th, 2014 at 03:42pm 
Comment from Oliveira
¡Muy bueno!
Sep 12th, 2014 at 09:07pm 
Comment from Nicou59
Félicitations !
Sep 12th, 2014 at 04:56pm 
Article from Didier Guillion
Harmony 9.6 étape 716
Sep 12th, 2014 at 04:56pm 
Article from Didier Guillion
Harmony 9.6 étape 716
Sep 11th, 2014 at 05:31pm 
Article from Olivier Guillion
Harmony 9.6 étape 715
Sep 10th, 2014 at 04:53pm 
Article from Didier Guillion
Harmony 9.6 étape 714
Sep 9th, 2014 at 05:05pm 
Article from Olivier Guillion
Harmony 9.6 étape 713
Sep 9th, 2014 at 01:08am 
Comment from dheo
Notes
Sep 8th, 2014 at 05:01pm 
Article from Didier Guillion
Harmony 9.6 étape 712

Top of page
Last update:  (c) Myriad 2013