• Aucun résultat trouvé

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

2

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