Historique: puredata
Aperçu de cette version: 74
Table des matières
1. Présentation
Historique
En 1988, un certain Miller Puckette crée un environnement de programmation en mode graphique, destiné au son et à l'image, qu'il nomme Patcher. Il est ensuite cédé à l'entreprise Opcode, où il sera réécrit par David Zicarelli, et renommé Max/MSP. Miller Puckette décide ensuite de reprendre les améliorations de ce dernier et de poursuivre ainsi le développement de Patcher, afin d'en faire un logiciel libre: Pure Data.Fonctionnement
Donc Pd est un environnement de programmation orienté objet. Que les non-développeur-euse et les allergiques aux code et à la ligne de commande ne fuient pas à ces mots, on peut tout à fait utiliser Pd, même de manière avancée, ne sachant pas ce qu'est une classe ou une instance: Pd est en mode graphique, austère certes, mais très visuel. Vous n'aurez pas à apprendre et à taper toute une syntaxe complexe et contraignante, puisque tout est fait par des liens graphiques entre les objets et les messages.Mais alors que peut on faire avec Pd?
Tout, ou presque tout... De la synthèse au traitement sonore, de la diffusion à l'analyse: on peut en fait créer son propre logiciel selon ses besoin. Inutile de réinventer la roue, Ardour fait très bien l'enregistrement multipiste, mais si le coeur vous en dit, Pure data le pourrait également. De même que Max/MSP a Jitter, Pure Data à GEM pour travailler de la même manière avec l'image: animation, effets vidéos en temps réel etc...Pd gère le midi, ce qui vous permettra, outre de jouer des note, d'interagir avec lui à partir d'une surface de contrôle par exemple, ou une tablette. Certains objets vous permettent d'accéder au réseau, et donc à Internet.
Cette page vise à expliquer les points essentiels du logiciel, et en particulier les spécificités de son utilisation sur Linux, mais en aucun cas à vous apprendre à l'utiliser. C'est pourquoi le chapitre qui suit vous fournira un extrait des ressources foisonnantes sur le sujet.
Apprentissage, ressources et liens
Voici un échantillon de tout ce que l'on peut trouver de bon sur le sujetTéléchargement et sites officiels
- Site officiel de Miller Puckette, développeur de Pure Data
http://crca.ucsd.edu/~msp/
- Site officiel de la communauté Pure Data
http://puredata.info/
- Le site de Hans-Christoph Steiner, qui a beaucoup contribué au projet: on y trouve également des paquets pour certaines distributions
http://at.or.at/hans/pd/
- La page ftp d'auto-build: les dernières versions en développement compilées régulièrement et automatiquement, avec des paquets pour Debian et Ubuntu, ainsi que pour des OS propriétaires
http://autobuild.puredata.info/auto-build
Tutoriels et apprentissage
Il existe une multitude de tutoriels et de manuels de grande qualité. Le plus simple est de commencer avec ceux livrés avec Pd et ses bibliothèques: dans Help, choisissez Browser.... Dans 1.Manual/, vous trouverez le manuel officiel en html, qui explique très bien le principe, en anglais. Il se trouve également sur cette page du site de la communauté. Il existe cette documentation francophone écrite par Jérôme Abel, qui malgré son age (de la documentation, pas de M. Abel) reste tout à fait actuelle, puisque la base de Pd n'a pas tant changé.Si l'on fouille d'avantage dans cette précieuse aide, on trouvera plein de ressources, qui présentent l'avantage d'être sous forme de patchs, donc interactives. Vous remarquerez que beaucoup de tuto sur Internet sont conçus de la même façon. Chaque bibliothèque propose des patchs-exemples de leurs objets. Notez également qu'il est toujours possible d'accéder au patch d'aide d'un objet en cliquant-droit sur celui-ci et en sélectionnant Help.
Sinon:
- Les listes de discussion officielles, très réactives et qui comptent de nombreux-ses participant-e-s, dont les développeurs du logiciel
http://puredata.info/community/lists
- L'Association Impala Utopia: d'excellents tutoriels, ainsi que des supports de cours (ceux-ci sont parfois inutiles hors contexte), tout en français
http://impala.utopia.free.fr/pd/
- Tutos et manuels en anglais de Floss Manuals
http://en.flossmanuals.net/puredata
- Une série de ressources en français chez Labomedia
http://archive.labomedia.net/formpdaud092005.htm
- Pdpedia, le manuel wiki de Pd en français... malheureusement pas très fourni, pour ne pas dire totalement creux... Mais il ne tiens qu'aux Pidistes que vous êtes ou que vous deviendrez de le rendre intéressant et attractif! Pdpedia existe en différentes langues, dont certaines sont plus abouties que d'autres.
http://wiki.puredata.info/fr/Accueil
Forums
- Forum en français
http://codelab.fr/
- Forum en anglais
http://puredata.hurleur.com/index.php
2. Installation
Il existe principalement deux versions officielles du logiciel: Pd-Vanilla et Pd-Extended. Le première est la version originale de Miller Puckette "nue", intégrant le cœur et les principales fonctionnalités. La deuxième, comme son nom l'indique, est une version étendue, comprenant un certain nombre de bibliothèques, amenant une multitude d'objets supplémentaires.A vous de choisir, en fonction de vos besoins: l'utilisation d'externals (objets de librairies additionnelles) posent parfois un souci de portabilité, si votre patch devra être utilisé sur plusieurs plateformes/ordinateurs différents, alors que si vous en faite une utilisation poussée, la version de base pourra vous sembler limitée. En tous les cas, on trouve sur le site de la communauté des paquets pour plusieurs distributions courantes. Les dépôts de votre distribution proposeront sans doute au moins Pd-Vanilla, peut-être dans une version antérieure. Il vous est évidemment possible de le compiler vous-même à partir des sources, bien que cela peut s'avérer fastidieux si vous décidez d'accompagner Pd de nombreuses bibliothèques.
❗ Vous constaterez qu'il n'y a pas de paquets pour les architectures 64bit: en effet, Pd pose un certain nombre de problèmes sur ces systèmes. Pd-Vanilla 64bit est présente dans les dépôts d'Ubuntu, mais il faut compiler les librairies soi-même. ce qui ne va pas sans peine (tout ce qui est en lien avec flext apparemment).
- Jusqu'à Ubuntu (Studio) 9.04, on trouve la version 0.41.4 dans les dépôts (si elle n'est pas déjà installée). Le paquet Pd-Extended est téléchargeable sur le site de la communauté.
- Pour Ubuntu 9.10, Pd-Extended n'existe pas, du à des changements de paquets sur cette version dont Pd dépend. On peut installer les auto-build: il s'agit de paquets ou binaires des dernières versions en développement, compilés automatiquement et régulièrement. Il est possible de remonter dans les archives et choisir une version connue pour être stable. Mais dans la mesure du possible, il vaut toutefois mieux utiliser un paquet officiel pour sa distribution.
- On trouve également sur le ftp des auto-build des paquets pour Debian, les dernières versions de développement de Pd-Vanilla, et des binaires pour d'autres OS propriétaires.
- Sur Musix 2.0 la version installée est la 0.41.4 (Vanilla).
- Avec synaptic sur une autre distribution de type Debian , faire une recherche avec Pure Data ou puredata. Sinon se connecter en tant que Root en mode console et faire un Copy to clipboardapt-get install puredata
- Pour Apodio (et distribution Mandriva), voici le lien pour le télé chargement du Rpm : http://www.apo33.org/raccorps/article.php3?id_article=14 ou alors essayez en mode console Root Copy to clipboardurpmi puredata
- Pour Gentoo, il faudra récupérer l'overlay via layman ou subversion, de la même manière que le pro-audio overlay.
http://linuxmao.org/tikiwiki/tiki-index.php?page=gentoo_mao#2_5_Installation_via_svn
3. Lancement et réglages
Démarrage
On peut lancer Pd soit avec le lanceur si le paquet de votre distribution le prévoit, soit en ligne de commande :Copy to clipboard
pd
Intéressons-nous à celle-ci un instant. Pour voir les options de démarrage :
Copy to clipboard
pd --help
❗ Le point important si on travaille en temps réel, c'est d'ajouter l'option -rt, faute de quoi on risque fort de subir une pluie de "DIO errors" :
Copy to clipboard
pd -rt
Il est également bien pratique de choisir le serveur son, afin de ne pas avoir à le configurer dans Pd à chaque démarrage. On peut par exemple le lancer avec jack, un échantillonage à 48 000 Hz, le temps réel, et enfin alsa comme serveur MIDI :
Copy to clipboard
pd -rt -jack -r 48000 -alsamidi
Bien, à présent, si on veut mettre tout ça en dur : on édite le lanceur (clic droit => propriétés => lanceur) et on ajoute les options, ou on en crée un nouveau (clic droit sur le bureau, par exemple => Créer un lanceur).
Réglages
Au lancement, il faut s'assurer que le son fonctionne 🙄 en choisissant Test Audio and Midi dans le menu Media
Si jamais ça ne devait pas être le cas, on peut jouer avec les réglages du même menu. C'est là également qu'on va choisir le nombre d'entrées et de sorties, la latence, les connexions Midi, etc...
Si vous avez installé Pd-Vanilla, les réglages devraient être terminés pour vous. Si vous avez la version Extended, il faut encore vérifier ce qui suit:
Chargement des bibliothèques
Si le paquetage pour votre distribution a été bien réalisé, tout devrait être en place. Sinon, ou si vous ajoutez des bibliothèques à la main, il faudra indiquer les chemins d'accès.- Dans la fenêtre Pd binaries to load (File => Startup...), il s'agit de lister, comme son nom l'indique en anglais, les binaires à charger au démarrage. Il vous faut pour cela évidemment connaitre son petit nom, et l'ajouter à la liste. Pour que Pd la trouve, on indiquera dans la fenêtre Pd search path... (File => Path...), les chemins vers les bibliothèques installées. Un petit exemple en image:
Dans cet exemple, on peut voir que la très appréciée librairie Zexy est demandée au démarrage, qu'elle se trouve dans le répertoire /usr/lib/pd/extra/zexy, et qu'elle a bien été chargée.
C'est également dans Path... que vous allez renseigner Pd sur les dossier contenant vos abstraction (un concept bien pratique que vous apprendrez bientôt).
Notons encore que la plupart des externals se trouvent généralement dans /usr/lib/pd/extra et la doc (les patchs d'aide ou les tuto) dans /usr/lib/pd/doc. C'est le concept un peu spécial de Pure Data...
4. Découverte
- Pour faciliter l'approche de ce programme, l'exemple d'un générateur sonore sera abordé et développé.
Générateur sonore simple
- Pour commencer, sur une page vierge, 2 boites vont être placés (Menu Put / Object)
- Les boites sont des modules de type générateur, convertisseur, enveloppe...
- La 1ere boite est un oscillateur (osc) générant une sinusoïde à 440hz (le fameux LA du diapason) 😊, le signe (~) signifie qu'il s'agit d'un flux audio.
- La 2eme boite est le convertisseur (DAC - Digital-to-Analog Converter) qui transforme le signal numérique en signal analogique
- Les 2 fils en gras (audio) relient l'Osc au DAC en stéréo
- Et voila notre premier générateur sonore 😊
- Voici d'ailleurs le code au format .txt (doit être renommé en .pd pour être chargé dans Pure Data) Copy to clipboard#N canvas 582 516 307 82 10; #X obj 50 7 osc~ 440; #X obj 125 58 dac~; #X connect 0 0 1 0; #X connect 0 0 1 1;
➡️ N'oubliez pas d'activer le son dans le menu Media / Audio On
- En cliquant (bouton droit) sur la boite osc nous avons accès à une page d'aide 💡, que l'on peut aussi modifier (pour traduire par exemple), impressionnant, non !
Générateur sonore avec contrôle de volume
- Une boite multiplicateur est rajoutée
- Une boite argument relié par un fil de commande permet de changer la valeur
- Code :Copy to clipboard#N canvas 199 177 243 117 12; #X obj 14 -111 osc~ 440; #X obj 133 -21 dac~; #X obj 147 -67 *~; #X floatatom 172 -108 5 0 100 0 - - -; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 1 1; #X connect 3 0 2 1;
➡️ Avec CTRL E, on passe du mode Edit au mode Jeu ce qui permet de varier le volume avec la souris.
➡️ Seule les premières valeurs sont actives (de 0 à 10 environ / progression linéaire) alors que nos oreilles sont sensibles a des valeurs logarithmiques 😬
Générateur sonore variable
- En rajoutant une boite à coin biseauté, nous pouvons varier la fréquence de l'oscillateur (qui est rappelons le, sinusoïdal).
- Nous pouvons aussi rajouter un curseur horizontal qui fera office de potentiomètre pour régler le gain.
- Code :Copy to clipboard#N canvas 352 375 331 141 12; #X obj 93 0 dac~; #X obj 104 -45 *~; #X floatatom 189 -74 5 0 100 0 - - -; #X obj 192 -108 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -261681 -1 -1 5200 1; #X floatatom 7 -111 5 0 0 0 - - -; #X obj 7 -81 osc~; #X connect 1 0 0 0; #X connect 1 0 0 1; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 1 0;
➡️ Le signe ~ est accessible avec la touche ALT Gr + ~
➡️ Les liaisons grasses représentent le trajet audio
➡️ Les liaisons fines représentent les commandes
Clavier virtuel
- L'insertion de plusieurs boites permet de jouer avec des notes biens précises correspondant à des hauteurs en fréquence définies par des codes Midi (de 1 extrême grave à 128 extrême aigu)
- mtof permet donc de convertir des notes Midi en fréquences
- Do 60 correspond à C3 (situé sur l'octave moyenne d'un clavier portable)
- Pour le volume, on peut aussi changer pour un curseur vertical et changer la couleur 😉
- Code :
[+]
- Tout doucement nous verrons l'élaboration d'un synthétiseur monophonique simple à synthèse soustractive ou additive 😊
à suivre... 😉
5. Exemples / Patchs en téléchargement
http://impala.utopia.free.fr/pd/patchs/selection/http://www.puredata.info/community/patches
http://nullpointer.co.uk/-/pd.htm