GRIS-UdeM / ControlGris

Spatialization plugin replacement of SpatGRIS
GNU Lesser General Public License v3.0
9 stars 0 forks source link

Analyse du signal audio et génération d'OSC en conséquence #176

Open Normandeau opened 2 years ago

Normandeau commented 2 years ago

Préparer ControlGRIS afin qu'il puisse analyser le signal audio et en fonction des descripteurs audio, exporter des données OSC qui génèrent des trajectoires issues du signal lui-même.

NicolaGiannini commented 4 months ago

Je laisse ici une description de MapSPAT, avec l'idée de s'en inspirer éventuellement pour ajouter certaines fonctions de MapSPAT dans ControlGRIS.

Développé avec Jean-Philippe Jullin depuis 2023, l'objectif principal est de créer une spatialisation liée aux variations du spectre sonore en temps réel. Exemple : une augmentation de l'intensité crée une trajectoire du bas vers le haut et les vitesses des deux variations, sonore et spatiale sont corrélées.

L'outil est un patch MaxForLive (qui fonctionne aussi comme patch MaxMsp standalone) qui peut être utilisée à la place ControlGRIS dans l'architecture de SpatGRIS.

La différence avec ControlGRIS est que MapSPAT reçoit l'audio de la piste. Cet audio est analysé par les descripteurs audio FluCoMa basés sur la perception humaine. Les données de cette analyse peuvent contrôler les paramètres spatiaux (j'utilise l'exemple du mode DOME, mais cela fonctionne aussi avec CUBE) Azimut, Élévation, Span Vertical et Span Horizontale. Il est donc possible de créer des trajectoires d'Azimut et d'Élévation et des variations des Spans liées aux valeurs obtenues par l'analyse des descripteurs. MapSPAT envoie les signaux OSC de spatialisation à SpatGRIS.

Chaque paramètre spatial ne peut être associé qu'à un seul paramètre sonore. Chaque paramètre sonore peut être associé à plusieurs paramètres spatiaux.

Les utilisateur-rice-s peuvent créer les correspondances qu'iels souhaitent entre les paramètres sonores et spatiaux. L'interface est illustrée ici.

Interface

Voici quelques exemples d'utilisation.

Ici, la Loudness contrôle l’Azimut et le Span Horizontale. La Loudness est mise à l'échelle à 291 % pour augmenter sa portée et le paramètre de lissage est au maximum pour avoir une variation plus uniforme. L'azimut commence à 292 degrés avec un Range de mouvement à 100 %.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/c25755e6-a6d8-4e3e-92ce-328131c39349

Ici, le Pitch contrôle l'élévation et l'azimut, créant ainsi une sorte de spirale. Ici, la hauteur du son change par une variation continue (glissando).

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/18fbe235-80df-4e1e-b453-ce46a6d016ca

Ici, le Pitch contrôle l'azimut et l'étendue verticale. La plage d'analyse est réglée entre 60 et 599Hz. Ici, la hauteur du son change en fonction des intervalles de notes.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/a5b7148e-925b-44c1-819b-7fd632653efc

Ici, le centroïde du spectre contrôle tous les paramètres spatiaux. L'analyse du centroïde est réglée entre 110Hz et 8,59kHz.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/feff3dd3-d35c-482d-9c2d-74cee91c37a6

Ici, la largeur du spectre, Spread, contrôle l'azimut.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/b98eb518-5470-4c22-aea4-1ae429eda29c

Ici, l'analyse détecte la différence entre un son bruité et un son à hauteur repérable. On a appelé cette analyse Noise et ici les données issues contrôlent tous les paramètres spatiaux.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/6ef70a16-df9d-49c0-a1f1-876b3ab35dab

Ici, la vitesse de répétition du son, Speed, contrôle l'azimut. Pour cette analyse, il faut définir un seuil de volume audio, un algorithme par rapport aux différents types des matières sonores, une valeur minimale et une valeur maximale de temps par rapport aux répétitions.

https://github.com/GRIS-UdeM/ControlGris/assets/35705913/664ec928-5284-492e-a935-3836e89e10c2

Il existe un système de préréglages automatisables qui permet d'effectuer différentes affectations le long d'une pièce.

Je vous partage aussi le patch :

MapSPAT_v0.3.11.amxd.zip

Si jamais en glissant le device, il ne fonctionne pas, Jean-Philippe suggère de faire cela :

download-1

Les affectations de la matrice fonctionnent et sont sauvegardées avec le projet Ableton. Pour définir des paramètres spatiaux sans que les descripteurs audio aient une influence sur eux, il faut quand même mettre ce paramètre en correspondance avec un descripteur audio et régler le Range du paramètre spatial sur zéro. De cette manière les valeurs sont enregistrées avec le projet d’Ableton. Il me semble que dans le système de préréglage, il y a quelque chose à régler.