Intitulé : initiation à Pure Data,
Niveau 1
"Cette journée est destinée aux débutants qui n'ont jamais
ouvert de logiciel de gestion d'évènements multimédia temps réel.
Il est nécessaire d'apporter un ordinateur pc ou mac portable. La
journée commence par une présentation du logiciel, accompagnée
d'exemples multimedia divers, suivie par une installation correcte
du logiciel sur toutes les machines. L'apprentissage se fait
ensuite au pas-à-pas, en suivant une progression lente de manière à
bien intégrer les bases."
Voir : http://www.craslab.org/
Remarque personnelle : l'intitulé de cette formation n'était pas
vraiment en accord avec le but réel de cette journée. Ce qui m'a un
peu obligé à faire une formation accélée...
Nombres de participants : 16.
Durant cette première journée de formation (et première expérience
pour moi en tant que formatrice), j'ai essayé de présenter le plus
globalement possible les fonctionnalités et concepts essentiels de
puredata. Pour chacun des concepts aperçu, j'ai tenté d'y adjoindre
une application concrète. L'objectif de départ était imposé par le
fait que cette journée d'initiation devait servir de base à la
bonne compréhension des cours du soir qui vont suivre durant ce
trimestre (septembre à décembre 2007). Je devais intégrer un
certain nombre d'objets essentiels, que nous avions prédéfini lors
des deux journées qui ont servi à la préparation de ces cours; voir
http://www.craslab.org/coursdusoirPD/
Les objets prédéfinis étaient les suivants :
- Fonctions générales: Bang/ Print/ Loadbang/ Toggle/
slider&number/ Objets math (+-/*=>...%)/ Metro/ Random/
Delay/ Timer/ float/ Symbol/ Int/ pack/ unpack/ min/ max/ keyup/
Select/ Route/ Trigger/ spigot/ moses
- Fonctions audio : adc~/ dac~/ osc~/ noise~/ phasor~/ line~/
vline~
Fonctions image : gemwin(0, 1, dimen, offset, border,color,create,
destroy)/ gemhead/ worldlight/ modèles 3D (square, circle etc)/
color/ rotateXYZ/ translateXYZ/ scaleXYZ/ text3D/ openpanel/
pix_image/ pix_texture/ pix_film/ pix_video
J'ai donc préparé une série de cours dans lesquels étaient intégrés
ces objets.
Cette journée d'initiation niveau 1 s'est donc déroulée de la
manière suivante :
Dans une toute première partie, j'ai présenté brièvement puredata à
l'aide du document de Jérome Abel :
PureData_initiation_fr.pdf
Les participants avaient à leur disposition des CDs contenant la
version pd-extended-39.3 qu'ils ont pu installer sur leur machine.
Seul l'un d'entre eux a eu un problème d'installation (hardware
incompatible). Puis -> installation et vérification du
chargement des "libraries".
cours1-0.pd
Les bases, l'addition, le bang graphique, le bang objet, le bang
message, [trigger], notion d'entrée chaude, entrée froide...
L'objet [print]... Ordre des connections, la lecture d'un patch (de
droite à gauche).
cours1-1.pd
Les objets arithmétiques +, -, *...[int] et [float], [mod] et
[pow]
cours2-0.pd
Nous avons ensuite abordé les compteurs - différence entre patch,
sous-patch et abstraction; l'objet [metro] et faire une boucle...
[loadbang]... Et [init] (différences entre les deux).
cours2-1.pd
Rapide survol de symbol, on voit également assez rapidement
[moses], [route], cours surtout orienté sur quelques unes des bases
de la programmation -> si...alors et un exemple concret en
puredata ou... Comment traduire les structures de contrôle (bases).
J'ai essayé d'être la plus claire possible dans cette partie là et
ça n'était pas simple... Il y avait beaucoup de concepts à intégrer
à la fois.
cours2-2.pd
[timer], [min], [max]... Mais je n'avais pas beaucoup d'exemples
concrets à présenter -surtout pour [min] et [max]... J'ai traité
dans ce cours les objets de manière individuelle sans les raccorder
à des exemples concrets d'applications (par manque de temps)...
Ainsi que [delay]... et [random]. Je devais les intégrer
ultérieurement à des exemples concrets mais nous n'en avons pas eu
le temps; nous avons vu également [key], [keyname] et [keyup]... Le
but : savoir que ces objets existent...
cours3-0.pd
Premiers pas avec Gem... Création d'une fenêtre et destruction. On
voit dans ce cours [gemhead], [gemwin] et les messages basiques
qu'on peut leur attribuer. L'objet [rotateXYZ], [color], et un
premier objet géométrique 3D [cube]; on associe un compteur et on
fait tourner un cube sur lui-même...
cours3-1.pd
On améliore le patch précédent avec [select]; les messages qu'on
peut envoyer à [gemwin] sont vus en détail...
cours3-2.pd
[world_light] et [translateXYZ]
cours3-3.pd
Dans ce cours, je présente très succinctement les différents objets
géométriques 2d et 3d... Je laisse à chacun la possibilité
d'utiliser les patches d'aides pour comprendre comment ces objets
fonctionnent. L'exercice final que j'avais préparé leur demandait
de choisir un de ces objets et de le mettre en oeuvre...
Ensuite à la demande d'une participante, je donne un exemple
d'utilisation de [pix_film]... Puis je passe à la partie sonore...
Mais c'est déjà la fin de la journée!!!
cours5-0.pd
[osc~] et [noise~]
cours5-1.pd
Pour terminer de la manière dont nous avions commencé : additionner
non plus des valeurs numériques mais des fréquences; la synthèse
additive brièvement. Les opérateurs numériques [+~], [-~] etc. sur
les données sonores... Le ~ et la ficelle grasse...
cours5-2.pd
On expérimente avec [line~], [vline~], [select] et [moses]...
Tous les cours sont là : http://cuneiform.free.fr/C.R.A.S./
Remarques personnelles :
Comme c'était la première formation que je donne, j'ai pu remarquer
certaines choses, attitudes qui me sont propres et que je peux et
dois corriger. D'une part, on ne peut ni jouer, ni sur-jouer quoi
que ce soit, tout "semblant" est immédiatement découvert. C'est
comme une expérience de mise à nu de quelque chose (en l'occurence
ici, de mon expérience avec puredata). Toute lacune ou
approximation est immédiatement repérée.
- Le moindre "détail" est important car il peut être l'objet d'une
interrogation, d'un questionnement important pour quelqu'un
d'autre.
- Pas d'approximation possible.
Sinon :
- Quels codecs vidéo exactement.
- Les fonctions conditionnelles en C. Je dois réviser un peu mes
bases en prog.
- Les faire patcher en même temps que moi.
- Expliquer oralement ce que je fais, et commenter les patches et
les objets au fur et à mesure (ça évite les temps morts et le
"décrochage" de l'attention).
- Commentaires utiles et conventionnels pour donner de bonnes
habitudes dès le départ.
- Et patcher, patcher, patcher...