Accueil Interface-Z - Produits - Programmation - Formations - Conseils - Contacts - Liens


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


 


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.

 

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

/|\(;,;)/|\

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

 


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