Nom et coordonnées
- nom : Haokun Song
- nom d’utilisateur GitLab : @kuk1song
- fuseau horaire : UTC+02:00
Titre
Développement de mappers SATIE généralisables optimisant la flexibilité de la spatialisation audio
Brève description du travail réalisé
Durant ma participation au programme Google Summer of Code (GSoC) 2023, mon travail a surtout porté sur l’étude des mappers de SATIE — un greffon conçu pour relier la source sonore virtuelle au spatializer — et sur le développement de mappers généralisables inédits en SuperCollider, afin d’améliorer la flexibilité et l’extensibilité de SATIE et de permettre des expériences de spatialisation audio plus immersives.
Après avoir bien assimilé les principes fondamentaux et la structure du code, j’ai implémenté un nouveau mapper, cartesianControl1. Celui-ci permet de manipuler la position de la source virtuelle en spécifiant des points 3D dans le système de coordonnées cartésiennes, et il introduit un modèle mathématique géométrique reproduisant le phénomène physique d’atténuation du gain à mesure que la distance entre la source sonore et l’utilisateur augmente.
En m’appuyant sur cartesianControl1, j’ai développé deux autres mappers : cartesianControl2 et xDirAdjacent. Ils sont conçus pour permettre le contrôle de plusieurs spatializers au moyen de calculs portant sur diverses relations géométriques, de sorte que l’utilisateur puisse configurer de façon dynamique et souple les effets de spatialisation audio souhaités.
Code intégré
Le nouveau mapper :
- cartesianControl1 : ce mapper permet de manipuler la position du spatializer en spécifiant des points 3D dans le système de coordonnées cartésiennes.
Les billets de blogue publiés :
Le bogue trouvé (corrigé) :
Code non intégré
Les nouveaux mappers (en attente de révision) :
- cartesianControl2 : lorsqu’il y a deux spatializers, ce mapper permet de les placer indépendamment dans deux systèmes de coordonnées cartésiennes sans rapport l’un avec l’autre, ce qui permet de les contrôler séparément, sans interférence mutuelle.
- xDirAdjacent : avec ce mapper, deux spatializers peuvent être définis en mode adjacent, l’orientation suivant l’axe des x.
Le bogue trouvé (la solution a été trouvée et est en attente de révision) :
- Des distorsions apparaissent dans les régions négatives de x et de z du mapper
cartesianControl1; le problème est résolu dans la merge request !533 du projet SATIE.
Ce qu’il reste à faire
- Développer les équivalents yDirAdjacent et zDirAdjacent à partir de xDirAdjacent, afin d’ajouter cette nouvelle couche de contrôle de plusieurs spatializers.
- Enrichir le contrôle de plusieurs spatializers, soit en étendant le mapper existant, soit en en créant de nouveaux. Cela suppose d’introduire de nouveaux paramètres et de découvrir d’autres relations géométriques pour enrichir les fonctionnalités.
- Le contrôle multi-spatializer actuel se limite à deux spatializers. Une fois ce mode stabilisé, il pourra être étendu à un plus grand nombre de spatializers, pour un contrôle multi-spatializer complet.
- En recourant à des UGens comme Changed et LastValue pour réaliser des fonctions d’automatisation, l’objectif est de permettre le contrôle simultané de la position du spatializer en coordonnées cartésiennes et sphériques au sein d’un même mapper, pour une intégration fluide et sans conflit.
- Établir un lien entre les paramètres de périphériques externes et les mappers au moyen de messages OSC. Par exemple, relier les paramètres du gyroscope et de l’accéléromètre d’un téléphone à la variable de contrôle de position du mapper, ce qui permettrait de piloter la position du spatializer depuis le téléphone. Cela renforce l’interactivité et le plaisir d’utilisation de SATIE, et accroît son attrait général.
Dans l’ensemble, mon parcours au GSoC a été une expérience enrichissante de programmation concrète, de résolution de problèmes et de collaboration avec mes mentors Edu et Michał; ce fut un grand honneur d’être guidé par eux deux. J’espère que cette implémentation finale ouvrira la voie à d’autres possibilités du côté des mappers, et même de SATIE, à l’avenir.