Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]


PureData est un environnement de programmation visuel pour la synthèse & traitement audio/vidéo.





Information

Site web officiel : http://puredata.info/ (communauté), http://crca.ucsd.edu/~msp/ (Miller Puckette)
Version actuelle : 0.51-4 du 2021 06 09.
Licence : proche BSD
Plateforme : Linux, Windows, MAC OS X
Support : Alsa, JACK.
Développeur(s) :

Description

Historique

En 1988, un certain Miller Puckette crée un environnement de programmation en mode graphique, destiné au son et à l'image, qu'il nomme Patcher. Il est ensuite cédé à l'entreprise Opcode, où il sera réécrit par David Zicarelli, et renommé Max/MSP. Miller Puckette décide ensuite de reprendre les améliorations de ce dernier et de poursuivre ainsi le développement de Patcher, afin d'en faire un logiciel libre : Pure Data.

Fonctionnement

Pd est un environnement de programmation orienté objet. Que les non-développeur-euse et les allergiques au code et à la ligne de commande ne fuient pas à ces mots, on peut tout à fait utiliser Pd, même de manière avancée, ne sachant pas ce qu'est une classe ou une instance : Pd est en mode graphique, austère certes, mais très visuel.Toutefois, il est possible d'améliorer ceci en utilisant des plugins GUI ou en créant ses propres abstractions graphique. Vous n'aurez pas à apprendre et à taper toute une syntaxe complexe et contraignante, puisque tout est fait par des liens graphiques entre les objets et les messages.

Mais alors que peut-on faire avec Pd ?

Tout, ou presque tout... De la synthèse au traitement sonore, de la diffusion à l'analyse : on peut en fait créer son propre logiciel selon ses besoin. Inutile de réinventer la roue, Ardour fait très bien l'enregistrement multipiste, mais si le coeur vous en dit, Pure data le pourrait également. De même que Max/MSP a Jitter, Pure Data à GEM pour travailler de la même manière avec l'image : animation, effets vidéos en temps réel etc...
Pd gère le midi, ce qui vous permettra, outre de jouer des note, d'interagir avec lui à partir d'une surface de contrôle par exemple, ou une tablette. Certains objets vous permettent d'accéder au réseau, et donc à Internet.

Cette page vise à expliquer les points essentiels du logiciel, et en particulier les spécificités de son utilisation sur Linux, mais en aucun cas à vous apprendre à l'utiliser. C'est pourquoi le chapitre qui suit vous fournira un extrait des ressources foisonnantes sur le sujet.

Utilisation


Il existe une multitude de tutoriels et de manuels.
Le plus simple est de commencer avec ceux livrés avec Pd et ses bibliothèques : dans le menu Help, choisissez Browser....

Dans 1.Manual/, vous trouverez le manuel officiel en html, qui explique très bien le principe, en anglais. Il se trouve également sur cette page du site de la communauté. Il existe cette documentation francophone écrite par Jérôme Abel, qui malgré son age (de la documentation, pas de M. Abel) reste tout à fait actuelle, puisque la base de Pd n'a pas tant changé.
Si on fouille dans cette précieuse aide, on trouvera plein de ressources, qui présentent l'avantage d'être sous forme de patchs, donc interactives. Vous remarquerez que beaucoup de tuto sur Internet sont conçus de la même façon. Chaque bibliothèque propose des patchs-exemples de leurs objets. Notez également qu'il est toujours possible d'accéder au patch d'aide d'un objet en cliquant-droit sur celui-ci et en sélectionnant Help.

Sinon :
  • Les listes de discussion officielles : http://puredata.info/community/lists
  • L'Association Impala Utopia : d'excellents tutoriels, ainsi que des supports de cours (ceux-ci sont parfois inutiles hors contexte), tout en français, http://impala.utopia.free.fr/pd/
  • Tutos et manuels en anglais de Floss Manuals : https://en.flossmanuals.net/pure-data/
  • Manuels en français de Floss Manuals (moins complet que la version anglais, mais tout de même une bonne introduction au logiciel) : http://fr.flossmanuals.net/Puredata/
  • Programming Electronic Music in Pd une très bonne introduction à la synthèse sonore et au traitement du signal dans Pure Data. Disponible en version anglaise, allemande et espagnole. On peut également acheter le livre en version papier. http://www.pd-tutorial.com/
  • GuitarExtended, un blog détaillant comment utiliser Pd pour créer un multi-effets pour guitare. Beaucoup de questions sont traitées, de l'installation de Linux à la fabrication d'une pédale pour contrôler Pd. De nombreux exemples d'effets sont expliqués et téléchargeables. Le site est en anglais mais l'auteur est français, donc questions et commentaires en français bienvenus. http://guitarextended.wordpress.com


Installation


