PatchsTableau résumé- Matériel / Logiciel / OutilsLogiciels et langages- Pure Data- Max MSP- Isadora- EyesWeb- VVVV- Processing- UsineTraitement de données- Outils- Filtres pour capteurs- Communication OSC, ponts entre logicielsDidacticiels- Réception en Midi- Pure Data / Gem- Proxi Mini + SonMatérielAutonomes- ZIP Z Interprêteur de PatchCaptationInterfaces sans fil- Mini-HF vers Midi- WiwiInterfaces filaires- 12 Ana / 16 Num- 16 capteurs OSC- 8 Ana / 8 Num Midi 2003- 2 Analogiques- 1 AnalogiqueCapteurs autonomes- Télémètre simple- Télémètre synchro- Tapis sensitif- RFIDCapteurs simples- Capteur piezo- Capteur pyro- Capteur Vitesse Doppler- Proxi Mini + SonCommunication- Midi vers DMX- Booster / Split / MergerActionActionneurs autonomes- 2 Servo / 4 Lampes- 8 Ana Out 0-10V- 8 Servo 128 pas- 8 Servo 3500 pas- 64 LEDCommande - Cartes filles- 8 Transistors- 8 Relais 2RT / 1RT / Reed- Inversion de moteurs![]() |
Pure-Data - EtapesPour télécharger un patch, clic droit sur l'image et choisir "Enregistrer la cible sous...". Les patchs présentés dans cette rubrique sont destinés aux débutants en Pure Data. Ils ont été utilisés lors de l'atelier "PD - EyesWeb" à l'Espace Mendès France de Poitiers des 15 et 16 avril 2005. 01 - Entrée chaude, entrée froide, trigger, bang 01 - Entrée chaude, entrée froide, trigger, banga - Slider et nombreExplorez les propriétés des sliders et nombres : clic droit / Properties. La possibilité de limiter les nombres utilisés entre un minimum et un maximum est très utile. b - Entrée chaude et entrée froide - Zone roseBang : un message bang provoque l'activation des éléments (objet, nombre, message) sur lesquels il est connecté,
il déclenche un événement. Dans le patch fourni, un nombre est connecté à chaque entrée du +. Faire varier les deux nombres en entrée du + et observer... L'ordre dans lequel les entrées d'un objet sont utilisées est extrêmement important. Quand le nombre de l'entrée chaude varie, il est immédiatement ajouté à celui de l'entrée froide. Quand le nombre de l'entrée froide varie, il est conservé en mémoire, mais l'opération n'est pas effectuée et le total sous l'objet + ne change pas.
c - Trigger - Zone bleuetrigger bang float = t b f : cascade des événements dans un ordre précis. L'objet trigger provoque l'envoi ponctuel de quelque chose. Ce quelque chose peut être un bang (b), un nombre (f), un symbol (s), une list (l) ou anything (a, n'importe quoi qui entre dans l'objet). Nous l'utilisons ici avec un bang et un nombre. Un trigger séquentiel envoie plusieurs informations quasi simultanément mais dans un ordre précis. Les sorties du trigger sont activées successivement de la droite vers la gauche. Ici, le trigger prend en entrée un nombre. Il est automatiquement activé à chaque changement de ce nombre. Le f du trigger transmettre d'abord ce nombre, le b envoie ensuite un bang. Cet objet permet de transformer l'entrée froide du + en entrée chaude : la somme est calculée quand n'importe lequel des deux nombres en entrée du + est modifié. 02 - Print - Profondeur d'aborda - PrintObservez la fenêtre texte de PD en faisant varier les deux nombres. Print permet de contrôler ce qui se passe. Il s'exprime dans la fenêtre Dos / Terminal. C'est un objet très utile pour chercher les erreurs dans un patch et pour comprendre étape par étape ce qui se passe le long d'une chaîne de calcul. Il permet aussi de voir dans quel ordre sont exécutés les objets. Par exemple ici, le print marqué nb apparaît toujours avant celui qui est marqué sortie. b - Indétermination apparenteCe patch permet de voir l'utilité du trigger pour maîtriser l'ordre des événements. En effet, les print marqués nb sont toujours affichés avant le print sortie grâce au t f f, mais l'ordre n'est pas aussi déterminé pour les print nb, nb2 et nb3. La deuxième sortie f, la plus à gauche, n'est connectée qu'à une chaîne d'objets mais la première sortie f, la plus à droite, est connectée sur deux chaînes d'objets différentes. Selon comment les patchs ont été construits, l'ordre d'affichage des print peut être : nb ou bien : nb2 alors que les patchs paraissent identiques. En fait, l'ordre d'exécution n'est pas indéterminé mais dépend de l'ordre dans lequel les ficelles ont été tirées à partir du trigger. Les objets liés à la première ficelle dessinée sont exécutés en premier. Si les ficelles sont effacées et reconnectées dans un autre ordre, l'ordre des print change... Cet exemple montre qu'il vaut mieux toujours utiliser un trigger séquenciel plutôt que de brancher plusieurs ficelles sur une même sortie, dès qu'un ordre logique doit être respecté dans l'activation des objets. c - Profondeur d'abordCet exemple permet également d'aborder l'idée de profondeur d'abord, inhérente au fonctionnement de PD. Attention, les autres logiciels de gestion temps réel ne fonctionnent pas forcément sur ce principe. Lorsqu'un objet (appelé ici premierobjetdupatch) a plusieurs sorties, des enchaînements parallèles d'objets y sont connectés. Ces chaînes de connexions peuvent être consituées d'un ou deux objets ou bien de multitudes d'éléments et de sous-patchs. On peut imaginer différentes façons d'activer ces objets : par exemple, tous les objets branchés directement sur premierobjetdupatch sont exécutés, puis tous les objets branchés sur ces deuxièmes objets sont exécutés, puis tous ceux qui dépendent d'une troisième génération de branchement, etc. Ce n'est pas ainsi que cela se passe dans PD. Lorsque premierobjetdupatch est activé, il entraîne l'activation d'un premier élément en sortie. Ensuite, tous les objets qui sont connectés à ce premier élément sont exécutés. Tant qu'il y a des objets connectés sur des sorties d'une chaîne, l'activation se continue et se propage sur cette chaîne (y compris dans ces propres embranchements et sur le même principe). Quand il n'y a plus de connexion sur les sorties, PD rend la main au premier objet qui a appelé la chaîne premierobjetdupatch et à qui il reste des sorties connectées sur quelque chose. La sortie suivante de premierobjetdupatch, et tout ce qui en découle, est alors activée.
03 - DélaisL'argument est un paramètre que l'on écrit après le nom de l'objet lorsqu'on veut lui donner une valeur fixe. Par exemple dans delay 5000, delay est l'objet et 5000 l'argument, qui correspond à un nombre que l'on peut aussi envoyer par la deuxième entrée de l'objet. Certains objets acceptent plusieurs arguments. L'objet delay provoque une attente de la durée donnée dans l'argument ou dans l'entrée de droite. La durée est indiquée en millisecondes. Un bang sur un delay en cours le réinitialise sans provoquer de sortie. Delay est activé par un bang ou par un message ou bien une variation de nombre en entrée. En sortie, il envoie systématiquement un bang. Un message stop en entrée l'arrête. L'objet pipe transmet en décalé tout ce qui lui arrive. Le décalage est donnée par l'argument ou par l'entrée de droite (en millisecondes). Tester ces deux objets en les activant rapidement ou lentement pour voir leur différence de fonctionnement. Dans ce patch, un bang graphique est utilisé pour visualiser l'effet des objets. C'est un carré contenant un disque, qui change de couleur quand le bang est activé. Cet objet visuellement pratique est néanmoins à éviter pour autre chose qu'un contrôle au cours de la création d'un patch, car il est beaucoup plus lent à exécuter qu'un simple message bang.
04 - Métronomea - Le toggleLe toggle envoie une valeur différente de 0 une fois lorsqu'il est activé et un 0 lorsqu'il est désactivé. Par défaut la valeur envoyée à l'activation est 1. Il permet par exemple de lancer et d'arrêter un metro. Il est activé soit par un clic sur le carré soit par l'arrivée sur son entrée d'un bang ou d'un quelconque nombre différent de 0. Il reste activé si d'autres nombres non 0 continuent à arriver. Il est désactivé soit par un 0 soit par un bang. Les messages bang donc alternativement l'activent et le désactivent. Le toggle peut éventuellement être remplacé par deux messages, 1 et 0.
b - L'objet metroL'objet metro crée un métronome : une fois activé, il envoie régulièrement un bang à la fréquence donnée par son argument en millisecondes. Un metro 3000 envoie un bang toutes les trois secondes. Il peut être contrôlé par un toggle : l'activation du toggle lance le metro, son inactivation arrête le metro. Le metro peut aussi être lancé par un bang, mais pas être arrêté par un bang suivant. Un autre bang décalera le metro dans le temps en donnant le moment de l'appui comme instant de départ. Enfin, le metro peut être contrôlé par des nombres : un 0 l'arrête alors que n'importe quel autre nombre se comporte comme un bang et relance le chronomètre. c - Comportement de delay et pipe selon la fréquence du metroActiver les deux metro et observer ce qu'il se passe au niveau des bang. Désactiver les deux metro et observer le résultat, comparer delay et pipe. Le metro 2000 envoie un bang toutes les deux secondes, comme on le voit sur le bang graphique qui lui est directement connecté. Les deux bang du dessous se comportent de façon identique : celui qui est branché sous le pipe 500 comme celui qui est sous le delay 500. Ils sont activés une demie-seconde après que le metro ait envoyé son bang. Le metro 500 envoie un bang toutes les 0,5 secondes. Le comportement de delay et pipe est maintenant différent. Sous le pipe 2000, le bang commencent à pulser deux secondes après le lancement du metro puis envoie régulièrement des bang toutes les demie-secondes. En revanche, le bang sous le delay 2000 reste muet. En effet, il n'est jamais activé car le metro le relance tout le temps avant qu'il soit arrivé à la fin de ses 2 secondes. Lorsque l'on arrête le metro 2000, on voit un dernier bang arriver sous pipe et delay 0,5 seconde après la fin du metro. Lorsque l'on arrête le metro 500, le bang sous le pipe continue à pulser pendant deux secondes puis s'arrête. Le bang sous le delay, quant à lui, est enfin activé une seule fois, 2 secondes après la fin du metro : le dernier lancement du delay n'a pas été interrompu et il peut aller jusqu'au bout.
05 - Changements de duréea - Changement manuel de l'argumentIl suffit de réécrire la durée dans les objets delay, pipe et metro pour changer leur comportement. Cependant, si c'est faisable lors de test, ce n'est pas très pratique, en particulier pour le metro qu'il faut à ce moment désactiver et réactiver pour qu'il prenne le changement en compte. b - Changement de durée par l'entrée droiteL'objet loadbang envoie un bang à l'ouverture du patch. Dans notre cas, il active des messages pour configurer les durées de delay et pipe. Bon, dans ce cas précis il y a peu d'intérêt à utiliser un loadbang puisque la durée inscrite en argument dans les objets est la même. Un nombre connecté à l'entrée droite permet de changer la durée. L'affichage de l'argument ne change pas, alors que la durée prise en compte a varié. Il ne faut donc plus se fier à l'argument écrit une fois que la durée a été modifiée. Toute modification par l'entrée droite devient permanente jusqu'à la fermeture du patch ou la modification suivante. La multiplication par 10 avant d'entrer dans l'objet permet d'amplifier l'effet des variations et de les rendre plus visibles. La nouvelle durée est prise en compte seulement après que l'ancienne soit arrivée à terme et que le bang ait été envoyée. Faire varier la durée du metro et observer l'effet sur le delay. Selon que le metro est plus rapide ou plus lent que le delay, celui-ci se finit ou pas. c - L'objet randomRandom envoie un nombre au hasard entre 0 et son argument - 1. Ici par exemple, quand le métro envoie un bang sur random, celui-ci donne un nombre entre 0 et 2999. La sortie du random étant connectée sur l'entrée droite du metro, la durée entre les bangs change continuellement. Etape par étape : Lorsque le toggle est activé, le metro démarre avec 1500 comme paramètre. Un premier bang est immédiatement envoyé au random, qui donne par exemple 2144. Le 2144 est enregistré dans le metro, mais celui-ci envoi son deuxième bang à 1500 ms, avant de prendre en compte 2144, qui sera la durée utilisée ensuite pour le troisième bang. Il y a donc toujours un décalage d'un intervalle entre la valeur affichée pour le random (ajouter un nombre sous le random pour vérifier) et la valeur prise en compte par le metro. < Sommaire - Suite des étapes >
|