Myriad Blog 1.3.0 Tuesday, Feb 9th, 2016 at 11:02am 

Dev News Monday, Jan 11th, 2016 at 05:02pm
Myriad Plug-in, et après ? -1-

 
 
I- L'abandon
 
Cela a commencé il y a quelques années, et s'accélère ces derniers mois. Un à un, les navigateurs abandonnent le système de plug-in historique, appelé NPAPI et supporté depuis 1995.
 
Après Chrome en 2015 ou Edge qui, lui, commet l'exploit d'abandonner son système propriétaire appelé ActiveX (mais qui permettait, moyennant astuce, de faire tourner les plug-ins NPAPI sur Internet Explorer), c'est maintenant au tour de Firefox, le dernier "gros" restant, d'annoncer l'abandon complet de NPAPI d'ici fin 2016. Cela est d'ores et déjà le cas pour les versions 64 bits de Firefox.
 
Là où ça commence à devenir rigolo, c'est qu'après les justifications de cet abandon, sur lesquelles nous ne reviendront pas (mais on vous assure que c'est pour votre bien), aucune solution de remplacement équivalente n'est proposée  
 
II- Ce qu'on perd
 
Le système NPAPI permettait en effet de faire tourner assez simplement du code machine, issu de n'importe quel type de projet natif (C, C++, etc) sur quasiment n'importe quel navigateur.
D'accord, une version différente du plug-in devait être réalisée pour chaque système : une sur Windows, une autre sur MacOS et une troisième sur Linux.  
 
Mais pour un développeur qui possédait déjà une application, comme c'est le cas pour nous, son code source pouvait être entièrement réutilisé, et de toute façon, ce code source devait déjà pouvoir générer des applications pour les 3 plateformes.  
 
Développer un plug-in à partir d'une application existante était donc relativement simple.
 
Mais tout ceci semble terminé. Aucune alternative n'est proposée. Google semble proposer un système équivalent, qu'il a appelé Native Client (ou Pepper, PPAPI), mais qui a l'inconvénient de ne fonctionner que sous Chrome.
 
Tous les autres systèmes disponibles sont ainsi spécifiques à un navigateur, et/ou nécessitent la réécriture entière de l'application dans un autre langage. Pour un développeur, cela revient à réécrire l'intégralité de son application, et plusieurs fois s'il veut que son app fonctionne sur différents navigateurs.
 
III- Des pistes prometteuses ?
 
Sentant le vent tourner depuis plusieurs mois déjà, nous avons commencé à chercher des échappatoires :
 
- Compatibles avec un maximum de navigateurs
 
- Permettant de réutiliser au maximum nos codes source C existants.
 
C'est ainsi que nous avons essayé EmScripten, qui sur le papier, permet, à partir d'un code source en C, de générer une app en HTML5 + Javascript, donc compatible entre les différents navigateurs, et, cerise sur le gateau, multi-plateforme (donc une seule et unique version du plug-in).
 
Malheureusement, cela ne semble fonctionner réellement que sur le papier. Rapidement, le système atteint à ses limites en terme de complexité du projet et de fiabilité du résultat, et à la base, le HTML 5 n'est pas encore suffisamment normalisé, surtout au niveau de la gestion sonore, pour être réellement considéré comme compatible entre les divers navigateurs et plateformes.
 
IV- Et donc ?
 
Nous en sommes là. Pour l'instant, nous n'avons pas trouvé de solution de remplacement à notre plug-in NPAPI actuel. Rappelons que même s'il peut faire s'intéresser certains internautes à nos autres produits, il s'agit d'un freeware (gratuiciel) qui ne doit pas occuper notre petite équipe trop longtemps. Une réécriture complète de l'application est donc inenvisageable, et pour l'instant aucun système récent ne semble convenir à nos exigences.
by Olivier Guillion
 16 comments.

Dev News Tuesday, Jan 12th, 2016 at 04:56pm
PDFtoMusic 1.5.2 et autre
Correction d'un problème quand la langue de l'interface n'était pas trouvée.
 
Dans certains cas les crescendi/decrescendi étaient mal reconnus et il arrivait que l'on confonde les deux types, à cause de cela nous avons effectué une  
refonte complète de la localisation et du traitement des crescendi/decrescendi.
 
Dans Harmony, les raccourcis clavier de changement de mode d'édition ne mettaient pas à jour les icônes correspondantes dans la palette utilisateur, c'est corrigé.
by Didier Guillion
 3 comments.

Dev News Wednesday, Jan 13th, 2016 at 05:21pm
Harmony 9.6 étape 862

 
Nous avons entamé la mise en place d'une nouvelle commande qui est plus complexe à mettre en place qu'elle n'en a l'air, mais qui devrait se révéler très utile:
 
Dans le menu "Edition > Mesures", après "Insérer mesures" et "Supprimer mesures", une nouvelle option "Fusionner mesure" permettra de mettre plusieurs mesures bout à bout dans une seule mesure plus grande.  
En d'autre terme, cela fera disparaître physiquement les barres de mesures sur une zone.
by Olivier Guillion
 2 comments.

Dev News Thursday, Jan 14th, 2016 at 04:58pm
PDFtoMusic 1.5.2

 
Une étape non négligeable de PDFtoMusic est de reconstituer les mots à partir des caractères puis d'assembler les mots en blocs de textes. On obtient ainsi les textes associés à la partition. Certains de ces textes sont assignés au Titre, Compositeur et Remarque de l'oeuvre. En fait, l'algorithme de cette dernière étape est assez simpliste : ce qui est centré en haut de la première page est considéré comme le Titre et ainsi de suite.
Maintenant les différents blocs de texte sont matérialisés sur la partition et un click droit permet de changer leur affectation.
 
 
by Didier Guillion

Dev News Friday, Jan 15th, 2016 at 04:59pm
Harmony 9.6 étape 863 et autres

 
Deux nouveautés dans MyrScript:  
 
  • un membre "PlayedVelocity" a été ajouté à l'objet "Symbol". Il donne (en lecture seule) une estimation de la vélocité jouée de la note.
    Estimation, car les nuances pouvant être conditionnelles, une même note peut être jouée plusieurs fois avec des vélocité différentes au gré des répétitions. Dans ce cas, la valeur retournée par PlayedVelocity devrait être la première, mais ce n'est pas garanti.
     
  • Une méthode Score.SetDisplayAtPage() a été ajoutée. Elle permet de se positionner graphiquement sur n'importe quelle page de la partition. Inutile de préciser qu'elle fonctionnera mieux en mode page qu'en mode ruban. Cela permet à un script de positionner la visualisation de la partition à n'importe quel endroit.
     
    Sinon, nous avons passé une bonne partie de la journée à traquer un bug tenace dans PDFtoMusic, qui faisait générer un fichier MusicXML avec des durées de mesures improbables (plusieurs millions de temps). Le problème ne se produisait que sur un fichier de 60 pages et plus de 700 mesures, et uniquement sur Macintosh.
    Après grosse et longue prise de tête, nous avons pu trouver et corriger le problème (dû à un accès à une zone mémoire non initialisée). Il était localisé dans une portion relativement récente du code, donc ne concernait pas la version publique.
     
    Bon week-end à tous, et restez au chaud!
  • by Olivier Guillion

    Dev News Monday, Jan 18th, 2016 at 04:59pm
    Harmony 9.6 étape 864 et autre

     
    Le script qui linéarise les partitions gère maintenant la grille d'accord.
    Dans Melody Player correction d'un problème de click sur l'ascenseur de la liste.
    Dans PDFtoMusic, amélioration de la recherche des tempi.
    by Didier Guillion

    Dev News Tuesday, Jan 19th, 2016 at 05:10pm
    Harmony 9.6 étape 865

     
    Une nouvelle option va être ajoutée au menu "Edition > Mesures" : "Recadrer aux durées écrites".
     
    Imaginons par exemple le cas où l'utilisateur a entré une partition avec une anacrouse, mais n'a pas inséré une mesure incomplète au début pour cela.
     
    Il obtient ceci:

     
    Ici, nous avons demandé de visualiser par une double flèche les silences fantômes, qui indiquent que la durée totale de la mesure n'a pas été remplie par les notes. Mais ceux-ci peuvent être invisibles.
     
    Jusqu'ici, la méthode la plus simple pour corriger cela était d'insérer une mesure incomplète, de recopier les notes ou de les copier-coller, puis de supprimer la mesure d'origine.
    La nouvelle option, en un clic, réduira la durée de la mesure demandée (en jouant sur la signature temps) de manière à ce qu'elle corresponde à la durée des notes écrites, éliminant ainsi les silences fantômes :

     
    Nous avons eu par le passé le cas d'un utilisateur qui avait entré l'intégralité d'une pièce en 3/4 sur des mesures en 4/4. Il ne s'est inquiété du temps vide à la fin de chaque mesure lors du jeu que lorsque tout a été entré.
    Récupérer cela sera désormais facile, il suffira d'appliquer l'option à l'intégralité des mesures.
    by Olivier Guillion
     1 comment.

    Dev News Wednesday, Jan 20th, 2016 at 04:54pm
    PDFtoMusic 1.5.2

     
    Nous cherchons une méthode permettant de déterminer automatiquement que l'encodage d'une police nécessite de la passer en reconnaissance optique de caractère. Ce n'est pas gagné...
    by Didier Guillion

    Dev News Thursday, Jan 21st, 2016 at 05:11pm
    Harmony 9.6 étape 866 et autres

     
    Dans Harmony Assistant, La fonction de recadrage des mesures aux durées écrites a été finalisée, avec l'ajout d'une option pour rendre visibles (ou laisser invisibles) les changements de signature temps.
     
    La fonction qui indique les notes hors tessiture a été améliorée pour les instruments qui peuvent servir à noter plusieurs instruments de registres différents. Par exemple, le son de tuba peut être utilisé aussi bien pour un tuba baryton ou contrebasse.
    Le logiciel va donc d'abord analyser les notes de la portée pour déterminer celui des deux instruments qui est le plus probable sur cette portée. Il indiquera ensuite les notes en dehors de l'étendue de cet instrument.
     
    Sur PDFtoMusic, les bases de détermination de caractères alphanumériques ont été améliorées, pour prendre en compte notamment les fontes textuelles Swing proposées en complément de Finale.
     
    Sur PDFtoMusic toujours, sur des portées couplées main droite/main gauche des problèmes de positionnement des changements de clé en milieu de mesure, ou de hauteur d'appoggiatures après ce changement, ont été corrigés.
    by Olivier Guillion

    Dev News Friday, Jan 22nd, 2016 at 04:57pm
    PDFtoMusic 1.5.2

     
    La recherche des Titres, Compositeur, Remarques gère maintenant les pages de gardes. L'export de ces informations en MusicXML a été amélioré.
    La gestion des textes multi-styles a été améliorée, de même que la constitution des blocs de textes.
     
    Bon week-end !
    by Didier Guillion

    Dev News Monday, Jan 25th, 2016 at 05:32pm
    Myriad Plug-in, et après ? -2-

     
    Cela fait maintenant quelque temps que nous réfléchissons à la manière de continuer à proposer un plug-in permettant de visualiser sur une page Web les musiques réalisées avec nos programmes.
     
    Le changement forcé de technologie que nous avons évoqué dans ce billet réduit drastiquement notre éventail de possibilités.
     
    Voici le cheminement logique que nous avons été contraints de suivre.
     
    - Avec l'abandon de NPAPI, aucune possibilité de développement nous permettant de réutiliser directement les codes sources d'Harmony/Melody (comme le faisait jusqu'ici le plug-in) n'existe. Ou en tout cas, aucun système de ce type n'est compatible avec suffisamment de navigateurs pour être réellement utilisable.(Cf Chrome PPAPI)
     
    - Les convertisseurs automatiques (emScripten, ...) ne fonctionnent pas pour de gros projets, et demandent la mise en place sur le site d'un environnement assez lourd (grosses bibliothèques Javascript).
     
    - Flash et son langage ActionScript ne fonctionnent pas sur nombre de plateformes, et est en train d'être éliminé petit à petit des navigateurs récents.
     
    - Il ne reste guère que HTML5/Javascript, mais il nous faut alors réécrire intégralement le plug-in pour ce langage. Il est impensable de porter le code d'Harmony/Melody : Cela équivaudrait au bas mot à plusieurs mois de travail, pour un résultat pouvant s'avérer trop lent (n'oublions pas que Javascript est un langage interprété et pas compilé).
     
    La seule solution réaliste serait donc d'écrire une app en HTML5/JS permettant d'effectuer au moins les opérations de base du plug-in : visualiser une partition et la jouer.
     
    Pour des raisons de complexité du développement et de rapidité d'exécution, il n'est pas raisonnable de laisser cette app "comprendre" par elle-même la structure d'une partition pour la montrer ou la jouer : il faut absolument lui fournir des données pré-machées, aussi bien visuellement que musicalement, afin de la cantonner à des opérations de base. Et encore, même cela risque de s'avérer trop compliqué pour ce langage.
     
    Ceci exclut donc que ce plugin/app charge directement de fichiers MYR, MIDI, ou MusicXML.  
     
    Il faut prévoir un format spécial d'export depuis Harmony, qui intègre de manière simple les données visuelles de la partition, les données sonores, et les liens entre les deux.
    Ceci impliquera donc de convertir à ce format toutes les musiques du MUSL (cela pourra être réalisé automatiquement de notre coté), et toutes les personnes ayant utilisé notre plug-in sur leur site devront faire de même.
    by Olivier Guillion
     4 comments.

    Dev News Tuesday, Jan 26th, 2016 at 04:52pm
    Harmony 9.6 étape 867

     
    En MyrScript les methodes Score.JumpToPage et Score.JumpToBar ont ete implémenté.
    Correction dans l'édition des diagrammes d'accord.
    Correction d'affichage de la grille d'accord.
    Affichage d'une alerte quand on sauvegarde avec une ancienne version de format.
    Mise en place d'un mode "maintenance" pour le serveur MUSL.
    Implémentation des menus pour les nouvelles commandes de fusion et de récadrage des mesures et raccourcis clavier correspondants.
    by Didier Guillion
     Leave a comment.

    Dev News Wednesday, Jan 27th, 2016 at 05:11pm
    Myriad Plug-in, et après ? -3-

     
    Afin de savoir ce qu'il sera possible de faire (ou pas), nous avons analysé rapidement les solutions retenues par les autres éditeurs de musique.  
    De manière générale, on peut dire qu'ils ne sont pas nombreux à proposer quelque chose.  
    Le plus proche de ce que nous avions développé était le plug-in Scorch (Sibelius). Comme le nôtre, basé sur NPAPI, et comme le nôtre menacé de désuétude.
     
    Ce plug-in serait apparemment remplacé à terme par une plateforme "Cloud" qui permettrait aux clients (moyennant finance?) de disposer d'un espace de stockage pour leurs partition, accessibles par le Web.
    Leur système fonctionne apparemment comme ceci:
    lorsqu'un fichier musical est envoyé sur le cloud d'Avid (l'éditeur de Sibelius), il est automatiquement converti en images de pages, et en MP3. Ce sont ces images qui sont présentées à l'écran dans le navigateur, et le MP3 qui est joué.
     
    C'est également ce genre de solution qui a été retenue par MuseScore.
     
    Avantage : pour l'utilisateur, cela correspond peu ou prou au MUSL, un espace dédié hébergé par l'éditeur. Les manipulations sont simples.
     
    Problème: tous les documents musicaux présentés sur le Web doivent être hébergés sur les serveurs de l'éditeur, et dans un format assez gourmand en place (un MP3 est plus gros qu'un MYR). De plus, la conversion en images+MP3 doit être réalisé par le serveur, ce qui implique une consommation de CPU assez conséquente.
    Jusqu'ici, avec notre plug-in, n'importe qui pouvait héberger les partitions sur son propre serveur, et les gérer à sa guise, sans contrainte de taille, de disponibilité d'un cloud externe, ou autre.  
     
    De nombreuses chorales, mais aussi des profs, de simple amateurs ne s'en sont d'ailleurs pas privés. Il y a environ 10000 partitions sur le MUSL, mais le nombre de partitions .MYR actuellement proposées sur l'ensemble du Web est difficilement quantifiable.
     
    Avons-nous les ressources, le temps matériel, les capacités humaines et techniques pour gérer un tel système de cloud centralisé, même s'il devait être payant? Rien n'est moins sûr.  
     
    L'alternative à cela serait, comme nous l'avions prévu au départ, de proposer l'export vers le format de partitions Web directement depuis Harmony Assistant, et fournir les outils (sources Javascript) permettant à tout un chacun d'héberger ses musiques sur son propre serveur. MUSL utiliserait simplement le même système que celui proposé aux utilisateurs, comme c'est le cas actuellement avec le plug-in.
     
    Nous nous interrogeons encore, et n'avons pas encore pris de décision définitive à ce sujet.
    by Olivier Guillion
     3 comments.

    Dev News Thursday, Jan 28th, 2016 at 04:58pm
    Harmony 9.6 étape 868

     
    Il y'a avait un gros problème dans la gestion des polices définies dans les préférences générales, c'est corrigé.
     
    L'écriture d'un accord de type F7/9 (avec un slash dans le nom) dans la grille d'accord pouvait redonner F9 (son équivalent plus simple) lors de certains recalculs, c'est corrigé.
     
    Nous avons commencé à mettre les ressources à plat dans les différentes langues.
    by Didier Guillion
     Leave a comment.

    Dev News Friday, Jan 29th, 2016 at 05:10pm
    Myriad Plug-in, et après ? -4-

     
    Le Tracé des pages
     
    Nous nous sommes tout d'abord attaqués à la partie censée poser le moins de problème: l'affichage graphique des partitions.
     
    Avant de se décider sur une solution ou une autre, nous avons besoin de savoir ce qui est faisable, ce qui fonctionne, et sur quels navigateurs. Nous avons donc exploré plusieurs possibilités, en créant pour chacune une page Web de démonstration, nous permettant de savoir si les concepts tenaient la route.
     
    I- Les polices
     
    Le premier problème était celui des polices. Le logiciel embarque des polices musicales, et laisse le système se charger de leur affichage. Comment faire sur le Web?
    Il nous faut utiliser le système des Webfonts, qui permet d'ajouter une police spécifique à une page Web. Le système n'est pas encore complètement standardisé, et demande de fournir les polices en question en plusieurs formats alternatif afin que chaque navigateur y trouve son compte.  
    Nous avons utilisé l'un des multiples services en ligne pour convertir ainsi toutes les polices incluses dans Harmony Assistant.
     
    Démonstration des Webfonts

     
    II- L'affichage des pages
     
    Les pages devront être pré-calculées par le programme (ce qui empêchera les transpositions graphiques, à moins de stocker toutes les alternatives transposées).  
    Ces pages doivent ensuite être affichées dans le navigateur. On peut envisager leur stockage dans plusieurs formats:
     
    A- Le format PNG
     
    Il s'agit d'un format d'image non vectoriel, qui peut être affiché directement dans un navigateur. Pas besoin de page de démo ici; Harmony Assistant exporte directement à ce format, et ces images peuvent être affichées très facilement, n'importe où (c'est le format généralement utilisé pour les illustrations de ce blog).
     
    Problème:  
    - Format d'image point à point, donc impossible de zoomer à volonté, à moins de stocker de très grands format
    - Fichiers relativement gros (une centaine de Ko par page)
     
    B- Le format PICT
     
    C'est le format interne à Harmony Assistant, basé sur les spécifications du QuickDraw (Macintosh). Les tracés graphiques de la page sont, dans Harmony Assistant, collectés dans ce format, pour être ensuite imprimées ou converties dans un autre format graphique.
    Il était donc naturel de chercher à afficher directement ce format, et d'écrire en Javascript un visualiseur de PICT.
    C'est chose faite :  
     
    Démonstration d'affichage de PICT

     
    C'est un format vectoriel (donc zoomable à l'infini).
    Pas de problème particulier, si ce n'est que cela demande un code Javascript assez complexe (les technophiles pourront le consulter en regardant le code source de la page de démo). Cela a l'air assez rapide, et les données sont plutôt courtes (23 Ko compressées).
     
    C- Le format SVG
     
    C'est le format de dessin vectoriel conçu pour Internet. De mieux en mieux pris en compte par les différents navigateurs, il a l'avantage d'être pris en compte directement par ces derniers, ce qui est la garantie d'un affichage très rapide. Quelques problèmes de standardisation subsistent, notamment quant à l'usage de polices externes.
    Nous avons écrit, dans Harmony Assistant, un export graphique SVG (en fait, un convertisseur PICT->SVG) qui inclut directement dans le fichier les tracés des caractères musicaux utilisés dans la page.
    On obtient un fichier un peu plus long, mais qui au final se compresse mieux que le PICT (18Ko compressés pour la même page).
     
    Démonstration d'affichage de SVG

     
    Cela semble, à première vue, le format le plus pratique. Seuls quelques navigateurs très anciens (Safari sur iOS 6) rencontrent des problèmes d'affichage. Sur Internet Explorer, il y a des problèmes de débordement du cadre lors des zooms. Nous avons trouvé la solution sur Internet, mais ne l'avons pas encore essayée.
     
    Le format SVG serait probablement celui que nous retiendrions. Dans tous les cas, l'export graphique SVG sera proposée dans la prochaine version d'Harmony.
    by Olivier Guillion
     6 comments.

    Dev News Monday, Feb 1st, 2016 at 05:01pm
    Harmony 9.6 étape 869

     
    Correction d'un problème d'intéraction entre les palettes Divers et Ottava.
    Classement des objets  textes, graphiques & lignes et diagramme d'accords associés à la portée par ordre croissant de temps afin de rendre le balayage MyrScript plus propre.
    Mise à niveau des ressources dans les différentes langues, mise en place de la gestion des préférences du Dock, de l'export graphique en SVG et de l'export au format .myrweb (fichiers lisibles en HTML5).
    Afin de pouvoir passer à des tests en vraie grandeur, nous commençons l'implémentation du format MyrWeb parallèlement à l'écriture du module HTML d'affichage. Si les tests sont concluants, un prototype devrait arriver...
    by Didier Guillion
     Leave a comment.

    Dev News Tuesday, Feb 2nd, 2016 at 05:24pm
    Myriad Plug-in, et après ? -5-

     
    Le son
     
    Nous avons conduit divers tests sur les possibilités sonores du HTML5.  
    Dans ce domaine, la disparité entre les navigateurs semble assez forte. Un standard prometteur, appelé WebAudio, est en passe d'être implémenté sur la plupart d'entre eux, mais Microsoft semble avoir fait l'impasse sur Internet Explorer, pour ne s'intéresser qu'à Edge (Windows 10 uniquement).
     
    Pour le reste, WebAudio permet pas mal de choses, dont de la génération sonore à la volée.
    Voici le résultat de nos essais. Ces derniers étant codés à l'arrache, nous rechignons à les montrer, car nous recevrions probablement des commentaires sur l'aspect graphique, l'ergonomie ou les défauts de synchro. Nous vous demandons donc de nous croire sur paroles. Ceux qui sont intéressés peuvent cependant nous contacter en direct.
     
    I- WebAudio API
     
    Permet de créer un "graphe" audio, c'est-à-dire des noeud interconnectés. Par exemple, un noeud "données numériques" connecté à un noeud "filtre", lui-même connecté à un noeud "gain", lui-même connecté à la sortie.
    Lorsque le graphe est lancé, les données numériques sont filtrées, amplifiées, puis envoyées aux haut-parleurs.
     
    Ne pouvant pas recoder en Javascript l'intégralité de notre module de sortie audio, avec Virtual Singer et tous les effets numériques, nous ne pouvons pas envisager une génération sonore identique à Harmony. Nous avons tenté des solutions intermédiaires, mais sans succès. A priori, il faudra donc stocker l'intégralité de l'audio du morceau.
     
    Compatibilité: initialisations particulières sur Safari, non géré par IE
     
    II- Le tag <audio> HTML5
     
    C'est une fonction de haut niveau du HTML5, beaucoup plus compatible que WebAudio API, mais beaucoup moins puissante. Elle permet de jouer un morceau numérique extérieur, en MP3, OGG (pas tous les navigateurs) ou WAV (tous, sauf apparemment IE qui gèrerait pas ce format créé par Microsoft !).  
    En rusant pas mal, on peut s'arranger pour lui faire jouer des données MP3 extraites par le Javascript plutôt qu'un véritable fichier séparé.
     
    De tout cela, voici ce que nous en avons tiré:
     
  • Le format spécial d'export de musique contiendrait les données MP3 de tout le morceau, ou plusieurs MP3 représentant les portées pouvant être jouées en solo
     
  • L'app jouerait ce ou ces MP3. Il semblerait possible de varier la vitesse et/ou de transposer l'audio.
     
  • Si le fichier contient plusieurs MP3, l'app pourrait les mixer, et faire varier le volume relatif de chacun
     
  • Il serait sans doute possible de ne pas démarrer au début, et de boucler sur une portion
     
  • Il ne serait pas possible de modifier leur position stéréo
     
  • Pour pouvoir jouer le métronome, il faudrait une piste MP3 séparée
     
    Les fichiers pourraient devenir très volumineux, si beaucoup de pistes différentes étaient nécessaires (16 ko par seconde et par piste). Mais c'est pour l'instant la seule solution que nous ayions trouvée.
  • by Olivier Guillion
     2 comments.

    Dev News Wednesday, Feb 3rd, 2016 at 05:02pm
    Myriad Plug-in, et après ? -6-

     
    Trois étapes importantes ont été franchies dans l'étude du nouveau plug-in !
     
    Tout d'abord nous nous sommes mis d'accord sur le format du fichier qui aura comme extension .myrweb (la limitation à trois caractères a vraiment trop duré).
    Ce sera un fichier à "chunks", c'est à dire composé de paquets de données, avec pour chaque paquet, un type et une version. Un exemple célèbre de ce type de stockage est l'AIFF ou encore les fichiers QuickTime. On peut y ranger à peu près tous les types de données que l'on veut, audio, images, textes, etc.
    Chaque programme en extrait ce qui l'intéresse.
    Le gros avantage des "chunks"est une compatibilité descendante : une ancienne version du code ignorera les chunks plus récents et ne traitera que ceux qu'elle peut gérer.
     
    Une fois ce format à peu près établi sur le papier, nous avons écrit une première maquette succincte du module Harmony qui va convertir un document .myr en .myrweb. Nous avons également écrit une moulinette qui va lire ce genre de fichier et explorer ces données pour valider l'export.
     
    Enfin, nous avons commencé à bâtir la boite de configuration de l'export en .myrweb :
     

     
    On peut donc définir finement le type de données présente dans le fichier et créer par exemple des fichiers uniquement avec de l'audio, des paroles ou des images de la partition.
    On peut créer des groupes de portées qui seront exportés dans des flux audio différents et donc avec des volumes réglables séparément
    On peut spécifier le type de données originales embarquées dans le .myrweb ce qui permettra à la personne naviguant sur la page de le récupérer sur son poste de travail.
     
    Tout ceci n'est pour l'instant qu'un gros chantier et il reste des pans entiers à écrire.
     
    by Didier Guillion
     Leave a comment.

    Dev News Thursday, Feb 4th, 2016 at 05:08pm
    Myriad Plug-in, et après ? -7-

     
    Ce n'est certainement pas la partie la plus cruciale du projet, mais nous avons commencé à réfléchir à l'interface.  
     
    Il faut pouvoir afficher des boutons, des icônes, etc.  En temps normal, chaque graphisme, dans chacun de ses états, c'est un fichier supplémentaire, qui doit être téléchargé par l'utilisateur.  
     
    Mais nous nous sommes alors souvenu que pour construire l'image de la page de partition, nous avions utilisé le format SVG. Très compacts, les dessins sont zoomables à volonté, et cerise sur le gâteau, ils peuvent être animés automatiquement.
     
    Nous avons alors commencé à dessiner quelques icônes en SVG, et prévu des animations (transitions) pour les passages d'un état à l'autre.
    Une petite démo illustre cela:
     
    Icônes SVG et transitions

     
    Nous avons eu ainsi la confirmation que la mode actuelle des à-plats de couleur pour les icônes n'est pas une affaire d'esthétique ou d'ergonomie, mais bien de facilité de programmation.
    Mais plutôt que de dire : "On revient en arrière parce que ça facilite la vie des programmeurs", cela a été présenté comme une amélioration, le nec plus ultra de la hi-tech.
     
    Quoi qu'il en soit, nous commençons à savoir un peu créer des choses en SVG, et il se peut qu'à l'avenir, nous nous penchions sérieusement sur ce format pour une intégration dans nos produits (l'export existe maintenant, mais l'import est peut-être plus compliqué).
     
    by Olivier Guillion
     1 comment.

    Dev News Friday, Feb 5th, 2016 at 05:14pm
    Myriad Plug-in, et après ? -8-

     
    Nous avons réalisé un petit essai de calcul de données numériques par WebAudio (non disponible sur IE):
     
    Génération de sons par WebAudio

     
    Ce procédé nous permettra de réécrire la partie sonore l'app de Kooplet que nous avions réalisée en ActionScript (Flash). En effet, le plug-in flash, lui aussi utilisant NPAPI, aurait dû ne plus être supporté en même temps que notre plug-in. Mais il continue à fonctionner encore, bénéficiant d'un traitement de faveur que nous trouvons assez injuste.
     
    Il est en effet le seul plug-in NPAPI à fonctionner encore sur Firefox 64 bits, ce navigateur le testant spécifiquement pour le laisser passer entre les mailles, et bloquant définitivement tous les autres.
     
    Pour en revenir à l'audio, nous allons faire d'autres tests sur WebAudio, pour voir s'il ne serait pas possible d'implémenter une fonction "métronome" par ce biais. Le métronome est en effet en sursis dans la nouvelle version du plug-in à moins de stocker une piste MP3 supplémentaire pour lui, ce qui ferait grossir encore le fichier.
     
    Bon week-end !
    by Olivier Guillion
     Leave a comment.

    Dev News Monday, Feb 8th, 2016 at 04:59pm
    Myriad Plug-in, et après ? -9-

     
    A la manière des tunneliers sous la Manche deux parties de notre équipe travaillent de manière indépendante et visent à se rejoindre à peu près en face...
    L'une se débat avec le HTML5 et Javascript pour lire et traiter les fichiers .myrweb, l'autre remplit petit à petit ces mêmes fichiers depuis Harmony Assistant.
     Les nouvelles informations ajoutées et non testées sont :
    - Aire graphique des mesures sur l'image SVG, afin de pouvoir entre autre afficher le curseur de progression
    - Le tableau donnant la mesure écrite en fonction de la position temporelle jouée, pour le même but que si dessus.
    - L'image montrant le texte des paroles, pour le karaoké.
    - Le tableau donnant l'aire sélectionné dans les paroles en fonction de la position temporelle, pour le karaoké.
    - Le tableau donnant les positions temporelles jouées de lancement et d'arrêts de notes, pour le Clavier Virtuel.
    by Didier Guillion
     Leave a comment.


    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
    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
    Feb 8th, 2016 at 04:59pm 
    Article from Didier Guillion
    Myriad Plug-in, et après ? -9-
    Feb 5th, 2016 at 05:14pm 
    Article from Olivier Guillion
    Myriad Plug-in, et après ? -8-
    Feb 4th, 2016 at 07:45pm 
    Comment from JP
    La mode du
    Feb 4th, 2016 at 05:08pm 
    Article from Olivier Guillion
    Myriad Plug-in, et après ? -7-
    Feb 4th, 2016 at 05:08pm 
    Article from Olivier Guillion
    Myriad Plug-in, et après ? -7-
    Feb 4th, 2016 at 10:01am 
    Comment from Sylvain
    Feb 3rd, 2016 at 05:02pm 
    Article from Didier Guillion
    Myriad Plug-in, et après ? -6-
    Feb 3rd, 2016 at 12:36am 
    Comment from Grorom
    mt5
    Feb 3rd, 2016 at 12:36am 
    Comment from Grorom
    mt5
    Feb 3rd, 2016 at 12:36am 
    Comment from Grorom
    mt5

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