Il existe dorénavant une seule version officielle de Pure Data :
  • Pd-Vanilla : version originale de Miller Puckette "nue", intégrant le cœur et les principales fonctionnalités.

Pd-Extended  était une version étendue, comprenant un certain nombre de bibliothèques, amenant une multitude d'objets supplémentaires. Elle est encore souvent présentée dans les tutoriels, mais elle abandonnée depuis 2013. Il est conseillé maintenant d'utiliser un gestionnaire de bibliothèques externes intégré à Pd : Deken .

Il existe également des forks, comme Purr Data , qui propose plus de paquets de base, à l'instar de Pd-Extended, tout en ayant une interface plus attractive (tk étant remplacé par la bibliothèque javascript nw.js)

Une fois Pure Data installé, vous trouverez ce gestionnaire de paquets dans l'aide, sous le nom de "find externals".

avec ma distribution :

Les dépôts de votre distribution proposeront sans doute Pd-Vanilla. Il vous est évidemment possible de le compiler vous-même à partir des sources, bien que cela peut s'avérer fastidieux si vous décidez d'accompagner Pd de nombreuses bibliothèques.




Lancement et réglages


Démarrage

On peut lancer Pd soit avec le lanceur si le paquet de votre distribution le prévoit, soit en ligne de commande :
pd

Intéressons-nous à celle-ci un instant. Pour voir les options de démarrage :
pd --help

exclaim Le point important si on travaille en temps réel, c'est d'ajouter l'option -rt, faute de quoi on risque fort de subir une pluie de "DIO errors" :
pd -rt

Il est également bien pratique de choisir le serveur son, afin de ne pas avoir à le configurer dans Pd à chaque démarrage. On peut par exemple le lancer avec jack, un échantillonage à 48 000 Hz, le temps réel, et enfin alsa comme serveur MIDI :
pd -rt -jack -r 48000 -alsamidi

Bien, à présent, si on veut mettre tout ça en dur : on édite le lanceur (clic droit => propriétés => lanceur) et on ajoute les options, ou on en crée un nouveau (clic droit sur le bureau, par exemple => Créer un lanceur).
Depuis les dernières versions, il est possible de mettre tout ce petit monde directement dans le fichier de configuration .pdsettings ou .pdextended, sous l'option flags. Ajoutez à la fin du fichier:
flags: -rt -jack etc...

ou graphiquement dans la fenêtre Startup... du menu File, on ajoute les options sur la ligne startup flags.

Temps Réel et DIO Errors

