Gilles Pommereuil

Gilles Pommereuil est le directeur technique d'Arturia. Il nous explique quelles ont été les différentes phrases tu projet.

Bonjour Gilles, peux-tu te présenter à nos lecteurs ?

J'ai 28 ans, je suis ingénieur en informatique, avec une spécialisation en « Acoustique, Traitement du signal et Informatique Appliqués à la Musique » (ATIAM) effectuée à l'IRCAM (en 1997-1998). A titre personnel, je suis musicien (clarinettiste, pianiste (un peu), et chef d'orchestre amateur (un tout petit peu !)). Je m'intéresse depuis très longtemps à l'informatique musicale, mes premières expériences dans la synthèse de sons remontent à l'époque où je programmais des synthétiseurs additifs qui permettaient sur Atari ST de créer des samples de synthèse lisibles sur disquette par un Ensoniq EPS-16 plus. J'ai fondé Arturia en 1999 avec Frédéric Brun, et j'y assume depuis la fonction de directeur technique.

Quel a été l'élément déclencheur de ce projet ?

Il y a un an et demi, nous avons travaillé sur la synthèse soustractive. Nous pensions proposer un analogique virtuel comme instrument VST, mais il est rapidement apparu qu'il fallait beaucoup de travail pour obtenir une qualité sonore satisfaisante. Les émulations de synthétiseurs analogiques sonnent en général « numérique », car les algorithmes de synthèse des oscillateurs et des filtres ajoutent des effets indésirables qui sont difficiles à éviter ou à supprimer du signal. Ces problèmes sont en particulier l'aliasing, le manque d'harmoniques, une stabilité exagérée des oscillateurs, des artéfacts dus à la FM et à la PWM (Pulse Width Modulation). Nous avons donc décidé de développer de nouveaux types d'algorithmes pour nous débarrasser de ces défauts inhérents à la synthèse de sons logicielle. Nous avons consacré plus d'un an de recherches à la création de nouveaux procédés de synthèse d'oscillateurs et de filtres. A la fin, nous étions vraiment satisfaits de nos résultats, et nous avons envisagé de valoriser tout ce travail dans la reproduction du synthétiseur qui nous paraissait le plus mythique de tous les temps : le modulaire Moog (55 , 3C).

Pourquoi avoir appelé le logiciel : Moog Modular V

Difficile d'appeler le logiciel Moog 3C ou Moog 55, car il ne comporte pas exactement les mêmes modules que ces deux modèles. Ces modèles eux-mêmes ont d'ailleurs évolué, et étaient personnalisables à l'achat, ce qui fait que Moog 3C ou Moog 55 n'indiquent pas une configuration très spécifique. Nous avons donc préféré conserver l'appellation générique « Moog Modular », et ajouter le « V » pour « Virtuel »

Aujourd'hui comment fait-on pour émuler un synthétiseur ?

C'est une démarche en deux temps : premièrement, il faut bien connaître toutes les spécifications techniques de l'original : quels sont les modules, paramètres, étalonnage des contrôles et parfois même les montages électroniques qui rentrent en jeu (notamment pour les filtres du Moog). Nous avons trouvé assez facilement la documentation complète sur tous les modules électroniques des systèmes modulaires Moog, ce qui nous a permis d'esquisser rapidement l'architecture du synthétiseur. En second lieu vient la mise au point, le « fine tuning » des algorithmes : nous avons notamment analysé à l'oscilloscope les formes d'ondes et les enveloppes du Moog original. Nous avons comparé l'étalonnage des divers potentiomètres pour restituer au mieux la machine originale. Puis nous avons tout évalué à l'oreille, notamment les filtres et le soft-clipping, par comparaison entre l'original et sa reproduction… jusqu'à ne plus entendre la moindre différence. Pour cela, nous disposions d'un MiniMoog et d'un Moog 3C (ce dernier était à 500 Km de Grenoble, nous avons du monter plusieurs expéditions pour lui rendre visite…)

Peux-tu nous expliquer en détails les différentes phases de développement du logiciel ? Comment vous êtes-vous réparti les taches ?

La mise au point du moteur audio (algorithmes de synthèse de son) a été la plus longue (un peu plus d'un an). C'est Xavier Oudin, notre ingénieur en traitement du signal qui en a développé l'essentiel (modélisation des divers filtres, des formes d'onde du Moog, etc.). Deux autres développeurs ont travaillé sur les protocoles audio (mode VST, DXi, MAS, RTAS / HTDM, standalone, AudioUnits). J'ai développé une grosse partie de l'interface graphique (notamment les câbles !). Un développeur a travaillé sur la compatibilité PC / Mac (gestion des fichiers, etc. sur les deux systèmes)

De directeur technique tu es passé… graphiste ?

Pas du tout ! Je suis à l'origine un développeur informatique, et bien que dirigeant l'équipe de développeurs, je dois mettre la main à la pâte moi aussi de temps en temps. Le graphisme, au niveau réalisation (dessin des potards, façades, etc du synthé, en 3D pour la plupart, puis exportation en 2D) a été réalisé par un 'vrai' graphiste, Yannick Bonnefoy, qui travaille régulièrement pour nous. Ma partie a consisté à 'intégrer son graphisme', c'est-à-dire à développer au niveau logiciel les divers composants (potards, joysicks 2D, etc.) et intégrer les éléments graphiques réalisés par Yannick. Cette partie est en général assez classique pour un instrument VST. Le 'plus' de notre interface graphique, c'est le dessin des câbles et leur dynamique, que j'ai développés, ce qui a été assez long...

Peux-tu nous expliquer comment s'organise le travail quand on doit gérer plusieurs équipes en parallèle, à quel moment elles se regroupent pour mettre en commun leur travaux, et si vous avez rencontré des problèmes de calendrier.

Sur la première partie du projet, Xavier Oudin a travaillé seul la plupart du temps. Vers le mois de septembre, 4 développeurs sont venus le rejoindre sur le projet. Un développeur a réalisé le mode standalone sur PC et sur Mac OS X. Le module standalone a pu être testé avec d'autres plug-ins VST du commerce avant d'être intégré avec le Moog Modular V, il a donc pu être complètement testé et validé avant même que le plug-in VST soit stable. De même, les modes RTAS / HTDM et MAS ont été développés et testés relativement indépendamment, puis intégrés à la fin du projet. L'implémentation du mode DXi a été achetée à une société tierce. Seules trois parties du projet étaient fortement interdépendantes : le moteur audio, l'interface graphique, et le module de compatibilité cross-plateforme (utilisé notamment pour la gestion des fichiers de presets). Pour synchroniser nos développements, nous synchronisions notre code source à l'aide d'un serveur 'CVS', qui permet à chacun d'accéder rapidement à la dernière version stable du travail du reste de l'équipe. Nous faisions des réunions régulières sur l'avancement des différentes tâches. Nous n'avons pas eu de gros problème de calendrier, même si le projet a prix deux ou trois mois de plus qu'initialement prévu (c'est un grand classique de tout projet informatique). La gestion des tests a quand même été assez complexe étant donné le nombre de plate-formes et de protocoles visés (10 plate-formes de tests différentes rien que pour Pro Tools !!!). Nous avons été beaucoup aidés par les beta-testeurs publics : environ 150 beta-testeurs se sont inscrits (dont une quarantaine seulement on été très actifs)

