Pof

Pof (https://github.com/Ant1r/ofxPof) is a set of Pure Data (Pd) externals written with openFrameworks API, that bring OpenGL/GLES graphics and utilities to Pd, such as :

  • basic 2D shapes drawing : rectangle, ellipse, path
  • image pre-loading, caching, modifying, saving
  • mapped 3D sphere and plane
  • anti-aliased truetype text rendering
  • translating, rotating, scaling
  • color and alpha blending management
  • shared framebuffers
  • 2D multi-touch events management, taking account of the drawing order of objects (the last object drawn at this place catches the event)
  • threaded rendering (so audio never waits for GUI)
  • some file utilities still missing in pd (getdir, listdir, rmfile, mkdir, rmdir…)
  • threaded file downloading from network
  • XML file parsing and editing
  • JSON file parsing (online files allowed)

The graphical interface of an application, as well as its logic and audio processing, thus can be entirely written as Pure Data patches, using Pd as an editor and real-time interpreter.

This application can then be ported as a standalone app, using ofxPd (itself using libpd) to a large scale of operating systems : Linux, OSX, Windows (untested), iOS, Android, Raspberry PI…

ofxPof is Pof, packaged as an openFrameworks addon.

Pure Data is an open source graphical patching environment.
openFrameworks is a cross platform open source toolkit for creative coding in C++.
libpd is the Pure Data embeddable library.
ofxPd is an openFrameworks addon for adding an instance of Pd within an openFrameworks application.

The graphical syntax of Pof owes a lot to Gem (however it has some noticeable differences from it). Pof also follows an exploration (and some enhancement) of what can be done with PdDroidParty.

Pof was initially developed to provide a GUI for the Android version of NinjaTune/Coldcut‘s Ninja Jamm app. Coldcut support making the code available to the community on an open source basis.


Demo: Pof Patch Player

A demo application is included in Pof, and is integrated into the Android demo application (the APK file is available in the “releases” tab of the github repository). It presents a menu giving the choice between a few mini-applications:

JPEG - 29.3 ko

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