Skip to content

lad/PyPd.Archive

Repository files navigation

PyPD is a set of python classes and utilities for parsing and manipulating Pure
Data patch files (http://puredata.info/). Pure Data (aka Pd) is a real-time
graphical programming environment for audio, video, and graphical processing.

The original intent of this project is to fill the gap in managing dependencies
between Pd patch files. Pd patches may contain references to other patch files
("abstractions" in Pd terminology) and these in turn may references further
patch files. However, Pd lacks any way of viewing or managing these
dependencies.

The main goal of this project is to make it easier to view and manage these
dependencies.  Pd is supported in "vanilla" and "extended" forms. Without any
tools it is difficult to know if a patch is compatible with pd-vanilla or
requires pd-extended. It's easy to inadvertently refer to a local patch
file and cause the patch to fail in other installations.

In addition to managing dependencies, having parsed the patch files, a number
of useful utilities may be written to manipulate objects within patch files.



Version 0.2 Alpha

26/10/11
- Finished 0.2
- Finished pdlist depend functionality

13/10/11
- Moved object id generation from SimpleTree to PdPatch as this needs to
  understand Pd objects, and SimpleTree has no other need to do that. Makes
  more sense to do this in PdPatch anyway.

12/10/11
- Removed PdPatchFilter and reworked select()
- select() now takes the keyword arguments that would have been given to
  PdPatchFilter and matches on all values without the need for a PdPatchFilter
  object.
- More complex matching can be done by using the filter builtin, and providing
  a callable in the normal way. The callable is invoked with the node, object
  id and level in the tree, and can match in whatever way is required.

11/10/11
- Work in progress, almost complete
- Rewrote a more suitable tree implementation
- All traveral in PdTree now
- Moved most of pdlist functionality in pd.py
- Added PdPatch and PdObject classes
- Object-ids are now implicit, and only available when traversing the tree
- Added PdPatchFilter to allow one or more objects to be selected based on
  their attributes.


Version 0.1 Alpha

- Parsing of Pd files is relatively complete. All element and object types
  are supported as of pd-vanilla-0.43 and pd 0.42.5-extended, except "declare"
  and "import".

- Support needs to be added for declare, but there is a work around by
  simply adding the declared directory to the search path.

- Support needs to be added for import. This would require a way of opening
  and examining a .dll/.so (ala unix nm). Maybe a simple alternative is to
  include the objects for the common libraries (like Gem), and allow others
  to add definitions easily for their own libraries.

- Support needs to be added to help in adding/removing objects and renumbering
  object ids.

- Should also add some helpers for managing connections between objects.

- The first utility pdlist.py now provides the ability to list all dependencies
  in a given patch file. This can be used when releasing a patch to the
  community as it can be difficult to know exactly what dependencies are needed
  to run the patch.

About

Python utilities for parsing Pure Data patch files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published