Données pures
Pure Data (ou Pd) est un langage de programmation visuel développé par Miller Puckette dans les années 1990 pour la création d' œuvres interactives en informatique musicale et multimédia . Bien que Puckette soit l'auteur principal du logiciel, Pd est un projet open source et dispose d'une large base de développeurs travaillant sur de nouvelles extensions du programme. Il est publié sous une licence similaire à la licence BSD .
Pd est très similaire dans sa portée et sa conception au programme Max original de Puckette (développé lorsqu'il était à l'IRCAM ), et est interopérable avec Max/MSP dans une certaine mesure ., le successeur commercial du langage Max. Pd et Max sont des exemples discutables de langages de programmation "flux de données". Dans ce type de langage, les fonctions ou "objets" sont connectés ou "raccordés" les uns aux autres dans un environnement graphique qui modélise le flux de contrôle et audio. Contrairement à la version originale de Max, cependant, Pd a toujours été conçu pour effectuer le traitement du signal et contrôler les taux sur le processeur natif, plutôt que de décharger la synthèse et le traitement du signal sur une carte PDS (comme l'Ariel ISPW qui était utilisé pour Max/FTS) . Le code Pd est la base des extensions MSP de David Zicarelli au langage Max pour effectuer le traitement audio dans le logiciel.
Comme Max, Pd a une base de code modulaire avec des externes ou des objets qui sont utilisés comme blocs de construction pour les programmes écrits dans le logiciel. Cela rend le programme arbitrairement extensible via une API publique , et encourage les développeurs à ajouter leurs propres routines audio et de contrôle, soit dans le langage de programmation C , soit, avec l'aide de tiers, en Python , Javascript , Ruby et potentiellement d'autres langages. aussi bien. Cependant, Pd est un langage de programmation en soi. Des unités de code modulaires et réutilisables, écrites nativement en Pd, appelées "correctifs" ou "abstractions", sont utilisées comme programmes autonomes et partagées librement parmi la communauté des utilisateurs de Pd, et aucune autre compétence en programmation n'est requise pour utiliser Pd mais cela aide . .
Avec l'ajout de l'environnement externe "Graphical Environment for Multimedia" ( GEM ) et d'autres externes conçus pour fonctionner avec lui (tels que Pure Data Packet, PiDiP pour Linux , framestein pour Windows , GridFlow pour le traitement n-matrix qui intègre Pure Data avec le langage de programmation Ruby , etc.), il est possible de créer et de manipuler de la vidéo, des graphiques OpenGL , des images, etc., en temps réel avec des possibilités apparemment infinies d'interactivité avec l'audio, des capteurs externes, etc.
De plus, Pd est nativement conçu pour permettre une collaboration en direct sur des réseaux ou Internet , permettant aux musiciens connectés via LAN , ou même dans différentes parties du monde, de faire de la musique ensemble en temps réel.
Les unités où le code est programmé sont appelées "patch" ou abstractions, elles sont utilisées comme des programmes indépendants et librement partagés entre la communauté des utilisateurs de Pd. Les patchs sont constitués de différents objets interconnectés les uns avec les autres. Dans sa partie supérieure, nous trouverons les entrées, où des valeurs numériques ou d'autres types de données seront envoyées, et dans la partie inférieure la sortie de celles-ci.
Il est également possible de créer des patchs secondaires appelés sous-patchs. Ils sont à l'intérieur du patch principal. Ils sont créés en écrivant dans un objet les lettres "pd" suivies d'un espace et du nom que vous souhaitez donner à ce sous-patch, comme indiqué sur la figure. Cliquer dessus ouvre la fenêtre où l'on trouve le code de notre sous-patch.
Le programme a deux états dans lesquels l'utilisateur peut se trouver. En mode édition ou en mode exécution. Pour passer d'un état à un autre nous taperons Ctrl+E. Lorsque nous sommes en mode édition, nous pouvons modifier le contenu des cases, ou la connexion entre elles. En mode exécution, nous avons la possibilité de démarrer tout le patch et de modifier les valeurs lors de sa reproduction ou lorsqu'il est arrêté. Nous pouvons envoyer des bangs, modifier la valeur des variables dans les objets "nombre", ou activer et désactiver des secteurs du code avec l'objet [toggle], activé lorsqu'il a une croix et désactivé lorsqu'il n'en a pas.
Types d'objets
Objet : Son comportement dépendra du texte qu'il y aura inséré. Le programme a des objets prédéfinis, programmés par des tiers dans différents langages tels que C. Pd reconnaît le type d'objet et cette boîte se comporte déjà comme telle.
Nombres : Leur utilisation peut être diverse, du contrôle de la valeur du signal à différents points du patch, à l'initialisation des valeurs qui sont transmises aux objets qui contrôlent, par exemple, le niveau d'opacité d'une image.
Messages : Ils sont fournis avec des informations qui sont transmises aux objets.
Symbole : Cet objet stocke un symbole jusqu'à ce qu'il reçoive un [bang] ou un autre symbole. C'est alors que ce symbole sort de l'objet, par le fond de la boîte. Ces objets ne sont proposés dans Pd que si vous avez téléchargé et correctement installé la bibliothèque appropriée . Ils ne doivent pas nécessairement exister dans les bibliothèques simples, bien qu'ils soient généralement inclus dans les fichiers d'installation.
Commentaire : nous l'utiliserons pour inclure des clarifications dans les différentes étapes suivies par notre code.
Objets les plus importants
L' objet [osc~] génère un signal sinusoïdal. La fréquence d'oscillation dépendra de la valeur entrée dans l'entrée que l'objet a en haut à gauche. Chaque fois que nous plaçons un oscillateur, nous devons également placer un multiplicateur et un convertisseur analogique numérique (dac~). Ceci est fait parce que le "osc ~" par défaut a l'amplitude maximale à 1, nous le multiplions donc par 0,1 pour réduire son amplitude puis l'envoyons au "dac ~". L'objet "dac~" a deux entrées qui font référence aux deux canaux de sortie de la carte son de votre machine.
Un [bang] a pour fonction d'activer l'action qui est immédiatement connectée après lui.
Metro : Envoie périodiquement des séries de [bang]. Nous allons le créer en écrivant le mot « mètre » à l'intérieur d'un objet. Cet objet a deux entrées, celle de gauche accepte [bangs]. Cela fait démarrer le métro; il accepte également les messages avec le texte « s'arrête », arrêtant le fonctionnement du métro. Nous pouvons également vous envoyer n'importe quel nombre autre que zéro pour l'activer. Si un zéro lui est envoyé, le compteur arrête d'envoyer [bangs]. Dans l'entrée de droite, nous introduisons le nombre qui régit la périodicité d'envoi des coups, l'unité de cette valeur est la milliseconde. Dans la même case [mètre], après le mot mètre et suivi d'un espace, un nombre est entré que l'objet comprend déjà comme la période.
Démarrer : Exécute les objets du patch qu'il a connectés à lui-même. Nous allons créer l'objet [start] en écrivant le mot « start » dans un message.
Stop : Arrête l'exécution du patch en cours d'exécution. Nous allons le créer en tapant le mot "stop" dans un message.
Select : On agit comme un sélecteur selon une condition numérique initialement donnée. Nous le créons en entrant le mot "condition de sélection (espace)". De cette façon, lorsque la valeur d'entrée est égale à la condition, un bang sera envoyé via la sortie gauche. S'ils ne correspondent pas, le bang sera envoyé à la bonne sortie. Plusieurs conditions simultanées séparées par des espaces peuvent être saisies. Autant de départs que de conditions plus une finale seront créés. Lorsque la valeur correspond à l'une des conditions, le bang sera envoyé par la sortie correspondant à cette valeur. S'il ne correspond pas, le [bang] sera toujours envoyé par la dernière sortie la plus à droite.
Moïse : Nous allons écrire le mot « Moïse » à l'intérieur d'un objet pour pouvoir le rendre opérationnel. Il contient deux entrées et deux sorties. Dans l'entrée de gauche, nous connectons la valeur qui est dans le processus et à droite la valeur que nous voulons utiliser comme bordure. Si la valeur du processus est inférieure à la bordure, il prend la valeur d'entrée de la sortie à gauche. D'un autre côté, si la valeur est égale ou supérieure à la valeur qui agit comme bordure, il sortira le nombre de la sortie à droite. Nous pourrions comparer le [moïse] à un filtre passe-bas et passe-haut simultané.
Problèmes et solutions possibles pour l'installation de GNU
Pour installer Pd dans GNU, nous devons décompresser le package téléchargé avec le programme et exécuter le fichier avec l'extension «.deb». Le premier problème possible que nous pouvons trouver est que la distribution Ubuntu Studio a déjà un Pure Data installé en standard. Parce qu'il est recommandé d'utiliser la version Pd_extended (bien que ce soit quelque chose qui varie très souvent), nous devrons désinstaller Pure Data de GNU/linux Ubuntu, afin que, lors de l'installation de la nouvelle, nous n'ayons pas de problèmes avec le fait de partage de dossiers. Un autre facteur très courant et important lors de l'installation de programmes GNU est les dépendances de bibliothèques secondaires qui peuvent exister. Il est nécessaire de les installer pour le bon fonctionnement du programme. Dans le cas de Pure Data et de certaines bibliothèques externes, certaines dépendances doivent être installées à l'aide du gestionnaire de packages appelé Synaptic. Là, nous pouvons trouver ceux dont nous avons besoin.
Une fois le bon fonctionnement du Pd testé, afin d'optimiser les ressources du programme, nous chargeons, au démarrage, les bibliothèques les plus courantes qui seront utilisées, pour éviter d'avoir à les importer à chaque fois que vous souhaitez les utiliser. Ainsi, lorsque vous démarrez Pd sur votre machine, ils sont automatiquement chargés.
Linux
Présentation rapide
Une fois que nous avons le Pd stable sur notre machine, nous procédons à un premier test du programme pour vérifier que la connexion avec notre carte son est correcte. On trouvera cela dans Média > test audio et MIDI. Là, nous pouvons générer un signal de test (une tonalité, un bruit rose, ...) en l'écoutant via nos haut-parleurs, vérifiant ainsi que tout fonctionne correctement.
Pour connaître l'environnement Pd, nous pouvons commencer par ouvrir des exemples que nous trouverons dans les fichiers de documentation à l'intérieur du dossier Pd. Il existe des correctifs audio et vidéo pour vous aider à vous familiariser avec le programme. Lorsque nous voulons créer notre propre patch, dans la fenêtre Pd nous allons dans File>New et la fenêtre s'ouvre où nous allons introduire nos objets que nous connecterons entre eux, créant ainsi notre application.
bibliothèques pdp, pidip et opencv
La bibliothèque PDP est une collection d'objets permettant de traiter de nombreuses données. Cela fonctionne sur Linux et la plupart des objets fonctionnent également sur Mac OSX. Une fois téléchargé, l'installation sous Linux se fait via le terminal, en compilant et en exécutant le fichier d'installation joint, comme suit :
./configure
faire sudo
sudo faire installer
Lorsque les données sont déjà représentées sous forme de paquet à l'intérieur de Pd, il est possible de commencer à les manipuler. La bibliothèque PiDiP sont des objets vidéo qui complètent la collection d'objets PDP. L'installation est identique à celle de PDP, depuis le terminal nous exécutons les mêmes commandes, étant ainsi prêt à l'emploi.
Il existe également une autre bibliothèque faisant référence à l'appel vidéo OpenCV. C'est une bibliothèque ouverte développée par Intel. Cette bibliothèque fournit un haut niveau de fonctions de traitement d'image. Il permet au programmeur de créer des applications dans le domaine de la vision numérique. OpenCV est Open Source lui permettant de fonctionner sur de nombreuses plateformes. Cette bibliothèque nous permet de faire des opérations de base, traitement d'image, analyse de reconnaissance de modèle, analyse structurelle, reconstruction 3D, étalonnage de caméra, analyse de mouvement, interface graphique et acquisition, etc. Il implémente une grande variété d'outils d'interprétation d'images, tels que la détection de caractéristiques ou l'analyse de forme (géométrie, contour traité à ce moment-là), entre autres.
Motifs de patch
Un bon premier contact avec Pd peut être la génération d'une tonalité sinusoïdale. Pour cela nous utiliserons l'objet [osc~]. Dans l'entrée de gauche, nous connecterons un message avec un nombre à l'intérieur qui servira de fréquence d'oscillation. Nous enverrons sa sortie à un multiplicateur qui convertira cette fréquence en audible et enfin nous enverrons cela à un convertisseur numérique analogique [dac~] pour pouvoir la reproduire à travers les haut-parleurs de notre machine. Une fois que nous avons créé ce patch, nous pouvons modifier la fréquence en cliquant et en maintenant la souris sur le message numérique et en déplaçant le curseur de haut en bas, augmentant et diminuant ainsi la valeur de la fréquence.
Pour ouvrir un périphérique externe, comme une webcam , il faut écrire le mot « ouvrir » suivi d'un espace et du chemin où se trouve ce périphérique dans un message. Ceci, nous allons le connecter à l'objet qui nous permet de visualiser l'image selon notre système d'exploitation, sous Linux ce serait pdp_v4l (vidéo pour Linux). Nous connectons également un autre message à cet objet où nous indiquons le canal par lequel nous voulons envoyer les informations. Enfin, nous connecterons un [mètre] à [pdp_v4l] en lui donnant les informations de la fréquence avec laquelle nous voulons qu'il nous montre les images que la caméra est en train de capturer. Pour avoir une continuité de mouvement nous lui donnerons une valeur standard de 100ms. Au goût de l'utilisateur, nous pouvons également faire pivoter l'image horizontalement afin que l'effet généré lors de la visualisation de l'image ressemble à un miroir. Pour ce faire, nous allons connecter la sortie de [pdp_v4l] à l'objet [pdp_flip_lr]. Avec cela, nous avons déjà, dans une fenêtre séparée, l'image que la caméra capture.
Voir aussi
Matériel en espagnol
- Systèmes musicaux interactifs Documents de cours Systèmes musicaux interactifs par Sergi Jordà
- Atelier de musique électronique Documents de cours de l'atelier de musique électronique par Sergi Jordà
- Cours d'introduction au GEM ( lien brisé disponible sur Internet Archive ; voir historique , première et dernière version ). Introduction au GEM et au cinéma en direct par Carles Sora
Liens externes
- puredata.info Portail officiel sur PureData.
- puredata-fr Communauté Puredata en espagnol
- IEM Institute of Electronic Music and Acoustics, Graz Nombreux liens utiles
- Page d' accueil de Miller S. Puckette avec une note biographique et les occupations actuelles.
- Pure DataBase, pdb Ici, vous pouvez rechercher des objets de données purs
- Footils.org Site très complet avec des abstractions pratiques (en anglais)
- Convention internationale 3 Pd (en portugais)
