Accueil Floss Manuals francophone

Puredata

Quelques objets utiles

Pour créer des objets, il suffit d'écrire du texte dans une boîte objet vide. Le texte est organisé en deux parties toujours séparées par un espace. Le premier mot définit le type d'objet et ceux qui suivent servent d'argument qui initialise l'objet en fonction de sa ou ses valeurs. Les exemples qui suivent illustrent ce principe.

[float] Nombres réels

L'objet [float] enregistre un nombre réel avec une virgule flottante. Il envoie ce nombre via sa sortie quand une information lui est envoyée par son entrée gauche. Si un nombre lui arrive par son entrée droite, ce nombre change sa valeur interne mais sans l'évacuer par sa sortie. Il permet donc de stocker de manière temporaire une valeur pour envoyer cette valeur par ailleurs au moment souhaité. L'exemple ci-dessous présente un compteur. Celui-ci commence à zéro, soit la valeur par défaut d'un [float], et il augmente de 1 chaque fois que nous cliquons sur le bouton "Bang".

counter.png

[list] Traitement des listes

Dans Pure Data, les messages peuvent être catégorisés en deux groupes :

  • les messages contenant des données directes ("bang", nombres, symboles, listes) qui sont la principale façon de communiquer ;
  • les messages contenant « tout le reste » et qui peuvent, par exemple, servir à changer des arguments de configuration des objets, lire et écrire des fichiers, quitter Pure Data, etc.

Ces derniers messages existent de sorte que des objets complexes ne nécessitent pas un grand nombre d'entrées et soient simples à configurer.

L'objet [list] permet de travailler des messages comprenant plus d'un élément en les ajoutant, les supprimant, les divisant dans la liste ou en extrayant le nombre d'éléments.

[loadbang] Initialisation de paramètre

L'objet [loadbang] génère un bang unique à chaque démarrage du patch, vers son unique sortie (outlet). Cela permet d'automatiser une action en envoyant un paramètre à un objet lorsque par exemple il ne permet pas d'inscrire celui-ci en argument. L'objet [loadbang] ne possède pas d'argument, il se déclenche une fois seulement.

[metro] Métronome

L'objet [metro] est un métronome dont nous pouvons contrôler le rythme. Il envoie un "bang" chaque x millième(s) de seconde. Nous spécifions sa longueur d'onde (= 1/fréquence) en argument. Par exemple, [metro 50] envoie une impulsion toutes les 50 millisecondes soit 20 impulsions par seconde.

Pour lancer le métronome, nous envoyons un "bang" ou un message [1< dans l'entrée de gauche du métronome. Pour modifier le rythme, l'argument est envoyé dans son entrée de droite. Cette opération arrêterait le métronome s'il fonctionnait. L'envoi du message [0< dans l'entrée de gauche a en général pour effet de l'arrêter, ou nous pouvons encore utiliser un [toggle] comme interrupteur.

[pack] et [unpack] Traitement de listes de messages 

L'objet [pack] permet de rassembler des messages et [unpack] les sépare.

messages04.png

messages07.png

[print] Afficher du texte dans la console

Cet objet imprime les messages qui lui sont envoyés dans la fenêtre de la console et vous permet ainsi de voir l'ordre et le contenu des messages qui lui parviennent : ceci est très utile pour contrôler le bon déroulement des opérations. L'argument qui vient après "print" dans l'objet est une étiquette qui sera ajoutée en début de ligne lors de l'impression des messages, et il permet de différencier plusieurs messages imprimés dans la fenêtre de la console.

[route] Aiguillage de données

Cet objet permet de sélectionner le chemin emprunté par les messages en fonction du premier atome du message (c'est-à-dire la première partie des messages qui sont des nombres). Les arguments de "Route" déterminent le type des messages attendus et permettent de les comparer aux entrées.

Dans l'exemple ci-dessous, s'ils ne correspondent pas, ils sortent par la sortie de droite, sinon les chaînes de caractères qui suivent les atomes dans les messages sont imprimées dans la fenêtre de la console grâce à [print].

route.png

[select] Comparaison de valeur

[select] permet de comparer l'entrée d'une valeur dans l'objet à une valeur ou à un nombre donné de valeurs définies comme arguments. Si la valeur entrée est égale à l'une des valeurs argumentées dans "Select", un "Bang" est émis dans la sortie correspondante. L'ordre des "Bangs" suit l'ordre des valeurs argumentées dans "Select". Les valeurs qui ne correspondent pas à celles testées sortent non transformées dans la sortie de droite.

select_nbr.png

[select] peut prendre des symboles comme arguments. Le premier argument détermine le type de donnée qu'il attend (float ou symbol). Si [select] (qui peut être abrégé en [sel]) est créé sans argument ou avec un seul argument, l'entrée de droite de [select] sert à fixer cet argument avec un « nombre » et ceci permet de modifier l'argument en intervenant par ailleurs dans le patch.

select_simpl.png

[spigot] Interrupteur de flux

L'objet [spigot] permet de créer des interrupteurs qui bloquent ou laissent passer le message.

spigot.png

L'entrée de droite ouvre le canal lorsqu'il reçoit 1 et le ferme avec 0. L'exemple ci-dessus fait passer alternativement les données à droite ou à gauche lorsqu'on clique sur le "Bang".

[symbol] Chaines de caractère

L'objet [symbol] fonctionne de la même manière que [float] pour des symboles (chaînes de caractères).

[trigger] Déclenchement contrôlé

L'objet [trigger] est un objet très utile pour contrôler l'ordre des opérations que l'on doit effectuer. Celui-ci prend une valeur d'entrée, convertit cette valeur en fonction des arguments (soit les arguments : float, bang, symbol, list et/ou anyting) et sort les nouvelles valeurs dans les sorties, en commençant par sa sortie la plus à droite et en terminant par celle la plus à gauche.  Il est à noter que le nombre de sortie (outlet) varie selon le nombre d'argument ajouté.

trigger_1.png