Sur Windows, nous nous sommes rendus compte que nous n'utilisions que les modules VSTi 2.4, alors que notre programme devait être capable d'utiliser des versions antérieures.
Modifications faites, de nombreux modules que nous avions déjà installés mais qui n'étaient pas pris en compte jusqu'ici apparaissent maintenant dans la liste, même si la stabilité de ceux-ci n'est pas toujours au top.
Cela nous a permis de compléter la liste des modules VSTi testés. Avec l'ajout des modules essayés sur MacOS, cette liste a pris de l'ampleur, et va encore continuer à grandir dans les jours qui viennent
Correction de l'aspect de la boite d'édition des effets numériques associés à la portée. Correction dans la boite d'édition des nuances : deuxième valeur pour les nuances simples. Correction d'un problème de click dans l'ascenseur des listes hiérarchiques qui ouvrait le premier dossier.
Nous commençons à tester sur macOS tous les plugins VSTi que nous pouvons trouver.
Les VSTi sont maintenant suffisamment fonctionnels pour passer à autre chose. Le problème de décalage d'octave a été localisé. Il s'agit apparemment d'une mauvaise gestion par un VSTi de la sortie à 96 KHz. Les essais ont montré que pas mal de modules VSTi ne prennent pas bien en compte des fréquences d'échantillonnage autres que 44kHz. Il n'y a rien que nous puissions faire sur ce point.
Nous avons commencé à maintenir une liste des VSTi testés, avec les remarques associées:
Cliquez sur l'image pour visualiser la liste, mise à jour en temps réel au fur et à mesure de nos essais
Suite à une demande, nous avons intégré une boite de dialogue permettant de visualiser l'ensemble des objets additionnels associés aux portées : nuances, ottava, tempi, textes etc. On peut voir les caractéristiques et les supprimer.
Des filtres permettent de n'afficher qu'un certain type d'objet ou les objets associés à une portée spécifique.
Nous peaufinons l'intégration des VSTi. Sur Windows, le système marche plutôt bien, mais avec, comme on pouvait le redouter, des réactions bizarres sur certains plugins et pas d'autres, ce qui promet un support technique sportif.
Par exemple, un module qui joue les notes correctes lorsque la partition défile, et monte tout d'une octave dès qu'on ouvre la boîte de choix d'instrument.
Il va nous falloir résoudre un maximum de mystères de ce type avant de proposer une version au public, parce que lorsque ces bizarreries se produiront à l'autre bout du monde, sur un module pro (donc payant - et cher) dont nous ne disposons pas, nous nous attendons à ce que quelques dents grincent...
La notation des ambitus a été intégrée à Harmony Assistant. Elle se paramètre d'une manière générale pour la partition mais est débrayable portée par portée.
Son aspect graphique est configurable pour la partition. L'ambitus se mets automatiquement à jour quand des changements sont appliqués à la partition.
Les fréquences d'échantillonnage élevées (48 ou 96kHz) du mode HQ, dans les pistes numériques et les instruments utilisateurs perturbaient les scripts travaillant sur les sons numériques (Scripts > Sons numériques). Ils ont pratiquement tous été repris pour tenir compte de ces nouveaux paramètres.
La constitution de la liste des instruments VSTi disponibles prenait pas mal de temps, une fois par session. En effet, le programme doit balayer une liste de répertoires dans lequel les VSTi sont susceptibles d'être rangés, et pour chaque librairie trouvée, la charger, l'initialiser, et vérifier ses paramètres.
Or certains instruments VSTi peuvent prendre plus de 5 secondes d'initialisation. Une dizaine de modules de ce type, et ça risque de devenir agaçant. Nous avons donc mis en place un fichier "cache", qui permet de ne vérifier que les librairies qui ont été ajoutées ou modifiées depuis la dernière fois. L'attente a donc lieu uniquement au premier lancement de l'application, la constitution de la liste étant quasi instantanée aux lancements suivants.
On nous a soumis des fichiers PDF comportant des notations en ambitus. L'ambitus visualise, devant la clef, la tessiture de la portée via deux noires sans tige, comme ceci :
Ce type de notation, issu d'anciennes partitions, pouvait perturber PDFtoMusic qui le considérait comme une mesure très courte avec deux notes en accord. Nous avons donc traités ce cas, ce qui nous a obligé à revoir également l'algorithme de localisation des clefs et des altérations à la clef.
Les valeurs hautes et basses de l'ambitus sont extraites et exportées en MusicXML sous forme de données privées, le MusicXML ne gérant apparemment pas cette notation.
Pour l'instant Harmony extrait les données et n'en fait rien. Il reste à voir si ce type de notation est intégrable dans Harmony.
La saisie des pistes numériques en 48 et 96 kHz, et/ou à 24 ou 32 bits a été mise au point et vérifiée. De même, dans la création d'instruments numériques utilisateurs, la saisie d'échantillon numérique à 48 ou 96 kHz a été implémentée et testée. Chaque échantillon, même au sein d'un même instrument, peut avoir une fréquence & profondeur d'échantillonnage différente des autres.
Nos conditions d'enregistrement ne nous ont pas permis d'entendre vraiment la différence avec le classique 44kHz, mais nous avons vérifié les données numériquement pour nous assurer que c'était bien pris en compte.
Choix de la fréquence et du nombre de bits en configuration de la saisie numérique. Gestion de la fréquence et du nombre de bits dans l'interface de l'édition des instruments utilisateurs. Dans la boite de sélection de l'instrument VST il est maintenant possible d'accéder à la boite de préférence de selection des chemins. Mise à niveau des ressources dans les différentes langues.
L'intégration des modules externes (pour l'instant, VSTi) dans Harmony a été améliorée. Maintenant, le sélecteur d'instrument est passé en double liste, comme on a l'habitude de voir pour les instruments numériques ou MIDI
A gauche, la liste des modules VST détectés sur le système, à droite, les sons disponibles dans le module sélectionné.
Sur Mac, les entrées audio en stéréo et mono sont maintenant gérées via le CoreAudio. La boite de saisie des instruments numériques utilisateurs est en cours de remaniement. Sur Mac, la durée des échantillons n'est plus limitée à 5 secondes. Correction d'un crash possible quand la durée de tampon de saisie était trop courte. Nous avons commencé à implémenter dans l'interface la sélection de nombre de bits ou de valeurs d'échantillonnages élevés pour les instruments utilisateurs.
Les plug-ins VSTi sont maintenant plutôt bien implémentés dans le programme. Tout ne fonctionne pas encore, mais les problèmes deviennent de plus en plus mineurs, et il est parfaitement possible de travailler avec.
On fait donc des essais, on change les sons, donc voila une "démo" qui n'était pas destiné, normalement, à être diffusée, mais qui vous permet d'entendre que ça fonctionne (utilise deux plugins VSTi "Zebra": Zebra2 & Zebralette)
Les deux instruments sont donc des VSTi, et le volume, mixage, position stéréo et réverbération du thème principal sont gérés par Harmony.
Nous avons commencé à réécrire les primitives d'acquisition de son sur macOS. Elles utilisaient la couche Carbon, cela fonctionnait bien mais était limité aux possibilités de macOs 9 en matière de nombre de bits par échantillon et de fréquence d'échantillonnage. Nous utilisons maintenant le CoreAudio et pour l'instant la saisie monophonique, 44khz, 16 bits est fonctionnelle.
Toujours sur l'implémentation des VSTi, pour l'instant en version Windows. Le traitement des sons de ces modules externes commence maintenant à bien être intégré à Harmony.
Le champ éditable du canal MIDI a été remis dans l'édition de l'instrument VSTi, car le module peut être programmé différemment pour chaque canal Sur certains VSTi, la 1e note est ignorée, ce qui empêche d'entendre le son de l'écho lors de la pose de notes. Nous cherchons à comprendre pourquoi.
Correction d'un problème de calcul de mesures multi-silences quand des fins de ligne de mesure étaient forcées. Sur Mac, correction de la gestion des chemins par défaut lors de l'ouverture des dossiers. Nous avons progressé dans l'implémentation des Audio Units sans arriver à quoi que ce soit de tangible. Le peu de références dans le domaine laisse penser que cette technologie n'a jamais vraiment été adoptée. Nous allons certainement nous cantonner aux VSTi et attendre de voir.
Reprise de l'API (l'ensemble des fonctions) qui permet à Harmony d'utiliser les plug-ins VSTi. Pour les technophiles: des choix techniques ont dû être faits : les instruments VSTi se comportent comme des synthés MIDI (16 canaux, donc un maximum de 16 instruments simultanés seulement). Harmony n'étant pas limité à ce niveau-là, nous préférons considérer que chaque instrument de la partition qui utilise un instrument VSTi utilise en fait une copie différente du module (et donc n'exploite à chaque fois qu'un seul canal sur les 16 possibles)
Nous sommes donc en train de reprendre l'interface de programmation pour la rendre plus logique et plus propre. Celle-ci permet d'ajouter un nouveau type d'instrument virtuel assez facilement, ce qui permettra d'envisager d'autres types de plug-ins ou d'autres versions de VSTi.
Sur Harmony Assistant lui-même, des erreurs ont été corrigées dans le masquage des lignes de paroles (édition & sauvegarde)
Autant sur macOs la position des modules externes (VST, AU) est normalisé, autant sur Windows c'est un peu la jungle, chacun s'installe apparemment où il veut. Cela nous a obligé de laisser à l'utilisateur la possibilité de définir dans les préférences générales une liste de chemins où chercher les modules :
Lors de définition de la liste des chemins, on peut demander quels sont les modules externes qui sont localisés.
Dans Harmony Assistant un message d'alerte débrayable prévient que des modules externes utilisés dans un fichier ne sont pas présents sur l'ordinateur. Si aucun module n'a été localisé, l'utilisateur peut définir les chemins sur les modules. Si cela est fait le document est adapté pour retrouver les modules sur les nouveaux chemins définis.
Dans PDFtoMusic gestion de la position spatiale des instruments en mode Myriad HQ.
Gestion de la position 3D des instruments en import/export MusicXML 2.0
Au commencement... les lignes de paroles correspondaient exactement aux passages chantés. La première ligne était chantée au premier passage, la 2e ligne au 2e, etc
Puis nous avons introduit la possibilité de masquer certaines lignes, ou d'insérer des lignes vides, transformant ainsi un concept unique (ligne-passage) en deux concepts séparés
Dans le processus, il semble qu'à quelques endroits de notre code, nous n'ayons pas bien négocié ce changement, et que l'édition et la sauvegarde des paroles ne fonctionne pas bien lorsque des ligne sont masquées.
Nous sommes en train de reprendre notre code afin de le clarifier, et débusquer ces erreurs.
Nous continuons à progresser dans la gestion des plug-ins VST. Nous sommes maintenant capable d'interroger le plug-in pour lui demander ce qu'il sait faire. Cela nous permet de trier entre les plug-ins de génération de son, répondant aux commandes MIDI : les VSTi et les plug-ins de traitement de signal. Nous pouvons maintenant n'afficher que les VSTi dans la boite d'édition des instruments. Nous sommes allés à la chasse des plug-ins existants afin de tester notre hôte. Il apparait qu'il y a énormément de plug-ins de post traitement du signal (des tonnes de reverberation et effets divers) mais très peu de VSTi. Mais ceux que nous avons trouvé et installé commencent à fonctionner.
Gros progrès dans la gestion des plug-ins VSTi sur Windows. Ou plutôt, quand on a galéré longtemps, on se réjouit de la moindre avancée. Nous avons enfin pu faire fonctionner l'édition des paramètres, après plusieurs jours passés sur le problème.
Une solution a également été trouvée aux plantages fréquents lors de la simple interrogation du plug-in pour lui demander des informations. L'implémentation des VST, si elle n'est pas en elle-même vraiment problématique, bénéficie de la plus mauvaise documentation qu'il nous ait été donné de rencontrer, surtout en ce qui concerne la partie hôte (le programme qui accueille des plug-ins)
Les versions de VST, plus ou moins incompatibles entre elles, se sont enchaînées, avec peu d'explication sur leur fonctionnement, et les tentatives de faire "ce qui semble logique" sont immanquablement vouées à l'échec. De manière inexpliquée, certains objets doivent absolument être fermés alors qu'ils n'ont jamais été ouverts, l'interface doit être affichée avant de connaître la taille nécessaire à son affichage, et bien d'autres subtilités que nous ne maîtrisons pas encore, faute d'être simplement conscient de leur existence.
Ce manque de logique et d'explication claire nous contraint, comme certainement beaucoup d'autres avant nous, à ne pas nous fier à la documentation parcellaire, mais errer sans fin sur le net à la recherche du Saint Grââl, un extrait de code source qui fonctionnerait, afin de voler le travail d'un pauvre bougre qui a eu le malheur d'être le premier à s'arracher les cheveux sur le même problème.