Pure Data

Pure Data (en abrégé pd) est un logiciel de programmation graphique pour la création musicale et multimédia en temps réel. Il permet également de gérer des signaux entrants dans l'ordinateur (signaux de capteurs ou événements réseau par exemple) et de gérer des signaux sortants (par des protocoles de réseau ou protocoles électroniques pour le pilotage de matériels divers). Ce logiciel permet un suivi de partition.

Origine

Il tire son origine de l'éditeur Patcher écrit par Miller Puckette en 1988 à l'IRCAM[2] en France. Le logiciel a été cédé à la société américaine Opcode, où il a été réécrit par David Zicarelli, sous le nouveau nom de Max/MSP. Miller Puckette a décidé de reprendre la conception de Patcher pour faire un logiciel libre et portable à des fins musicales en temps réel.

Il est distribué librement sur le Web, maintenu par Puckette, maintenant directeur-associé du CRCA (Center for Research in Computing and the Arts (en)) de l'Université de Californie. De nombreux développeurs se sont, par la suite, joints au projet.

Fonctionnement

Pure Data est un système conçu de façon modulaire. Chaque utilisateur peut ainsi adapter le logiciel selon ses besoins. Il exploite un langage de programmation non procédural avancé (programmation orientée objet) qui permet à l'utilisateur d'effectuer des modifications au code en temps réel sans que celui-ci doive chaque fois être recompilé. Cependant, la non-linéarité de cette approche peut parfois causer des difficultés dans la conception des patchs, surtout à l'étape de composition. Elle peut notamment entraîner de la confusion dans la compréhension et dans la gestion de l'ordre des opérations.

Techniquement ce n'est pas un langage de programmation en tant que tel, mais un environnement d'implémentation, où l'utilisateur assemble des bouts de codes créés par d'autres, ce qui permet un prototypage ultra-rapide. L'interface du logiciel est donc une représentation visuelle de la logique qui sous-tend la programmation.

Communauté

Autour de Pure Data gravite une communauté composée à la fois de développeurs et d'utilisateurs, puisqu'il s'agit d'un logiciel libre. Les premiers créent de nouveaux objets en langage C ou contribuent à améliorer le fonctionnement général du programme. Les seconds l'utilisent à des fins artistiques liées, entre autres, à la performance musicale et vidéo ainsi qu'aux installations interactives.

Depuis 2004, et la première convention organisée à Graz en Autriche, ont eu lieu les conventions de Montréal (2007[3]), Sao Paulo (2009[4]), Weimar (2011[5]) et New-York (2016[6]).

Documentation

L'apprentissage comme la documentation de référence de Puredata sont disponibles sous la forme de patches d'aide exécutables directement depuis le programme. Ils ne sont cependant disponibles qu'en langue anglaise. À la suite d'un booksprint organisé par l'association FLOSS Manuals France avec le soutien de l'OIF, il existe un manuel d'apprentissage français de ce langage de programmation, fruit du travail de représentants de la communauté des utilisateurs et des développeurs venus du Québec, de France, de Belgique et de Tunisie.

Bibliothèques

Autour du logiciel de Miller Puckette, ont été développées de nombreuses bibliothèques ajoutant de nouvelles fonctionnalités. Ces bibliothèques permettent d'utiliser la vidéo, le sample, les capteurs, etc.

Hans-Christoph Steiner en a réuni de nombreuses dans ses installateurs « tout-en-un» connus sous le nom de Pd-extended. La distribution Linux Puredyne offre une installation optimisée de Pure Data avec de nombreuses bibliothèques distribuées sous forme de paquets indépendants.

À la suite de l'arrêt d'une maintenance régulière de Pd-extented en 2014, Ivica Bukvic, Jonathan Wilkes et Albert Graef décidèrent de lancer le développement de PurrData en 2016[7], une refonte de Pure Data régulièrement mise à jour et basée sur la distribution utilisée par le Virginia Tech's Linux Laptop Orchestra (Pd-L2Ork[8]).

Bibliothèques audio

  • Zexy
  • IEM lib
  • Flext
  • Xsample
  • fftease
  • dyn~
  • creb
  • Cyclone

Bibliothèques vidéo

GEM

compatible Linux - Win - Mac OS

