Pof

Pof (https://github.com/Ant1r/ofxPof) est une bibliothèque pour Pure Data permettant de développer une application, dotée de fonctionnalités audio, graphiques (2D/3D) et tactiles.
Cette application peut fonctionner sur toutes les plateformes, ordinateurs ou mobiles (Linux, OSX, iOS, Android, Windows).


Histoire

Pof fut conçu en 2014 par metalu.net lors de la réécriture de l’application musicale NinjaJamm (iOS/Android), développée par et pour Coldcut et le label anglais NinjaTune ;

Coldcut fit alors le choix de rendre le code de Pof disponible pour la communauté, sur la base de l’open-source. Depuis, metalu.net continue de l’améliorer et l’utilise dans de nombreux projets ; il permet en particulier à Pure Data d’accéder aux possibilités graphiques des smartphones/tablettes et du raspberryPi.


Fonctionnement

Pof se présente comme un addon openFrameworks, nommé ofxPof, qui produit un ensemble de nouveaux objets Pure Data ; Pof s’installe simplement par l’interface d’installation de bibliothèques intégrée à Pd. Ces objets apportent de nouvelles fonctionnalités à Pd :

  • affichage de formes 2D/3D de base, chemins, maillages
  • chargement, affichage, modification et enregistrement d’images
  • lecture de films
  • rendu de texte anti-aliasé utilisant des fontes TrueType
  • translation, rotation, échelle
  • gestion de la couleur et de la transparence
  • framebuffers (fenêtres virtuelles de travail), textures, shaders

 

  • gestion des événements multi-touch, prenant en compte l’ordre de rendu des objets (le dernier affiché à l’endroit touché capture l’événement)

 

  • rendu graphique exécuté par une tâche parallèle, indépendante de la tâche audio

 

  • utilitaires de fichiers (listdir, rmfile, mkdir, rmdir…)
  • téléchargement multi-tâche de fichiers depuis le réseau
  • lecture et modification de fichier XML
  • lecture de fichier JSON (permettant de lire des fichiers en ligne)

Ainsi l’interface graphique d’une application, de même que sa logique et ses traitements audio, peuvent être entièrement écrits en patchs Pure Data, en se servant de Pd comme éditeur et interpréteur temps-réel.

Cette application peut ensuite être compilée en une véritable application autonome pour n’importe quel OS, grâce à libpd.


Crédits

Pof est construit grâce sur les bases solides de openFrameworks (http://openframeworks.cc/), qui est une bibliothèque C++-OpenGL multi-plateforme open-source, dédiée au « creative coding ».
libpd(http://libpd.cc/) est une bibliothèque permettant d’encapsuler Pure Data dans une application.
ofxPd est un addon openFrameworks implémentant libpd pour openFrameworks.

Pof utilise d’autre addons openFrameworks, comme ofxUnicode, ofxFontStash (rendu de texte), ofxJSON.

 

La syntaxe graphique de Pof doit beaucoup à Gem, une autre extension openGL pour Pd ; cependant des différences notables existent entre les deux.


Démo : Pof Patch Player

Une application de démonstration est incluse dans Pof, et est intégrée dans l’application Android de démo (le fichier APK est disponible dans l’onglet « releases » du dépot github). Elle présente un menu donnant le choix entre quelques mini-applications :

JPEG - 29.3 ko

JPEG - 50.5 koJPEG - 46.4 koPNG - 53.7 koJPEG - 18.3 ko


Tuto

(en construction…)

Pof tutorial 1. Retailler une image ; changer la couleur d’une image, et sa transparence. Rendre l’image sensible au toucher. Changer la couleur et la transparence d’une image quand on la touche.