Chaque état est concrétisé par
bang
.t b b b b b b b
qui permet de régler plusieurs paramètres en assurant un ordre temporel si jamais c'est nécessaire. Sorties surnumémaires : anticiper des corrections futures pour ne pas avoir à recâbler.s
envoyant à leurs cibles les réglages spécifique de l'état.Par rapport au schéma fonctionnel, cette page s'occupe des bulles = états.
Suivre le schéma des états pour paramétrer les changements.
line
. Le message 0., 1. 30000
signifie un retour instantané à 0 puis une augmentation vers 1 sur 30 s. Les points signalent que les nombres sont en float. Le paramètre 0 dans l'objet line 0.
signifie que la rampe est calculée en float et non en integer.s choixvisuel
.1., 0. 30000
envoyé sur un autre objet line 0.
.s lum
. Le calcul doit combiner deux flux de données différents :
La rampe est déjà entre 0. et 1., donc compatible avec le message brightness
s'adressant à l'objet jit.brcosa
.
Les valeurs du capteurs subissent une transformation d'échelle grâce à l'objet scale
afin de les rendre directement compatibles avec brightness
.
scale 0 127 0.3 1.
= scale min d'entrée max d'entrée min de sortie max de sortie
En entrée le capteur va de 0 à 127.
En sortie, la luminosité varie de 0.3 à 1.0. Le choix de ne pas descendre à 0. permet de conserver un affichage même si les valeurs du capteurs sont très faibles.
Les deux fluctuations sont combinées grâce à une multiplication avec l'objet * 1.0
. Il faut explicitement donner 1.0 en argument afin que l'opération se fasse en float (sinon le résultat est 0 ou 1).
Notion d'entrée froide et entrée chaude : Bases de Max / Environnement
L'objet * 1.0
a une entrée froide passive à droite et une entrée chaude active à gauche.
Le flux d données provenant du line
est régulièrement actualisé au cours des 30 secondes. Il donne donc un rythme de mise à jour de la luminosité sans à-coup et se branche sur l'entrée chaude du * 1.0
.
Le flux du capteur en revanche change seulement si le phaser bouge, il se branche donc sur l'entrée froide. S'il ne change as, c'est la dernière valeur envoyée qui reste prise en compte pour la multiplication.
Un test manuel lent dans l'ordre des états montre un fonctionnement correct de l'ensemble des états.
Néanmoins un test rapide, ou bien un test dans le désordre montre qu'il existe en fait une interférence : si le line
de l'état 2 n'est pas terminé lorsqu'un autre état est choisi, la luminosité et parfois le volume sont affectés par le line et par les fluctuations du capteur pyro.
Il faut donc limiter ces réglages à l'état 2.
La solution est d'envoyer un message stop
sur l'objet line
. Comme il active l'entrée chaude de l'objet *
, par la même occasion cela coupe les fluctuations du capteur pyro.
Il est prudent d'envoyer ce stop
avant tout réglage sur le volume ou la luminosité, donc de le placer complètement à droite du t b b b b b b b
général. Le stop est déclanché via l'objet s noline
.
Remarquons aussi que l'état 4 n'est pas propre : il est possible de conserver un son résiduel si justement le line de l'état 2 est encore actif. Il empêche le volume d'être à 0. Une commande d'arrêt du son via s arret
règle tous ces soucis.
L'arrêt du line de l'état 2 est généralisé à tous les autres états via un objet s noline
placé le plus à droite du trigger général. Cela évite toute interférence sur les volumes et luminosités.
Enfin, le message clear
de l'état 1 fonctionne si le visuel était auparavant une image fixe mais pas si c'est une video, qui continue à se jouer après 1 frame noire. Il faut commencer par envoyer un message stop
à l'objet jit.movie
, puis le message clear
. Cela se solutionne avec un t b b
qui garantit le bon ordre des 2 messages.