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’ = 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

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

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

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 !

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

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

LIRE la SUITE => Purr Data (Pd-l2ork) – Programmer un Lecteur-Enregistreur de fichiers MIDI