Article de reference

Données pures

Pure Data ( Pd ) est un langage de programmation visuel développé par Miller Puckette dans les années 1990 pour créer de la musique informatique interactive et des œuvres multim...

Pure Data ( Pd ) est un langage de programmation visuel développé par Miller Puckette dans les années 1990 pour créer de la musique informatique interactive et des œuvres multimédias . Bien que Puckette soit l'auteur principal du programme, Pd est un projet open source avec une large base de développeurs travaillant sur de nouvelles extensions. Il est publié sous BSD-3-Clause . Il fonctionne sur Linux , MacOS , iOS , Android et Windows . Des ports existent pour FreeBSD et IRIX .

Pd est très similaire dans sa portée et sa conception au programme Max original de Puckette , développé alors qu'il était à l'IRCAM , et est dans une certaine mesure interopérable avec Max/MSP, le prédécesseur commercial du langage Max. Ils peuvent être considérés collectivement comme membres de la famille de langages Patcher

Avec l'ajout de l' environnement graphique pour multimédia (GEM) externe et d'externes conçus pour fonctionner avec lui (comme Pure Data Packet / PiDiP pour Linux, Mac OS X ), framestein pour Windows, GridFlow (comme traitement de matrice n-dimensionnelle, pour Linux, Mac OS X , Windows), il est possible de créer et de manipuler des vidéos, des graphiques OpenGL , des images, etc., en temps réel avec de vastes possibilités d'interactivité avec l'audio, des capteurs externes, etc.

Pd est conçu de manière native pour permettre la collaboration en direct sur les réseaux ou sur Internet, permettant aux musiciens connectés via LAN ou même dans des parties disparates du globe de créer de la musique ensemble en temps réel. Pd utilise FUDI comme protocole réseau.

Similitudes avec Max

