Projet #1 : Interface visuelle et sonore sans-fil 1


Résumé:

Contrôle à partir d’un smartphone via OSC (grâce à l’application mobile TouchOSC) d’un environnement visuel (Processing) et sonore (PureData).

L’environnement Processing, centre névralgique de ce projet, reçoit les données envoyées par l’app mobile TouchOSC depuis un smartphone en Wifi, en respectant le protocole OSC. Le programme traite les données reçues: il les utilise pour modifier directement l’affichage visuel, un point lumineux se déplaçant sur l’écran avec une trainée qui s’estompe peu à peu. Il les renvoie ensuite au programme sonore, sous PureData qui utilise ces paramètres pour modifier à la volée les caractéristiques d’une synthèse sonore FM.

 


Développement:

L’interface tactile: smartphone et TouchOSC

TouchOSC est une application mobile qui permet à tout un chacun de s’initier aux joies du protocole OSC, successeur de l’indéboulonnable MIDI. Ma motivation première était d’étudier les perspectives d’utilisation des matrices XY de l’app TouchOSC, dans l’idée de pouvoir juger de l’intégration de cet outil au sein d’une performance musicale numérique. En effet, de nombreux modules d’effets natifs ou VST se présentent sous la forme de matrice XY, c’est par exemple le cas des filtres numériques du DAW Ableton Live, qui relient les coordonnées en X à la fréquence de coupure « Cut-off », et les coordonnées Y à la résonance « Q ». Les signaux envoyés via le protocole OSC sont contenus entre 0 et 1.

Capture d’écran et retouches d’un filtre numérique passe-bas sous Ableton Live

Layout TouchOSC

 


L’affichage graphique sous Processing

La première étape fut donc d’expliciter les informations générées par cette matrice en permettant leurs visualisation sous Processing, à l’image de ce que peut renvoyer le pilote Synaptic en modélisant la position appliquée sur un pavé tactile. En m’inspirant de cet élément qui remonte à mes premières heures d’informatiques, j’ai voulu modéliser un mouvement fluide, en symbolisant le point de coordonnées (X,Y) par un rond blanc dégageant une traîne qui s’estompe au cours du temps.

La taille de l’écran étant initialisée à 500×500, les coordonnées (X,Y) reçues sont adaptées grâce à cette intervalle (et limitées pour que le point ne puisse dépasser les bords, quel que soit son diamètre) , de même pour le contraste (entre 0 et 255), et le diamètre (entre 1 et 50).

Enfin, j’ai voulu ensuite me concentrer sur la personnalisation de mon contrôle sur TouchOSC personnalisant mon « layout » grâce au logiciel dédié, « TouchOSC Editor ». J’ai ainsi pu rajouter deux faders horizontaux destinés à changer le contraste d’affichage ainsi que la taille de mon point.

Capture d’écran et retouches du « layout » utilisé permettant un contrôle de la position (X,Y) et du diamètre de notre point ainsi que du contraste global de l’affichage.

 

On peut observer ci dessous différentes correspondances entre le contrôle via TouchOSC et l’affichage sous Processing:

 

Capture #1 du Layout TouchOSC et de l’animation Processing correspondante

Capture #2 du Layout TouchOSC et de l’animation Processing correspondante.

Capture #3 du Layout TouchOSC et de l’animation Processing correspondante.

Programme Processing

 


La synthèse sonore via PureData

Ces informations (coordonnées X et Y, fader 1 et fader 2) sont alors adaptées puis renvoyées via le protocole OSC à l’interface sonore PureData, et permettent de modifier directement les valeurs paramétriques d’un synthétiseur par modulation de fréquence (FM). La synthèse par modulation de fréquence découverte par John Chowning en 1973 consiste à générer une sinusoïde modulée en fréquence par une autre sinusoïde.

 

Soit Y(t), notre signal de sortie, et Ym(t) notre signal modulant. Soit Fp la fréquence de la porteuse, Fm la fréquence de la sinusoïde modulante et Im l’indice de modulation.
Dans notre cas, la fréquence porteuse Fp et l’indice de modulation Im sont modifiable directement, tandis que la fréquence modulante Fm est une multiple de la fréquence porteuse (Fm = a*Fp)

Ym(t) = sin(2π*Fm*t)  et  Y(t) = sin[2π*Fp*t + Im * Ym(t)]

Finalement :

Y(t) = sin[2π*Fp*t + Im * sin(2π*Fm*t)]

Synthèse FM sous PureData

Programme PureData

 

  • Les coordonnées X seront utilisées pour paramétrer la fréquence de la porteuse Fp. Les données reçues sont converties via l’objet « mtof » qui transforme une note MIDI (entre 0 et 127) en fréquence en Hz.
  • Les coordonnées Y sont volontairement laissés de côté.
  • Les données extraites du fader1 (contraste) permettent de paramétrer l’indice de modulation Im, (entre 0 et 1000)
  • Les données extraites du fader2 (diamètre) permettent de paramétrer l’indice de multiplication atel que Fm = a*Fp (entre 0,4 et 20).

 


Intégration finale:

Le schéma proposé ci-dessous reprend l’ensemble des éléments et échanges mis en oeuvre au sein de ce projet:

Schéma complet de l'environnement.

Schéma complet de l’environnement.

 


Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire sur “Projet #1 : Interface visuelle et sonore sans-fil