Pure Data Packet

Introduction

Pure Data Packet (PDP) is an extension library for the computer music program Pure Data (PD), by Miller Puckette and others. Its goal is to provide a way to use arbitrary data types (data packets) as messages that can be passed around inside PD, along side the standard PD numbers and symbol types. In short it puts any data object on the same level as a float or a symbol.

That's the main goal, but we're not there yet. PDP is very much work in progress, but reasonably stable and usable as is. PDP runs on Linux and OSX. The OSX version depends on Fink, which is not in the "point & click" stage yet, so setting it up will require some efford. There is no windows version. The reason for this is simple: i don't use windows myself. Porting would require writing code for input/output and getting the libraries pdp depends on to work. If anyone is willing to do this, just let me know.

Currently, PDP's focus is on images and video, but there is no reason it should stay like that. There is limited support for matrix processing included in the main library (like Jitter or Gridflow). There is an extension library for 1D and 2D binary cellular automata, opengl rendering (like Gem). Some plans include audio buffers (like Vasp), ascii packets, text buffers, ... Finally there's a library that enables you to connect a scheme interpreter (guile) to pdp. For more image processing objects, have a look at Yves Degoyon's PiDiP library.

Getting Started

If you're used to working with PD, the the documentation and example patches should be enough to get you started. Have a look at the README file in the distribution to find out how to compile and setup. The file doc/reference.txt contains a list of objects. If you have installed pdp properly, you can just press the right mouse button on an object and select help to get a help patch. If this doesn't work, look in the directory doc/objects for a collection of help patches. The directory doc/examples contains some more demos. If you just want to do video, stop reading here and install it :)

Packets

PDP is centered around the concept of packets and operations on packets. From the outside, all there seems to be is video processing objects, but on the inside a type system and processor model is growing. One of the interesting features in PD is the possibility of connecting everything with everything. If you want to generalize this to all kinds of media objects, the complexity starts to grow quite fast. Therefore pdp has a type conversion system. A packet always has a type description (a mime type if you want) that will enable it to be converted to another type without to much bookkeeping. Most of this will become automatic later, but right now you can already do the conversions manually.

An example: You can use the basic pdp library together with the cellular automata library and the opengl rendering library to use a cellular automaton as an input to a video processing chain. You can convert the processed image to a texture that can be applied to a 3d object, which then can be drawn to the screen, captured as a texture, converted back to an image, which can then be converted to a sound, processed and converted back to an image, etc... You get the point. The possibilities are endless.


Tom Schouten
Last modified: Fri Jun 20 17:01:39 CEST 2003