Pure Data et Max sont tous deux des exemples de langages de programmation de flux de données . Les langages de flux de données modélisent un programme sous forme de graphe orienté des données circulant entre les opérations. Dans Pure Data et Max, les fonctions ou « objets » sont liés ou « patchés » ensemble dans un environnement graphique qui modélise le flux de contrôle et d'audio. Cependant, contrairement à la version originale de Max, Pd a toujours été conçu pour effectuer le traitement du taux de contrôle et de l'audio sur l' unité centrale de traitement (CPU) de l'hôte, plutôt que de décharger la synthèse sonore et le traitement du signal sur une carte de processeur de signal numérique (DSP) (comme l'Ariel ISPW qui a été utilisé pour Max/FTS). Le code Pd constitue la base des extensions MSP de David Zicarelli au langage Max pour effectuer le traitement audio logiciel.

Comme Max, Pd possède une base de code modulaire d' éléments externes ou d'objets qui sont utilisés comme blocs de construction pour les programmes écrits dans le logiciel. Cela rend le programme extensible arbitrairement via une API publique et encourage les développeurs à ajouter leurs propres routines de contrôle et audio dans le langage de programmation C , ou avec l'aide d'autres éléments externes, dans Python , Scheme , Lua , Tcl et bien d'autres. Cependant, Pd est aussi un langage de programmation. Des unités de code modulaires et réutilisables écrites nativement dans Pd, appelées « patchs » ou « abstractions », sont utilisées comme programmes autonomes et partagées librement au sein de la communauté des utilisateurs de Pd, et aucune autre compétence de programmation n'est requise pour utiliser Pd efficacement.

Caractéristiques linguistiques

Objets Pure Data. Les chaînes de texte à droite des cases sont des commentaires.

Comme Max, Pd est un langage de programmation de flux de données. Comme pour la plupart des logiciels DSP , il existe deux débits principaux auxquels les données sont transmises : le débit d'échantillonnage (audio) , généralement de 44 100 échantillons par seconde, et le débit de contrôle, de 1 bloc pour 64 échantillons. Les messages de contrôle et les signaux audio circulent généralement du haut de l'écran vers le bas entre les « objets » connectés via des entrées et des sorties.

Pd prend en charge quatre types de base d'entités de texte : messages, objets, atomes et commentaires. Les atomes sont l'unité de données la plus basique dans Pd et se composent soit d'un float , d'un symbole ou d'un pointeur vers une structure de données (dans Pd, tous les nombres sont stockés sous forme de floats 32 bits). Les messages sont composés d'un ou plusieurs atomes et fournissent des instructions aux objets. Un type spécial de message avec un contenu nul appelé bang est utilisé pour lancer des événements et envoyer des données dans le flux, un peu comme si l'on appuyait sur un bouton.

Les objets natifs de Pd vont des opérateurs mathématiques , logiques et binaires de base que l'on trouve dans tous les langages de programmation aux fonctions DSP audio générales et spécialisées (désignées par un symbole tilde (~)), telles que les oscillateurs à table d'ondes , la transformée de Fourier rapide (fft~) et une gamme de filtres standard . Les données peuvent être chargées à partir d'un fichier, lues à partir d'une carte audio, MIDI , via Open Sound Control (OSC) via une connexion FireWire , USB ou réseau, ou générées à la volée et stockées dans des tables, qui peuvent ensuite être lues et utilisées comme signaux audio ou données de contrôle.

Structures de données

L'une des innovations clés de Pd par rapport à ses prédécesseurs a été l'introduction de structures de données graphiques . Celles-ci peuvent être utilisées de multiples façons, depuis la composition de partitions musicales, le séquençage d'événements, la création de visuels pour accompagner les correctifs de Pd ou même l'extension de l'interface graphique de Pd .

Fidèles au nom de Pd, les structures de données permettent aux utilisateurs de Pd de créer des représentations graphiques statiques, dynamiques ou animées arbitrairement complexes de données musicales. Tout comme les structures C , les structures de Pd sont composées de n'importe quelle combinaison de flottants, de symboles et de données de tableau qui peuvent être utilisés comme paramètres pour décrire l'apparence visuelle de la structure de données ou, inversement, pour contrôler les messages et les signaux audio dans un patch Pd. Selon les mots de Puckette :

Pd est conçu pour offrir un environnement extrêmement non structuré pour décrire les structures de données et leur apparence graphique. L'idée sous-jacente est de permettre à l'utilisateur d'afficher tout type de données qu'il souhaite, en les associant de quelque manière que ce soit à l'affichage. Pour y parvenir, Pd introduit une structure de données graphique, un peu comme une structure de données du langage de programmation C, mais avec une fonction permettant d'attacher des formes et des couleurs aux données, afin que l'utilisateur puisse les visualiser et/ou les modifier. Les données elles-mêmes peuvent être modifiées à partir de zéro ou peuvent être importées à partir de fichiers, générées de manière algorithmique ou dérivées d'analyses de sons entrants ou d'autres flux de données.

—  Miller Puckette
Partition pour Solitude de Hans-Christoph Steiner , créée à l'aide des structures de données de Pd.

Limitations linguistiques

Bien qu'il s'agisse d'un langage puissant, Pd présente certaines limites dans sa mise en œuvre des concepts orientés objet. Par exemple, il est très difficile de créer des processus massivement parallèles car l'instanciation et la manipulation de grandes listes d'objets (génération, etc.) sont impossibles en raison de l'absence d'une fonction constructeur. De plus, les tableaux Pd et d'autres entités sont susceptibles de subir des collisions d'espaces de noms car la transmission de l'ID d'instance de patch est une étape supplémentaire et est parfois difficile à réaliser.

Projets utilisant Pure Data

Pure Data a été utilisé comme base de nombreux projets, comme langage de prototypage et comme moteur sonore. L'interface de table appelée Reactable et l'application iPhone abandonnée RjDj intègrent toutes deux Pd comme moteur sonore.

Le PD a été utilisé pour le prototypage audio des jeux vidéo par un certain nombre de concepteurs audio. Par exemple, EAPd est la version interne du PD utilisée chez Electronic Arts (EA). Il a également été intégré dans EA Spore .

Le Pd a également été utilisé pour les performances en réseau, dans la bibliothèque Networked Resources for Collaborative Improvisation (NRCI).

Exemples de code

  • Exemples de correctifs de code visuel Pure Data
  • Patch 1 : programme Hello world dans Pd.
    Patch 1 : programme Hello world dans Pd.
  • Patch 2 : Réverbération dans Pd.
    Patch 2 : Réverbération dans Pd.
  • Patch 3 : Filtres et flux de données dans Pd.
    Patch 3 : Filtres et flux de données dans Pd.
  1. Le premier patch affiche « Bonjour le monde » sur l’écran.
  2. Le deuxième patch applique la réverbération au signal entrant du canal 1, puis l'émet sur les canaux 1 et 2.
  3. Le dernier patch, plus complexe, filtre le bruit blanc à 9000 Hz (avec un Q de 20), puis le fait apparaître et disparaître chaque seconde sur une période d'une demi-seconde. Dans Pd, le temps est mesuré en millisecondes, ainsi le « 1000 » correspond à une seconde et le « 500 » à une demi-seconde.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index