Pure data & Interactivité

Téléchargements :
Patchs Traitement de données : cours02.zip
2 sons et 2 images : media.zip
Patchs PD-Pg : cours03.zip
Patchs lampes : cours04.zip
Modules/exemple : cours05.zip
Patchs progressifs pour l'installation avec chaise : cours07.zip


  • 23/01/2012 : Cours 01
    - Quelques exemples d'installations interactives ;
    - Aperçu des logiciels de gestion temps réel ;
    - Initiation à Pure Data ;
    - Le proximètre : capteur de distance ;
    - Mise en place d'une chaîne d'acquisition des données, branchement du capteur et bases de Pure-Data pour la gestion des capteurs.
  • 30/01/2012 : Cours 02
    - Résumé
    - Branchement des capteurs
    - Mise en réseau et partage de données
    - Applications pratiques, traitements de données : seuils, mise à léchelle, détection de pic, comparateur à hystéresis.
  • 06/02/2012 : Cours 03
    - Quelques exemples d'installations interactives ;
    - Communication OSC entre PD et Processing ;
    - Exemple de traitement du son en PD / action graphique en Pg.
    - Ajout d'un proximètre sur un autre paramètre graphique.
    - Suite des traitements de données en PD pour la gestion des capteurs.
  • 13/02/2012 : Cours 04
    - Pilotage d'actionneurs : lampes ;
    - Interro n°1.
  • 20/02/2012 : Cours 05
    - Modules sons / images / actionneurs ;
    - Séparation captation / action
    - Patcher une installation interactive à l'aide des modules fournis.
  • 05/03/2012 : Cours 06
    - Correction
    - TD installation interactive
  • 12/03/2012 : Cours 07
    - TD installation interactive
  • 19-24/03/2012 - 02/04/2012 : Cours 08 / 09 / 10
    - TD installations diverses

 

Cours 07

I - Installation interactive - Suite

1 - Objectif

Etape 1 : Une chaise, dans une pièce éclairée faiblement. Elle attend un spectateur, avec un son d'ambiance.

Etape 2 : Le spectateur arrive devant la chaise. Le volume du son augmente, ainsi que la luminosité.

Etape 3 : Le spectateur s'assoie sur la chaise. Le son change et le comportement de la lumière se modifie en fonction de ce son.

Etape 4 : Le spectateur s'en va. La lumière s'éteint. Le son change une troisième fois.

Etape 5 : Au bout d'un moment, l'installation revient en mode d'attente.

2 - Les étapes du point du vue de la captation

Etape 1

Indépendante du spectateur, donc indépendante du capteur. La valeur du capteur est à 0, mais ne sert pas à influencer cette étape.

Lancement automatique au début du patch avec un loadbang.

Etape 2

Le capteur étant placé sur le dossier de la chaise, la valeur envoyée quand un spectateur est devant, mais non assis, est comprise entre 0 et un seuil.
Ce seuil dépend de la portée du capteur et de la taille de la chaise. Nous pouvons le définir ici pour l'exemple à 60.

Etape 3

Le spectateur est assis. La valeur du capteur est comprise entre le seuil et 127.

Le module choisi pour le seuil est le comparateur à hysteresis, ce qui permet une distinction claire entre les phases devant / assis.

Etape 4

Le spectateur s'en va. A nouveau la valeur du capteur est inférieure au seuil.
Cependant, l'effet demandé est différent de celui de l'étape 2. Il faudra donc peut-être prendre en compte les événements passés dans le traitement des données (cf plus loin).

Etape 5

Le spectateur peut être resté devant la chaise, mais non assis, à l'étape 4, ou bien être parti. Dans les deux cas, le comportement de l'installation est indépendant du spectateur, donc indépendant des valeurs du capteur.

Le retour à l'étape d'attente est automatisé.

3 - Les actions

Il est plus pratique de prévoir la gestion des sons et lumières avant de les connecter à l'analyse du capteur. Chaque étape peut ainsi se tester en se résumant à un clic sur un bang.

Ces étapes utilisent le patch de modules pré-programmés des cours précédents.

Etape 1

Il est possible d'utiliser un son génératif ou de lire un sample. Le choix s'est majoritairement porté vers le sample. D'après la suite du patch, il vaut mieux conserver le module avec analyse d'enveloppe, même si l'enveloppe n'est pas utilisée tout de suite.

Lecture d'un son (sans analyse d'enveloppe). Doivent être lancés :
- le volume mis à une valeur faible, par un message 30 ;
- le fonctionnement en boucle, par un message 1 sur le toggle correspondant ;
- le nom du fichier (ici message tokyodreamland.wav) ;
- seulement après ces étapes, le son lui-même (bang Activer).

La lumière doit aussi être pilotée à une faible valeur. Le choix s'est porté ici sur une valeur constante mais elle peut être variable.

Lancement automatique au début du patch avec un loadbang.

L'activation du son est dans le sous-patch démarrage et peut en être extraite pour simplifier.
L'activation dsp 1 doit se faire avant de lancer le son de l'installation, d'où un delay de précaution.

