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

Contenu 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 – qui fait cruellement défaut à Purr Data v.2.9.0
  • Utilisation de Purr Data pour des projets MIDI

♦ Avant-propos

Cet article s’inscrit dans la suite logique de :

♦ 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

Purr Data (Pd-l2ork v.2) : Vue d’ensemble du logiciel libre de programmation graphique orientée objets

♦ 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
  • 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 !

Purr Data (Pd-l2ork v.2) : Vue de la console au 1er lancement du logiciel

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

Purr Data (Pd-l2ork v.2) : Séquenceur 16-pas v.2 (Step Sequencer) Notes MIDI vers Synthétiseur sous GNU/Linux

♦ 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+.