Pd ne gère pas encore parfaitement sa relation avec jack, et donc avec le temps réel. Vous risquez de voir beaucoup de DIO Errors (le bouton dans la fenêtre principale qui s'allume en rouge) si vous travaillez à faible latence, ce qui pourrait être le cas sachant que Pd en ajoute pas mal. (À vérifier si cette information est toujours à jour...)

La méthode qui suit donne explicitement une priorité au processus Pd.
L'explication en ligne de commande:
Commencez par trouver l'ID du processus:
ps -e|grep pd
 5528 ?        00:00:00 pdextended
 5530 ?        00:00:00 pd-gui

Nous voyons donc qu'il y a deux processus: le coeur (ici pdextended), et le GUI. Nous ne nous intéresseront évidemment qu'au coeur. Voyons maintenant le niveau de priorité actuel. En root:
chrt -p 5528
 stratégie de planification d'exécution pour pid 5528 actuel : SCHED_OTHER
 priorité de planification d'exécution pour le pid 5528 actuel : 0

Et donnons lui une priorité à 70, qui devrait être suffisant pour être au-delà de la carte graphique et des autres processus, mais au-dessous de jack. Toujours en root:
chrt -f -p 70 5528
puis pour vérification, à nouveau:
chrt -p 5528
 stratégie de planification d'exécution pour pid 5528 actuel : SCHED_FIFO
 priorité de planification d'exécution pour le pid 5528 actuel : 70


Pour automatiser tout ça, je vous propose ce script. Copiez le dans un fichier, et renommez-le du nom que vous voudrez, avec l'extension .sh.
#!/bin/sh
chrt -v -p 70 `pidof "pdextended"` |grep "prio"
#exit 0

Lancez-le après Pd. Vous pouvez toujours vérifier avec chrt -p.
Vous devriez voir à présent les 'DIO Errors' diminuer drastiquement. Si ce n'est pas le cas, c'est que le problème est ailleurs.

Réglages

Au lancement, il faut s'assurer que le son fonctionne rolleyes en choisissant Test Audio and Midi dans le menu Media
Used in puredata
Si jamais ça ne devait pas être le cas, on peut jouer avec les réglages du même menu. C'est là également qu'on va choisir le nombre d'entrées et de sorties, la latence, les connexions Midi, etc...




Découverte


  • Pour faciliter l'approche de ce programme, l'exemple d'un générateur sonore sera abordé et développé.


Générateur sonore simple


  • Pour commencer, sur une page vierge, 2 boites vont être placés (Menu Put / Object)
  • Les boites sont des modules de type générateur, convertisseur, enveloppe...
  • La 1ere boite est un oscillateur (osc) générant une sinusoïde à 440hz (le fameux LA du diapason) smile, le signe (~) signifie qu'il s'agit d'un flux audio.
  • La 2eme boite est le convertisseur (DAC - Digital-to-Analog Converter) qui transforme le signal numérique en signal analogique
  • Les 2 fils en gras (audio) relient l'Osc au DAC en stéréo
Used in puredata
  • Et voila notre premier générateur sonore smile

  • Voici d'ailleurs le code au format .txt (doit être renommé en .pd pour être chargé dans Pure Data)
    #N canvas 582 516 307 82 10;
    #X obj 50 7 osc~ 440;
    #X obj 125 58 dac~;
    #X connect 0 0 1 0;
    #X connect 0 0 1 1;

arrow N'oubliez pas d'activer le son dans le menu Media / Audio On

  • En cliquant (bouton droit) sur la boite osc nous avons accès à une page d'aide idea, que l'on peut aussi modifier (pour traduire par exemple), impressionnant, non !
Used in puredata


Générateur sonore avec contrôle de volume


  • Une boite multiplicateur est rajoutée
  • Une boite argument relié par un fil de commande permet de changer la valeur
Used in puredata
  • Code :
    #N canvas 199 177 243 117 12;
    #X obj 14 -111 osc~ 440;
    #X obj 133 -21 dac~;
    #X obj 147 -67 *~;
    #X floatatom 172 -108 5 0 100 0 - - -;
    #X connect 0 0 2 0;
    #X connect 2 0 1 0;
    #X connect 2 0 1 1;
    #X connect 3 0 2 1;

arrow Avec CTRL E, on passe du mode Edit au mode Jeu ce qui permet de varier le volume avec la souris.
arrow Seule les premières valeurs sont actives (de 0 à 10 environ / progression linéaire) alors que nos oreilles sont sensibles a des valeurs logarithmiques eek


Générateur sonore variable


  • En rajoutant une boite à coin biseauté, nous pouvons varier la fréquence de l'oscillateur (qui est rappelons le, sinusoïdal).
  • Nous pouvons aussi rajouter un curseur horizontal qui fera office de potentiomètre pour régler le gain.
Used in puredata
  • Code :
    #N canvas 352 375 331 141 12;
    #X obj 93 0 dac~;
    #X obj 104 -45 *~;
    #X floatatom 189 -74 5 0 100 0 - - -;
    #X obj 192 -108 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -261681
    -1 -1 5200 1;
    #X floatatom 7 -111 5 0 0 0 - - -;
    #X obj 7 -81 osc~;
    #X connect 1 0 0 0;
    #X connect 1 0 0 1;
    #X connect 2 0 1 1;
    #X connect 3 0 2 0;
    #X connect 4 0 5 0;
    #X connect 5 0 1 0;

arrow Le signe ~ est accessible avec la touche ALT Gr + ~
arrow Les liaisons grasses représentent le trajet audio
arrow Les liaisons fines représentent les commandes

Clavier virtuel


  • L'insertion de plusieurs boites permet de jouer avec des notes biens précises correspondant à des hauteurs en fréquence définies par des codes Midi (de 1 extrême grave à 128 extrême aigu)
Used in puredata
  • mtof permet donc de convertir des notes Midi en fréquences
  • Do 60 correspond à C3 (situé sur l'octave moyenne d'un clavier portable)
  • Pour le volume, on peut aussi changer pour un curseur vertical et changer la couleur wink
  • Code :
    [+]

  • Tout doucement nous verrons l'élaboration d'un synthétiseur monophonique simple à synthèse soustractive ou additive smile

à suivre... wink



Liens et commentaires


Voir également netpd



[+]

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool
calixtus06, 11:17, mar. 05 mars 2024: Bonjour et bienvenue à D752 :-)
calixtus06, 18:59, lun. 04 mars 2024: Bonjour et bienvenue à Hborsa et Adjudandouille :-)
olinuxx, 18:34, jeu. 29 Feb 2024: Bonjour et bienvenue à anto45500 cool
jujudusud, 23:38, mar. 27 Feb 2024: Venez participer à la joute numéro 17 : [Lien]
calixtus06, 18:36, jeu. 22 Feb 2024: Bonjour et bienvenue à nikartri et rckloar :-)
calixtus06, 10:15, mer. 14 Feb 2024: Bonjour et bienvenue à smonff, Alphascorpii, tadumtss et letoII :-)