[overview = main doc in archive tom@zwizwa.i**20080130131005] move ./www/index.html ./doc/misc/old-overview.html move ./doc/overview.html ./www/index.html hunk ./doc/misc/old-overview.html 1 - -Pure Data Packet - - hunk ./doc/misc/old-overview.html 3 - hunk ./doc/misc/old-overview.html 5 -

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

PDP is an extension library for +Pure +Data, +aimed at providing video and other media processing fuctionality. +That's still it's main purpose, but as of version 0.13, there is more. +PDP turned into a tool for writing PDP. See the section on +Packet Forth. hunk ./doc/misc/old-overview.html 14 -href="http://fink.sourceforge.net/">Fink. There is no -windows version. +href="http://fink.sourceforge.net/">Fink. + +

PDP's focus is on images and video, but there is no reason it +should stay like that. There is support for matrix processing, +1D and 2D binary cellular automata, opengl rendering (like Gem), +scheme scripting (guile), ascii packets, bit grids, ... + +

For more image processing objects, streaming objects and a collection +of very useful additions to the bare bones PDP functionality, have a look +at Yves Degoyon's PiDiP library. + +

Since version 0.13.x, which is a merger between stable (0.12.x) and +packet forth, PDP has been split up into 3 parts: + +

  • libtile - A lowlevel library for platform specific (integer, mmx, altivec) +image processing operations and cache optimizations. +
  • libpdp - The packet managing library + pf scripting language. +
  • pdp - This is the stable pdp 0.12.x with support for packet forth. + + + +

    PDP for Pure Data

    + +This is considered to be the stable part of pdp. It has been stable since 0.12.x +It has it's bugs & drawbacks & oversimplifications but will mostly stay +like it is. + +It is optimized for intel/mmx and uses a 16bit signed yuv format ideal for real +time video processing, mixing, blending and feedback. The pf layer is accessible +from pd/pdp. The result of this is that you can write pdp objects in pf, or directly +map pf operations to pdp objects. + +A 'getting started' documentation for pd/pdp/pidip is being worked on. +Until then you can have a look at the 'pdp' subdirectory in pd's 'Pure Documentation'. +Most objects are documented with pd style help patches accessible by right clicking +on an object. The place to send questions is the pd mailing list. Bugreports can +be sent to the pd list or me: pdp TA zzz TOD kotnet TOD org . + + + +

    Packet Forth

    + +The libpdp library is a C support library for media processing. It implements +a mime-like media type system (packets), type conversion and packet operations, +interface logic to connect pf to other applications, and other things you might +need to write small 'scratch' media applications. + +All operations are implemented as extensions to a forth-like glue language +called Packet Forth. For more information on this see the documentation +in the libpdp distribution, or the mailing list archives. + + + + +

    CVS

    + +The latest stable pdp release is 0.12.4. +Because 0.13.x is still in a flux, the preferred way of accessing the code is CVS. +You can access the modules in this way: hunk ./doc/misc/old-overview.html 74 -

    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 PD/PDP. For more image processing objects, -have a look at Yves Degoyon's PiDiP library. +

    +export CVSROOT=:pserver:anonymous@zwizwa.fartit.com:/usr/local/cvsroot
    +cvs login
    +cvs co libtile
    +cvs co libpdp
    +cvs co pdp
    +
    hunk ./doc/misc/old-overview.html 82 -

    Getting Started

    +

    To update, simply cd to each of the 3 directories, and type cvs update -d. hunk ./doc/misc/old-overview.html 84 -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. The directory doc/objects contains two -abstractions that are used to setup the input and output in the help -patches. You might want to cut and connect some wires to use the -input/output setup that works for you. hunk ./doc/misc/old-overview.html 85 -

    Packets and Types

    +

    When extracting from cvs, you need to run the ./bootstrap script to +create the configure scripts and build and install the packages in the order above. +In order to compile pdp with libpdp (pf) support, you need to add a +--enable-pf option when invoking pdp's configure script. hunk ./doc/misc/old-overview.html 90 -

    PDP is about packets and operations on packets. Packets are just chunks -of dumb data. The interpretation of this data depends on its type name. -There are several types of packets. The default type for most -objects is image/YCrCb/320x240. This is a single video -frame, encoded in the internal 16bit YUV format, measuring 320 by 240 -pixels. Another image type is the grayscale image -image/grey/320x240. Important notes: All image processing objects that -combine two or more packets need to be fed with the same packet types, i.e. -encoding (YCrCb/grey) and dimensions need to be the same. Image dimensions need to be a -multiple of 8x8. hunk ./doc/misc/old-overview.html 91 -

    The -bitmap/*/* type is another image representation type -supporting several encodings. I.e. bitmap/rgb/*, -bitmap/rgba/*, bitmap/yv12/*, ... + +

    Links

    hunk ./doc/misc/old-overview.html 94 -This type cannot be processed directly by most of the image processing -objects, but it can be used to store in delay lines, or to send over the -network. It's main use is to support all kinds of input/output devices, and -opengl textures, without introducing too many conversions, but it can serve -as a space and bandwidth saver too (especially -bitmap/yv12/*). +
  • Pure Data at IEM +
  • PiDiP Is Definitely In Pieces +
  • al-Jwarizmi +
  • PidipVJ +
  • Videoflow / Cruzados BGN +
  • Eth0 +
  • RRADical hunk ./doc/misc/old-overview.html 102 -

    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 -of managing the different types starts to grow quite fast. Therefore PDP has -a type conversion system that can take care of most of the conversions -using the [pdp_convert] object. You can manually convert -packets to a certain type by specifying a type template as a creation -argument. I.e. [pdp_convert image/grey/*] will convert -any packet to a greyscale image. Most of the conversion will become -automatic later on. +

  • Veejay / SendVIMS +
  • FreeJ +
  • EffecTV hunk ./doc/misc/old-overview.html 106 -

    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. hunk ./doc/misc/old-overview.html 107 -

    Over the last couple of years, PDP has given birth to a forked off project called -Packet Forth. -This is a programming laguage based on ideas from Forth and Lisp. It's aim is -loosely to be a kind of 'media Perl'. hunk ./doc/misc/old-overview.html 108 -


    -
    Tom Schouten
    - - -Last modified: Thu Jan 25 23:56:07 CEST 2006 - - -