HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Tuesday, Mar 19th, 2024 at 09:46am 

Dev News Thursday, Mar 31st, 2016 at 05:06pm
Harmony 9.6 étape 870

 
Lors de l'import MusicXML, si une note était liée à plus d'un coulé, la tige de la note pouvait disparaître (ici, une blanche double-pointée):
 

 
Cela a été corrigé :
 

 
Un utilisateur nous a signalé que l'espacement automatique des notes lors de l'entrée de paroles ne fonctionnait pas toujours.
 
Lors de l'entrée de paroles sur des notes proches, on obtenait quelque chose comme :
 

 
L'analyse a montré plusieurs dysfonctionnements:
 
- L'option "Formatage automatique des paroles", qui permettait un espacement automatique lors de la frappe, est désactivé par défaut dans plusieurs modèles de document. Il nous faudra traiter tous les modèles et activer cette option
 
- En mode gravure, l'espacement en question est géré par l'algorithme du mode. L'option  "Formatage automatique des paroles" ne devrait plus être sélectionnable, et activé automatiquement lorsque le mode gravure est en cours.
Lors de la frappe, on obtient alors:
 

 
ce qui est nettement plus satisfaisant.
by Olivier Guillion
 2 comments.

Dev News Wednesday, Mar 30th, 2016 at 04:56pm
Mac OS X 10.11

 
En ce début de semaine, nous nous sommes plongés de manière approfondie sur la nouvelle version de Mac OS X et de Xcode (pour rappel nous passons de Mac OS 10.7 à 10.11 et de XCode 3 à XCode 7, ce qui est un saut appréciable.)
Nous avons été bloqués par des crashs répétés du Finder mais la mise à jour récente en 10.11.4 a corrigé le problème ce qui nous a permis de nous remettre à la tâche.
 
Nos principaux projets ont été reconstruits et adaptés de manière à se compiler sous 10.11 mais en restant compatible avec 10.5. Melody Player, Harmony Assistant et PDFtoMusic sont dores et déjà fonctionnel à 99% sous ce nouveau système.
 
Il y a trop de nouveautés pour que nous nous permettions de diffuser ces applications (à noter que le compilateur C à également changé), nous allons sortir la prochaine version générée avec nos anciens outils, ce sera certainement la suivante qui utilisera la nouvelle plateforme.
by Didier Guillion

Mood Tuesday, Mar 29th, 2016 at 05:06pm
Windows 10, vite !!

 
 
Notre PC de développement tourne sous Windows 8. Un passage vers Windows 10 sera probablement fait, mais pas tout de suite. Même s'il y a peu de chance de tomber sur une grosse incompatibilité, un grain de sable dans la machine bloquerait nos possibilités de développement, et ce n'est vraiment pas le moment.
 
Donc, on attend, en espérant faire la mise à jour tant qu'elle sera gratuite. Et pendant ce temps, Windows se fait de plus en plus insistant.
 
Tous les jours, un placard publicitaire, au bas de l'écran, tente de nous convaincre de franchir le pas, en nous assénant des slogans et des argument.
 
Mais, un slogan par jour, ça fait beaucoup. Au bout de quelques mois, les gars de la com', chez Microsoft, se retrouvent un peu à court, pour vanter les mérites de ce tout nouveau système, crème de la crème en matière de convivialité, de technologie et d'innovation.
 
Il y a quelques jours, nous avons vu apparaître ça:
 

Imparable. Le  tout nouveau système à la pointe du high-tech, qui communique sur le fait qu'il ressemble aux précédents, et en reprend des pans entiers ?
Remarquons également le souci du détail, la grosse flèche vers la gauche qui exprime le retour en arrière.
 
Pour le prochain slogan, je propose "avec de gros morceaux de Windows 95 dedans". C'est juste pour aider, hein  
by Olivier Guillion
 3 comments.

Dev News Friday, Mar 25th, 2016 at 04:56pm
PDFtoMusic 1.5.2

 
Des irrégularités dans le tracé des courbes de Bezier avec gradient ont été corrigées en CoreGraphic.
Le changement de taille des annotations avec texte réajuste maintenant la taille des textes stylés.
Les différentes icônes de la palette sont maintenant tracés avec des polygones afin de rendre le module plus facilement utilisable dans Harmony.
Les différentes bornes des paramètres des annotations ont été affinées.
Enfin, les ressources ont été mises à niveau entre les différentes langues pour Harmony et PDFtoMusic.
 
Bon week-end !
by Didier Guillion

Dev News Thursday, Mar 24th, 2016 at 05:06pm
Myrweb, un format libre ?

 
Le format Myrweb est maintenant entièrement défini. Il permet de stocker l'ensemble des informations musicales et graphiques dont l'app a besoin et même largement plus.
Nous avons aujourd'hui entièrement relu le contenu du format pour le rendre le plus propre possible, en éliminant les informations inutiles, en nommant les champs de manière claire, en utilisant des unités cohérentes, etc.
 
