Présentation de Purr Data (Pd-l2ork) – Programmation graphique orientée objet
Nous allons découvrir ‘Purr Data’, une variante très améliorée de ‘Pure Data’, puis nous l’utiliserons pour construire des projets MIDI (Musical Instrument Digital Interface)
‘Purr Data’ = Environnement de programmation visuelle Pure Data Vanilla enrichi porté sur une interface graphique HTML5 (la dernière révision majeure du HTML) et fonctionnant au moins sous les systèmes d’exploitation libres GNU/Linux, et propriétaires macOS et Windows
‘Purr Data’ = Pure Data Vanilla (la fondation) + Pd-extended (obsolète) + Pd-l2ork v.1 (fork de Pd-extended) + des améliorations et nouveautés
◊ Au sommaire de cet article
- Avant-propos
- Au sujet de Purr Data
- Documentation, ressources et installation de Purr Data
- Avant-goût d’un Lecteur-Enregistreur de fichiers MIDI réalisé avec Purr Data
- Cyclone v.0.3.x – External de Pure Data Vanilla
- Utilisation de Purr Data pour des projets MIDI
- Et aussi – Rencontrez le Chat : Introduction rapide à PURR DATA (vs Pd-l2ork vs Pd-extended vs Pure Data)
♦ Avant-propos
Cet article s’inscrit dans la suite logique de :
- Introduction à la programmation MIDI avec Pure Data
Si vous ne connaissez pas les logiciels de programmation graphique orientée objet, commencez d’abord par là pour découvrir Pure Data dans sa version originale Vanilla. Puis, nous l’utiliserons pour nous initier à la programmation MIDI (Musical Instrument Digital Interface). - Pure Data – Construire un Séquenceur pas-à-pas MIDI (Step Sequencer)
Nous continuons notre exploration de Pure Data Vanilla en programmant 3 Séquenceurs pas-à-pas MIDI. - Introduction à la programmation MIDI avec Python, MidO et RtMidi (1 à 5, et 6 à venir).
À consulter pour voir les configurations Audio/MIDI avec les logiciels suivants : QjackCtl, Qsynth avec SoundFonts, Virtual MIDI Piano Keyboard et Patchage, que nous avons repris aussi bien pour Pure Data que Purr Data.
♦ Au sujet de Purr Data (Pd-l2ork v.2)
Pour la petite histoire, « Purr Data » peut librement se traduire en « données ronronnantes ». C’est pourquoi, son développeur et ses mainteneurs font souvent référence à un chat dans leur communication.
Gardons en mémoire que le fonctionnement et les objets de base de Purr Data (aussi connu sous le nom de Pd-l2ork v.2) sont identiques à ceux de Pure Data (Vanilla).
PURR DATA de Jonathan Wilkes est une variante de Pure Data (Vanilla) de Miller Puckette mais basée sur Pd-L2ork v.1.x d’Ico Bukvic. Il offre une toute nouvelle interface graphique en JavaScript et de nombreuses corrections de bogues et améliorations. Contrairement au ‘classique’ Pd-L2ork (Pd Linux Laptop Orchestra) v.1x qui ne fonctionne que sous GNU/Linux, Purr Data est multi-plateforme et fonctionne sous les systèmes d’exploitation libres GNU/Linux, et propriétaires macOS et Windows, avec quelques spécificités (en plus – en moins) propres à chaque système.
Purr Data s’appuie sur le code source de plusieurs projets logiciels :
- Pure Data (Vanilla) – le puissant moteur historique de scripts multimédia (audio, Midi, vidéo et autres), qui en est la fondation,
- Pd-extended – une application désormais abandonnée qui livrait Pure Data avec de nombreuses bibliothèques externes, mais aujourd’hui reprises par Purr Data, et
- Pd-L2ork v.1 – qui a ajouté à Pure Data des améliorations d’utilisabilité réclamées depuis longtemps, telles que des mécanismes infinis d’annulation et de sauvegarde d’état.
Purr Data utilise une interface graphique moderne basée sur le moteur d’exécution NW.js (à base de Chromium + Node.js), contrairement à Pure Data qui utilise toujours le vieillissant Tcl/Tk. Cela signifie que l’ensemble de l’interface graphique est construite à l’aide des technologies HTML5 (celles du web d’aujourd’hui), et que n’importe laquelle de celles-ci, y compris des milliers de frameworks Web, l’API Gamepad, WebGL, etc., peuvent être exploitées par les utilisateurs et les développeurs dans leurs patches Purr Data.
Purr Data, grâce à ses nombreuses bibliothèques spécialisées incluses par défaut (externals) dont de nouveaux et puissants objets MIDI, devrait nous permettre de construire graphiquement des projets plus ambitieux qu’avec Pure Data Vanilla, comme un Lecteur-Enregistreur de fichiers MIDI ainsi qu’un ‘vrai’ Séquenceur MIDI-IN-OUT (dans de prochains articles).
Rencontrez le chat : Une introduction rapide mais détaillée à Purr Data
- Meet the Cat: A Quick Introduction to Purr Data
March 2018 par Albert Gräf (en anglais), un des mainteneurs clés de Purr Data - Video – Getting Started with Purr Data by Albert Gräf (Graef) – durée 1h31 en anglais
Présentation donnée durant la LAC 2018 (Linux Audio Conference) en Juin 2018 à Berlin
♦ Documentation, ressources et installation de Purr Data
Gardez bien en mémoire que tout ce qui s’applique à Pure Data (la fondation) s’applique aussi à Purr Data (Pd-l2ork v.2), mais pas l’inverse (sur les parties additionnelles) !
Veuillez consulter les liens suivants où vous pouvez trouver des ressources pour commencer votre apprentissage de Purr Data.
- D’ABORD, je remets les liens utiles d’un précédent article pour Pure Data Vanilla qui peuvent aussi servir pour la partie commune avec Purr Data.
- Pure Data – Manuel FLOSS – version complète en français (HTML)
Pure Data (souvent abrégé Pd) est un logiciel de création multimédia interactive couramment utilisé dans les domaines artistique, scientifique et pédagogique. Sa popularité réside notamment dans sa facilité d’utilisation. Plutôt qu’un langage de programmation textuel, Pure Data propose un environnement de programmation graphique dans lequel l’utilisateur est invité à manipuler des icônes (objets) représentant des fonctionnalités et à les brancher ensemble (comme sur nos vieilles consoles analogiques). - Pure Data – Manuel – version complète en français 207 pages de Juin 2017 (PDF)
- Pure Data – FLOSS Manual – version beaucoup plus complète en anglais (HTML)
C’est la version recommandée si vous n’êtes pas fâché avec la langue de Shakespeare. - Carte de référence Pure Data – Formulaire des mots-clés de Pure Data Vanilla en français
- Pure Data – Manuel FLOSS – version complète en français (HTML)
- MAINTENANT, concernant spécifiquement Purr Data (Pd-l2ork v.2) il n’y a pas encore vraiment de documentation en ligne totalement complète comme ce projet évolue très régulièrement.
- Les deux sites officiels de Purr Data :
- Celui de Jonathan Wilkes (le plus complet) – son développeur
- Celui d’Albert Gräf – un mainteneur-contributeur clé – Professeur au Computer Music Department de l’Institute of Art History and Musicology du Johannes Gutenberg University (JGU) Mainz en Allemagne
- Néanmoins, une fois Purr Data (Pd-l2ork v.2) installé sur votre ordinateur, vous trouverez dans celui un puissant système d’aide en anglais régulièrement mis à jour et augmenté comprenant :
- Pd Manual (HTML manual)
- Control Tutorials (The Pd language and editor)
- Audio Tutorials (Manipulating audio in realtime)
- Data Structures (Custom data and 2d visualization)
- Reference (Help patches for all built-in object classes)
- Pd-L2Ork Data Structures (New and improved data structure visualizations)
- PDDP Tutorials (Pure Data Documentation Project)
- Intro
- Getting started with Pd
- Sound
- Pd sound examples
- Image
- 3D graphics with GEM (Windows and Linux only)
- Networking
- Introduction to Pd’s networking facilities
- Externals (Blbliothèques extérieures)
- Cyclone (Library of clones of Max/MSP 4.x objects)
- DISIS (DISIS externals (Linux only))
- GEM (Graphics Environment for Multimedia (Windows and Linux only))
Installation sous distributions GNU/Linux
Nota bene : Purr Data peut être installé à côté de Pure Data Vanilla sur votre ordinateur, ce qui est mon cas. Les deux peuvent être utilisés en même temps et en parallèle en fonction de vos besoins !
Purr Data n’est pas disponible actuellement dans les Logithèques (gestionnaires de logiciels) des différentes distributions GNU/Linux. Il faudra l’installer manuellement et la procédure sera spécifique à chaque distribution et au type d’installation retenue.
Voici une petite liste de courses
- Téléchargements (Downloads)
C’est là que vous obtenez des packages prêts à l’emploi pour GNU/Linux, macOS et Windows. Assurez-vous également de consulter les instructions d’installation ci-dessous.
À ce jour, la dernière version disponible de Purr Data est la 2.9.0 (17/04/2019) basée sur Pure Data Vanille 0.48.0. - JGU packages (maintenus par la Johannes Gutenberg University)
Vous pouvez également utiliser les paquets JGU si votre distribution préférée est Arch Linux ou dérivées comme Manjaro -ou- une version récente d’Ubuntu et ses variantes-dérivées comme Linux Mint (ce qui est mon cas).
Les avantages de JGU sont multiples. Les packages sont disponibles via les dépôts de packages appropriés (AUR / pacman pour Arch, PPA de Launchpad pour Ubuntu) et peuvent donc être installés et mis à jour automatiquement via le gestionnaire de packages standard de votre distribution. Les dépendances requises seront également installées automatiquement. Les paquetages sont mis à jour plus fréquemment (également entre les versions) à partir des sources Git actuelles chaque fois que de nouvelles fonctionnalités ou corrections de bogues importantes apparaissent. Ainsi Purr Data est toujours à jour sur votre ordinateur.
Procédure d’Installation
Pour les utilisateurs de GNU/Linux, les téléchargements proposent des packages Linux pour une sélection de versions stables de Debian et Ubuntu. Veuillez vérifier le nom du paquet pour vous assurer que vous obtenez bien le bon paquet pour votre système.
Les packages pour Arch et les nouvelles versions d’Ubuntu sont fournis par JGU, voir ci-dessus.
Pour ma part étant sous Linux Mint 19.1 Cinnamon 64-bit, j’ai opté pour le paquet JGU ‘pd-l2ork.bionic’ (Ubuntu 18.04 LTS). L’installation se fait simplement et en toute sécurité depuis le PPA (Personal Package Archives) officiel de Purr Data.
Ouvrez un Terminal (CTRL + ALT +T) sous Linux Mint 19 et copiez-y ligne par ligne les commandes suivantes :
sudo add-apt-repository ppa:dr-graef/pd-l2ork.bionic sudo add-apt-repository ppa:dr-graef/pure.bionic sudo apt-get update
En résumé, utilisez les commandes ci-dessus pour ajouter les PPA à votre système. Les exemples présentés ici concernent ‘Bionic’. Si vous utilisez une version différente d’Ubuntu ou variantes-dérivées, vous devez modifier le suffixe du nom du PPA en conséquence.
Entrez votre mot de passe administrateur lorsque vous y êtes invité. La deuxième commande-ligne peut être omise si vous ne prévoyez pas d’installer les langages ‘pd-pure’ ou ‘pd-faust’.
Puis, exécutez toujours dans le Terminal la commande :
sudo apt-get install purr-data
Celle-ci va effectivement installer le paquet Purr Data et ses dépendances sur votre ordinateur.
Sous Linux Mint 19, deux nouvelles entrées sont automatiquement ajoutées au Menu -> Son et vidéo : Purr-Data et Purr-Data DEBUG. Il peut être nécessaire de redémarrer votre ordinateur pour voir ces deux entrées.
ATTENTION : Purr Data, comme tout logiciel, n’est pas exempt de défaut. J’en ai fait les frais tout récemment lors de deux mises à jour (v.2.9.0+git4138 et v.2.9.0+git4140) à quelques jours d’intervalle. Les ressources disponibles pour effectuer des tests en profondeur étant limitées, il vaut mieux éviter de faire les mises à jour mineures. Mais le souci pour l’utilisateur étant qu’il ne sait pas à quoi correspond la mise à jour proposée car l’onglet Journal des modifications du Gestionnaire de mises à jour du système pour Purr Data est vide de chez vide. C’est au petit bonheur la chance !
Au premier lancement de Purr Data qui prendra un peu plus de temps que les prochains, la console va afficher un résumé du travail de configuration automatique effectué par le logiciel concernant les bibliothèques tiers (‘externals’) installés.
Deux douzaines d’‘externals’ sont maintenant disponibles pour l’utilisateur-développeur. Avec tout cela, nous avons de quoi faire avec Purr Data ! Mais attention, toutes les bibliothèques externes ne sont pas dans leurs versions les plus récentes !
Pour pouvoir utiliser ‘pdlua’, le dernier dans la liste, il faudra au préalable avoir installé depuis la Logithèque de votre distribution le paquet logiciel ‘Lua5.3’ (pas une version inférieure) sur votre ordinateur.
Lua est un langage libre de script puissant, efficace, léger et intégrable. Il prend en charge la programmation procédurale, la programmation orientée objet, la programmation fonctionnelle, la programmation pilotée par les données et la description des données.
Il est particulièrement apprécié pour l’embarqué, le développement réseau, les jeux vidéo et bien plus. Il s’articule aisément avec Purr Data et Pure Data.
Nota bene : Les patches créés avec Pure Data Vanilla, Pd-extended et Pd-l2ork v.1 fonctionneront ‘normalement’ tous avec Purr Data. Si vous aviez installé un ‘external’ sous l’un de ces 3 logiciels et que Purr Data ne l’intègre pas par défaut, il suffira tout simplement de l’installer sur ce dernier (à condition qu’il soit compatible avec Purr Data !).
Patch programmé avec Pure Data et ouvert dans Purr Data = fonctionnement identique
♦ Lecteur-Enregistreur de fichiers MIDI
Dans le prochain article, nous passerons aux exercices pratiques avec Purr Data.
Purr Data (Pd-l2ork v.2) étant plus puissant que Pure Data Vanilla grâce à ses nombreuses bibliothèques spécialisées incluses par défaut (‘externals’) dont de nouveaux et puissants objets MIDI, nous pouvons maintenant construire graphiquement un Lecteur-Enregistreur de fichiers MIDI possédant les fonctions de base nécessaires avec quelques extras.
MIDI | FICHIERS | MESSAGES | AFFICHAGE | IN/OUT |
LECTEUR | Lit depuis disque | Note, Vélocité, Canal, Drums | OUT => Clavier / Synthé / Autres | |
ENREGISTREUR | Écrit sur disque | Lit depuis IN Écrit sur disque |
Note, Vélocité, Canal, Drums | IN <= Clavier / Synthé / Autres |
♦ Cyclone – Pure Data External
Pour réaliser des projets MIDI dans de bonnes conditions avec Purr Data (Pd-l2ork), il nous manque les dernières versions de Pure Data Vanilla et de l’external Cyclone. Mais malheureusement à ce jour et malgré son dynamisme, Purr Data v.2.9.0 n’intègre que Pure Data v.0.48-0 et Cyclone v.0.2. À ma connaissance, il n’y a pas de plan actuellement pour les intégrer dans Purr Data. C’est plus que dommage pour les performeurs MIDI.
Les versions actuelles de Cyclone sont les 0.3.0 et 0.3.1 et demandent respectivement au moins Pure Data Vanilla 0.49-1 et 0.50-0. De ce fait, avec Purr Data 2.9.0 il est IMPOSSIBLE d’utiliser aussi bien Cyclone 0.3.0 que 0.3.1. Il faudra donc utiliser Pure Data Vanilla 0.49-1+ ou 0.50-0 (actuellement en version Test release).
Au sujet de Cyclone v.0.3.x
L’external Cyclone étend les possibilités de Pure Data Vanilla avec des objets clonés à partir de Max/MSP de Cycling74 et offre un bon niveau de compatibilité entre les deux environnements.
Cyclone 0.3.0/0.3.1 nécessitent au moins Pure Data Vanilla 0.49-1/0.50-0 et ils ne fonctionnent pas complètement ni avec Pd-Extended ni avec Purr Data, ces deux derniers intégrant toujours des versions déjà bien obsolètes de Cyclone. Pd-Extended porte toujours l’antique version 0.1. Purr Data porte toujours la version 0.2 de Cyclone qui, à elle seule, n’a pas encore été intégralement porté sur Purr Data.
L’auteur originel de Cyclone (Krzysztof Czaja) l’a abandonné en 2005 à la version 0.1alpha55. Cyclone a ensuite été intégré et disponible dans Pd-Extended, où il n’a eu qu’une mise à jour mineure en 2013 (0.1alpha56) sous la maintenance de Hans-Christoph Steiner, juste avant que Cyclone et Pd Extended ne soient totalement abandonnés.
Dans le cadre d’une nouvelle phase de maintenance de Fred Jan Kraan, des versions bêta de 0.1alpha57 et du nouveau Cyclone 0.2 ont été publiées, toujours en lien étroit avec les versions précédentes de ‘0.1alpha’ et, pour la plupart, conformes à Max 4.0.
Le but principal de Cyclone 0.3.0 (min. Pure Data Vanilla 0.49-1) était de mettre à jour les objets de Cyclone vers la dernière version de Max 7 (Max 7.3.5). De nombreux bugs ont également été corrigés, la documentation a été réécrite à partir de zéro et de nouveaux objets ont été inclus.
En voici le résultat :
- 62 objets mis à jour basés sur la dernière version de la branche Max 7 (7.3.5)
- 65 objets réparés (incluant les objets mis à jour)
- 40 nouveaux objets (oui-oui)
- Documentation nouvellement écrite
- Vous trouverez le journal des modifications détaillé ICI
Recherchez les dernières versions de Cyclone ICI ou directement via le Gestionnaire des ‘externals’ de Pure Data Vanilla (Help => Find externals).
À partir de la version 0.47-0 de Pure Data Vanilla, le Gestionnaire de bibliothèques Deken est inclus par défaut pour offrir un accès facile aux bibliothèques externes (‘externals’) développées par la communauté qui étendent les fonctionnalités de Pd, telles que Cyclone, Zexy et la bibliothèque d’informations graphiques Gem.
Nota bene : Les futures mises à jour correspondant aux fonctionnalités ajoutées à partir de Max 8 pourraient être incluses dans une version 0.4 ou supérieure de l’external Cyclone.
♦ Utilisation de Purr Data pour des projets MIDI
Malgré toutes les améliorations et nouveautés offertes par Purr Data v.2.9.0, ce fork manque cruellement d’un nombre certain d’objets MIDI que l’external Cyclone 0.3.0/0.3.1 nous propose librement.
Alors, pour pouvoir les utiliser, il faudra obligatoirement passer-revenir à Pure Data Vanilla 0.49-1+ ou 0.50-0+, en attendant qu’un jour ou l’autre Purr Data se décide enfin ou pas à intégrer Cyclone 0.3.0+.
- Purr Data (Pd-l2ork) – Programmer un Lecteur-Enregistreur Live de fichiers MIDI – 10/07/2019
- Purr Data 2.9 (Pd-l2ork) – Carte de référence des objets MIDI (MAO) – 18/07/2019
- Purr Data 2.9 (Pd-l2ork) – [mtr] l’objet Multi-TRack Sequencer – 2/08/2019
- Et d’autres qui suivront en Purr Data et/ou Pure Data Vanilla…
♦ Vous êtes tenté par Purr Data, alors lisez la suite…
⇒ Rencontrez le Chat : Introduction rapide à PURR DATA (vs Pd-l2ork vs Pd-extended vs Pure Data) – 1/07/2020
Tout ce que vous avez toujours voulu savoir sur PURR DATA (données ronronnantes) sans jamais oser le demander à votre matou préféré ! 😉