Patch install02 .

Etape 2

Le son utilisé peut rester le même que lors de l'étape d'attente, mais son volume change. Ce volume peut être arbitrairement fixe, ou bien dépendant des données du capteur. De même pour la lumière.

Le module son utilisé est le même qu'à l'étape 1. Inutile de modifier la boucle, le nom de fichier ou l'activation.

Pour prendre en compte les données du capteur sans à-coup, le plus simple, pour le son comme pour la lumière, est d'ajouter la valeur de base de l'étape précédente à la valeur du capteur : + 20 pour la lumière, + 30 pour le volume.

Patch install03 .

Etape 3

Une interprêtation possible du cahier des charges est que l'enveloppe du son soit envoyée vers la lumière. Ce son est différent du précédent.

Le module de lecture son reste le même. Ne pas hésiter à remplacer des ficelles par des objets send/receive pour garder le patch lisible :
- Changer le nom du fichier avec un message ;
- mettre le volume à une valeur fixe forte par un message 100 ;
- activer le lancement du nouveau son.

Patch install04 .

Reste à envoyer l'enveloppe sur sur lumière.

Auparavant, l'enveloppe du son précédent n'avait aucune influence sur la lumière. Cela implique qu'il faut pouvoir envoyer ou non cette enveloppe vers la sortie lumière.
Cela se fait via un spigot, qui est fermé lors des étapes 1 et 2, qui doit être ouvert par un message 1 à l'étape 3.

Patch install05 .

Cette étape 3 implique aussi de modifier l'étape 2 : la valeur du capteur ne peut plus maintenant agir aussi sur le volume et la luminosité, puisque le volume est fixe et que la lumière dépend de l'enveloppe.

Cela se fait en ajoutant un spigot à l'étape 2, en le fermant avec un message 0, et en modifiant l'étape 2 pour qu'elle l'ouvre avec un message 1.

Patch install06 .

Etape 4

