pax_global_header 0000666 0000000 0000000 00000000064 12660451536 0014522 g ustar 00root root 0000000 0000000 52 comment=46c8ef0e0b238b613f2cb2c09a7116bd0339e98d
pdp-0.14.1+darcs20180201/ 0000775 0000000 0000000 00000000000 12660451536 0014276 5 ustar 00root root 0000000 0000000 pdp-0.14.1+darcs20180201/.header.html 0000664 0000000 0000000 00000000607 12660451536 0016475 0 ustar 00root root 0000000 0000000
This is a darcs archive for the Pure Data Packet project.
To make a local copy of the repositiory do:
darcs get --partial http://zwizwa.be/darcs/pdp
cd pdp
. bootstrap
./configure && make
To get updates later, cd to the pdp directory and do:
darcs pull -a
cd pdp
. bootstrap
./configure && make
pdp-0.14.1+darcs20180201/CHANGES.LOG 0000664 0000000 0000000 00000015472 12660451536 0015722 0 ustar 00root root 0000000 0000000 last modified: 2003/02/27
ChangeLog:
v0.1: 2002/11/23
initial release
v0.2: 2002/11/27
added support for BC_YUV422 video and audio playback in pdp_qt /
pdp_qt~ (thanks to Yves Degoyon for contrib)
some makefile cleanups
v0.3: 2002/11/28
pdp_qt / pdp_qt~: fixed some bugs in audio playback and added
suport for BC_RGB888 colormodel (loads as greyscale until there
is internal support for a rgb image packet)
v0.4: 2002/12/03
code style changes
added scaf / cellular automata support.
added some basic filter abstractions. (blur, phase)
v0.5: 2002/12/13
first attempt at a documentation (see doc/)
added support for processing in separate lower priority thread
with a packet dropping mechanism to avoid audio dropouts.
added pdp_control object for controlling pdp's scheduling and
detecting packet drops
pdp api cleanup (name changes)
added some more filter abstractions
(motion blur/phase, emboss, sobel, edge)
added pdp_route
v0.6: 2003/01/03
added pdp_gain, finished pdp_gradient
added channel method to pdp_v4l, display method to pdp_xv
added some examples in doc/examples
fixed gcc3 compilation probs
fixed some pdp_qt bugs (shouldn't crash any more)
v0.7: 2003/01/12
moved image format conversion routines to pdp_llconv.c
added support for rgb->PDP_IMAGE_YV12 in pdp_v4l, pdp_qt
added pdp_grey, pdp_chrot, pdp_scope~
moved mmx wrappers to pdp_imageproc_mmx.c
added portable c code in pdp_imageproc_portable.c
added mmx code for pdp_gain
fixed bug in pdp_mix/pdp_mix2
fixed bug in pdp_bq (removed state reset)
moved CA stuff to separate lib (see scaf/)
(0.7.1) fixed rgb colour conversion bug
v0.8: 2003/02/02
added pdp_scale, pdp_zoom, pdp_rotate, pdp_zrot, pdp_scan~, pdp_cheby
added support for 1D ca's + shift compensation in pdp_ca
thread processing is off by default now
added cursor method to pdp_xv, freq method to pdp_v4l (thanks CK)
added pdp_sdl (thanks Martin Pi)
added some example patches in doc/examples
(0.8.1) fixed scaf + gcc<3 compilation problem
(0.8.2) fixed compile prob + added documentation
(0.8.3) completed documentation
v0.9: 2003/02/27
added pdp_scanxy~, pdp_invert
now uses autoconf for configuration
standard "make install" target
optional compililation for external dependencies (xv,qt,v4l,sdl)
experimental OSX port (without i/o)
fixed crash when closing xv window manually
added mouse event output to pdp_xv
pdp_ca now automaticly compiles rule files
fixed image dimension crashes
fixed pdp_xv bang crash
added pdp_grey2mask
added pdp_slice_cut/pdp_slice_glue (experimental/nondoc)
v0.10: 2003/03/06
modules code reorganization
removed pdp_affine object and added compatibility object based on pdp_cheby
added pdp_mchp and PDP_IMAGE_MCHP packet format (experimental)
added pdp_and, pdp_or, pdp_xor, pdp_not, pdp_bitmask, pdp_bitdepth
added base class for pdp objects
added incremental garbage collector
added support for "not so pure" data packets
added opengl subproject containing a pdp_glx display object
added a PDP_TEX opengl texture packet (opengl lib)
added PDP_IMAGE_GREY8, PDP_IMAGE_RGB8, PDP_IMAGE_RGBA8 packets
(0.10.1) fixed (fatal) bug in pdp_base, and bug in pdp_noise (non-mmx)
(0.10.1) pdp_glx now compiles on mac osx
v0.11: 2003/04/08
updated pdp_trigger to behave like pd's trigger object
added automatic philips web cam detection
removed "zombie" packet passing and made pool manager thread safe
(this required an api change: backward compat for pdp thread proc broken)
added gem style object rendering & transformation objects (opengl lib)
removed pdp_gradient binary module (it is now an abstraction)
added pdp_loop (a packet array / loop sampler)
added pdp_description
added support for libquicktime on osx (thanks Jamie)
added support for accumulation packets (dpd) (still experimental)
(0.11.1) fixed some packet registering and frame dropping bugs
v0.12: 2003/06/21
added support for high level packet conversion (mime-like descriptions)
added pdp_convert
added "memlimit" message to pdp_control (to limit pdp's mem usage)
maximum nb of packets is now only limited by the memlimit
added new basic type: bitmap/*/* (PDP_BITMAP) for standard fourcc formats
cleaned up pdp_xv/glx (x window glue code reuse)
fixed rgb/bgr bug in conversion code
added pdp_abs, pdp_zthresh
completed dpd framework (for context based processing, i.e. 3dp)
rewrote gem like 3d library on top of dpd (it's almost stable)
added a matrix type (float/double real/complex) for linear algebra stuff
added matrix processors pdp_m_*: mv, mm, +=mm, LU, LU_inverse, LU_solve
pdp_cheby now accepts an array with a mapping function
added pdp_plasma
fixed outlet_pdp bug (this caused all kind of weirdness)
added embedded scheme interpreter for testing (see the guile/ dir)
added simple forth-style scripting language (pdp's rpn calculator)
added png load/save support to pdp_reg
(0.12.1) fixed OSX compilation probs
(0.12.1) fixed texture coordinate bugs (pdp_opengl)
(0.12.1) added multipass rendering support (pdp_opengl)
(0.12.1) pdp_cog (Johannes Taelman's gaussian blob estimator)
(0.12.1) pdp_sthresh, hthresh, positive, offset, sign
(0.12.1) pdp_agc, contrast, flip_lr, flip_tb
(0.12.1) added pdp and pdp_opengl examples
(0.12.2) pdp_histo, dither, pointcloud
(0.12.2) more examples & added some conversion code
(0.12.2) fixed c++ compilation issues
0.12.3: 2004/01/13
various bug fixes
added pdp_grey2array
fixed window event routing problem (3dp)
cleaned up source tree (for libpdp)
added pdp_netsend / pdp_netreceive to send packets over udp (experimental)
more forth scripting stuff
added "norm" message and rgb32 colour model to pdp_v4l
added keyboard and mouse motion events to pdp_xv and pdp_glx
compiles without x support, for use with sdl (i.e. svgalib)
more packet forth work
started sliceforth library (core signal processing routines)
finished pd interface to forth scripting language
fixed some crashes with pdp_xv and pdp_glx
removed "passing packet" hack
added minimal OO support to packet forth
moved all the forth stuff to libpdp project (no longer in pdp distro)
fixed (worked around) pdp_opengl deadlock bug on startup
pdp_opengl still not working properly
0.12.4: 2004/07/09
build fixes
0.12.5:
build fixes
libquicktime api change
help patches renamed xxx.pd -> xxx-help.pd
pd-0.40 compatibility
sdl delayed window creation
0.12.6:
fixes to pdp_imageproc from John Harrison
64-bit support
other random fixes
build fixes
0.13:
Reserved for PF (http://zwizwa.be/packetforth/)
PF is a PDP spinoff.
0.14.0:
Port ia32 MMX assembly code to GCC extensions (MMX support on amd64)
Add V4L2 support to pdp_v4l (merge with pdp_v4l2)
Distill system/zl (Zwizwa Lib) from PDP and libprim/PF code.
0.14.1:
Port SCAF MMX code to x86_64 ABI
Revive pdp_opengl (3dp)
Bugfixes
pdp-0.14.1+darcs20180201/COPYING 0000664 0000000 0000000 00000043103 12660451536 0015332 0 ustar 00root root 0000000 0000000
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR PDP.LICENSE, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C) 19yy
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
pdp-0.14.1+darcs20180201/Makefile 0000664 0000000 0000000 00000004241 12660451536 0015737 0 ustar 00root root 0000000 0000000 include Makefile.config
# hc ?
#ifeq ($(OS_NAME),darwin)
#all: darwin
#else
#all: linux
#endif
all: $(PDP_TARGET)
everything: all
make -C opengl
make -C scaf
pdp_all:
make -C system
make -C puredata
make -C modules
darwin: pdp_all
rm -f pdp.pd_darwin
$(CC) -o pdp.pd_darwin modules/*/*.o system/pdp.o system/*/*.o puredata/*.o $(PDP_LIBS) -bundle -undefined dynamic_lookup -twolevel_namespace -bundle_loader $(PD_EXECUTABLE)
linux: pdp_all
rm -f pdp.pd_linux
$(CC) -rdynamic -shared -o pdp.pd_linux modules/*/*.o system/pdp.o system/*/*.o puredata/*.o $(PDP_LIBS)
linux_mmx: linux
linux_gcc_mmx: linux
buildclean:
make -C include clean
make -C system clean
make -C puredata clean
make -C modules clean
backupclean:
rm -f *~ */*~ */*/*~
clean: buildclean backupclean
rm -f pdp.pd_linux
distroclean: buildclean
make -C scaf clean
make -C opengl clean
mrproper: clean distroclean
make -C scaf mrproper
rm -rf configure
rm -rf config.log
rm -rf config.status
rm -rf autom4te.cache
#this needs to stay in to keep the makefiles working
#rm -rf Makefile.config
tags:
etags --language=auto include/*.h system/*.c system/mmx/*.s system/*/*.c puredata/*.c \
modules/*/*.c scaf/*/*.c scaf/*/*.s opengl/*/*.c
tagsclean:
rm -f TAGS
install: all
#check if pd is installed. if this fails make install will stop here.
test -d $(prefix)/lib/pd
install -d $(prefix)/lib/pd/extra
install -m 755 $(PDP_LIBRARY_NAME) $(prefix)/lib/pd/extra
install -m 755 -d $(prefix)/include/pdp
install -m 644 include/*.h $(prefix)/include/pdp
install -m 644 abstractions/*.pd $(prefix)/lib/pd/extra
install -m 644 doc/objects/*.pd $(prefix)/lib/pd/doc/5.reference
install -m 755 -d $(prefix)/lib/pd/doc/pdp
install -m 755 -d $(prefix)/lib/pd/doc/pdp/introduction
install -m 755 -d $(prefix)/lib/pd/doc/pdp/examples
install -m 644 doc/reference.txt $(prefix)/lib/pd/doc/pdp
install -m 644 doc/introduction/*.pd $(prefix)/lib/pd/doc/pdp/introduction
install -m 644 doc/examples/*.pd $(prefix)/lib/pd/doc/pdp/examples
install -m 755 bin/pdp-config $(prefix)/bin
snapshot:
bin/snapshot -d darcs
release:
bin/snapshot `bin/release-version`
@echo bump PDP_VERSION in configure.ac!
pdp-0.14.1+darcs20180201/Makefile.config.in 0000664 0000000 0000000 00000003042 12660451536 0017606 0 ustar 00root root 0000000 0000000 # if configure can't find the m_pd.h header
# specify pd's include path here and ignore the warning
#
#PD_CPPFLAGS=-I/path_to_pd_dir/src
#PD_EXECUTABLE=/path_to_pd_dir/bin/pd
PD_CPPFLAGS=@PD_CPPFLAGS@
PD_EXECUTABLE=@PD_EXECUTABLE@
PDP_CFLAGS=@PDP_CFLAGS@
# these are reused in opengl module
prefix=@prefix@
PDP_VERSION=@PDP_VERSION@
PDP_TARGET=@PDP_TARGET@
PDP_LIBRARY_NAME = @PDP_LIBRARY_NAME@
PDP_EXTRA_CPPFLAGS = @PDP_EXTRA_CPPFLAGS@
PDP_EXTRA_CFLAGS = @PDP_EXTRA_CFLAGS@
SDL_FLAGS = -D_REENTRANT
# optional objects
PDP_OPTMOD = @PDP_OPTMOD@
PDP_X11MOD = @PDP_X11MOD@
PDP_PDMOD = @PDP_PDMOD@
PDP_OPTTYPES = @PDP_OPTTYPES@
PDP_MATRIX_BASIC = @PDP_MATRIX_BASIC@
PDP_IMAGE_BASIC = @PDP_IMAGE_BASIC@
PDP_IMAGE_SPECIAL = @PDP_IMAGE_SPECIAL@
ZL_OPTMOD = @ZL_OPTMOD@
PDP_CPPFLAGS = -I. -I../../system -I/usr/X11R6/include -I../include -I../../include $(PD_CPPFLAGS) $(PDP_EXTRA_CPPFLAGS) -DPDP_TARGET=$(PDP_TARGET)
PDP_LIBS = @LIBS@
PDP_AFLAGS =
#--gstabs
PDP_CFLAGS += $(SDL_CFLAGS) $(PDP_EXTRA_CFLAGS) -DPDP_VERSION=\"$(PDP_VERSION)\"
ifeq ($(shell uname -s),Darwin)
PDP_CFLAGS += -fnested-functions
endif
#PDP_CFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math \
# -Wall -W -Wstrict-prototypes \
# -Wno-unused -Wno-parentheses -Wno-switch -DPDP_VERSION=\"$(PDP_VERSION)\" \
# -g $(SDL_CFLAGS) $(PDP_EXTRA_CFLAGS)
# -Werror
# -Wshadow
# compiler and assembler
#CC = gcc-3.2
#CC = gcc
#AS = as
CC = @CC@
# build rules
.c.o:
$(CC) $(PDP_CFLAGS) $(PDP_CPPFLAGS) -o $*.o -c $*.c
.s.o:
$(AS) -o $*.o $*.s $(PDP_AFLAGS)
pdp-0.14.1+darcs20180201/Makefile.creb 0000664 0000000 0000000 00000003342 12660451536 0016652 0 ustar 00root root 0000000 0000000 # Makefile for pure data externals in lib creb.
# Needs Makefile.pdlibbuilder to work.
lib.name = creb
# all C and C++ files in subdirs are source files per class
class.sources = $(wildcard modules/*.c modules++/*.cc)
datafiles = \
$(wildcard doc/*-help.pd abs/*.pd) \
creb-meta.pd \
CHANGES.LOG \
COPYING \
README \
TODO
################################################################################
### pdlibbuilder ###############################################################
################################################################################
# Include Makefile.pdlibbuilder from this directory, or else from externals
# root directory in pd-extended configuration.
include $(firstword $(wildcard Makefile.pdlibbuilder ../Makefile.pdlibbuilder))
################################################################################
### creb extra targets #########################################################
################################################################################
# if creb still doesn't have a meta.pd file, create it on the fly
define meta
#N canvas 48 350 450 300 10;\
\n#X text 9 18 AUTHOR Tom Schouten ;\
\n#X text 9 42 DESCRIPTION This is a collection of pd externals. My bag of tricks.;\
\n#X text 9 79 LICENSE GNU GPL 2;\
\n#X text 9 105 VERSION 0.9.2;
endef
all: creb-meta.pd
creb-meta.pd:
@echo "$(meta)" > creb-meta.pd
# install files with idiosyncratic source/destination paths
install-data: install-creb-extras
install-creb-extras: all
$(INSTALL_DIR) $(installpath)/manual && \
$(INSTALL_DATA) doc/reference.txt $(installpath)/manual
$(INSTALL_DIR) $(installpath)/examples && \
$(INSTALL_DATA) $(wildcard doc/examples/*.pd) $(installpath)/examples
pdp-0.14.1+darcs20180201/README 0000664 0000000 0000000 00000023771 12660451536 0015170 0 ustar 00root root 0000000 0000000 PDP - Pure Data Packet v0.12.7
a packet processing library for pure data
Copyright (c) by Tom Schouten
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The GNU Public Licence can be found in the file COPYING
------------------------------------------------------------------
This external pd library is a framework for image/video processing (and
other raw data packets) that is fast, simple and flexible and as much
as possible compatible with the pd messaging system.
This distro contains the main pdp library and 3 extension libs:
* pdp_scaf (in directory scaf/)
* pdp_opengl (in directory opengl/)
Features:
* packet formats: greyscale and YCrCb encoded images,
binary cellular automata (CA), textures, render buffers,
matrices.
* sources: noise, video4linux and quicktime (with audio), CA, plasma
* sinks: xvideo display, sdl, glx display
* filters: convolution, biquad time, biquad space, CA
* warping: rotate, zoom, stretch
* transforms: colour translation/scaling, grey->palette
* add, mul, mix, random pixel mix
* utility objs: packet register, snapshot, trigger
* packet delay line, loop, ..
* and more.. (see doc/reference.txt)
Optional features
* cellular automata simulator and effects processor with
built in forth extension language (only for mmx)
* opengl 3d processing (gem like, but built around packets)
See the README files in the scaf/ and opengl/ dirs for more
info on the extension libraries.
Requirements:
* pd
* linux
* libgsl
* a video4linux device for video input. special support for
philips webcam included.
* libquicktime (not quicktime4linux!) for quicktime playback.
* libpng for png image loading/saving
* an X display with XVideo extension, glx or SDL for video display.
Documentation:
When you use "make install" to install pd, all docs will be in
the pd doc directory. Right click on an object and select help
for a help patch. The pdp directory in pd's doc contains a
reference.txt file which lists all objects and abstractions and
an introduction and example section.
NOTE: all help patches use a pdp_help_input and pdp_help_output
abstraction. you can edit these to choose which input or output
object you want for the help patches.
Building:
./configure
make
Options for configure:
--enable-mmx compile with mmx support
--enable-pwc force pdp_v4l to use philips web cam
If pd is not installed in /usr/local you'll have to
specify the prefix on the configure command line with
./configure --prefix=/prefix
type
make install
To install pdp in $prefix/lib/pd: the library in externs/
the abstractions in extra/ and the documentation in doc/5.reference
and doc/pdp
You can also try the "buildall" script. This will configure, build
and install the whole distribution. It works for intel/mmx.
NOTE: If you're not using the standard pd install location, and have
everything in a single tree, just untar pdp next to the pd source tree,
or set the prefix dir to the location of the pd source.
Bugs:
See the TODO file. Apart from the few items listed on top of this
file, pdp is fairly stable: i am unaware of crash bugs. If you encounter
a crash please consider sending a bug report.
PiDiP Is Definitely In Pieces
Have a look at Yves Degoyon's PiDiP library, the must have addition
to the basic pdp library. It contains a lot of extra effects (from
EffecTV and FreeJ), a quicktime recording object, streaming modules,
ascii art objects ... (the list is growing rapidly ;)
Yves also did a gem2pd and a pdp2gem object to connect pdp and gem
together.
http://ydegoyon.free.fr/
Acknowledgements
PDP is no longer a one man show. Many thanks to the people who
directly or indirectly contributed to this project. Either by
writing a giant extension lib (thanks Yves) or by contributing code
snippets (Thanks Martin, CK), or by giving mental support, feedback,
bug reports and ideas.
I also wish to thank the GEM crew. This project borrows a lot of ideas
and some code from the GEM project. And while i'm at it, i wish to
thank everyone who contributed code to the PD project as a whole and
the people that are very helpful at answering questions on the mailing
list.
Last but not least i wish to thank Miller for making the PD project
open source. If that didn't happen i wouldn't know what i'd be doing
now :)
Some Remarks:
* New versions of this package can be found at
http://zwizwa.be/pd/pdp
Experimental relases are in the subdirectory test/
But best to track the darcs archive at http://zwizwa.be/darcs/pdp-12
* If you have libquicktime and quicktime4linux installed, this can
give problems with the configure script. Consider removing
quicktime4linux. (libquicktime is a drop-in replacement).
* The modules that depend on system libraries only get compiled when
the configure script can locate them. If compilation or linking fails
please let me know.
* Packets can be processed in a low priority thread with a dropping
mechanism to prevent overload or audio drops, or they can be processed
in the main pd thread. This can be set/unset by sending a "thread x"
message to pdp_control. Processing in pdp thread is off by default.
Use the pd thread for rock solid video timing. Increase the audio
latency to avoid dropouts. If you want low audio latency, and don't
care about a dropped video frame here and there, switch on the pdp
thread. Note that when using the pdp thread, the control flow is no
longer depth first. Additinal delays will be introduced.
* Pdp runs on osx, using an x server (apple or fink) and libquickime
(fink). pdp_xv does not work yet. Once apple includes xv support in
their x server, it should. Until then, use pdp_glx for output.
* Some quicktime remarks: pdp_qt~ is still a bit experimental, you might
try pdp_yqt in yves' lib to see if it works better for you. Also, it
seems that libquicktime does not work with compressed headers. The
suggested codec is jpeg (photo) and uncompressed audio with the same
samplerate as the one pd is using. You can use other codecs, but i've
found this one to perform the best. (hint: compile libquicktime with
mmx jpeg support) Try to avoid the mpga codec. It is haunted.
* The reason i use YV12 and not RGB is simple: it's faster, and for
linear operations it doesn't make much difference. Most camera's and
codecs use a luma/chroma system, and most video cards support hardware
accellerated display. Note that in YUV, the u (Cb) and v (Cr) components
can be negative, so saturation after multiplication with a positive
(or negative) value produces not only black and white, but also red,
green, blue and their complements. In short, in YUV, nonlinear operations
have a different effect than in RGB. Another thing: all the spatial
operations are not implemented "correctly" because of the subsampling
involved.The image packets are 16bit/component planar. This is to
simplify the mmx code and to have a little more headroom and precision
for processing.
* Since version 0.11 there is a type system used for identifying a
packet type and performing type conversion. A type is represented
by a symbol, with subtypes separated by the "/" character. I.e.
"image/grey/320x240" is a grey 16 bit/component image with dimensions
320 by 240. For conversions a wildcard can be specified. I.e.
"image/*/*" which matches image type packets with all encodings
and dimensions.
* Since version 0.12 there are 2 different image data types: "image/*/*"
and "bitmap/*/*". The image type is the native 16 bit/component pdp
type. It supports the subtypes "image/grey/*": one channel grey
scale images, "image/YCrCb/*": luma/chroma packets with subsampled
chroma planes and "image/multi/*": a multi channel planar format (i.e.
to store 3 or 4 channel rgb or rgba data). Almost all processors
use this data type. The bitmap type is an intermediate type which
can contain standard fourcc encoded 8 bit/component images i.e.
"bitmap/rgb/*", "bitmap/yv12/*", "bitmap/grey/*". Currently no processors
support this type natively, so you have to use pdp_convert to convert
them to "image/*/*".
* Writing new objects is not much different than normal pd externs.
Pdp just adds some functions to the pd kernel for package allocation,
manipulation and communication. The api is very raw to keep it as
simple as possible. Since 0.10 there is a pdp_base object you can
derive your objects from. Have a look at pdp_add, pdp_gain and
pdp_noise to see how it works. There is not much documentation, but
i do my best to keep things clean so the code and the header files
should get you started. You can always just send me an email for info,
or ask on the pd-dev list. Since version 0.12 there is a simple forth
scripting language in pdp. This is far from finished, but it should
make pdp programming a lot easier.
* Philips webcam detection is now automatic. However this requires a
fairly recent kernel (one which includes the pwc driver version 8.6
or higher). If you have a pwc and pdp_v4l does not display a
"pwc detected" message, you can conifigure with --enable-pwc. This
forces pdp_v4l to use the pwc api extensions.
Directory structure:
abstractions/ some abstractions that use the pdp objects
doc/introduction/ getting started with pdp
doc/examples/ some example patches
doc/objects/ pd style reference documentation
include/ header files
modules/ pd object code
opengl/ opengl extension lib (experimental)
scaf/ CA extension lib
system/ core pdp system
Bugreports, feature suggestions, code, documentation, example patches
and general comments and questions are welcome.
Have Fun,
Tom
last modified: 2003/07/20
pdp-0.14.1+darcs20180201/README-12 0000664 0000000 0000000 00000001226 12660451536 0015377 0 ustar 00root root 0000000 0000000 This is `old' pdp. Adapted from the version 0.12.4 released on 09-Jul-2004.
As you might know, i started working on Packet Forth about two years
ago. This has shifted my opinion as to what PDP should be quite a bit.
In order not to annoy people using the old PDP with my new and exciting
insights about forth, I declare this version to be the `stable' PDP 12.
The DEC PDP 13 never existed, so this might have been a sign...
For people interested in packet forth, check http://zwizwa.be/packetforth
for more information. Stable PDP might include some additions from PF
later on, but main focus right now is stability.
Groet,
Tom
Mon Oct 31 16:53:49 EST 2005
pdp-0.14.1+darcs20180201/TODO 0000664 0000000 0000000 00000005477 12660451536 0015003 0 ustar 00root root 0000000 0000000 known bugs:
* running out of memory (using delay lines or loops) will likely crash pd.
short story: don't, use pdp_control's memlimit for limiting pdp's memory usage.
todo 0.14.1:
* finalize MMX port (crot, randmix + low level conversion routines)
* switch to new build system in project.mk
* remove procqueue
todo 0.14.0:
* final tests
todo 0.12.5:
* find nasty 3dp bug
* fix pdp_glx BadMatch bug (crashes on OSX) : fixed in pf
* platform independent [pdp_vdac] [pdp_vadc]
* fix pdp_help_input/output so they are actually usable
* incorporate jamie's osx changes / guenter's windows port
todo later:
* field based bttv capture (might be possible without driver hacks using v4l2)
* pdp_crop/pad
* where to solve autoconvert? per type, or central in pdp_base? 2 cases:
- template based autoconvert: in pdp_base
- compatibility based autoconvert: i.e. pdp_add (solve in base: move_passive)
* finish high level packet conversion:
- move 8bit images to packet level (iow: cleanup pdp_qt, pdp_v4l, pdp_xv) (solve with forth)
- get rid of pdp_type* methods
* fix mac/linux name differences (use pdp_video, pdp_movie, pdp_window)
* pdp_xv framerate doc + pwc addons
* enable audio output on bttv cards in pdp_v4l
* fix cache slicer objects + thread problems (fixed in sliceforth)
* derive as much classes as possible from pdp_base class (obsolete: use forth instead)
* displacement warp, substitution warp, refraction warp, timespace warp, wormhole warp
* check the use of varargs for image processing dispatching routine (obsolete: forth)
* more scopes
* 2D affine transforms parametrized by vectors (center, x-axis, y-axis) (np1 + matrix processing objects)
* some abstractions around pdp_cheby (colour shape, ...)
* efficient rescalers: pdp_double pdp_halve (+ efficient arbitrary scaler in sliceforth)
* move float color conversion and float<->fixed point conv code to system
* crop, shift (pad+scroll)
* solve biquad (blur) mmx boundary init prob (bands at edges: solve with proper init?) (sliceforth)
* optimize blur effect (1 pole ? / dependency stalls) (sliceforth)
* jpeg/png packet and streaming support (pdp_netsend / pdp_netreceive : binary compat issues!!)
* find out why resampling code (warping) is so slow (reg->mem->reg->mem stalls?) (solve in sliceforth)
* mmx profiling (done: sliceforth)
* add audio resampling in pdp_qt~
* use pd_error instead of post for errors
* ascii art packet processors
* 3D time space interpolation
* colour keying
* motion tracking
* moebius transforms
* type multiplexing: find a way to use the same name for packet processors. (solved in forth: polymorhpy)
i.e. pdp_add should add images, but also vectors, ascii packets, textures,...
* modify 2D rotation to be used as arbitrary rotation (givens)
* add 3D rotation
* frame rate limited delay line (burst delay?)
* optimize resampling code (mipmapped packed 16bit format?)
pdp-0.14.1+darcs20180201/abstractions/ 0000775 0000000 0000000 00000000000 12660451536 0016772 5 ustar 00root root 0000000 0000000 pdp-0.14.1+darcs20180201/abstractions/pdp_affine.pd 0000664 0000000 0000000 00000000570 12660451536 0021414 0 ustar 00root root 0000000 0000000 #N canvas 600 556 450 300 10;
#X obj 47 39 inlet;
#X obj 111 39 inlet;
#X obj 170 38 inlet;
#X obj 98 151 pdp_cheby;
#X obj 63 205 outlet;
#X text 26 7 for patch compatibility with older versions of pdp;
#X msg 119 98 coef 1 \$1;
#X msg 197 97 coef 0 \$1;
#X connect 0 0 3 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 6 0 3 0;
#X connect 7 0 3 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_agc.pd 0000664 0000000 0000000 00000001311 12660451536 0020710 0 ustar 00root root 0000000 0000000 #N canvas 572 396 450 300 10;
#X obj 174 115 pdp_cog;
#X obj 174 222 /;
#X obj 174 147 t b f;
#X obj 116 89 pdp_t p p;
#X obj 116 252 pdp_gain;
#X text 22 13 an automatic gain control using the pdp_cog object;
#X obj 23 40 inlet;
#X obj 238 146 inlet;
#X obj 174 183 f \$1;
#X obj 116 279 outlet;
#X text 158 36 creation argument or right inlet;
#X text 157 51 is desired average intensity;
#X obj 23 62 route chanmask;
#X msg 23 102 chanmask \$1;
#X connect 0 0 2 0;
#X connect 1 0 4 1;
#X connect 2 0 8 0;
#X connect 2 1 1 1;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 9 0;
#X connect 6 0 12 0;
#X connect 7 0 8 1;
#X connect 8 0 1 0;
#X connect 12 0 13 0;
#X connect 12 1 3 0;
#X connect 13 0 4 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_blur.pd 0000664 0000000 0000000 00000001223 12660451536 0021124 0 ustar 00root root 0000000 0000000 #N canvas 344 526 521 227 10;
#X obj 26 33 inlet;
#X obj 26 174 outlet;
#X obj 26 134 pdp_bq;
#X obj 70 66 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 70 33 inlet;
#X msg 181 34 2;
#X msg 70 98 lpf \$1 0.25;
#X msg 136 34 0;
#X obj 136 10 loadbang;
#X msg 163 98 hor 1;
#X msg 209 98 ver 1;
#X text 100 138 this uses pdp_bq as a 2 pass lowpass filter to produce
a blur effect in all directions;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 2 1;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X connect 8 0 7 0;
#X connect 8 0 5 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_blur_hor.pd 0000664 0000000 0000000 00000001213 12660451536 0021773 0 ustar 00root root 0000000 0000000 #N canvas 344 526 521 227 10;
#X obj 26 33 inlet;
#X obj 26 174 outlet;
#X obj 26 134 pdp_bq;
#X obj 70 66 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 70 33 inlet;
#X msg 181 34 2;
#X msg 70 98 lpf \$1 0.25;
#X msg 136 34 0;
#X obj 136 10 loadbang;
#X msg 163 98 hor 1;
#X msg 209 98 ver 0;
#X text 100 138 this uses pdp_bq as a 2 pass lowpass filter to produce
a horzontal blur effect;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 2 1;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X connect 8 0 7 0;
#X connect 8 0 5 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_blur_ver.pd 0000664 0000000 0000000 00000001214 12660451536 0022000 0 ustar 00root root 0000000 0000000 #N canvas 368 520 521 227 10;
#X obj 26 33 inlet;
#X obj 26 174 outlet;
#X obj 26 134 pdp_bq;
#X obj 70 66 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 70 33 inlet;
#X msg 181 34 2;
#X msg 70 98 lpf \$1 0.25;
#X msg 136 34 0;
#X obj 136 10 loadbang;
#X text 100 138 this uses pdp_bq as a 2 pass lowpass filter to produce
a vertical blur effect;
#X msg 209 98 ver 1;
#X msg 163 98 hor 0;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 2 1;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X connect 8 0 7 0;
#X connect 8 0 5 0;
#X connect 8 0 11 0;
#X connect 8 0 10 0;
#X connect 10 0 2 0;
#X connect 11 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_cheby3o.pd 0000664 0000000 0000000 00000000751 12660451536 0021521 0 ustar 00root root 0000000 0000000 #N canvas 29 385 450 300 10;
#X obj 42 87 inlet;
#X obj 194 189 outlet;
#X obj 194 159 pdp_cheby 3;
#X msg 115 87 coef 0 \$1;
#X msg 194 86 coef 1 \$1;
#X msg 278 85 coef 2 \$1;
#X msg 358 84 coef 3 \$1;
#X obj 115 62 inlet;
#X obj 194 62 inlet;
#X obj 278 61 inlet;
#X obj 358 60 inlet;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X connect 8 0 4 0;
#X connect 9 0 5 0;
#X connect 10 0 6 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_contrast.pd 0000664 0000000 0000000 00000001677 12660451536 0022032 0 ustar 00root root 0000000 0000000 #N canvas 700 349 450 324 10;
#X obj 42 159 pdp_sthresh;
#X obj 42 261 pdp_gain;
#X msg 100 211 -1;
#X obj 100 235 /;
#X obj 189 196 - 1;
#X obj 189 168 * 2;
#X text 10 -1 contrast enhancement (works on YCrCb and greyscale);
#X obj 170 117 moses 0.49;
#X msg 235 141 0.49;
#X obj 170 94 / 2;
#X msg 87 101 chanmask 1;
#X obj 170 46 loadbang;
#X obj 170 69 f \$1;
#X obj 42 47 inlet;
#X obj 238 47 inlet;
#X obj 42 285 outlet;
#X text 11 13 i.e. to process the output of pdp_agc;
#X obj 170 142 f;
#X obj 42 185 pdp_t p b;
#X connect 0 0 18 0;
#X connect 1 0 15 0;
#X connect 2 0 3 0;
#X connect 3 0 1 1;
#X connect 4 0 3 1;
#X connect 5 0 4 0;
#X connect 7 0 17 0;
#X connect 7 1 8 0;
#X connect 8 0 17 0;
#X connect 9 0 7 0;
#X connect 10 0 1 0;
#X connect 10 0 0 0;
#X connect 11 0 10 0;
#X connect 11 0 12 0;
#X connect 12 0 9 0;
#X connect 13 0 0 0;
#X connect 14 0 9 0;
#X connect 17 0 0 1;
#X connect 17 0 5 0;
#X connect 18 0 1 0;
#X connect 18 1 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_alledge.pd 0000664 0000000 0000000 00000001453 12660451536 0022607 0 ustar 00root root 0000000 0000000 #N canvas 245 202 522 199 10;
#X obj 29 17 inlet;
#X obj 29 156 outlet;
#X obj 29 97 pdp_conv;
#X msg 95 36 hmask 0.33 0.33 0.33;
#X msg 95 59 vmask -0.33 -0.33 -0.33;
#X obj 29 126 pdp_add;
#X obj 95 13 loadbang;
#X obj 292 34 int;
#X obj 292 56 * 2;
#X obj 292 79 - 1;
#X obj 292 12 inlet;
#X text 101 115 pdp_alledge is an all edge sensitive convolution filter
using pdp_add and pdp_conv to compose a non separable edge detection
convolution mask (pdp_conv can only compute separable convolution masks).
the right inlet sets number of times the filter is run (2n-1);
#X connect 0 0 2 0;
#X connect 0 0 5 1;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 2 1;
#X connect 10 0 7 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_emboss.pd 0000664 0000000 0000000 00000001660 12660451536 0022502 0 ustar 00root root 0000000 0000000 #N canvas 172 505 641 290 10;
#X obj 30 55 inlet;
#X obj 29 206 outlet;
#X obj 29 93 pdp_conv;
#X obj 29 126 pdp_add;
#X obj 108 9 loadbang;
#X obj 218 86 pdp_conv;
#X obj 29 176 pdp_affine 1;
#X msg 108 151 0.5;
#X msg 108 37 hmask 1 0 0;
#X msg 218 35 hmask 0 0 1;
#X obj 145 151 inlet;
#X text 142 178 this uses pdp_conv \, pdp_add and pdp_affine to produce
an emboss effect using the convolution mask (-1 0 0 \; 0 0 0 \; 0 0
1) the right inlet sets the chroma offset.;
#X msg 218 60 vmask 0 0 1;
#X msg 108 60 vmask -1 0 0;
#X msg 108 128 chanmask 1;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 8 0;
#X connect 4 0 9 0;
#X connect 5 0 3 1;
#X connect 6 0 1 0;
#X connect 7 0 6 2;
#X connect 8 0 2 0;
#X connect 8 0 13 0;
#X connect 9 0 5 0;
#X connect 9 0 12 0;
#X connect 10 0 6 2;
#X connect 12 0 5 0;
#X connect 13 0 2 0;
#X connect 13 0 14 0;
#X connect 14 0 6 0;
#X connect 14 0 7 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_smooth.pd 0000664 0000000 0000000 00000000572 12660451536 0022524 0 ustar 00root root 0000000 0000000 #N canvas 490 446 522 199 10;
#X obj 29 17 inlet;
#X obj 29 156 outlet;
#X obj 29 97 pdp_conv;
#X obj 95 13 loadbang;
#X obj 292 12 inlet;
#X msg 95 36 mask 0.33 0.33 0.33;
#X text 107 108 pdp_conv_smooth is an averaging convolution filter.
second inlet sets number of passes.;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 5 0;
#X connect 4 0 2 1;
#X connect 5 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_sobel_edge.pd 0000664 0000000 0000000 00000001041 12660451536 0023273 0 ustar 00root root 0000000 0000000 #N canvas 222 642 607 202 10;
#X obj 15 35 pdp_conv_sobel_hor;
#X obj 149 34 pdp_conv_sobel_ver;
#X obj 15 114 pdp_add;
#X obj 15 74 pdp_mul;
#X obj 149 71 pdp_mul;
#X text 123 105 this uses the horizontal and vertical sobel directional
masks squared as an edge detector.;
#X obj 14 -6 inlet;
#X obj 15 151 outlet;
#X obj 15 15 pdp_trigger p p;
#X connect 0 0 3 0;
#X connect 0 0 3 1;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 2 0 7 0;
#X connect 3 0 2 0;
#X connect 4 0 2 1;
#X connect 6 0 8 0;
#X connect 8 0 0 0;
#X connect 8 1 1 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_sobel_hor.pd 0000664 0000000 0000000 00000000662 12660451536 0023167 0 ustar 00root root 0000000 0000000 #N canvas 222 642 591 202 10;
#X obj 29 55 inlet;
#X obj 29 132 outlet;
#X obj 29 93 pdp_conv;
#X obj 108 9 loadbang;
#X msg 108 37 vmask 0.5 1 0.5;
#X msg 108 60 hmask -1 0 1;
#X text 108 101 this uses pdp_conv to produce the vertical sobel edge
detector with convolution mask (-.5 0 0.5 \; -1 0 1 \; -0.5 0 .5);
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_conv_sobel_ver.pd 0000664 0000000 0000000 00000000664 12660451536 0023175 0 ustar 00root root 0000000 0000000 #N canvas 222 642 591 202 10;
#X obj 29 55 inlet;
#X obj 29 131 outlet;
#X obj 29 93 pdp_conv;
#X obj 108 9 loadbang;
#X msg 108 37 hmask 0.5 1 0.5;
#X msg 108 60 vmask 1 0 -1;
#X text 108 101 this uses pdp_conv to produce the horizontal sobel
edge detector with convolution mask (-.5 -1 -0.5 \; 0 0 0 \; 0.5 1
.5);
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_diff.pd 0000664 0000000 0000000 00000000553 12660451536 0021075 0 ustar 00root root 0000000 0000000 #N canvas 550 527 517 215 10;
#X obj 62 132 pdp_sub;
#X obj 62 104 pdp_reg;
#X obj 62 72 pdp_trigger bang pdp;
#X obj 62 38 inlet;
#X obj 62 163 outlet;
#X text 161 17 compute the difference between current;
#X text 161 33 and previous frame;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 2 1 0 0;
#X connect 3 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_dither.pd 0000664 0000000 0000000 00000001332 12660451536 0021440 0 ustar 00root root 0000000 0000000 #N canvas 563 412 450 378 10;
#X obj 209 213 pdp_abs;
#X obj 209 144 pdp_noise;
#X obj 57 249 pdp_sub;
#X obj 209 172 pdp_grey;
#X obj 57 148 pdp_grey;
#X obj 57 88 inlet;
#X msg 209 114 type grey;
#X obj 57 204 pdp_contrast \$1;
#X obj 57 308 outlet;
#X obj 57 117 pdp_t p b;
#X obj 157 87 inlet;
#X obj 209 86 loadbang;
#X text 25 8 a dither effect;
#X text 26 45 returns a grey image (image/grey/*);
#X obj 57 277 pdp_sign;
#X text 26 23 right inlet is contrast;
#X connect 0 0 2 1;
#X connect 1 0 3 0;
#X connect 2 0 14 0;
#X connect 3 0 0 0;
#X connect 4 0 7 0;
#X connect 5 0 9 0;
#X connect 6 0 1 0;
#X connect 7 0 2 0;
#X connect 9 0 4 0;
#X connect 9 1 1 0;
#X connect 10 0 7 1;
#X connect 11 0 6 0;
#X connect 14 0 8 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_gain3.pd 0000664 0000000 0000000 00000001165 12660451536 0021166 0 ustar 00root root 0000000 0000000 #N canvas 576 356 409 204 10;
#X obj 107 82 pdp_gain;
#X obj 107 115 pdp_gain;
#X obj 107 146 pdp_gain;
#X obj 107 50 inlet;
#X obj 184 49 inlet;
#X obj 250 49 inlet;
#X obj 309 48 inlet;
#X obj 107 178 outlet;
#X obj 19 22 loadbang;
#X msg 19 50 chanmask 1;
#X msg 19 84 chanmask 2;
#X msg 19 117 chanmask 4;
#X text 113 14 set gain independently for 3 channels;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 0 0;
#X connect 4 0 0 1;
#X connect 5 0 1 1;
#X connect 6 0 2 1;
#X connect 8 0 9 0;
#X connect 9 0 0 0;
#X connect 9 0 10 0;
#X connect 10 0 1 0;
#X connect 10 0 11 0;
#X connect 11 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_gradient.pd 0000664 0000000 0000000 00000002774 12660451536 0021771 0 ustar 00root root 0000000 0000000 #N canvas 465 0 719 454 10;
#X obj 49 19 inlet;
#X obj 216 399 outlet;
#X obj 216 235 pdp_gain;
#X obj 216 286 pdp_gain;
#X obj 216 340 pdp_gain;
#X msg 361 217 chanmask 1;
#X msg 361 268 chanmask 2;
#X obj 361 178 loadbang;
#X obj 99 267 unpack 0 0 0;
#X msg 361 322 chanmask 4;
#X obj 216 146 pdp_grey2mask;
#X obj 5 198 unpack 0 0 0;
#X obj 267 207 r \$0-ch1;
#X obj 267 260 r \$0-ch2;
#X obj 267 312 r \$0-ch3;
#X obj 5 328 s \$0-ch1;
#X obj 127 328 s \$0-ch3;
#X obj 66 328 s \$0-ch2;
#X obj 5 229 pdp_ut_rgb2ycrcb;
#X msg 111 46 rgb 1 0.5 0;
#X msg 111 74 ycrcb 1 0.5 0;
#X text 230 46 set a red/green/blue gradient;
#X text 140 16 a gradient abstraction based on gain and grey2mask;
#X obj 49 118 route rgb ycrcb;
#X text 308 391 hint: replace pdp_gain by pdp_cheby to get nonlinear
gradients.;
#X text 229 76 set a luma/chroma_red/chroma_blue gradient;
#X text 322 146 this copies luma channel to chroma channels;
#X connect 0 0 23 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 6 0 9 0;
#X connect 7 0 5 0;
#X connect 7 0 19 0;
#X connect 8 0 15 0;
#X connect 8 1 17 0;
#X connect 8 2 16 0;
#X connect 9 0 4 0;
#X connect 10 0 2 0;
#X connect 11 0 18 0;
#X connect 11 1 18 1;
#X connect 11 2 18 2;
#X connect 12 0 2 1;
#X connect 13 0 3 1;
#X connect 14 0 4 1;
#X connect 18 0 15 0;
#X connect 18 1 17 0;
#X connect 18 2 16 0;
#X connect 19 0 23 0;
#X connect 20 0 23 0;
#X connect 23 0 11 0;
#X connect 23 1 8 0;
#X connect 23 2 10 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_grey.pd 0000664 0000000 0000000 00000000312 12660451536 0021124 0 ustar 00root root 0000000 0000000 #N canvas 608 510 395 122 10;
#X obj 39 23 inlet;
#X obj 39 51 pdp_convert image/grey/*;
#X obj 39 79 outlet;
#X text 101 21 backwards compatibility abstraction;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_invert.pd 0000664 0000000 0000000 00000000650 12660451536 0021472 0 ustar 00root root 0000000 0000000 #N canvas 487 324 440 275 10;
#X obj 34 51 inlet;
#X obj 34 236 outlet;
#X obj 34 173 pdp_gain;
#X obj 34 100 pdp_cheby 1;
#X obj 153 24 loadbang;
#X msg 141 146 chanmask 6;
#X msg 153 58 chanmask 1 \, coef 0 1 \, coef 1 -1;
#X msg 141 120 -1;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 6 0;
#X connect 5 0 2 0;
#X connect 6 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 2 1;
#X connect 7 0 5 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_m_inverse.pd 0000664 0000000 0000000 00000000514 12660451536 0022151 0 ustar 00root root 0000000 0000000 #N canvas 805 557 415 150 10;
#X obj 21 49 pdp_m_LU;
#X obj 21 24 inlet;
#X obj 21 103 outlet;
#X text 150 31 computes a matrix inverse using the;
#X text 149 48 LU decomposition (PA = LU);
#X text 148 84 (uses double precision processing);
#X obj 21 77 pdp_m_LU_inverse;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 6 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_motion_blur.pd 0000664 0000000 0000000 00000000636 12660451536 0022520 0 ustar 00root root 0000000 0000000 #N canvas 119 483 508 168 10;
#X obj 29 17 inlet;
#X obj 29 124 outlet;
#X obj 29 99 pdp_bqt;
#X obj 87 18 inlet;
#X obj 87 42 pdp_ut_logmap_comp 0.005 0.4;
#X msg 87 68 lpf \$1 0.25;
#X text 97 108 pdp_motion_blur uses pdp_bqt (time biquad filter) configured
as a lowpass filter to produce a motion blur effect.;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_motion_fade.pd 0000664 0000000 0000000 00000001000 12660451536 0022435 0 ustar 00root root 0000000 0000000 #N canvas 58 0 508 168 10;
#X obj 29 17 inlet;
#X obj 29 124 outlet;
#X obj 29 99 pdp_bqt;
#X obj 87 18 inlet;
#X text 94 102 pdp_motion_fade uses pdp_bqt (time biquad filter) configured
as an highpass filter to produce a motion triggered fade-out effect.
;
#X obj 340 -1 loadbang;
#X obj 340 24 f \$1;
#X obj 87 42 pdp_ut_logmap_comp 0.01 0.4;
#X msg 87 68 hpf \$1 0.25;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 7 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_motion_phase.pd 0000664 0000000 0000000 00000000642 12660451536 0022651 0 ustar 00root root 0000000 0000000 #N canvas 58 0 508 168 10;
#X obj 29 17 inlet;
#X obj 29 124 outlet;
#X obj 29 99 pdp_bqt;
#X obj 87 18 inlet;
#X text 94 102 pdp_motion_blur uses pdp_bqt (time biquad filter) configured
as an allpass filter to produce a motion phase shift effect.;
#X obj 87 42 pdp_ut_logmap_comp 0.01 0.4;
#X msg 87 68 apf \$1 0.25;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_offset.pd 0000664 0000000 0000000 00000000647 12660451536 0021457 0 ustar 00root root 0000000 0000000 #N canvas 515 434 450 300 10;
#X obj 48 69 inlet;
#X obj 48 243 outlet;
#X obj 48 191 pdp_cheby;
#X msg 173 93 coef 0 \$1;
#X obj 103 69 loadbang;
#X obj 173 68 inlet;
#X obj 103 111 float \$1;
#X text 45 21 add an offset to an image;
#X msg 103 138 reset \, coef 1 1 \, coef 0 \$1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X connect 6 0 8 0;
#X connect 8 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_phase.pd 0000664 0000000 0000000 00000003116 12660451536 0021263 0 ustar 00root root 0000000 0000000 #N canvas 304 524 746 291 10;
#X obj 25 21 inlet;
#X obj 25 249 outlet;
#X obj 25 209 pdp_bq;
#X obj 42 144 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 42 44 inlet;
#X msg 118 109 0;
#X obj 178 22 loadbang;
#X msg 304 191 lr 1;
#X msg 344 191 rl 0;
#X msg 42 176 apf \$1 0.15;
#X obj 287 22 inlet;
#X msg 384 191 lr 0;
#X msg 422 191 rl 1;
#X msg 539 191 bt 1;
#X msg 579 191 tb 0;
#X msg 619 191 bt 0;
#X msg 672 191 tb 1;
#X obj 287 86 select 0;
#X msg 227 191 lr 0;
#X msg 265 191 rl 0;
#X obj 522 19 inlet;
#X obj 522 84 select 0;
#X obj 338 114 moses 0;
#X obj 573 114 moses 0;
#X msg 241 53 1;
#X msg 463 191 tb 0;
#X msg 501 191 bt 0;
#X text 99 235 this uses pdp_bq as an allpass filter to produce a phase
shift effect. 2nd inlet sets amount. 3rd and 4th inlets set directions.
;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 6 0 24 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 10 0 17 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 13 0 2 0;
#X connect 14 0 2 0;
#X connect 16 0 2 0;
#X connect 17 0 18 0;
#X connect 17 0 19 0;
#X connect 17 1 22 0;
#X connect 18 0 2 0;
#X connect 19 0 2 0;
#X connect 20 0 21 0;
#X connect 21 0 25 0;
#X connect 21 0 26 0;
#X connect 21 1 23 0;
#X connect 22 0 8 0;
#X connect 22 0 7 0;
#X connect 22 1 12 0;
#X connect 22 1 11 0;
#X connect 23 0 14 0;
#X connect 23 0 13 0;
#X connect 23 1 16 0;
#X connect 23 1 15 0;
#X connect 24 0 17 0;
#X connect 24 0 21 0;
#X connect 25 0 2 0;
#X connect 26 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_phase_hor.pd 0000664 0000000 0000000 00000001761 12660451536 0022137 0 ustar 00root root 0000000 0000000 #N canvas 304 524 534 291 10;
#X obj 25 21 inlet;
#X obj 25 249 outlet;
#X obj 25 209 pdp_bq;
#X obj 42 144 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 42 44 inlet;
#X msg 89 44 0;
#X obj 89 18 loadbang;
#X msg 42 176 apf \$1 0.15;
#X obj 338 114 moses 0;
#X text 99 235 this uses pdp_bq as an allpass filter to produce a phase
shift effect in the horizontal direction. 2nd inlet sets direction
and amount. range is from -1 to 1;
#X obj 42 93 abs;
#X msg 304 191 lr 0;
#X msg 344 191 rl 1;
#X msg 384 191 lr 1;
#X msg 422 191 rl 0;
#X msg 89 93 ver 0;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 7 0;
#X connect 4 0 10 0;
#X connect 4 0 8 0;
#X connect 5 0 10 0;
#X connect 5 0 8 0;
#X connect 5 0 15 0;
#X connect 6 0 5 0;
#X connect 6 0 11 0;
#X connect 6 0 12 0;
#X connect 7 0 2 0;
#X connect 8 0 12 0;
#X connect 8 0 11 0;
#X connect 8 1 14 0;
#X connect 8 1 13 0;
#X connect 10 0 3 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 13 0 2 0;
#X connect 14 0 2 0;
#X connect 15 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_phase_ver.pd 0000664 0000000 0000000 00000001754 12660451536 0022145 0 ustar 00root root 0000000 0000000 #N canvas 304 524 518 291 10;
#X obj 25 21 inlet;
#X obj 25 249 outlet;
#X obj 25 209 pdp_bq;
#X obj 42 144 pdp_ut_addscaleclip -1 -0.5 0.05 0.48;
#X obj 42 44 inlet;
#X msg 89 44 0;
#X obj 89 18 loadbang;
#X obj 338 114 moses 0;
#X obj 42 93 abs;
#X msg 42 176 apf \$1 0.15;
#X msg 89 93 hor 0;
#X msg 304 191 tb 1;
#X msg 344 191 bt 0;
#X msg 384 191 tb 0;
#X msg 422 191 bt 1;
#X text 99 235 this uses pdp_bq as an allpass filter to produce a phase
shift effect in the vertical direction. 2nd inlet sets direction and
amount. range is from -1 to 1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 9 0;
#X connect 4 0 8 0;
#X connect 4 0 7 0;
#X connect 5 0 8 0;
#X connect 5 0 7 0;
#X connect 5 0 10 0;
#X connect 6 0 5 0;
#X connect 6 0 11 0;
#X connect 6 0 12 0;
#X connect 7 0 12 0;
#X connect 7 0 11 0;
#X connect 7 1 14 0;
#X connect 7 1 13 0;
#X connect 8 0 3 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 13 0 2 0;
#X connect 14 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_png_to.pd 0000664 0000000 0000000 00000001047 12660451536 0021452 0 ustar 00root root 0000000 0000000 #N canvas 0 0 450 300 10;
#X obj 37 50 inlet;
#X obj 102 262 outlet;
#X obj 102 209 pdp_convert \$1;
#X obj 102 180 pdp_reg;
#X text 34 15 load a png file and convert to a packet type specified
by the creation argument. default = bitmap/*/*;
#X obj 102 121 symbol;
#X msg 102 149 load_png \$1 \, bang;
#X obj 37 81 route bang;
#X msg 37 208 bang;
#X obj 102 236 pdp_reg;
#X connect 0 0 7 0;
#X connect 2 0 9 0;
#X connect 3 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 7 1 5 0;
#X connect 8 0 9 0;
#X connect 9 0 1 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_pps.pd 0000664 0000000 0000000 00000000726 12660451536 0020771 0 ustar 00root root 0000000 0000000 #N canvas 115 450 614 279 10;
#X obj 41 53 pdp_trigger;
#X obj 113 90 timer;
#X obj 113 187 /;
#X obj 113 125 t b f;
#X msg 113 155 1000;
#X obj 41 21 inlet;
#X obj 113 219 outlet;
#X text 151 36 pdp_pps uses pdp_trigger to measure the number of packets
per second. you can use this as a performance monitor.;
#X connect 0 1 1 1;
#X connect 0 1 1 0;
#X connect 1 0 3 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 3 1 2 1;
#X connect 4 0 2 0;
#X connect 5 0 0 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_qt_control.pd 0000664 0000000 0000000 00000006755 12660451536 0022363 0 ustar 00root root 0000000 0000000 #N canvas 287 151 577 553 10;
#X obj 390 48 inlet;
#X text 315 10 nb of frames;
#X text 313 23 connect pdp_qt's 3rd outlet here;
#X obj 390 99 s \$0-frames;
#X obj 8 9 inlet;
#X msg 150 186 pp;
#X msg 53 85 set l;
#X msg 104 87 set pp;
#X msg 160 87 set r;
#N canvas 821 623 335 233 randplay 0;
#X obj 82 122 random;
#X obj 111 96 r \$0-frames;
#X msg 73 81 bang;
#X obj 69 39 inlet;
#X obj 82 153 outlet;
#X text 154 24 random frame playback;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X restore 377 288 pd randplay;
#N canvas 418 263 365 227 loopplay 0;
#X obj 63 79 f 0;
#X obj 63 101 + 1;
#X obj 63 147 mod;
#X obj 70 121 r \$0-frames;
#X msg 62 59 bang;
#X obj 62 30 inlet;
#X obj 63 182 outlet;
#X text 166 33 normal looped playback;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 0 1;
#X connect 2 0 6 0;
#X connect 3 0 2 1;
#X connect 4 0 0 0;
#X connect 5 0 4 0;
#X restore 59 284 pd loopplay;
#X obj 4 35 route bang;
#N canvas 253 244 365 227 rloopplay 0;
#X obj 63 79 f 0;
#X obj 63 147 mod;
#X obj 96 129 r \$0-frames;
#X msg 62 59 bang;
#X obj 62 30 inlet;
#X obj 63 182 outlet;
#X obj 63 101 + 1;
#X obj 133 79 r \$0-frames;
#X obj 132 102 - 1;
#X text 166 33 reverse looped playback;
#X connect 0 0 6 0;
#X connect 1 0 0 1;
#X connect 1 0 5 0;
#X connect 2 0 1 1;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 8 0 6 1;
#X restore 152 284 pd rloopplay;
#X msg 215 87 set rl;
#N canvas 0 0 450 300 addjitter 0;
#X obj 150 65 inlet;
#X obj 177 244 outlet;
#X obj 259 66 inlet;
#X obj 259 90 abs;
#X obj 225 173 r \$0-frames;
#X obj 186 201 mod;
#X obj 259 113 + 1;
#X obj 211 139 random 1;
#X text 32 26 add jitter. sort of. something like the nervous effect.
;
#X obj 160 115 t f b;
#X obj 185 169 +;
#X connect 0 0 9 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 1;
#X connect 5 0 1 0;
#X connect 6 0 7 1;
#X connect 7 0 10 1;
#X connect 9 0 10 0;
#X connect 9 1 7 0;
#X connect 10 0 5 0;
#X restore 148 395 pd addjitter;
#X obj 150 426 outlet;
#X obj 53 60 route loop pingpong random rloop nervous;
#X obj 95 419 print;
#N canvas 751 514 434 327 pingpongplay 1;
#X obj 117 73 r \$0-frames;
#X msg 62 59 bang;
#X obj 62 30 inlet;
#X obj 56 243 outlet;
#X text 120 13 pingpong (palindrome) looped playback;
#X obj 118 121 * 2;
#X obj 55 191 -;
#X obj 55 213 abs;
#X obj 63 79 f 0;
#X floatatom 113 203 5 0 0 0 - - -;
#X obj 58 108 + 1;
#X obj 62 141 mod;
#X obj 117 98 - 1;
#X connect 0 0 12 0;
#X connect 1 0 8 0;
#X connect 2 0 1 0;
#X connect 5 0 11 1;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 6 0;
#X connect 11 0 8 1;
#X connect 12 0 5 0;
#X connect 12 0 6 1;
#X restore 249 284 pd pingpongplay;
#X obj 150 217 route l rl pp r;
#X text 60 12 left input: metro and control;
#X text 49 465 loop modes: loop (normal) \, rloop (reverse loop) \,
pingpong (palindrome) \, random. send a nervous message to
add some random jitter.;
#X obj 390 75 abs;
#X connect 0 0 22 0;
#X connect 4 0 11 0;
#X connect 5 0 19 0;
#X connect 6 0 5 0;
#X connect 7 0 5 0;
#X connect 8 0 5 0;
#X connect 9 0 14 0;
#X connect 10 0 14 0;
#X connect 11 0 5 0;
#X connect 11 1 16 0;
#X connect 12 0 14 0;
#X connect 13 0 5 0;
#X connect 14 0 15 0;
#X connect 16 0 6 0;
#X connect 16 1 7 0;
#X connect 16 2 8 0;
#X connect 16 3 13 0;
#X connect 16 4 14 1;
#X connect 18 0 14 0;
#X connect 19 0 10 0;
#X connect 19 1 12 0;
#X connect 19 2 18 0;
#X connect 19 3 9 0;
#X connect 22 0 3 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_qtloop2~.pd 0000664 0000000 0000000 00000011201 12660451536 0021753 0 ustar 00root root 0000000 0000000 #N canvas 526 20 677 778 10;
#X obj 82 83 inlet;
#X obj 255 82 inlet;
#X obj 103 506 pdp_loop;
#X obj 154 702 outlet;
#X obj 18 473 r \$0-loopin;
#X obj 24 145 s \$0-filename;
#X text 60 59 bang or hot frame;
#X text 142 727 packet outlet;
#X msg 132 137 bang;
#X obj 82 111 route open bang;
#X obj 103 554 pdp_convert image/YCrCb/*;
#X obj 294 214 s \$0-playaudioframe;
#X obj 294 237 outlet;
#X obj 132 375 mod;
#X obj 178 345 r \$0-nbframes;
#X obj 418 363 outlet;
#X obj 495 137 outlet~;
#X obj 581 133 outlet~;
#N canvas 98 558 711 881 more_logic 0;
#X obj 215 518 pdp_qt;
#X obj 246 772 symbol \$0-L;
#X obj 340 773 symbol \$0-R;
#X msg 246 797 dump \$1 0;
#X msg 340 797 dump \$1 1;
#X msg 140 473 open \$1;
#X obj 21 367 symbol;
#X obj 216 729 t f b;
#X obj 232 490 r \$0-qtin;
#X obj 340 833 s \$0-qtin;
#X obj 245 318 s \$0-loopin;
#X obj 21 338 r \$0-filename;
#X obj 215 692 s \$0-loopin;
#X text 337 227 new movie loaded \, nb of frames received here;
#X text 268 730 dump audio;
#X text 374 288 set loop size;
#X obj 215 463 until;
#X text 262 465 dump frames;
#X obj 215 258 t f f;
#X msg 245 289 size \$1 \, record;
#X text 374 303 start recording;
#X obj 199 435 f 0;
#X obj 252 551 s \$0-nbframes;
#X obj 215 227 r \$0-nbframes;
#X msg 21 494 DONE;
#X obj 21 671 print pdp_qtloop~;
#X obj 215 661 pdp_convert bitmap/yv12/*;
#X obj 215 348 t f f;
#X obj 233 601 pack 0 0;
#X obj 21 393 t b b b s;
#X msg 233 627 decoding frame \$1 of \$2;
#X obj 233 576 + 1;
#X text 407 661 images are stored in 12bpp;
#X obj 217 173 outlet~;
#X obj 340 172 outlet~;
#X obj 217 106 * 1920;
#X obj 217 41 r \$0-playaudioframe;
#X text 215 18 restart audio playback from frame #;
#X text 277 106 samplerate / framerate;
#X obj 32 32 table \$0-L;
#X obj 32 56 table \$0-R;
#N canvas 367 318 450 300 fracframemodulo 0;
#X obj 93 43 inlet;
#X obj 93 274 outlet;
#X obj 93 97 /;
#X obj 109 67 r \$0-nbframes;
#X obj 123 147 int;
#X obj 93 122 t f f;
#X obj 93 179 -;
#X obj 109 220 r \$0-nbframes;
#X obj 93 248 *;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 2 1;
#X connect 4 0 6 1;
#X connect 5 0 6 0;
#X connect 5 1 4 0;
#X connect 6 0 8 0;
#X connect 7 0 8 1;
#X connect 8 0 1 0;
#X restore 217 68 pd fracframemodulo;
#X obj 216 144 tabreadmix~ \$0-L;
#X obj 340 143 tabreadmix~ \$0-R;
#X obj 518 73 inlet;
#X connect 0 0 26 0;
#X connect 0 1 31 0;
#X connect 0 2 22 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 9 0;
#X connect 4 0 9 0;
#X connect 5 0 0 0;
#X connect 6 0 29 0;
#X connect 7 1 1 0;
#X connect 7 1 2 0;
#X connect 8 0 0 0;
#X connect 11 0 6 0;
#X connect 16 0 0 0;
#X connect 18 0 27 0;
#X connect 18 1 19 0;
#X connect 19 0 10 0;
#X connect 21 0 16 0;
#X connect 23 0 18 0;
#X connect 24 0 25 0;
#X connect 26 0 12 0;
#X connect 27 0 21 1;
#X connect 27 0 28 1;
#X connect 28 0 30 0;
#X connect 29 0 24 0;
#X connect 29 1 7 0;
#X connect 29 2 21 0;
#X connect 29 3 5 0;
#X connect 30 0 25 0;
#X connect 31 0 28 0;
#X connect 35 0 42 0;
#X connect 35 0 43 0;
#X connect 36 0 41 0;
#X connect 41 0 35 0;
#X connect 42 0 33 0;
#X connect 43 0 34 0;
#X connect 44 0 43 1;
#X connect 44 0 42 1;
#X restore 495 104 pd more_logic;
#X obj 132 170 f;
#X obj 132 287 t f f;
#X text 240 61 cold frame;
#X obj 162 375 mod;
#X obj 162 319 + 1;
#X obj 118 613 pdp_route;
#X obj 154 661 pdp_mix;
#X text 273 257 frame nb outlet;
#X msg 176 461 0;
#X msg 208 461 1;
#X obj 176 488 f;
#X text 215 408 get current and next frame from pdp_loop;
#X obj 132 219 int;
#X obj 206 267 -;
#X obj 132 196 t f f f;
#X obj 132 249 t f f;
#X text 277 317 crossfade fraction;
#X obj 206 317 s \$0-frac;
#X obj 198 631 r \$0-frac;
#X obj 206 292 * -1;
#X obj 103 408 t f b;
#X obj 162 408 t f b;
#X text 397 385 nb frames outlet;
#X text 249 19 like pdp_qtloop~ but uses tabreadmix~ from creb;
#X obj 497 77 inlet;
#X text 479 57 grain size;
#X connect 0 0 9 0;
#X connect 1 0 19 1;
#X connect 2 0 10 0;
#X connect 4 0 2 0;
#X connect 8 0 19 0;
#X connect 9 0 5 0;
#X connect 9 1 8 0;
#X connect 9 2 19 0;
#X connect 10 0 24 0;
#X connect 13 0 39 0;
#X connect 14 0 13 1;
#X connect 14 0 22 1;
#X connect 14 0 15 0;
#X connect 18 0 16 0;
#X connect 18 1 17 0;
#X connect 19 0 33 0;
#X connect 20 0 13 0;
#X connect 20 1 23 0;
#X connect 22 0 40 0;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 24 1 25 1;
#X connect 25 0 3 0;
#X connect 27 0 29 0;
#X connect 28 0 29 0;
#X connect 29 0 24 1;
#X connect 31 0 34 0;
#X connect 32 0 38 0;
#X connect 33 0 31 0;
#X connect 33 1 32 1;
#X connect 33 2 12 0;
#X connect 33 2 11 0;
#X connect 34 0 20 0;
#X connect 34 1 32 0;
#X connect 37 0 25 2;
#X connect 38 0 36 0;
#X connect 39 0 2 0;
#X connect 39 1 27 0;
#X connect 40 0 2 0;
#X connect 40 1 28 0;
#X connect 43 0 18 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_qtloop~.pd 0000664 0000000 0000000 00000010664 12660451536 0021705 0 ustar 00root root 0000000 0000000 #N canvas 526 20 677 778 10;
#X obj 82 83 inlet;
#X obj 255 82 inlet;
#X obj 103 506 pdp_loop;
#X obj 154 702 outlet;
#X obj 18 473 r \$0-loopin;
#X obj 24 145 s \$0-filename;
#X text 60 59 bang or hot frame;
#X text 142 727 packet outlet;
#X msg 132 137 bang;
#X obj 82 111 route open bang;
#X obj 103 554 pdp_convert image/YCrCb/*;
#X obj 294 214 s \$0-playaudioframe;
#X obj 294 237 outlet;
#X obj 132 375 mod;
#X obj 178 345 r \$0-nbframes;
#X obj 418 363 outlet;
#X obj 495 137 outlet~;
#X obj 581 133 outlet~;
#N canvas 98 558 711 881 more_logic 0;
#X obj 215 518 pdp_qt;
#X obj 246 772 symbol \$0-L;
#X obj 340 773 symbol \$0-R;
#X msg 246 797 dump \$1 0;
#X msg 340 797 dump \$1 1;
#X msg 140 473 open \$1;
#X obj 21 367 symbol;
#X obj 216 729 t f b;
#X obj 232 490 r \$0-qtin;
#X obj 340 833 s \$0-qtin;
#X obj 245 318 s \$0-loopin;
#X obj 21 338 r \$0-filename;
#X obj 215 692 s \$0-loopin;
#X text 337 227 new movie loaded \, nb of frames received here;
#X text 268 730 dump audio;
#X text 374 288 set loop size;
#X obj 215 463 until;
#X text 262 465 dump frames;
#X obj 215 258 t f f;
#X msg 245 289 size \$1 \, record;
#X text 374 303 start recording;
#X obj 199 435 f 0;
#X obj 252 551 s \$0-nbframes;
#X obj 215 227 r \$0-nbframes;
#X msg 21 494 DONE;
#X obj 21 671 print pdp_qtloop~;
#X obj 215 661 pdp_convert bitmap/yv12/*;
#X obj 215 348 t f f;
#X obj 233 601 pack 0 0;
#X obj 21 393 t b b b s;
#X msg 233 627 decoding frame \$1 of \$2;
#X obj 233 576 + 1;
#X text 407 661 images are stored in 12bpp;
#X obj 217 173 outlet~;
#X obj 340 172 outlet~;
#X obj 217 106 * 1920;
#X obj 217 41 r \$0-playaudioframe;
#X text 215 18 restart audio playback from frame #;
#X text 277 106 samplerate / framerate;
#X obj 32 32 table \$0-L;
#X obj 32 56 table \$0-R;
#N canvas 367 318 450 300 fracframemodulo 0;
#X obj 93 43 inlet;
#X obj 93 274 outlet;
#X obj 93 97 /;
#X obj 109 67 r \$0-nbframes;
#X obj 123 147 int;
#X obj 93 122 t f f;
#X obj 93 179 -;
#X obj 109 220 r \$0-nbframes;
#X obj 93 248 *;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 2 1;
#X connect 4 0 6 1;
#X connect 5 0 6 0;
#X connect 5 1 4 0;
#X connect 6 0 8 0;
#X connect 7 0 8 1;
#X connect 8 0 1 0;
#X restore 217 68 pd fracframemodulo;
#X obj 216 144 tabplay~ \$0-L;
#X obj 340 143 tabplay~ \$0-R;
#X connect 0 0 26 0;
#X connect 0 1 31 0;
#X connect 0 2 22 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 9 0;
#X connect 4 0 9 0;
#X connect 5 0 0 0;
#X connect 6 0 29 0;
#X connect 7 1 1 0;
#X connect 7 1 2 0;
#X connect 8 0 0 0;
#X connect 11 0 6 0;
#X connect 16 0 0 0;
#X connect 18 0 27 0;
#X connect 18 1 19 0;
#X connect 19 0 10 0;
#X connect 21 0 16 0;
#X connect 23 0 18 0;
#X connect 24 0 25 0;
#X connect 26 0 12 0;
#X connect 27 0 21 1;
#X connect 27 0 28 1;
#X connect 28 0 30 0;
#X connect 29 0 24 0;
#X connect 29 1 7 0;
#X connect 29 2 21 0;
#X connect 29 3 5 0;
#X connect 30 0 25 0;
#X connect 31 0 28 0;
#X connect 35 0 42 0;
#X connect 35 0 43 0;
#X connect 36 0 41 0;
#X connect 41 0 35 0;
#X connect 42 0 33 0;
#X connect 43 0 34 0;
#X restore 495 104 pd more_logic;
#X obj 132 170 f;
#X obj 132 287 t f f;
#X text 240 61 cold frame;
#X obj 162 375 mod;
#X obj 162 319 + 1;
#X obj 118 613 pdp_route;
#X obj 154 661 pdp_mix;
#X text 273 257 frame nb outlet;
#X msg 176 461 0;
#X msg 208 461 1;
#X obj 176 488 f;
#X text 215 408 get current and next frame from pdp_loop;
#X obj 132 219 int;
#X obj 206 267 -;
#X obj 132 196 t f f f;
#X obj 132 249 t f f;
#X text 277 317 crossfade fraction;
#X obj 206 317 s \$0-frac;
#X obj 198 631 r \$0-frac;
#X obj 206 292 * -1;
#X obj 103 408 t f b;
#X obj 162 408 t f b;
#X text 397 385 nb frames outlet;
#X connect 0 0 9 0;
#X connect 1 0 19 1;
#X connect 2 0 10 0;
#X connect 4 0 2 0;
#X connect 8 0 19 0;
#X connect 9 0 5 0;
#X connect 9 1 8 0;
#X connect 9 2 19 0;
#X connect 10 0 24 0;
#X connect 13 0 39 0;
#X connect 14 0 13 1;
#X connect 14 0 22 1;
#X connect 14 0 15 0;
#X connect 18 0 16 0;
#X connect 18 1 17 0;
#X connect 19 0 33 0;
#X connect 20 0 13 0;
#X connect 20 1 23 0;
#X connect 22 0 40 0;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 24 1 25 1;
#X connect 25 0 3 0;
#X connect 27 0 29 0;
#X connect 28 0 29 0;
#X connect 29 0 24 1;
#X connect 31 0 34 0;
#X connect 32 0 38 0;
#X connect 33 0 31 0;
#X connect 33 1 32 1;
#X connect 33 2 12 0;
#X connect 33 2 11 0;
#X connect 34 0 20 0;
#X connect 34 1 32 0;
#X connect 37 0 25 2;
#X connect 38 0 36 0;
#X connect 39 0 2 0;
#X connect 39 1 27 0;
#X connect 40 0 2 0;
#X connect 40 1 28 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_saturation.pd 0000664 0000000 0000000 00000001027 12660451536 0022353 0 ustar 00root root 0000000 0000000 #N canvas 322 388 509 326 10;
#X obj 39 105 inlet;
#X obj 270 103 inlet;
#X obj 39 255 outlet;
#X obj 85 105 loadbang;
#X text 32 14 adjust colour saturation by applying a gain to the chroma
channels.;
#X text 31 47 this only works for image/YCrCb/* packets and 3 channel
image/multi/* packets containing luma and chroma channels.;
#X obj 39 192 pdp_gain;
#X msg 85 155 chanmask 6 \, gain \$1;
#X obj 85 131 f \$1;
#X connect 0 0 6 0;
#X connect 1 0 6 1;
#X connect 3 0 8 0;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 8 0 7 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_save_png_sequence.pd 0000664 0000000 0000000 00000001334 12660451536 0023655 0 ustar 00root root 0000000 0000000 #N canvas 654 482 490 382 10;
#X obj 54 65 inlet;
#X obj 119 362 pdp_reg;
#X obj 119 130 pdp_t b p;
#X obj 119 186 + 1;
#X obj 54 93 route bang;
#X obj 119 251 makefilename /tmp/frame%d.png;
#X obj 119 215 moses \$1;
#X obj 140 279 print;
#X msg 119 305 save_png \$1;
#X msg 54 126 0;
#X text 146 10 save a png sequence in the /tmp directory;
#X text 146 25 creation argument is the number of frames;
#X obj 119 160 f \$1;
#X text 146 40 send a bang to start writing;
#X connect 0 0 4 0;
#X connect 2 0 12 0;
#X connect 2 1 1 0;
#X connect 3 0 6 0;
#X connect 3 0 12 1;
#X connect 4 0 9 0;
#X connect 4 1 2 0;
#X connect 5 0 7 0;
#X connect 5 0 8 0;
#X connect 6 0 5 0;
#X connect 8 0 1 0;
#X connect 9 0 12 1;
#X connect 12 0 3 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_sub.pd 0000664 0000000 0000000 00000000266 12660451536 0020757 0 ustar 00root root 0000000 0000000 #N canvas 577 543 450 300 10;
#X obj 48 49 inlet;
#X obj 118 47 inlet;
#X obj 47 161 outlet;
#X obj 48 104 pdp_mix2 1 -1;
#X connect 0 0 3 0;
#X connect 1 0 3 1;
#X connect 3 0 2 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_tag.pd 0000664 0000000 0000000 00000000712 12660451536 0020735 0 ustar 00root root 0000000 0000000 #N canvas 700 231 450 300 10;
#X obj 56 25 inlet;
#X obj 55 191 outlet;
#X msg 162 174 \$1 \$2 \$3 \$4;
#X text 148 31 tag a pdp message (for routing);
#X obj 0 110 symbol \$1;
#X obj 56 68 unpack s s 0;
#X obj 55 139 pack s s s 0;
#X obj 39 91 t b s;
#X obj 55 165 route list;
#X connect 0 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 5 1 6 2;
#X connect 5 2 6 3;
#X connect 6 0 8 0;
#X connect 7 0 4 0;
#X connect 7 1 6 1;
#X connect 8 0 1 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_v4l_hack.pd 0000664 0000000 0000000 00000003031 12660451536 0021652 0 ustar 00root root 0000000 0000000 #N canvas 0 29 958 1049 10;
#X obj 83 95 pdp_v4l;
#X obj 83 35 inlet;
#X obj 91 182 outlet;
#X obj 154 179 outlet;
#X obj 244 122 route card;
#X obj 244 174 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 162 55 info;
#X obj 44 54 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 244 204 control EXPOSURE_AUTO 1 \, control EXPOSURE_ABSOLUTE
350;
#X msg 28 239 open /dev/video0;
#X msg 26 264 open /dev/video1;
#X obj 529 173 print unknown_camera;
#X obj 244 147 route USB_2_0_Camera Microsoft___LifeCam_HD_5000;
#X obj 386 173 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 254 17 The idea here is to automatically set some properties
based on camera ID \, but it seems easier to just do this manually.
My Microsoft HD-5000 needs: control EXPOSURE_AUTO 1 \, control EXPOSURE_ABSOLUTE
156 It seems that most cameras only work on their highest frequency
when exposure is off. If exposure control is not available \, just
adding more ambient light can be enough to raise the effective framerate.
;
#X msg 243 236 control EXPOSURE_AUTO 1 \, control EXPOSURE_ABSOLUTE
156 \, fps 30;
#X msg 202 335 dim 320 340;
#X msg 197 362 dim 640 480;
#X connect 0 0 2 0;
#X connect 0 1 3 0;
#X connect 0 1 4 0;
#X connect 1 0 0 0;
#X connect 4 0 12 0;
#X connect 5 0 8 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 0 0;
#X connect 12 0 5 0;
#X connect 12 1 13 0;
#X connect 12 2 11 0;
#X connect 13 0 15 0;
#X connect 15 0 0 0;
#X connect 16 0 0 0;
#X connect 17 0 0 0;
pdp-0.14.1+darcs20180201/abstractions/pdp_xv_keycursor.pd 0000664 0000000 0000000 00000003633 12660451536 0022732 0 ustar 00root root 0000000 0000000 #N canvas 135 108 708 682 10;
#X obj 19 103 print;
#X obj 19 67 pdp_xv;
#X obj 111 168 route keypress;
#X obj 367 215 table \$0-x;
#X obj 87 394 tabwrite \$0-x;
#X obj 396 335 tabread \$0-x;
#X obj 486 335 tabread \$0-y;
#X obj 409 383 pack s 0 0;
#X obj 183 392 tabwrite \$0-y;
#X obj 77 260 route motion;
#X obj 88 367 unpack 0 0;
#X obj 444 215 table \$0-y;
#X obj 87 339 spigot;
#X msg 157 311 0;
#X msg 125 312 1;
#X obj 157 288 route keyrelease;
#X msg 385 360 movecursor;
#X msg 409 412 \$1 \$2 \$3;
#X obj 18 468 outlet;
#X obj 17 128 t a a;
#X obj 403 277 t b f f;
#X obj 88 426 outlet;
#X obj 152 423 outlet;
#X obj 267 428 outlet;
#X obj 239 231 t f f;
#X obj 409 438 s \$0-control;
#X obj 19 40 r \$0-control;
#X obj 20 16 inlet;
#X text 182 53 a keyboard/mouse controller using pdp_xv;
#X text 180 76 hold a key while moving the mouse to update the x/y
controller value. hint: turn off keyboard autoropeat using "xset r
off" in a terminal window.;
#X text 252 454 scan code;
#X text 82 450 x coord;
#X text 151 449 y coord;
#X text 9 494 plain events;
#X obj 450 119 inlet;
#X obj 450 143 unpack 0 0 0;
#X obj 382 175 tabwrite \$0-x;
#X obj 480 175 tabwrite \$0-y;
#X connect 1 0 0 0;
#X connect 1 0 19 0;
#X connect 2 0 24 0;
#X connect 2 1 9 0;
#X connect 5 0 7 1;
#X connect 6 0 7 2;
#X connect 7 0 17 0;
#X connect 9 0 12 0;
#X connect 9 1 15 0;
#X connect 10 0 4 0;
#X connect 10 0 21 0;
#X connect 10 1 8 0;
#X connect 10 1 22 0;
#X connect 12 0 10 0;
#X connect 13 0 12 1;
#X connect 14 0 12 1;
#X connect 15 0 13 0;
#X connect 16 0 7 0;
#X connect 17 0 25 0;
#X connect 19 0 18 0;
#X connect 19 1 2 0;
#X connect 20 0 16 0;
#X connect 20 1 5 0;
#X connect 20 2 6 0;
#X connect 24 0 4 1;
#X connect 24 0 8 1;
#X connect 24 0 23 0;
#X connect 24 0 14 0;
#X connect 24 1 20 0;
#X connect 26 0 1 0;
#X connect 27 0 1 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 35 1 37 0;
#X connect 35 2 37 1;
#X connect 35 2 36 1;
pdp-0.14.1+darcs20180201/abstractions/rgb2ycrcb.pd 0000664 0000000 0000000 00000000232 12660451536 0021173 0 ustar 00root root 0000000 0000000 #N canvas 318 162 450 300 10;
#X obj 94 76 inlet;
#X obj 144 76 inlet;
#X obj 195 76 inlet;
#X text 94 53 red;
#X text 143 52 green;
#X text 197 53 blue;
pdp-0.14.1+darcs20180201/bin/ 0000775 0000000 0000000 00000000000 12660451536 0015046 5 ustar 00root root 0000000 0000000 pdp-0.14.1+darcs20180201/bin/patchversion 0000775 0000000 0000000 00000000152 12660451536 0017477 0 ustar 00root root 0000000 0000000 #!/bin/bash
# cat <