Pour être certains de nous y retrouver, nous avons rédigé une documentation technique décrivant le format, et deux "parsers", l'un en C dans Harmony et l'autre en Javascript sur une page Web, permettant de décomposer à l'écran le contenu exhaustif de n'importe quel fichier Myrweb.
 
Nous nous interrogeons sur l'opportunité de publier la description de ce format et de le rendre libre, permettant à quiconque de l'utiliser à sa guise.
Des opinions divergentes à ce sujet se font entendre au sein de notre petite équipe, mais il est quasi certain que ce ne sera pas fait, au moins dans un premier temps, afin de nous permettre de modifier facilement le format si nous nous apercevions d'un manque.
 
Voici la liste non exhaustive des "pour" et des "contre"  
 
Pour un format Myrweb public et libre
 
  • En tant que créateurs et mainteneurs du format, nous garderions un avantage stratégique, nos applications étant toujours 100% compatibles avec la dernière version.
     
  • Le format myrweb pourrait amener plus de musiciens à s'intéresser à nos produits, qui pourraient les choisir de manière à être certains de la compatibilité des exports (ou de la correction rapide des erreurs)
     
  • C'est toujours sympa de faire profiter une communauté de ce qu'on fait
     
  • C'est ce que fait Finale avec le MusicXML, et comme ce ne sont pas des mécènes, ils doivent bien y trouver un avantage financier
     
    Contre un format Myrweb public et libre
     
  • Même s'il n'y a aucun engagement formel, un format libre nous contraindrait à assurer une assistance technique sur ce format, et fédérer les demandes d'évolutions, émanant de personnes non clientes chez nous.
     
  • Si nous désirions modifier ou adapter le format, un format libre serait plus contraignant, nous devrions gérer des versionnements, publier les modifications, etc.
     
    et surtout :
  • Une diffusion libre donnerait la possibilité à n'importe quel logiciel de musique d'exporter en Myrweb pour visualiser ses partitions en ligne, en utilisant notre app gratuite.
    La gratuité, c'est bien, et nous pensons que l'app peut amener des personnes à s'intéresser à nos logiciels. Mais offrir tout notre travail sur un plateau à nos concurrents directs, ce serait un peu fort de café.
     
     
    Bon, il y a peut-être d'autres possibilités de droits de diffusion, par exemple libre et gratuit pour un usage personnel, académique, ou freeware/open source, mais avec une redevance ou une licence pour une utilisation commerciale.
    Mais pour les 10 développeurs potentiellement intéressés, est-ce que cela vaut la peine de s'embêter ? La question n'est pas réthorique, il faudra nous la poser sérieusement un jour, dès que nous aurons un peu de temps ... libre.
  • by Olivier Guillion
     3 comments.

    Dev News Wednesday, Mar 23rd, 2016 at 04:59pm
    PDFtoMusic 1.5.2

     
    Afin d'éviter que les utilisateurs peu expérimentés ne se trouvent confrontés à des paramétrages peu compréhensibles, l'export MyrWeb sera proposé avec trois niveaux de complexité. Par défaut, le niveau le plus simple utilise des valeurs prédéfinies sans rien demander à l'utilisateur. Dans les préférences générales, on pourra activer la boite de paramétrage qui proposera alors les choix les plus compatibles avec les navigateurs existants. Enfin une combinaison spéciale de touches donnera accès à toutes les fonctions, même les plus exotiques, comme par exemple l'export au format Ogg Vorbis qui ne fonctionne que sur certains navigateurs.
     
    Dans la boite d'édition des paramètres de l'export MyrWeb, nous avons prévu de pouvoir générer un aperçu. Pour ce faire nous avons encapsulé le résultat de l'export MyrWeb dans une page HTML. Ce faisant nous obtenons une page HTML indépendante, contenant l'ensemble des données ainsi que la web-app de traitement de ces données. Il suffit ensuite de simplement charger cette page avec un navigateur.
    Et de fait nous nous sommes rendu compte que ce genre de document est très pratique : il permet par exemple de diffuser des documents musicaux interactifs même hors connexion internet. Nous avons donc ajoutés ce type de fichier à la liste des formats d'exportation.
    by Didier Guillion

    Dev News Tuesday, Mar 22nd, 2016 at 05:15pm
    Myriad Plug-in, et après ? -27-

     
    Parmi les fonctionnalités les plus utiles de l'ancien plug-in, on trouvait la modification du tempo, et la transposition.
     
    L'altération du tempo était le plus souvent utilisée pour ralentir la musique et s'entraîner à vitesse réduite, avant de l'augmenter peu à peu.
     
    La transposition était utilisée, elle, soit par les chanteurs, pour ramener la partie chant à une tessiture plus confortable, soit par des instrumentistes, pour jouer dans une clé plus facile, ou plus adaptée.
     
    En MIDI ou en MYR, transposer ou changer le tempo est très facile. Les notes étant stockées en tant que telles, il suffit d'augmenter leur durée, ou d'ajouter ou retrancher un certain nombre de demi-tons à leur hauteur.
     
    En format audionumérique, c'est une autre paire de manches. Cela demande des calculs mathématiques très lourds, incluant des décomposition en série de Fourier, des calculs sur le spectre des fréquences, et une resynthèse du son.
     
    Le Javascript n'est pas un foudre de guerre, aussi nous craignions que ces calculs ne soient bien trop long pour être envisageables. En fait, il n'en est rien.
     
    Nous avons préparé une petite démo pour vous montrer:
     
    Démo de transposition/tempo

     
    Bien entendu, la vitesse du langage, et la lourdeur des calculs ne nous permet pas de faire dans la dentelle. Pas question de hi-fi, ici.  
    Pour réduire les calculs, on ne traite que du mono, et on entend nettement les défauts inhérents au système: un affaiblissement de la dynamique, des attaques moins franches, un chevrotement des fréquences basses lorsque le tempo est fortement réduit, et un effet général d'écho du type "salle de bain".
     
    Mais l'idée n'est pas ici de faire quelque chose de parfait, seulement de produire un son écoutable et pas trop désagréable.
     
    Il est à noter que la vitesse de calcul varie très fortement d'un navigateur à l'autre, du simple au double, selon l'optimisation du moteur Javascript dans le traitement des 'tableaux typés', qui permettent d'effectuer des calculs intensifs sur des zones mémoire brutes.  
     
    Firefox remporte ce match haut la main, très loin devant Chrome ou Safari.
    by Olivier Guillion
     3 comments.

    Dev News Monday, Mar 21st, 2016 at 05:00pm
    PDFtoMusic 1.5.2

     
    Les annotations sont exportées dans le format MyrWeb. Les gradients de couleurs ont été impléméntés en export SVG ainsi que l'opacité des textes.
    La vitesse des variations d'opacité a été calée.
    Nous avons commencé a créer des objets pour tester le concept ce qui a entrainé un affinage du design de la palette.
     
     
    by Didier Guillion

    Dev News Friday, Mar 18th, 2016 at 05:16pm
    Myriad Plug-in, et après ? -26-

     
    Alors que le format de fichier "MyrWeb" évolue pour y intégrer la totalité des données dont nous avons besoin, l'app qui présente et joue les partitions se complète petit à petit.
     
    Elle est loin d'être entièrement fonctionnelle, mais est maintenant presque présentable. Des fonctionnalités sont encore absentes, d'autres ne fonctionnent pas comme prévu, ou ne fonctionnent pas sur certaines plateformes, mais l'essentiel est là.
     
    Démo de l'app Myrweb v-1.-1.-1

     
    C'est une version pré-pré-alpha, une bande-annonce en quelque sorte.
     
    Dans Harmony Assistant, lors de la génération d'un fichier Myrweb à partir d'une partition, un bouton "Aperçu" permet de voir ce que donnera cette partition une fois publiée sur Internet. Pour ce faire, Harmony crée une page totalement autonome, qui intègre à la fois la dernière version de l'app (telle qu'elle était à l'instant de la génération), ainsi que les données graphiques et sonores de la partition.
     
    Ainsi, il serait possible par exemple d'envoyer ce genre de pages par e-mail, même si elles sont un peu volumineuses, pour que le correspondant à l'autre bout puisse ensuite jouer et visualiser une partition, même hors-ligne, sans rien avoir à installer, et sans risque qu'un fichier ou une image soit manquante.
     
    Sur ces considérations, bon week-end !
    by Olivier Guillion
     7 comments.

    Dev News Thursday, Mar 17th, 2016 at 04:47pm
    PDFtoMusic 1.5.2

     
    La palette de définition des annotations commence à prendre forme finale. Différents types d'objets ont été ajoutés et validés.
     

     
    Nous sommes en train de tester des annotations dynamiques. Ce serait des annotations qui changeraient de transparence en fonction de certains critères.
     Par exemple, la première annotation est mise en avant quand la musique est jouée, la seconde quand la position dans la musique est comprise dans un intervalle de mesure, comme on peut le voir dans cette vidéo :
     
    https://youtu.be/AtrbTCBhJiI
     
    Cela permettra à un chef d'orchestre ou de choeur, de faire apparaître des annotations lorsqu'une difficulté particulière va survenir, puis de masquer cette annotation lorsqu'elle est inutile.
    by Didier Guillion

    Dev News Wednesday, Mar 16th, 2016 at 04:55pm
    Myriad Plug-in, et MP3

     
    Les incompatibilités entre navigateurs, conjuguées avec le bricolage duquel est issu le format MP3, nous obligent à improviser un numéro de jongleur contorsionniste.
     
    Voici l'état de l'art en la matière :  
     
    Le format MP3
     
    La base de ce format est solide et claire, mais les manques ont été comblés de bric et de broc, créant toute une série de "standards" de facto
    Par exemple:  
    A l'origine, les fichiers MP3 étaient en "Constant Bit Rate" (CBR) : chaque petit bout de son (trame) était compressé de la même façon, quel que soit son contenu.
    Une seconde de silence occupait la même place qu'une seconde de son d'un orchestre symphonique.
    Puis est apparu le "Variable Bit Rate" (VBR) : la trame est plus ou moins compressée selon son contenu, de manière à maximiser la qualité globale de la compression.
     
    Problème: en CBR, il est facile de savoir où est située la 100e seconde d'un morceau. On connait la durée de chaque trame, et sa longueur en octets. Il suffit de multiplier.
     
    En VBR, c'est impossible, les trames ayant des longueurs variables, il faudrait tout balayer depuis le début. De même, il n'est pas possible de prévoir la durée du morceau avant de le jouer en se basant sur la taille du fichier.
    Alors, une tentative de "standard" bricolé de table de correspondance entre position en seconde et position dans le fichier a été créée.  
    Ca améliore les choses, mais ne les résout pas vraiment. Il y a encore une imprécision importante entre la position estimée et la position véritable dans la musique.
     
    Web Audio et <audio> en HTML5
     
    - en HTML 5, le Web Audio permet de jouer de charger des extraits sonores en divers formats,  les décoder, les modifier (ou en créer à partir de rien), puis les jouer en totalité ou en partie.  
    En gros, tout est possible, sauf le changement de tempo, qui doit alors être réalisé en Javascript, par des opérations mathématiques très (trop ?) complexes.
    Le Web Audio n'est pas géré par certains navigateurs sur Windows (IE 10 et 11) ou certains terminaux mobiles.
     
    - Dans ce cas, il est la plupart du temps possible d'utiliser à la place le tag HTML5 <audio> destiné à jouer un fichier audio complet. Par une astuce permettant d'inclure les données audio dans les données de la page Web, il n'est pas obligatoire que les données audio soient dans un fichier à part, ce qui nous permet de les extraire du fichier Myrweb.
    Mais : les formats de fichier gérés par le tag <audio> dépendent du navigateur. Seul le format MP3 semble être géré par à peu près tous, heureusement. Cette solution est bien moins souple que le Web Audio, on ne peut pas gérer la position stéréo de chaque piste, ou créer des sons de toute pièce pour superposer les sons de métronome à la musique. Par contre, curieusement, il est possible de changer facilement le tempo de la musique jouée.  
     
    Les combinaisons
     
    On en arrive donc à cela :
     
    - En Web Audio, avec des données MP3 CBR ou VBR, on peut jouer tout ou partie, pauser, reprendre, changer le volume et la position stéréo de chaque piste, et superposer les sons de métronome, mais pas changer le tempo
     
    - Lorsque le Web Audio n'est pas disponible, avec le tag <audio>:
     
     . avec des données MP3 CBR, on peut jouer tout ou partie, pauser, reprendre, changer le volume et changer le tempo, mais pas changer la position stéréo des pistes ni superposer les sons de métronome
     
     . avec des données MP3 VBR, on peut jouer depuis le début, changer le volume et changer le tempo, mais ni jouer une partie, ni pauser ou reprendre, ni changer la position stéréo des pistes, ni superposer les sons de métronome.
     
    Ca ne va pas être évident à expliquer à l'utilisateur lambda, même avec une doc hyper bien fichue...
    by Olivier Guillion

    Myriad Life Tuesday, Mar 15th, 2016 at 04:58pm
    Mac OS X 10.11

     
    Voilà plusieurs années que notre Mac de développement est figé sur la dernière version de Mac OS X 10.7. Nous avions déjà évoqué cette obsolescence programmée dans un billet précédent en novembre 2012 :
     
    http://www.myriad-online.com/cgi-bin/blog/blog.pl?m=201211
     
    Donc à chaque sortie d'une nouvelle version, il nous était impossible de tester sur les versions récentes de Mac OS X et on croisait les doigts...
     
    La semaine dernière, un ami nous a proposé un Mac d'occasion remis à neuf par lui-même et ce Mac pouvait accepter Mac OS 10.10 voire 10.11. Bingo !
     
    Nous sommes en train de passer nos différents projets sur la nouvelle machine et de tenter de les compiler avec la toute dernière version d'XCode, la 7. Le principal problème est que, fidèle à leur vocation d'obsolescence programmée, Apple ne permet plus de compiler pour d'anciennes versions du système. Or, de notre coté, il est impossible pour nous d'abandonner nos utilisateurs qui sont encore sous 10.5 à 10.8.
     
    Une petite bidouille : recopier les anciennes FrameWorks dans le nouveau XCode semble lui faire générer du code compatible, mais c'est à tester en profondeur !
     
    by Didier Guillion

    Dev News Monday, Mar 14th, 2016 at 05:02pm
    Myriad Plug-in, et après ? -25-

     
    Nous avons travaillé sur la partie "rendu sonore" de l'app, et y avons intégré quelques fonctions que nous avions préparées et mises au point à part.
     
    Le but est maintenant non pas d'obtenir une app diffusable et entièrement finalisée, mais d'avoir suffisamment de fonctionnalités mises en place pour pouvoir vérifier que le format de fichier myrweb contient tout ce dont nous avons besoin.
     

     
    L'app gère donc maintenant le métronome (en Web Audio, donc pas sur IE), la visualisation de la position de jeu, soit en mesure entière, soit sous forme d'une barre fine, le clavier virtuel avec choix des portées à montrer et de l'octave médian, le jeu de la musique, la pause, le redémarrage, l'avance et le retour rapide et le volume général.
     
    Sont implémentés, mais pas encore interfacés:
    la gestion de la barre de position en temps, le jeu d'une sélection, le bouclage infini sur ce passage, le volume et la position stéréo de chaque piste.
     
    Ne sont pas implémentés pour l'instant :  
    la modification du tempo de jeu, et la transposition.  
    Il n'y a en fait aucune méthode standard pour faire cela en WebAudio, alors qu'une modification de tempo existe en tag <audio>. Malgré les tentatives de justification des équipes de Google, c'est assez inexplicable.
    Pour réaliser cela malgré tout, il faudrait que nous intégrions à l'app un module de traitement audionumérique (FFT/IFFT, etc) qui, en Javascript, risque de s'avérer trop lent pour être utilisable. Même si la vitesse est suffisante, cela représente un assez gros boulot, qui n'est pas prioritaire.
     
    Ces fonctionnalités ne seront donc probablement pas implémentées dans les premières version publiques de notre app, si elles le sont un jour.
    by Olivier Guillion
     1 comment.

    Dev News Friday, Mar 11th, 2016 at 04:56pm
    PDFtoMusic 1.5.2

     
    La palette de gestion des annotations a été finalisé et deux nouveaux effets ajoutés : le cadre arrondi et le cadre carré.
    L'export en PDF et en SVG des annotations est fonctionnel. C'est en rechargeant des PDF générés avec des annotations que nous nous sommes rendu compte d'une erreur dans la gestion des couleurs des chemins des PDF. Cela a été corrigé.
     
    Donc voici des annotations en cours d'édition :
     

     
    La visualisation du SVG correspondant sous Firefox :
     

     
    La visualisation du PDF correspondant sous Aperçu :
     

     
     
    Bon week-end !
     
    by Didier Guillion
     3 comments.

    Dev News Thursday, Mar 10th, 2016 at 04:51pm
    Myriad Plug-in, et après ? -24-

     
    Pour créer les données graphiques d'une partition destinée à être présentée sur le Web (fichier MyrWeb), l'application doit :
     
    - Convertir graphiquement les pages de la partition au format SVG
     
    - Calculer l'aire de chaque mesure sur ces exports graphiques
     
    Le premier a nécessité l'écriture d'un convertisseur SVG, qui est maintenant quasiment terminé, il ne manque plus que la gestion des images (objets libres) que l'utilisateur peut avoir incrusté sur son document.
     
    Pour le deuxième, nous avons un peu galéré, il faut l'avouer. Les calculs d'échelle de page, de dpi d'impression, de zoom, de justification automatique, etc, sont une des parties les plus complexes du logiciel, et nous avons passé une journée entière à trouver les bons calculs, qui font correspondre exactement l'aire de la mesure à son graphisme exporté.
     
    Mais nous avions commis une erreur : le SVG était exporté sur une aire de page A4, alors que l'utilisateur peut imposer une taille de papier quelconque. Nous avons donc repris l'export SVG pour en tenir compte.
    Ceci est utilisé par exemple dans la documentation, ou nous présentons une seule ligne de portée, en créant un document de 20 cm de large sur 2cm de haut.
    On peut donc maintenant, avec l'app, obtenir quelque chose comme (ici grandeur nature):
     

     
    Seul problème: ceci a modifié les positionnements et tailles de page, et nos calculs d'aire de mesure, que nous avions eu tant de mal à ajuster, ne fonctionnent plus, il faut tout reprendre
     
    Nous espérons seulement ne pas avoir à y consacrer une autre journée.
    by Olivier Guillion
     1 comment.

    Dev News Wednesday, Mar 9th, 2016 at 04:56pm
    PDFtoMusic 1.5.2

     
    La sélection multiple sur les annotations a été implémentée ainsi que les opérations de copier/coller/effacer ce qui permet par exemple de copier des annotations d'un document sur un autre.
    De fait la palette a été grandement simplifiée puisque les différentes options sont maintenant réparties dans les menus.
     

     
    Le premier effet mis en place a été le surlignage via un "feutre". Ceci fonctionne à l'écran, en impression PDF et en export SVG et ce en utilisant de manière intensive CoreGraphic et CoreText afin d'avoir des transparences.
     
    Le paramétrage fin de l'annotation a été implémenté dans la palette via des micro-potentiomètres manipulables avec la molette de la souris.
    On peut dès à présent choisir :
    - le type de fond : sans  fond, couleur unie ou remplissage au feutre
    - le type de cadre : sans cadre ou simple
    - les couleurs des cadres et de fond
    - l'opacité des fonds, cadre et texte
    - l'épaisseur de tracé du feutre et du cadre  
    - l'"agitation" qui représente la part aléatoire de tracé du feutre.
    by Didier Guillion

    Technical Tuesday, Mar 8th, 2016 at 05:18pm
    Javascript IDE

     
    Pour ce billet, une petite plongée dans notre manière de développer.
     
    Lorsqu'un projet atteint une certaine complexité, il est nécessaire de le découper en modules, chaque module regroupant les fonctionnalités qui correspondent à un sujet donné.
    Par exemple, dans Harmony Assistant, un module contiendra tout ce qui concerne les transpositions, l'autre les tracés graphiques d'une portée, etc.
     
    Ainsi, le projet "Harmony Assistant" est constitué de plusieurs centaines de fichiers thématiques (en C).
     
    Pour gérer cela, nous utilisons ce qu'on appelle un IDE (Integrated development environment), en français environnement de développement intégré, qui gère la liste des modules, l'édition de ces fichiers, la compilation du projet, le traitement des erreurs et le déboguage.
     

     
    Pour nos projets en C, (Melody/Harmony, PDFtoMusic, etc), sur Windows, nous utilisons 'Visual Studio", sur Mac "XCode" et sur Linux Code:Blocks.
     
    Pour les applis Web en Javascript par contre, nous n'avions rien. Les apps étaient jusqu'ici très simples, et contenues dans un seul module. Un éditeur de texte suffisait à notre bonheur.
     
    Il est possible et même probable que des IDE javascript existent, mais ils nécessiteraient d'être installés sur tous les ordinateur où nous serions susceptibles d'éditer du code, soit 4 ou 5 ordinateurs, sur autant de systèmes différents (Windows XP, 8 et 10, Mac OS...)
     
    De plus, la prise en compte des particularités de nos projets, avec les scripts Perl additionnels qui délivrent le code Javascript à l'utilisateur, la centralisation de nos sources sur une machine réseau, etc, nous aurait demandé de nous plonger dans les configurations de ces outils.
     
    Nous avons alors réalisé qu'il existait un système multiplateforme maintenant suffisamment performant, et que nous commençons à maîtriser : les applis web.
     
    Nous avons donc monté un petit serveur Web intranet (XAMPP) sur l'ordinateur qui gère nos mails et les partages torrent, et qui est allumé en permanence. Nous avons ensuite écrit un script Perl qui donne la liste des projets Web en cours (pour l'instant, deux projets, le visualiseur de didacticiels et le visualiseur de partitions) et permet d'effectuer des opérations dessus :
     

     
    Parmi ces opérations, la "compilation" d'un projet. Il ne s'agit pas à proprement parler d'une compilation, Javascript étant un langage interprété, mais d'un tronçonnage/compactage qui rend le code plus compact (pour limiter la charge réseau) en enlevant les commentaires, renommant les variables, etc. Cette opération, qui analyse la logique du code relativement en profondeur, nous permet également de vérifier que notre code est valide.
    Pour cela, nous avons utilisé UglifyJS, un utilitaire écrit lui-même en Javascript et qui s'avère assez puissant.
     
    Les erreurs détectées par UglifyJS sont traitées par notre script et rendues cliquables.
     

     
    Un clic permet d'aller éditer le module en question, grâce à un éditeur de texte appelé ACE, écrit lui aussi en Javascript.
     

     
    Bien sûr, tous ces outils ne sont pas disponibles sur notre serveur myriad-online.com, mais seulement sur notre Intranet. Seuls les résultats des compilations seront rendus publics.
    by Olivier Guillion

    Dev News Monday, Mar 7th, 2016 at 04:56pm
    PDFtoMusic 1.5.2

     
    Il est maintenant possible de jouer le métronome quand la musique est interprétée. L'icône représentant un métronome devient vraiment celle du métronome et le changement de tempo se voit doté d'une autre icône.
     

     
    Afin de pouvoir utiliser les tracés transparents, toute la partie graphique sur Mac OS a été écrite en utilisant CoreGraphic et CoreText. L'export en PDF depuis PDFtoMusic intègre maintenant les annotations.
     
    Les différents paramètres d'affichage des annotations commencent à être mis en place dans la palette.
     

    by Didier Guillion

    Dev News Friday, Mar 4th, 2016 at 05:09pm
    Myriad Plug-in, et après ? -23-

     
    Quelques modifications d'aspect ou ajustements de style, et le visualiseur de didacticiels est passé en version beta-2.
     
    Les pages de présentation des listes ont été reprises, pour supprimer les références au plug-in, qui n'est donc plus nécessaire ici. La gestion des clics sur les différents titres pour ouvrir le didacticiel correspondant a également été reprise.
    L'option de téléchargement et sauvegarde du fichier du didacticiel (.myt), inutile, a été supprimée.
     
    Le son de la barre d'espace, qui jouait à tort un bruit de double-clic, a été corrigé. Enfin, le jeu de musiques depuis le didacticiel en ligne a été amélioré, avec une mise en pause lorsque cet outil est cliqué, et un petit délai avant le démarrage, pour laisser le temps à l'effet sonore (généralement, bruit de la barre d'espace) de se jouer.
     
    Sur Harmony Assistant, version publique courante, nous avont testé le téléchargement et le jeu de didacticiels au nouveau format, afin de nous assurer que tout continue à fonctionner. C'est bien le cas.
     
    Le jeu des didacticiels est maintenant suffisamment fonctionnel pour que nous puissions le laisser ainsi pendant un petit moment. Nous allons donc nous remettre à l'app de visualisation et jeu des partitions.
     
    Bon week-end !
    by Olivier Guillion
     2 comments.

    Dev News Thursday, Mar 3rd, 2016 at 04:58pm
    PDFtoMusic 1.5.2

     
    Les annotations se voient dotées d'un menu contextuel via le click droit, permettant l'accès à certaines fonctions telles que le changement de plans ou la suppression de toutes les annotations.
     

     
    Gestion du click sur les annotations cachées par une autre.
    by Didier Guillion

    Dev News Wednesday, Mar 2nd, 2016 at 05:03pm
    Myriad Plug-in, et après ? -22-

     
    Nous avons corrigé les dernières erreurs les plus visibles dans l'app "didacticiels".
    Ensuite, nous avons mis en place le système qui délivre le code Javascript à la demande. Ce système permettra de limiter à presque rien l'empreinte de notre app sur les pages Web qui l'utilisent. Ainsi, même si notre code Javascript a été écrit en de nombreux modules, dans la page Web, il n'y aura qu'une seule ligne pour télécharger et activer ce code.
     
    Nous avons ensuite repris les pages de notre site qui montrent l'arborescence des didacticiels, afin de leur faire utiliser la nouvelle syntaxe d'appel.
     
    Nous sommes en train de tester ça sur notre intranet, avant de mettre tout ça publiquement en ligne. Si aucun lézard n'est déniché au dernier moment, ça devrait être disponible sous quelques heures. De toutes façons, on se dit que même si ça ne fonctionne pas tout à fait correctement, cela ne devrait pas être pire que l'incompatibilité croissante de l'ancien plug-in.
     
    Ce sera donc testable bientôt  ici:  
     
    Didacticiels
    by Olivier Guillion
     7 comments.

    Dev News Tuesday, Mar 1st, 2016 at 05:04pm
    Myriad Plug-in, et après ? -21-

     
    Le nouveau système d'app destiné à remplacer notre plug-in ne nous permet plus de jouer des musiques au format MYR (ou tout autre format de partition, d'ailleurs). Si cela avait été possible, nous aurions déjà terminé le travail.
     
    Dans nos didacticiels, il arrive qu'une musique soit jouée pour permettre à l'utilisateur d'entendre le résultat des opérations décrites. Jusqu'ici, cette musique était intégrée au didacticiel au format MYR.
     
    Il nous a donc fallu étendre le format des fichiers de didacticiels, pour permettre de stocker, en plus du MYR, le résultat sonore au format MP3. Le format de fichier était heureusement assez bien conçu, et les nouveaux fichiers contenant des données MP3 pourront être visualisés avec les anciennes versions d'Harmony/Melody, ou avec l'ancien plug-in pour ceux qui parviennent encore à le faire fonctionner.
     
    Nous avons ensuite repris l'app pour lui faire jouer l'audio sur tous les navigateurs qui supportent le format MP3 ainsi que le jeu de l'audio en mode "inline data". Pour les autres, ce sera muet.
     
    Enfin, nous avons lancé un traitement par lot qui a chargé un à un les 273 didacticiels existants (excusez-moi du peu) et leur a adjoint les MP3 lorsque c'était nécessaire.
     
    Nous sommes les seuls à utiliser ce système de didacticiels, aussi nous pouvons nous permettre de mettre en ligne une version, puis de modifier à nouveau toutes les pages si nous faisons évoluer l'app. Pour la partie "visualiseur de partition", c'est plus délicat, car de nombreuses personnes utilisent le plug-in sur leur site, et nous ne pouvons pas les contraindre à reprendre plusieurs fois leurs pages.
    C'est pourquoi la première app à être utilisée en vraie grandeur sur le site sera ce visualiseur de didacticiels. Et c'est aussi pourquoi, vu la proximité de la mise en ligne de la version définitive, il n'est pas nécessaire de vous en proposer une démo aujourd'hui.
    by Olivier Guillion
     6 comments.


    Full view
    Reduced view
    Most recent first
    Oldest first
    All
    Didier Guillion
    Olivier Guillion
    Sylvie Ricard
    All
    Technical
    Mood
    Memories
    Dev News
    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
    Dec 2014
    Jan 2015
    Feb 2015
    Mar 2015
    Apr 2015
    May 2015
    Jun 2015
    Jul 2015
    Aug 2015
    Sep 2015
    Oct 2015
    Nov 2015
    Dec 2015
    Jan 2016
    Feb 2016
    Mar 2016
    Apr 2016
    May 2016
    Jun 2016
    Jul 2016
    Aug 2016
    Sep 2016
    Oct 2016
    Nov 2016
    Dec 2016
    Jan 2017
    Feb 2017
    Mar 2017
    Apr 2017
    May 2017
    Jun 2017
    Jul 2017
    Aug 2017
    Sep 2017
    Oct 2017
    Nov 2017
    Dec 2017
    Jan 2018
    Feb 2018
    Mar 2018
    Apr 2018
    May 2018
    Jun 2018
    Jul 2018
    Aug 2018
    Sep 2018
    Oct 2018
    Nov 2018
    Dec 2018
    Jan 2019
    Feb 2019
    Mar 2019
    Apr 2019
    May 2019
    Jun 2019
    Jul 2019
    Aug 2019
    Sep 2019
    Oct 2019
    Nov 2019
    Dec 2019
    Jan 2020
    Feb 2020
    Mar 2020
    Apr 2020
    May 2020
    Jun 2020
    Jul 2020
    Aug 2020
    Sep 2020
    Oct 2020
    Nov 2020
    Dec 2020
    Jan 2021
    Feb 2021
    Mar 2021
    Apr 2021
    May 2021
    Jun 2021
    Jul 2021
    Aug 2021
    Sep 2021
    Oct 2021
    Nov 2021
    Dec 2021
    Jan 2022
    Feb 2022
    Mar 2022
    Apr 2022
    May 2022
    Jun 2022
    Jul 2022
    Aug 2022
    Sep 2022
    Oct 2022
    Nov 2022
    Dec 2022
    Jan 2023
    Feb 2023
    Mar 2023
    Apr 2023
    May 2023
    Jun 2023
    Jul 2023
    Aug 2023
    Sep 2023
    Oct 2023
    Nov 2023
    Dec 2023
    Jan 2024
    Feb 2024
    Mar 2024
    Mar 18th, 2024 at 08:14pm 
    Comment from Sylvain
    Mar 18th, 2024 at 08:13pm 
    Comment from Sylvain
    @André
    Mar 18th, 2024 at 07:28pm 
    Comment from Antoine Bautista
    Build 82....
    Mar 18th, 2024 at 05:02pm 
    Article from Didier Guillion
    Harmony Assistant 9.9.8  étape 198
    Mar 18th, 2024 at 05:02pm 
    Article from Didier Guillion
    Harmony Assistant 9.9.8  étape 198
    Mar 17th, 2024 at 11:40am 
    Comment from Antoine Bautista
    Frite....
    Mar 17th, 2024 at 11:40am 
    Comment from Antoine Bautista
    Frite....
    Mar 16th, 2024 at 09:16am 
    Comment from André Baeck
    Mar 16th, 2024 at 09:16am 
    Comment from André Baeck
    Mar 16th, 2024 at 09:13am 
    Comment from André Baeck

    Top of page
    Legal information Cookies Last update:  (c) Myriad