September 12, 2007 Archives

12 septembre 2007 09:16 am

Compte-rendu de la journée de formation du 8 septembre 2007 à Mains d'OEuvres -

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...

Posted by pascsaq | Permanent Link