A quelles difficultés avez-vous été confrontés ?

Chaque partie des développements est venue avec son lot de difficultés. Pour la partie audio, l'imitation des formes d'ondes incurvées du Moog a été un très gros travail. Au niveau des divers protocoles, je crois que RTAS / HTDM est celui qui nous a donné le plus de fil à retordre. Au niveau graphique, la mise au point des câbles a été assez longue…

Quelles ont été les solutions qui vous ont permis de vous en sortir ?

Lorsque nous avons choisi de développer une émulation de Moog, nous avions déjà mis au point un moteur de synthèse sonore sans aliasing. Mais ce moteur de permettait de synthétiser que des formes d'ondes carrées et dent de scie exactes. Or, nous nous sommes aperçus que le Moog original ne produit pas des formes d'onde exactement carrées ou triangulaires : les parties linéaires des formes d'onde sont toujours très incurvées, signe qu'au niveau électronique, des décharges de condensateurs sont utilisées pour générer ces signaux. Le problème était que notre générateur de formes d'onde sans aliasing ne permettait que de générer des carrés et dents de scie purs, mais pas incurvés de la sorte. Nous avons du revoir complètement le fonctionnement de l'algorithme pour le rendre plus souple, tout en conservant ses propriétés intéressantes (pas d'aliasing + contenu spectral très riche).

La compatibilité avec le protocole RTAS / HTDM a été la plus compliquée à implémenter. Ce protocole est l'un des plus anciens du marché, et a apparemment mal évolué au cours des diverses mises à jour. Il est de plus disponible à la fois sur 3 plate-formes : PC/Windows, Mac OS 9, Mac OS X. Pierre-Jean Camilieri, le développeur qui a réalisé la compatibilité avec ce protocole (et avec MAS) y a passé beaucoup de temps. Je peux difficilement entrer dans le détail, car j'ai suivi ces développements d'assez loin...

Pour ce qui est du design des câbles, la difficulté tient essentiellement à faire apparaître ces câbles par dessus une interface éditable à la souris, avec ses potentiomètres et autres contrôles. Le rafraîchissement graphique devient rapidement beaucoup plus complexe à développer lorsqu'il y a ainsi plusieurs 'plans' graphiques : dès qu'un potentiomètre est redessiné, il faut redessiner également les câbles susceptibles de se trouver 'au-dessus' de cet élément graphique. Ce type de problème se résout avec des techniques classiques de 'double-buffering', qui consiste à travailler sur des images 'off-screen', non-affichées à l'écran, pour préparer l'affichage suivant, puis à basculer sur l'affichage de l'image off-screen qu'on vient de préparer. La modélisation de la dynamique des câbles (leurs mouvements en réaction au passage de la souris) a été une partie importante du travail également. Des modèles physiques ont été utilisés pour rendre les mouvements plus réalistes !!

Avez-vous du faire des compromis ?

Un seul : le soft-clipping est seulement optionnel. C'est ainsi qu'on nomme la légère distorsion produite par les VCA du Moog original, lorsque le réglage de gain est assez élevé. Cette légère distorsion ajoute une certaine chaleur très caractéristique à certains sons. Pour réaliser cette distorsion sans ajouter de l'aliasing, et perdre ainsi tout le bénéfice de notre système TAE, nous avons du passer par une technique dite de sur-échantionnage + filtrage + sous-échantillonnage. Cette technique est très efficace, mais aussi très gourmande en CPU. C'est pourquoi elle n'est disponible qu'en option, et peut donc être utilisée ou non en fonction des capacités de la machine sur laquelle le Moog Modular V est utilisé.

Quelles sont les fonctions en plus par rapport à l'original ?

Ce sont avant tout des fonctions qui simplifient l'utilisation du Modulaire : notre virtuel est polyphonique alors que l'original était mono. Chaque entrée de modulation dispose d'un réglage de niveau de modulation intégré, ce qui évite d'utiliser un VCA pour chaque modulation. Certaines connexions (triggers, suivis de clavier, synchro) sont effectuées sans câbles, ce qui améliore la lisibilité d'ensemble. La sortie du séquenceur peut être automatiquement réglée sur les demi-tons de l'échelle tempérée, ce qui évite d'accorder une séquence « à l'oreille ». Et bien entendu, l'original n'avait pas non plus de presets !

A partir de quel moment êtes-vous rentrés en contact avec Bob Moog et comment s'est passé la rencontre ? Quels ont été vos échanges ?

Nous sommes entrés en contact avec Bob Moog pour la première fois au NAMM 2002. Nous avions à l'époque un prototype de synthé Moog virtuel et nous le lui avons fait écouter. Dans le bruit du salon, c'était difficile pour lui de tirer des conclusions, mais il s'est montré intéressé et il a accepté de suivre le projet. C'est après ce salon que nous avons décidé de faire une émulation du modulaire Moog. Bob Moog a reçu les diverses évolutions du projet, mais il tenait à travailler sur une version quasi-définitive. Vers décembre 2002, nous lui avons envoyé une version très avancée de notre émulation. Bob Moog n'a pas failli à sa réputation de scientifique exigeant : bien qu'appréciant la qualité générale de notre travail, il a relevé une série de défauts qu'il nous fallait absolument corriger si nous voulions mériter l'appellation « Moog » !... Nous avons alors travaillé sans relâche pour corriger ces problèmes : cela a conduit à l'amélioration des aigus et des attaques d'enveloppes, à l'ajout du mode « soft clipping » et à des améliorations ergonomiques diverses. Un mois après, Bob Moog a reçu notre version corrigée et l'a approuvée. Par son travail d'évaluation, son « oreille » et sa rigueur, il a beaucoup apporté à la qualité de notre produit final, et nous lui en sommes très reconnaissants.

Etes-vous en train de travailler sur une autre émulation ?

Oui ! Je ne peux pas en dire plus pour le moment…

Quels sont les autres synthétiseurs que vous aimeriez récréer virtuellement ?

Il y a encore beaucoup de synthétiseurs analogiques qui attendent une reproduction digne de ce nom, notamment des modèles Yamaha (CS-80), Oberheim, ARP, etc.

Propos recueillis par Cyril Colom