Aujourd'hui, travail important, mais qui n'a presque pas d'effet visible :
PDFtoMusic est un programme totalement à part, mais qui utilise quelques fonctionnalités d'Harmony Assistant (jeu de la musique, choix des instruments, sauvegarde...).
Pour cela, un jeu réduit de fonctionnalités d'Harmony Assistant a été exporté sous la forme d'une "bibliothèque", qu'utilise PDFtoMusic. Il s'agit d'un jeu réduit, car PDFtoMusic n'a pas besoin de toutes les fonctionnalités d'Harmony, par exemple tout ce qui se rapporte à l'édition de la partition.
Nous avons cependant décidé d'exporter un lot d'autres fonctions, d'Hrmony, liées à l'interface, l'édition des instruments MyrSynth, la gestion des numéros d'enregistrement, etc.
Il nous faut donc ajuster tout cela, choisir les bon module, tailler dans la masse, pour n'extraire que ce dont on a besoin. Gros travail, donc.
Des problèmes de positionnement graphique assez important ont été repérés dans l'affichage des clés, tonalités et signatures temps.
Par exemple, un changement de tonalité au milieu de la partition était graphiquement bien positionné après une barre de mesure double, mais ne l'était pas si on supprimait cette barre.
Nous avons tout remis en ordre, recalé tout ça, et ça nous semble plus correct :
(1e ligne, avant, 2e ligne, après)
Cependant, ceci va légèrement modifier la taille des clés/tonalités des anciens fichiers. Donc, dans des cas limites, lorsqu'une ligne est pleine au pixel près, cette petite modification peut faire passer une mesure à la ligne suivante, et changer la mise en page.
Nous allons essayer de limiter au maximum ces cas, mais il est probable qu'il en restera tout de même quelques-uns.
L'implémentation des modules sonores VST nous pose de sérieux problèmes sur Windows. Comportement erratique, grave manque de documentation détaillée, on n'avance pas beaucoup.
Maintenant, le jeu de l'instrument VST lui-même fonctionne mieux (moins de plantage), mais l'édition de ses paramètres n'est pas au point, graphiquement.
Nous nous heurtons à des problèmes de gestion de fenêtre Windows, qui cache l'interface graphique du plug-in VST. Malgré tout, quelquefois (selon la direction du vent) ça fonctionne:
Sur Windows, les fondations de la prise en compte des instruments internes VSTi sont en place.
Le problème principal est de trouver des instruments VSTi qui nous permettent de régler notre système. La plupart ne semblent pas réagir comme attendu, plantent, ne jouent qu'en mono ou sont silencieux, ou encore émaillent leur sortie sonore de craquements périodiques.
Dans le lot, il y en a quand même quelques-uns qui donnent quelque chose de probant. En voici un exemple. Le son lui-même est ce qu'il est, mais c'est ce que les anglophones appellent "proof of concept", une démo prouvant que le principe fonctionne.
Contrairement à la sortie MIDI, le son de ces instruments pourra être directement exporté en MP3, ou traité par nos effets sonores habituels.
Lorsque la musique joue, et que l'utilisateur a zoomé sur la partition, l'app se débrouille pour que la partie jouée soit visible dans l'aire dédiée à l'app sur la page Web.
Mais si cette aire n'est pas complètement contenue dans la page, il se peut que la portion jouée disparaisse de l'écran. Il faudrait alors que l'app touche à l'ascenseur de la page Web, pour recentrer son aire sur l'écran.
C'est maintenant chose faite, mais cela amène d'autres problèmes. Sur un petit écran pendant le jeu, il peut alors être difficile d'atteindre la barre d'outils (pour arrêter la musique) par exemple, celle-ci étant en permanence éjectée de la portion visible pour montrer le bas de la partition en train d'être joué.
Alors, nous avons fait en sorte qu'un clic en dehors de l'aire de l'app arrête le processus de repositionnement automatique. Cette version est actuellement en service, vous pouvez le tester (par exemple sur le morceau posté sur ce blog en fin de semaine dernière)
Mais ce n'est probablement pas encore suffisant. Peut-être faudrait-il que ce processus automatique s'arrête également lorsque l'utilisateur manipule manuellement l'ascenseur de la page ?
Sur IE11, une grosse partie des fonctions de manipulation de sons (WebAudio) ne sont pas disponibles, ne l'ont jamais été et ne le seront probablement jamais. Il faut donc utiliser les fonctions disponibles, beaucoup plus réduites. Celles-ci permettent cependant de jouer une piste, et d'en changer le tempo (mais pas de transposer). Malheureusement, la dernière mise à jour de Windows avait également modifié le comportement de la fonction de changement de tempo, qui ne fonctionnait plus.
Un contournement a été trouvé, et mis en place dans l'app Myrweb. Sur IE11, l'exemple posté avant-hier devrait donc maintenant fonctionner. Sur ce navigateur, l'outil de transposition (le diapason) ne devrait pas apparaître.
Accessoirement, les noms de portées ou titres de partitions trop long devraient maintenant être correctement tronqués. Harmony Assistant a également été amélioré, pour exporter les bons doigtés sur le clavier virtuel de Myrweb (mais ceci, par contre, ne sera testable qu'avec la prochaine version d'Harmony)
La cata ! Apparemment, la dernière mise à jour de Windows 10 en a profité pour abîmer un peu plus Internet Explorer 11 qui n'était déjà pas le navigateur le plus brillant sur le marché.
Attention, quelques morceaux de technique suivent...
Le système que nous utilisons pour stocker les données binaires Myrweb à l'intérieur d'une page Web revient à les inscrire au format "Base64" à l'intérieur d'un paramètre de la division (div). Ceci ne plaît plus à IE11.
Lors du chargement de la page, IE11 fait on ne sait quoi, pendant plusieurs secondes (minutes?), avant même de démarrer l'app. Pendant ce temps, il n'utilise pas le processeur, il semble attendre un je-ne-sais-quoi, et en désespoir de cause, finir à contrecoeur par rendre la main et lancer notre app. Sur tous les autres navigateurs essayés, pas d'attente de plus d'une seconde.
Il nous a donc fallu, pour contourner ce nouveau problème, changer pour la troisième fois la manière de stocker ces données.
Donc après les avoir mises :
- Dans le contenu d'une "div" cachée (rapide sur IE, Edge & Chrome, lent sur Firefox)
- Dans un paramètre de la "div" (rapide partout, sauf maintenant sur IE11)
- les voila maintenant dans une balise <script>, sous forme d'une affectation à une variable texte.
Cette méthode semble rapide sur IE, Edge, Chrome, Firefox et Android Browser. Reste à la tester sur Safari, Opera, et tout autre navigateur qui nous tombera sous la main
Sur Myrweb, inexplicablement, le chargement de fichiers lourds se met à prendre un temps important sur IE11 pour Windows (et seulement sur ce navigateur). Nous suspectons un changement dans IE lié à la dernière mise à jour de Windows, puisque l'attente, qui peut durer 20 à 30 secondes, semble se produire avant même que notre app soit démarrée. Nous investiguons tout de même.
Sur Harmony Assistant, des problèmes de calage ont été détectés sur les pistes numériques. Ils concernent le jeu de la sélection sur des pistes contenant des portions vides, les bornes du couper/copier/coller, et apparemment la sauvegarde de document. Là aussi, on est sur le coup