« GEM » signifie Graphics Environment for Multimedia (en français « environnement graphique pour le multimédia »). Elle a été écrite par Mark Danks pour la production d'images en temps réel, particulièrement pour les compositions audiovisuelles. Elle permet la manipulation d'objets de synthèse, d'images et de vidéos via l'utilisation d'OpenGL. Les formats de fichier lisibles dépendent grandement de la plateforme pour laquelle la bibliothèque a été compilée, le codec Photo-JPEG dans un container QuickTime restant le plus largement répandu. La lecture de flux (streams) vidéo en est encore à un stade très expérimental.

La version stable actuelle 0.92.3 supporte également l'utilisation des shaders GLSL et permet également d'implémenter directement des commandes OpenGL.

PDP/PiDiP

compatible Linux - Mac OS

Pure Data Packet (pdp en abrégé) est dédiée au traitement de la vidéo écrite par Tom Schouten. PiDiP en est une extension écrite par Yves Degoyon. Elle permet d'utiliser plusieurs sorties vidéo (xgl, xv, sdl), permet la lecture du quicktime, l'utilisation des effets freeframe et effecTV.

Bibliothèques diverses

Hid

compatible Linux - Mac OS

Écrite par Hans-Christoph Steiner, elle permet l'utilisation des interfaces physiques pour pd, comme des joysticks, souris, tablettes graphiques, interfaces capteurs, etc.

Joystick

compatible - Win

MrPeach

Bibliothèque écrite par Martin Peach permettant la lecture de fichiers MIDI comme l'utilisation du protocole OpenSoundControl ou OSC.

Wiimote

Bibliothèque fournissant un objet [wiimote] permettant l'utilisation d'une manette wii comme interface de contrôle[9].

Intégration logicielle

Pure Data intègre Tcl/Tk, Tcl comme langage de script, et Tk pour la gestion des fenêtres graphiques. On peut néanmoins l'utiliser avec d'autres langages via la bibliothèque libpd.

Libpd est écrit par Peter Brinkmann et permet de réutiliser des composants préexistants (patch) au sein de n'importe quelle application, notamment écrite en :

  • Java
  • C#
  • Objective C
  • C++
  • Python

Deux autres versions ont également été développées pour s'adapter aux spécificités des plateformes mobiles Android et iOS :

  • pd-for-android
  • pd-for-ios

Références

  1. « Release 0.55-2 », (consulté le )
  2. « GENIUS! #26: Miller Puckette and Max - PSNEurope », sur www.psneurope.com (consulté le )
  3. « À propos du congrès », sur puredata.info (consulté le ).
  4. (en) « Pdcon09 papers », sur puredata.info (consulté le ).
  5. (en) « Pure Data Convention 2011 », sur puredata.info (consulté le ).
  6. (en) « 19.Nov.13 Guest Lecture : Douglas Geers », sur NYU Waverly Labs for Music & Computing, (consulté le ).
  7. « Jonathan Wilkes / purr-data », sur GitLab (consulté le ).
  8. (en) « Pd-L2Ork — Pd Community Site », sur puredata.info (consulté le ).
  9. « wiimote — Pd Community Site », sur puredata.info (consulté le )

Annexes

Articles connexes

Liens externes

Publications

  • (en) Techniques audionumériques plus poussées : Un livre écrit par Miller Puckette qui enseigne les formules mathématiques, les algorithmes qui se trouvent derrière la gestion du son par un ordinateur. À chaque fin de chapitre vous pourrez trouver des exemples avec des patchs.
  • (en) Concevoir du son, 2009 : ouvrage rédigé par Andy Farnell expliquant comment générer des sons en partant de rien à partir de principes d'analyse relativement simples (musique procédurale). Des patches d'exemple sont également téléchargeables. MIT Press, 2010.
  • (en) Bang. Cette publication est une compilation de textes décrivant différentes approches de Puredata, une mise en relief de ses utilisations comme de ses développements, dans un débat contradictoire qui laisse en fin de compte bien des questions ouvertes, que ce soit en termes techniques que philosophiques. Elle a été éditée à la suite de la première convention internationale à Graz (Autriche) à l'automne 2004. Contient un DVD illustrant plusieurs des travaux présentés à cette occasion. Wolke Verlag, 2005.
  • (en) Making music apps. Livre écrit par Peter Brikman sur l'utilisation de libpd sur les plateformes mobiles Ios et Android