La lumière s'éteint, elle devient indépendante à la fois de l'enveloppe du son et de la valeur du capteur. Ces deux flux de données sont donc bloqués par la fermeture de leur spigot respectif (celui du capteur est normalement déjà fermé mais c'est une précaution).
L'envoie de la valeur 0 pour éteindre la lumière doit se faire après que ces spigot aient été fermés, pour être sûr que c'est la dernière valeur envoyée, donc à la fin d'un t b b.

Changement de son :
- Changement du nom de fichier pour avoir un troisième son
- Volume à 80 (décision arbitraire) ;
- Activer ce nouveau son.

Patch install07 .

Les conditions de déclenchement de cette étape sont analysées plus loin, pour le moment chaque étape se déclenche à la souris.

Etape 5

L'étape 4 dure un certain temps, arbitrairement fixé ici à 10 secondes puis déclenche le retour à l'étape 1.

Le plus simple est d'utiler un delay 10000, bien qu'un metro soit aussi possible, ou un metro et un compteur, ou la fin de lecture d'un fichier son un peu long, etc...

Ce bang renvoie directement à l'étape 1. Comme tous les paramétrages sont proprement faits à cette étape, et que le module son utilisé est le même, il n'y a rien d'autre à modifier.

Patch install08 .

4 - Les décisions, entre captation et actions

Etape 1 - Attente

Cette étape est déclenchée automatiquement
- par un loadbang au début
- par l'étape 5.

Rien à rajouter.

Etape 2 - Devant

Si cette étape comporte des envois de valeurs fixes, la valeur du capteur peut passer par un seuil. Sinon (cas choisi ici), elle peut pour le moment être envoyée directement vers l'étape 2.

Rien à modifier.

Etape 3 - Assis

Le spectateur est assis. La valeur du capteur est comprise entre le seuil et 127.

Le module choisi pour le seuil est le comparateur à hysteresis, ce qui permet une distinction claire entre les phases devant / assis. Ajouter l'initialisation du seuil au loadbang et envoyer les données du capteur sur l'entrée "données" du module.

Le résultat est vrai / faux = 1 ou 0.

Pour passer à l'étape 3 c'est le résultat 1 vrai qui nous intéresse.

Cependant, il ne faut pas directement envoyer cette réponse sur le bang de l'étape 3, sinon le son va se relancer à chaque fois que la valeur change. Deux possibilités : un onebang sous le bang "Si 1", ou un change et sel 1 sous le résultat numérique. C'est cette dernière option qui est choisie car elle ne nécessite pas de reset.

Cette option justifie néanmoins l'emploi d'un comparateur à hysteresis plutôt que celui d'un simple seuil, car chaque nouveau passage à travers le seuil (vers la position assise) relance le son. Une largeur d'hysteresis assez grande évite ce défaut.

Patch install09 .

Etape 4

Le spectateur s'en va. A nouveau la valeur du capteur est inférieure au seuil.

Utiliser le même change qu'à l'étape précédente et poser un sel 0. Cela permet de déclencher l'étape 4 lorsque le spectateur se lève.

La beauté de cette solution est qu'il n'y a pas besoin d'analyser la séquence des événements au cours du temps pour que la suite s'enchaîne proprement.

En effet, si le spectateur se rasseoit, le comparateur à hysteresis revoie la valeur 1, l'installation revient à l'étape 3 et l'étape 4 réapparaît quand il se lève. Si le spectateur s'en va vraiment, le comparateur reste à 0, la suite continue automatiquement (étape 4 de 10 seconde, retour à l'étape 1 d'attente).

Jusqu'à ce qu'un spectateur refasse l'étape 2, le comparateur reste à 0 : les valeurs envoyées par le capteur sont toujours inférieure au seuil, donc le change ne laisse rien passer jusqu'à ce qu'une nouvelle étape 3 soit déclenchée.

Donc, même si les étapes 2 et 4 partagent les mêmes valeurs de capteur, l'étape 4 ne peut pas être accidentellement déclenchée à la place de l'étape 2. L'étape 2 ne peut pas non plus remplacer l'étape 4 grâce à la fermeture du spigot du capteur.

Patch install10 .

Etape 5

La suite est automatique.

Rien à rajouter.

 

III - Projets suivants

Ils pourront être menés en binômes mais les notes seront individuelles. Les notes se feront sur rapport de projet, du même type que celui demandé pour le projet commun.

Les projets devront utiliser Pure Data au moins en partie. Ceratins pourront faire intervenir Processing. Si des étudiants travaillant sur leur propre portable souhaitent manipuler de la video, nous pourrons faire un tour rapide d'Isadora sur ces machines, outil bien plus rapide à prendre en main que PD. Les patchs de communication entre PD et Processing, ou entre PD et Isadora seront mis à disposition.

  • Pong
    • 2 capteurs
    • Affichage graphique en PG (Gem), Processing ou Isadora
    • Gestion des rebonds
    • Redémarrage automatique lorsque la balle est perdue
    • Eventuellement affichage des scores
    • Eventuellement lancement de sons lors de l'impact de la balle sur les raquettes ou les murs
  • Theremin
    • 1 capteur pour le pitch, éventuellement un autre capteur pour le volume ou pour un deuxième son harmonisé au premier
    • Utilisation d'un sample mis dans un buffer
    • Polyphonie, soundfiler
  • Suivi lumineux
    • Un capteur longue portée ou plusieurs capteurs courte portée
    • Suivi d'un spectateur se déplaçant le long d'un mur ou d'un couloir
    • Au moins 4 lumières s'allument pour le suivre, avec des crossfades
    • Changement de son pour chaque étape lumineuse
  • Fenêtres
    • Graphisme en PD ou Processing
    • Le spectateur s'approche d'un écran où est dessiné une fenêtre fermée. La fenêtre s'ouvre, les rideaux sont fermés.
    • Les rideaux s'ouvrent lorsqu'il est très près de l'écran. S'il hésite à cet endroit tout reste ouvert. S'il recule, les rideaux puis les fenêtres se referment lorsqu'il est loin de l'écran.
    • Lancer un son à chaque étape.
  • Musique en chaîne
    • Dispositif permettant d'explorer des morceaux de musique les uns après les autres
    • Un capteur sert à gérer le volume du son joué, un autre ou le même sert à passer d'un morceau au suivant
    • Le volume se matérialise sur une intensité lumineuse
    • Les sons choisis sont courts ou longs et se jouent en boucle jusqu'à ce que le joueur choisisse de changer de son
    • Eventuellement : affichage du nom ou numéro du son en cours de jeu
    • Ne pas utiliser gamelle.wav ou nixon.aiff...
  • Scanner lent
    • Un capteur sur un servomoteur ; Le servomoteur effectue un demi-tour.
    • Dessiner le profil des objets mesurés par le capteur
    • Graphisme préférentiellement en Processing
    • Eventuellement en 3D, avec 2 servomoteurs
  • Défilement d'images
    • Analyse de gestuelle/sens de passage avec 2 capteurs
    • Avancée dans une banque d'images dans un sens ou dans l'autre selon le geste détecté
    • Graphisme en Pd, Processing ou Isadora
    • Lancer un son au passage de la main
    • Eventuellement : La hauteur de la main, ou la vitesse de passage influence la durée du crossfade
  • Foule
    • Chaque fois qu'un spectateur entre dans une pièce, une nouvelle miniature apparaît sur un écran (un nouveau visage si possible)
    • S'il s'en va, une image disparaît
    • 2 capteurs pour détecter le sens de passage et faire un compteur
    • un son à chaque entrée, un autre à chaque sortie

 

************************

/|\(;,;)/|\

****************

 


Cours 06 << ~(oO) ~ >> Cours 08

 

Téléchargements :
Patchs Traitement de données : cours02.zip
2 sons et 2 images : media.zip
Patchs PD-Pg : cours03.zip
Patchs lampes : cours04.zip
Modules/exemple : cours05.zip
Patchs progressifs pour l'installation avec chaise : cours07.zip