Programmation

Les codes et programmes d’Interface-Z

Accueil > Outils > Traitement des données > Analyse > Double comparateur en Pure Data

Double comparateur en Pure Data

Mis à jour le mercredi 31 mai 2017, par zandrine

Explications générales : index.

Le double comparateur est présenté ici utilisé avec un capteur pyroélectrique analogique.

Double seuil : deux techniques possibles

Dans cet exemple, la réception des données du capteur se fait par l’objet ctlin. Le numéro de Control Change réellement utilisé dépend de l’interface sur laquelle le capteur est branché (par exemple sur la première entrée d’une carte "2 Analogiques" ou ZIP pour ctlin 0, d’une carte "8 analogiques" pour ctlin 32 ou d’une "4 analogiques" pour ctlin 48).

Les données issues du capteur sont affichées un slider et un nombre (voir la page de l’interface à capteur pour l’affichage des données au cours du temps, ou la page Registre à décalage). Les seuils choisis sont 59 et 66. Ces seuils sont à ajuster en fonction du comportement du capteur en situation réelle.

Capteur pyro.
pyro01.pd
- Double seuil

Première méthode : comparateurs

Les données sont comparées aux deux seuils avec les objets de comparaison "inférieur à" et "supérieur à". Si la donnée est au-delà de ces seuils, c’est-à-dire inférieure à la valeur basse ou supérieure à la valeur haute, l’objet de comparaison envoie "1" sur sa sortie. Si c’est faux, il envoie "0".

L’objet "select" est utilisé pour ne tenir compte que des apparitions de "1".

Deuxième méthode : moses

L’objet moses sépare le flux des données par rapport à un seuil : il envoie sur la sortie de gauche ce qui est inférieur et sur celle de droite ce qui est supérieur. En cascadant deux moses, le double seuil apparaît. Les données qui nous intéressent sont celles qui sont inférieures au seuil le plus bas = sortie gauche du premier moses, et celle supérieures au seuil le plus haut = sortie droite du deuxième moses.

Déclenchement unique lors d’un passage

Lors d’un passage devant le capteur, le double seuil envoie des réponses positives, c’est-à-dire des "1" pour les comparateurs ou des flux de nombres pour les moses. Ces réponses activent un objet "onebang". Celui-ci permet de ne prendre en compte que la première réponse d’un flux de données, pour éviter les béguaiements, inévitables sinon.

C’est un objet intéressant lorsque le capteur sert à déclencher un son ou une video (ou une séquence définie d’actions quelconques). Il suffit alors de le réactiver sur sa deuxième entrée lorsque l’action est finie ou lorsqu’un délai minimal ininterrompu s’est écoulé.

Exemple de déclenchement et délai

En tant qu’exemple d’action déclenchée par capteur, le patch imprime "Action !" lorsque le capteur détecte un mouvement, avec inactivation de l’action pendant une 800 millisecondes après le print. Cela est certes très simple, mais peut facilement être remplacé par n’importe quelle action complexe sur un son, une video, un comportement 3D, etc.

Capteur pyro.
Double seuil - pyro02.pd

Exemple de déclenchement de son

Ce patch déclenche la lecture d’un son (son.aif) lors de l’activation du capteur. Le son est lu une seule fois jusqu’au bout grâce au onebang qui bloque tout déclenchement ultérieur. Il est possible seulement ensuite de relancer ce son car le bang de fin de lecture du readsf est câblé sur l’entrée reset du onebang.

Capteur pyro.
Double seuil - pyro03.pd