Pure Data

Un article de Wikipédia, l'encyclopédie libre.
Pure Data
Description de l'image PureData icone.jpg.
Description de l'image Pure Data with many patches open (showing netpd project).png.
Informations
Développé par Miller Puckette
Première version Voir et modifier les données sur Wikidata
Dernière version 0.54-1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/pure-data/pure-dataVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, macOS et LinuxVoir et modifier les données sur Wikidata
Environnement GNU/Linux, Mac OS X, Windows
Langues Anglais
Type Audio programming language (d)
Langage de programmation graphiqueVoir et modifier les données sur Wikidata
Licence BSD
Site web puredata.info

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[modifier | modifier le code]

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[modifier | modifier le code]

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é[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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

Bibliothèques vidéo[modifier | modifier le code]

GEM[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Hid[modifier | modifier le code]

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[modifier | modifier le code]

compatible - Win

MrPeach[modifier | modifier le code]

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

Wiimote[modifier | modifier le code]

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

Intégration logicielle[modifier | modifier le code]

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[modifier | modifier le code]

  1. « Release 0.54-1 », (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[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Publications[modifier | modifier le code]

  • (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