4.3 Pure Data
Pure Data est un environnement de programmation graphique
per-mettant de générer des contenus sonores et visuels ainsi que de procéder
à des traitements complexes du signal en temps-réel. Pure Data traite
essentiellement des données audio, MIDI ou au format OSC mais
per-met également de produire des rendus visuels sur la base de synthèse
ou d'images
1.
Pure Data (abrégé Pd ) est un langage de programmation par
ux de données
2permettant de créer graphiquement des logiciels
ap-pelés patchs. Les diérentes fonctions algorithmiques utilisées pour la
création des patchs sont représenté par des objets disposés sur l'écran
par l'utilisateur. Les objets sont reliés entre eux par des câbles
trans-portant les données d'un objet à un autre. Chaque objet eectue une
tâche spécique, il peut s'agir d'opérations mathématiques simples
(ad-ditions, divisions,...) ou de fonctions audio et vidéo complexes telles que
des transformées de Fourier, de la réverbérations ou du décodage vidéo.
4.3.1 Historique et versions
Les bases de Pure Data sont posées en 1988 à l'Ircam (Institut de
recherche et coordination acoustique-musique) par Miller Puckette, le
logiciel s'appelant alors The Patcher [Puc88]. Cette première version
fut revendue à la société Opcode (qui créera plus tard Max/Msp) tandis
que Miller Puckette poursuivit le développement de la version open
source du Patcher qui deviendra Pure Data.
Il existe aujourd'hui essentiellement deux versions de Pure Data :
Pure Data Vanilla,version la plus sobre (et compilée sous forme de
librairie pour utilisation dans des environnements tiers), et Pure Data
Extended qui inclut un choix plus large d'objets an de réaliser plus
facilement des opérations complexes qu'avec Vanilla.
Pure Data est couramment utilisé dans le cadre de créations
ar-tistiques, pour des applications scientiques ou pédagogiques. Sa mise
1. De nombreux logiciels de programmation graphique permettant
des rendus sonores complexes sont disponibles parmi lesquels nous
pou-vons citer Max/Msp (http ://cycling74.com/products/max/),
Reak-tor, (http
://www.native-instruments.com/fr/products/komplete/synths-samplers/reaktor-5/), Super Collider (http ://supercollider.sourceforge.net/)
ou Bidule (http ://www.plogue.com/products/bidule/)
Réalisation du synthétiseur 4.3 Pure Data
en ÷uvre simple qui consiste, via une interface graphique, à créer des
patchs en reliant entre eux des objets, chaque objet remplissant une
fonction déterminée. Cette méthode de programmation, aujourd'hui
partagée par d'autre logiciels et environnements de création, découle
des expérimentations de Max Mathews dans les années 1950 qui ont
par la suite inspiré le développement des premiers synthétiseurs
ana-logiques modulaires.
L'ouvrage de référence proposé par Miller Puckette [Puc07] est une
source importante d'informations quant aux possibilités de réalisation
avec l'environnement Pure Data.
4.3.2 Pure Data et interactivité
Plus spéciquement, Pure Data est utilisé dans de nombreux
pro-jets interactifs, le logiciel traitant en temps réel des variables reçues
en entrée et restituant un ux sonore ou visuel en sortie. Les variables
reçues en entrées peuvent provenir de manipulations directes de
l'in-terface graphique de Pure Data, d'autres logiciels ou de surfaces de
contrôles via la norme OSC (Open System Control), de protocoles
ré-seau ou bien encore d'évènements captés depuis l'environnement
(mou-vements, pressions, température, signaux, etc.) récupérés par le biais
d'un dispositif matériel interfacé avec Pure Data
3.
Pure Data peut également être intégré à des programmes plus
com-plexes tels qu'un jeu vidéo. Il peut servir à des ns de prototypage pour
tester rapidement des comportements sonores liés au moteur du jeu
[Pau03] ou bien, comme dans le cas du jeu Spore être la base du
mo-teur sonore. La versatilité des méthodes de synthèse et les possibilités
d'optimisation [Far07c] de Pure Data en font un outil de
développe-ment ecace pour la sonorisation d'environnedéveloppe-ments virtuels.
Pure Data n'est pas limité à un registre de production ou de
syn-thèse sonore. Son langage de programmation permet d'aborder de
nom-breuses méthodes de synthèse et de parvenir à des réalisations
com-plexes. Il est possible de mettre en place des méthodes de lecture de
chiers sonores et de mixage plus avancées que celles disponibles dans
les moteurs sonores de jeux vidéo. De plus, les patchs sont imbricables
les uns dans les autres, sous forme d'instance, ce qui permet de créer des
ensembles riches. Les aspects logiques de la programmation dans Pure
Réalisation du synthétiseur 4.3 Pure Data
Data sont comparables à ceux présents dans des langages tels que le
C++, il est donc possible de contrôler nement le comportement d'un
patch dans un environnement interactif.
Nous proposons donc d'utiliser Pure Data comme environnement
de développement pour la réalisation d'un prototype de synthétiseur
d'arrière-plans sonores urbains. Cette solution nous ore en eet des
fa-cilités de programmation et de développement tout en étant intégrable
à des environnements virtuels.
4.3.3 Pure Data comme environnement de
dévelop-pement
L'ensemble des contraintes présentées précédemment soulignent le
besoin d'une interface de programmation facile d'accès et exible. La
programmation graphique semble donc une méthode plus appropriée
que la programmation classique, cette première nous orant une meilleure
visibilité de la dynamique des objets sonores programmés, de leurs
in-teractions et des ux de données et audio qui les parcourent.
L'incor-poration d'éléments nouveaux, tels que l'ajout de modules de synthèse
ou de traitements, et leur édition en sont simpliées.
Les possibilités de la programmation graphique pour le design des
environnements virtuels sont déjà exploitées pour la production des
éléments visuels. Elles se développent également pour la
programma-tion des attributs comportementaux. Du point de vue sonore, cette
approche est assez peu explorée mais ore des perspectives
promet-teuses [Ven09].
La facilité d'exploitation et la versatilité ont motivé en partie notre
choix d'utiliser Pure Data. La possibilité de convertir les patchs en code
par le biais d'une librairie (LibPd) ore la perspective d'une intégration
complète du synthétiseur, au-delà de la programmation du prototype
au format Pure Data. Les protocoles OSC et MIDI permettent de
pi-loter facilement les patchs à l'aide de contrôleurs physiques. Enn, il
est possible de faire circuler des informations entre Pure Data et un
logiciel externe avec le protocole réseau UDP. La exibilité et la
modu-larité de Pure Data avec d'autres environnements de développements
en font un outil ecace pour le prototypage et le développement de
systèmes sonores interactifs [Pau03].
Dans le document
Synthèse sonore d'ambiances urbaines pour les applications vidéoludiques
(Page 131-134)