aboutsummaryrefslogtreecommitdiff
path: root/doc/examples
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-12-16 01:05:40 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-12-16 01:05:40 +0000
commitb694c274836ac8b04d644711ac324eac2e9ab83e (patch)
tree36b6a5c17f7e1f414f80697210c2ed3e8005035b /doc/examples
parente28a07fba67af0af818dda6afa4cf67c09700816 (diff)
checking in pdp 0.12.4 from http://zwizwa.fartit.com/pd/pdp/pdp-0.12.4.tar.gz
svn path=/trunk/externals/pdp/; revision=4232
Diffstat (limited to 'doc/examples')
-rw-r--r--doc/examples/example01.pd45
-rw-r--r--doc/examples/example02.pd44
-rw-r--r--doc/examples/example03.pd86
-rw-r--r--doc/examples/example04.pd85
-rw-r--r--doc/examples/example05.pd142
-rw-r--r--doc/examples/example06.pd76
-rw-r--r--doc/examples/example07.pd73
-rw-r--r--doc/examples/example08.pd57
-rw-r--r--doc/examples/example09.pd35
-rw-r--r--doc/examples/example10.pd55
-rw-r--r--doc/examples/example11.pd80
-rw-r--r--doc/examples/example12.pd42
-rw-r--r--doc/examples/example13.pd104
-rw-r--r--doc/examples/example14.pd54
-rw-r--r--doc/examples/example15.pd27
15 files changed, 1005 insertions, 0 deletions
diff --git a/doc/examples/example01.pd b/doc/examples/example01.pd
new file mode 100644
index 0000000..94db2ea
--- /dev/null
+++ b/doc/examples/example01.pd
@@ -0,0 +1,45 @@
+#N canvas 657 0 518 446 10;
+#X obj 133 414 pdp_xv;
+#X obj 177 76 pdp_v4l;
+#X obj 177 33 metro 40;
+#X obj 176 8 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 35 149 pdp_conv;
+#X obj 35 173 pdp_conv_sobel_edge;
+#X obj 412 60 pdp_control;
+#X msg 412 32 thread \$1;
+#X obj 412 8 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 133 352 pdp_gradient;
+#X obj 133 288 pdp_motion_phase;
+#X msg 254 30 type grey;
+#X obj 35 125 pdp_del 8;
+#X obj 35 198 pdp_gain 6;
+#X msg 240 252 0.45;
+#X text 223 125 8 frames delay;
+#X text 223 149 smooth;
+#X text 223 174 edge detect;
+#X text 222 200 amplify;
+#X text 232 6 process in greyscale;
+#X text 322 287 motion phase shifter;
+#X text 320 354 grey -> colour palette;
+#X msg 36 323 rgb 1 0.5 0;
+#X obj 133 252 pdp_add;
+#X msg 133 216 debug;
+#X connect 1 0 12 0;
+#X connect 1 0 23 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 0;
+#X connect 5 0 13 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 0 0;
+#X connect 10 0 9 0;
+#X connect 11 0 1 0;
+#X connect 12 0 4 0;
+#X connect 13 0 23 0;
+#X connect 14 0 10 1;
+#X connect 22 0 9 0;
+#X connect 23 0 10 0;
+#X connect 24 0 23 0;
diff --git a/doc/examples/example02.pd b/doc/examples/example02.pd
new file mode 100644
index 0000000..0a46e04
--- /dev/null
+++ b/doc/examples/example02.pd
@@ -0,0 +1,44 @@
+#N canvas 85 437 473 316 10;
+#X obj 91 268 pdp_xv;
+#X obj 91 73 pdp_v4l;
+#X obj 91 30 metro 40;
+#X obj 90 5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
+;
+#X obj 326 57 pdp_control;
+#X msg 326 29 thread \$1;
+#X obj 326 5 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 146 3 process in greyscale;
+#X obj 135 195 pdp_gain;
+#X obj 135 222 pdp_gain;
+#X msg 168 27 type yv12;
+#X obj 91 129 pdp_mix;
+#X msg 169 51 type grey;
+#X obj 216 194 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 0.62 256;
+#X obj 139 103 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 0.82 256;
+#X obj 215 133 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 8 256;
+#X obj 135 162 pdp_del 25;
+#X obj 216 173 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 1.5 256;
+#X text 289 177 gains clip at -1 \, 1;
+#X msg 159 129 reset;
+#X connect 1 0 11 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 1;
+#X connect 10 0 1 0;
+#X connect 11 0 0 0;
+#X connect 11 0 16 0;
+#X connect 12 0 1 0;
+#X connect 13 0 9 1;
+#X connect 14 0 11 2;
+#X connect 15 0 16 1;
+#X connect 16 0 8 0;
+#X connect 17 0 8 1;
+#X connect 19 0 16 0;
diff --git a/doc/examples/example03.pd b/doc/examples/example03.pd
new file mode 100644
index 0000000..0eddd0d
--- /dev/null
+++ b/doc/examples/example03.pd
@@ -0,0 +1,86 @@
+#N canvas 141 84 841 685 10;
+#X obj 68 318 pdp_noise;
+#X obj 68 85 metro 40;
+#X obj 68 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 68 484 pdp_del 50;
+#X obj 112 424 pdp_gain;
+#X floatatom 240 518 5 0 0;
+#X obj 68 514 pdp_blur;
+#X obj 243 499 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 10100 1;
+#X floatatom 240 367 5 0 0;
+#X obj 243 342 hsl 128 15 0 5 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X floatatom 240 587 5 0 0;
+#X obj 243 567 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 4100 1;
+#X floatatom 239 428 5 0 0;
+#X obj 242 409 hsl 128 15 -5 5 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 11900 1;
+#X msg 15 460 reset;
+#X obj 68 459 pdp_add;
+#X obj 68 357 pdp_gain;
+#X text 203 7 this example shows how to use a delay line with a loop
+gain > 1 and some processing inside the loop to produce a plasma like
+effect. (WARNING: this can produce a very intense strobe effect \,
+so if you're sensitive to flashing lights please be careful...);
+#X text 391 407 a |gain| > 1 ensures regeneration;
+#X floatatom 119 56 5 0 0;
+#X obj 68 582 pdp_motion_phase;
+#X floatatom 133 459 5 0 0;
+#X text 392 495 blur ensures spatial coupling (determines the speed
+at which "blobs" move around the screen);
+#X text 392 565 a motion phase effect to spice it up (this causes local
+negative feedback around suddon changes);
+#X msg 109 13 40;
+#X msg 144 13 1000;
+#X msg 109 250 type grey;
+#X msg 109 135 type yv12;
+#X obj 68 619 pdp_xv;
+#X text 201 247 it also works for black and white \, but all negative
+colours will be clipped to 0 (black) on output.;
+#X text 393 340 mix in some noise to get it going (set blur to minimal
+when starting so the added noise won't be blurred to black);
+#X text 202 96 it illustrates one of the advantages of working in an
+additive/subtractive colour space. (here yuv or YCrCb). since legal
+colours can be both positive and negative \, the analogy with audio
+signals is easily drawn. this network can be seen as a nonlinear feedback
+delay network. (nonlinear because of the saturating gain). the image
+delay line can be seen as a parallel delay line \, one for each pixel.
+coupling between the delays is done using a spatial blur effect. the
+additional temporal filtering isn't necessary \, but it produces a
+nice additional effect.;
+#X obj 534 661 pdp_control;
+#X obj 534 684 print;
+#X msg 534 637 thread \$1;
+#X obj 534 614 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X connect 0 0 16 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 6 0;
+#X connect 4 0 15 1;
+#X connect 6 0 20 0;
+#X connect 7 0 5 0;
+#X connect 7 0 6 1;
+#X connect 9 0 8 0;
+#X connect 9 0 16 1;
+#X connect 11 0 10 0;
+#X connect 11 0 20 1;
+#X connect 13 0 12 0;
+#X connect 13 0 4 1;
+#X connect 14 0 3 0;
+#X connect 15 0 3 0;
+#X connect 16 0 15 0;
+#X connect 19 0 1 1;
+#X connect 20 0 4 0;
+#X connect 20 0 28 0;
+#X connect 21 0 3 1;
+#X connect 24 0 19 0;
+#X connect 25 0 19 0;
+#X connect 26 0 0 0;
+#X connect 27 0 0 0;
+#X connect 32 0 33 0;
+#X connect 34 0 32 0;
+#X connect 35 0 34 0;
diff --git a/doc/examples/example04.pd b/doc/examples/example04.pd
new file mode 100644
index 0000000..501d283
--- /dev/null
+++ b/doc/examples/example04.pd
@@ -0,0 +1,85 @@
+#N canvas 89 39 931 736 10;
+#X obj 68 204 pdp_noise;
+#X obj 68 85 metro 40;
+#X obj 68 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 112 303 pdp_gain;
+#X floatatom 240 518 5 0 0;
+#X obj 68 514 pdp_blur;
+#X obj 243 499 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 6500 1;
+#X floatatom 240 233 5 0 0;
+#X obj 243 208 hsl 128 15 0 5 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X floatatom 240 587 5 0 0;
+#X obj 243 567 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 5000 1;
+#X floatatom 239 307 5 0 0;
+#X obj 242 288 hsl 128 15 -5 5 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 8920 1;
+#X msg 15 339 reset;
+#X obj 68 338 pdp_add;
+#X obj 68 243 pdp_gain;
+#X text 393 286 a |gain| > 1 ensures regeneration;
+#X floatatom 119 56 5 0 0;
+#X obj 68 582 pdp_motion_phase;
+#X floatatom 133 338 5 0 0;
+#X text 392 495 blur ensures spatial coupling (determines the speed
+at which "blobs" move around the screen);
+#X text 392 565 a motion phase effect to spice it up (this causes local
+negative feedback around suddon changes);
+#X msg 109 13 40;
+#X msg 144 13 1000;
+#X msg 146 119 type grey;
+#X msg 147 90 type yv12;
+#X obj 68 619 pdp_xv;
+#X text 393 206 mix in some noise to get it going (set blur to minimal
+when starting so the added noise won't be blurred to black);
+#X obj 68 363 pdp_del 50;
+#X text 242 14 this example is like example03 with a zoom / rotation
+object thrown in;
+#X obj 68 480 pdp_zrot;
+#X floatatom 239 377 5 0 0;
+#X obj 242 358 hsl 128 15 0.1 10 1 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 8567 1;
+#X floatatom 239 446 5 0 0;
+#X obj 242 426 hsl 128 15 0 360 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 300 1;
+#X text 393 357 zoom;
+#X msg 239 334 1;
+#X msg 239 403 0;
+#X msg 239 261 1;
+#X text 392 420 rotation;
+#X connect 0 0 15 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 14 1;
+#X connect 5 0 18 0;
+#X connect 6 0 4 0;
+#X connect 6 0 5 1;
+#X connect 8 0 7 0;
+#X connect 8 0 15 1;
+#X connect 10 0 9 0;
+#X connect 10 0 18 1;
+#X connect 12 0 11 0;
+#X connect 12 0 3 1;
+#X connect 13 0 28 0;
+#X connect 14 0 28 0;
+#X connect 15 0 14 0;
+#X connect 17 0 1 1;
+#X connect 18 0 3 0;
+#X connect 18 0 26 0;
+#X connect 19 0 28 1;
+#X connect 22 0 17 0;
+#X connect 23 0 17 0;
+#X connect 24 0 0 0;
+#X connect 25 0 0 0;
+#X connect 28 0 30 0;
+#X connect 30 0 5 0;
+#X connect 31 0 30 1;
+#X connect 32 0 31 0;
+#X connect 33 0 30 2;
+#X connect 34 0 33 0;
+#X connect 36 0 32 0;
+#X connect 37 0 34 0;
+#X connect 38 0 12 0;
diff --git a/doc/examples/example05.pd b/doc/examples/example05.pd
new file mode 100644
index 0000000..02bc688
--- /dev/null
+++ b/doc/examples/example05.pd
@@ -0,0 +1,142 @@
+#N canvas 584 220 538 637 10;
+#X obj 10 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 120 117 pdp_grey;
+#X obj 435 194 pdp_control;
+#X msg 435 167 thread 0;
+#X obj 121 224 pdp_reg;
+#X floatatom 81 7 5 0 0;
+#X msg 35 10 stop;
+#X floatatom 187 341 5 0 0;
+#X obj 120 410 pdp_zrot;
+#X floatatom 188 389 5 0 0;
+#X obj 120 453 pdp_blur;
+#X floatatom 188 435 5 0 0;
+#X obj 120 92 pdp_noise;
+#X obj 120 70 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#N canvas 623 175 567 478 nlmap 0;
+#X obj 89 138 pdp_affine;
+#X msg 123 108 -1;
+#X msg 156 108 1;
+#X obj 92 161 pdp_mul;
+#X obj 95 189 pdp_gain;
+#X floatatom 234 159 5 0 0;
+#X msg 259 119 3.73;
+#X obj 100 272 pdp_affine;
+#X msg 134 242 -1;
+#X msg 167 242 1;
+#X obj 103 295 pdp_mul;
+#X obj 106 323 pdp_gain;
+#X floatatom 168 299 5 0 0;
+#X msg 185 271 3.73;
+#X obj 254 54 inlet;
+#X obj 79 55 inlet;
+#X obj 98 405 outlet;
+#X obj 164 60 loadbang;
+#X obj 190 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 260 220 this computes f(f(image));
+#X text 261 236 with f(x) = k*x*(1-x);
+#X text 286 160 k;
+#X text 260 253 the logistic map;
+#X text 173 353 2 iterations are used to eliminate most of the high
+frequency flickering;
+#X connect 0 0 3 0;
+#X connect 1 0 0 1;
+#X connect 2 0 0 2;
+#X connect 3 0 4 0;
+#X connect 4 0 10 1;
+#X connect 4 0 7 0;
+#X connect 5 0 4 1;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 1;
+#X connect 9 0 7 2;
+#X connect 10 0 11 0;
+#X connect 11 0 16 0;
+#X connect 12 0 11 1;
+#X connect 13 0 12 0;
+#X connect 14 0 5 0;
+#X connect 15 0 3 1;
+#X connect 15 0 0 0;
+#X connect 17 0 18 0;
+#X connect 18 0 2 0;
+#X connect 18 0 1 0;
+#X connect 18 0 6 0;
+#X connect 18 0 8 0;
+#X connect 18 0 9 0;
+#X restore 121 274 pd nlmap;
+#X obj 73 576 pdp_xv;
+#X floatatom 180 232 5 0 0;
+#X text 196 275 2 iterations of the logistic map function;
+#X obj 121 143 pdp_mul;
+#X obj 297 94 pdp_noise;
+#X obj 297 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 297 121 pdp_mul;
+#X obj 73 521 pdp_saturation;
+#X floatatom 166 490 5 0 0;
+#X obj 30 36 metro 70;
+#X msg 181 206 3.8;
+#X msg 186 318 1.17;
+#X msg 188 368 -2.33;
+#X text 242 341 zoom;
+#X text 241 391 rotate;
+#X msg 188 414 0.33;
+#X text 139 12 feedback with nonlinear mapping + zoom + rotate + blur
+;
+#X msg 82 -15 40;
+#X msg 116 -15 500;
+#X text 111 47 grey1;
+#X obj 212 119 pdp_grey;
+#X obj 212 94 pdp_noise;
+#X obj 212 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 203 49 grey2;
+#X text 287 50 colour1;
+#X obj 388 95 pdp_noise;
+#X obj 388 73 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 378 51 colour2;
+#X msg 238 463 -0.5;
+#X msg 282 463 0.5;
+#X connect 0 0 24 0;
+#X connect 1 0 18 1;
+#X connect 1 0 18 0;
+#X connect 3 0 2 0;
+#X connect 4 0 14 0;
+#X connect 5 0 24 1;
+#X connect 6 0 24 0;
+#X connect 7 0 8 1;
+#X connect 8 0 10 0;
+#X connect 9 0 8 2;
+#X connect 10 0 4 1;
+#X connect 11 0 10 1;
+#X connect 12 0 1 0;
+#X connect 13 0 12 0;
+#X connect 14 0 8 0;
+#X connect 14 0 22 0;
+#X connect 16 0 14 1;
+#X connect 18 0 4 0;
+#X connect 19 0 21 1;
+#X connect 19 0 21 0;
+#X connect 20 0 19 0;
+#X connect 21 0 4 0;
+#X connect 22 0 15 0;
+#X connect 23 0 22 1;
+#X connect 24 0 4 0;
+#X connect 25 0 16 0;
+#X connect 26 0 7 0;
+#X connect 27 0 9 0;
+#X connect 30 0 11 0;
+#X connect 32 0 5 0;
+#X connect 33 0 5 0;
+#X connect 35 0 4 0;
+#X connect 36 0 35 0;
+#X connect 37 0 36 0;
+#X connect 40 0 4 0;
+#X connect 41 0 40 0;
+#X connect 43 0 23 0;
+#X connect 44 0 23 0;
diff --git a/doc/examples/example06.pd b/doc/examples/example06.pd
new file mode 100644
index 0000000..82de63b
--- /dev/null
+++ b/doc/examples/example06.pd
@@ -0,0 +1,76 @@
+#N canvas 92 197 605 585 10;
+#X obj 24 85 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 42 25 stop;
+#X msg 80 24 bang;
+#X floatatom 122 25 5 0 0;
+#X obj 60 485 pdp_xv;
+#X obj 60 439 pdp_bq;
+#X obj 111 334 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 169 332 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 97 278 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 154 277 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X msg 95 303 lr \$1;
+#X msg 150 304 rl \$1;
+#X msg 99 350 tb \$1;
+#X msg 154 351 bt \$1;
+#X obj 392 240 hsl 128 15 0.05 0.5 1 1 empty empty empty -2 -6 0 8
+-262144 -1 -1 3000 1;
+#X obj 450 280 hsl 128 15 0.1 10 1 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 1900 1;
+#X obj 391 307 t b f;
+#X obj 394 345 pack s 0 0;
+#X msg 391 378 \$1 \$2 \$3;
+#X obj 447 310 t b f;
+#X msg 301 199 lpf;
+#X msg 333 200 apf;
+#X obj 130 198 random 2;
+#X obj 195 198 random 2;
+#X obj 60 147 pdp_trigger;
+#X obj 128 235 random 2;
+#X obj 193 235 random 2;
+#X obj 60 111 pdp_v4l;
+#X obj 301 121 loadbang;
+#X obj 60 53 metro 40;
+#X text 388 219 frequency;
+#X text 447 261 Q;
+#X text 312 175 filter type;
+#X connect 0 0 27 0;
+#X connect 1 0 29 0;
+#X connect 2 0 29 0;
+#X connect 3 0 29 1;
+#X connect 5 0 4 0;
+#X connect 6 0 12 0;
+#X connect 7 0 13 0;
+#X connect 8 0 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 0;
+#X connect 13 0 5 0;
+#X connect 14 0 16 0;
+#X connect 15 0 19 0;
+#X connect 16 0 17 0;
+#X connect 16 1 17 1;
+#X connect 17 0 18 0;
+#X connect 18 0 5 0;
+#X connect 19 0 17 0;
+#X connect 19 1 17 2;
+#X connect 20 0 17 0;
+#X connect 21 0 17 0;
+#X connect 22 0 8 0;
+#X connect 23 0 9 0;
+#X connect 24 0 5 0;
+#X connect 24 1 23 0;
+#X connect 24 1 22 0;
+#X connect 24 1 26 0;
+#X connect 24 1 25 0;
+#X connect 25 0 6 0;
+#X connect 26 0 7 0;
+#X connect 27 0 24 0;
+#X connect 28 0 20 0;
+#X connect 29 0 27 0;
diff --git a/doc/examples/example07.pd b/doc/examples/example07.pd
new file mode 100644
index 0000000..0c1ca8c
--- /dev/null
+++ b/doc/examples/example07.pd
@@ -0,0 +1,73 @@
+#N canvas 466 98 659 764 10;
+#X obj 18 649 pdp_xv;
+#X obj 17 58 pdp_noise;
+#X obj 16 14 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 17 325 pdp_add;
+#X obj 17 277 pdp_gain;
+#X obj 87 277 pdp_gain;
+#X floatatom 127 238 5 0 0;
+#X floatatom 174 238 5 0 0;
+#X obj 17 120 pdp_mix;
+#X floatatom 96 92 5 0 0;
+#X obj 16 35 metro 40;
+#X obj 17 87 pdp_grey;
+#X msg 96 70 0.8;
+#X floatatom 76 212 5 0 0;
+#X obj 105 375 pdp_del 1;
+#X msg 163 349 1;
+#X obj 17 440 pdp_add;
+#X obj 105 400 pdp_gain;
+#X floatatom 208 382 5 0 0;
+#X obj 17 243 pdp_blur;
+#X msg 133 69 1;
+#X floatatom 76 560 5 0 0;
+#X obj 17 591 pdp_blur;
+#X obj 18 619 pdp_gain;
+#X floatatom 101 594 5 0 0;
+#X msg 73 535 0.22;
+#X msg 208 358 -0.61;
+#X msg 132 214 4.3;
+#X msg 178 215 -6.69;
+#X msg 76 183 0.32;
+#X msg 130 566 4;
+#X text 287 386 subtract previous frame (time derivative);
+#X text 97 47 some noise to get started;
+#X text 235 216 construct a laplace like operator by blurring the image
+and subtractiong the original from it;
+#X text 371 12 a surface wave patch;
+#X floatatom 67 8 5 0 0;
+#X connect 1 0 11 0;
+#X connect 2 0 10 0;
+#X connect 3 0 16 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 1;
+#X connect 6 0 4 1;
+#X connect 7 0 5 1;
+#X connect 8 0 5 0;
+#X connect 8 0 14 0;
+#X connect 8 0 19 0;
+#X connect 9 0 8 2;
+#X connect 10 0 1 0;
+#X connect 11 0 8 0;
+#X connect 12 0 9 0;
+#X connect 13 0 19 1;
+#X connect 14 0 17 0;
+#X connect 15 0 14 1;
+#X connect 16 0 22 0;
+#X connect 16 0 8 1;
+#X connect 17 0 16 1;
+#X connect 18 0 17 1;
+#X connect 19 0 4 0;
+#X connect 20 0 9 0;
+#X connect 21 0 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 0 0;
+#X connect 24 0 23 1;
+#X connect 25 0 21 0;
+#X connect 26 0 18 0;
+#X connect 27 0 6 0;
+#X connect 28 0 7 0;
+#X connect 29 0 13 0;
+#X connect 30 0 24 0;
+#X connect 35 0 10 1;
diff --git a/doc/examples/example08.pd b/doc/examples/example08.pd
new file mode 100644
index 0000000..9008ccd
--- /dev/null
+++ b/doc/examples/example08.pd
@@ -0,0 +1,57 @@
+#N canvas 508 53 640 487 10;
+#X obj 17 376 pdp_xv;
+#X obj 17 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 17 32 metro 40;
+#X floatatom 67 8 5 0 0 0 - - -;
+#X obj 17 58 pdp_v4l;
+#X obj 17 279 pdp_zrot;
+#X obj 175 144 unpack 0 0;
+#X obj 280 263 * 360;
+#X obj 281 240 * 3;
+#X msg 140 303 cursor;
+#X obj 140 280 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 325 226 5 0 0 0 - - -;
+#X floatatom 325 249 5 0 0 0 - - -;
+#X obj 175 108 route drag;
+#X obj 17 231 pdp_mix;
+#X floatatom 61 205 5 0 0 0 - - -;
+#X obj 17 453 print;
+#X obj 17 422 spigot;
+#X obj 54 397 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 83 396 print the mouse event messages;
+#X floatatom 175 180 5 0 0 0 - - -;
+#X floatatom 240 182 5 0 0 0 - - -;
+#X text 109 41 using the mouse pointer in an xv window to control a
+patch;
+#X text 262 108 drag event coordinates mapped to zoom and rotation
+;
+#X msg 86 178 0.98;
+#X msg 47 177 0;
+#X connect 0 0 13 0;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 1;
+#X connect 4 0 14 0;
+#X connect 5 0 0 0;
+#X connect 5 0 14 1;
+#X connect 6 0 8 0;
+#X connect 6 0 20 0;
+#X connect 6 1 7 0;
+#X connect 6 1 21 0;
+#X connect 7 0 5 2;
+#X connect 8 0 5 1;
+#X connect 9 0 0 0;
+#X connect 10 0 9 0;
+#X connect 11 0 8 1;
+#X connect 12 0 7 1;
+#X connect 13 0 6 0;
+#X connect 14 0 5 0;
+#X connect 15 0 14 2;
+#X connect 17 0 16 0;
+#X connect 18 0 17 1;
+#X connect 24 0 15 0;
+#X connect 25 0 15 0;
diff --git a/doc/examples/example09.pd b/doc/examples/example09.pd
new file mode 100644
index 0000000..2da1b51
--- /dev/null
+++ b/doc/examples/example09.pd
@@ -0,0 +1,35 @@
+#N canvas 43 348 497 337 10;
+#X obj 88 104 pdp_grey2mask;
+#X obj 88 148 pdp_gain;
+#X obj 88 174 pdp_gain;
+#X obj 88 198 pdp_gain;
+#X msg 6 130 chanmask 1;
+#X msg 6 180 chanmask 4;
+#X msg 6 156 chanmask 2;
+#X obj 6 103 loadbang;
+#X floatatom 208 130 5 0 0;
+#X floatatom 208 156 5 0 0;
+#X floatatom 208 180 5 0 0;
+#X obj 88 234 pdp_xv;
+#X obj 88 40 metro 30;
+#X obj 88 13 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 88 75 pdp_v4l;
+#X text 26 267 a simple colour gradient patch using grey2mask and individual
+channel gains (set with the binary chanmask);
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 11 0;
+#X connect 4 0 1 0;
+#X connect 4 0 6 0;
+#X connect 5 0 3 0;
+#X connect 6 0 2 0;
+#X connect 6 0 5 0;
+#X connect 7 0 4 0;
+#X connect 8 0 1 1;
+#X connect 9 0 2 1;
+#X connect 10 0 3 1;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 14 0 0 0;
diff --git a/doc/examples/example10.pd b/doc/examples/example10.pd
new file mode 100644
index 0000000..129209d
--- /dev/null
+++ b/doc/examples/example10.pd
@@ -0,0 +1,55 @@
+#N canvas 147 266 497 337 10;
+#X obj 88 104 pdp_grey2mask;
+#X msg 6 130 chanmask 1;
+#X msg 6 186 chanmask 4;
+#X msg 6 158 chanmask 2;
+#X obj 6 103 loadbang;
+#X floatatom 207 130 5 0 0;
+#X floatatom 253 130 5 0 0;
+#X floatatom 299 130 5 0 0;
+#X obj 88 234 pdp_xv;
+#X obj 88 40 metro 30;
+#X obj 88 13 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 88 75 pdp_v4l;
+#X obj 88 148 pdp_cheby3o;
+#X floatatom 345 130 5 0 0;
+#X floatatom 207 158 5 0 0;
+#X floatatom 253 158 5 0 0;
+#X floatatom 299 158 5 0 0;
+#X obj 88 176 pdp_cheby3o;
+#X floatatom 345 158 5 0 0;
+#X floatatom 207 186 5 0 0;
+#X floatatom 253 186 5 0 0;
+#X floatatom 299 186 5 0 0;
+#X obj 88 204 pdp_cheby3o;
+#X floatatom 345 186 5 0 0;
+#X text 26 267 a more complex colour gradient patch using grey2mask
+and individual channel chebychev colour shapers (set with the binary
+chanmask);
+#X connect 0 0 12 0;
+#X connect 1 0 3 0;
+#X connect 1 0 12 0;
+#X connect 1 0 12 0;
+#X connect 2 0 22 0;
+#X connect 3 0 2 0;
+#X connect 3 0 17 0;
+#X connect 4 0 1 0;
+#X connect 5 0 12 1;
+#X connect 6 0 12 2;
+#X connect 7 0 12 3;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
+#X connect 11 0 0 0;
+#X connect 12 0 17 0;
+#X connect 13 0 12 4;
+#X connect 14 0 17 1;
+#X connect 15 0 17 2;
+#X connect 16 0 17 3;
+#X connect 17 0 22 0;
+#X connect 18 0 17 4;
+#X connect 19 0 22 1;
+#X connect 20 0 22 2;
+#X connect 21 0 22 3;
+#X connect 22 0 8 0;
+#X connect 23 0 22 4;
diff --git a/doc/examples/example11.pd b/doc/examples/example11.pd
new file mode 100644
index 0000000..c427e9a
--- /dev/null
+++ b/doc/examples/example11.pd
@@ -0,0 +1,80 @@
+#N canvas 210 529 680 275 10;
+#N canvas 0 0 450 300 graph1 0;
+#X array mapping 64 float 1;
+#A 0 0.0916017 -0.201423 -0.477099 -0.711681 -0.884964 -0.982024 -0.9945
+-0.921318 -0.76878 -0.550026 -0.283897 0.00668462 0.296691 0.561142
+0.777261 0.926433 0.995809 0.979413 0.878658 0.702222 0.465302 0.188305
+-0.104911 -0.389091 -0.639758 -0.835322 -0.958937 -0.999957 -0.954848
+-0.827497 -0.628871 -0.37608 -0.0908956 0.202118 0.477722 0.712179
+0.885295 0.982158 0.994426 0.92104 0.768324 0.54943 0.283212 -0.00739881
+-0.297373 -0.561733 -0.777711 -0.926702 -0.995875 -0.979271 -0.87832
+-0.701718 -0.464675 -0.187609 0.105617 0.389745 0.640304 0.835712 0.959139
+0.999952 0.954637 0.827096 0.628316 0.375418;
+#X coords 0 1 63 -1 200 140 1;
+#X restore 242 21 graph;
+#X msg 50 142 approx mapping;
+#X obj 20 86 pdp_t;
+#X text 235 165 -1 ----------- 0 ----------- 1;
+#X obj 50 115 spigot;
+#X obj 87 92 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 20 225 pdp_cheby 10;
+#X obj 515 138 tabsend~ mapping;
+#X obj 515 112 osc~;
+#X floatatom 515 65 5 0 0;
+#X floatatom 573 64 5 0 0;
+#N canvas 0 0 450 300 fblock 0;
+#X obj 36 36 inlet;
+#X obj 101 35 inlet;
+#X obj 42 196 outlet;
+#X obj 104 83 samplerate~;
+#X obj 59 158 +;
+#X obj 103 144 *;
+#X obj 103 59 t b b f;
+#X text 200 35 fblock: compute block relative frequencies;
+#X text 200 79 right inlet is also "active";
+#X text 201 119 main usage is to compute block synchronous frequencies
+;
+#X text 200 134 for spectral domain processing;
+#X text 201 49 out = left + right * (sys samplerate / blocksize);
+#X obj 101 115 / 64;
+#X connect 0 0 4 0;
+#X connect 1 0 6 0;
+#X connect 3 0 12 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 0;
+#X connect 6 1 3 0;
+#X connect 6 2 5 1;
+#X connect 12 0 5 0;
+#X restore 515 89 pd fblock;
+#X obj 20 40 metro 40;
+#X obj 20 62 pdp_v4l;
+#X msg 515 37 0.17;
+#X text 236 208 send a signal to a table and use this as an intensity
+mapping function in pdp_cheby;
+#X obj 20 250 pdp_xv;
+#X obj 20 15 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 573 36 3;
+#X msg 133 207 chanmask \$1;
+#X floatatom 133 185 5 0 0;
+#X msg 133 165 1;
+#X connect 1 0 6 0;
+#X connect 2 0 6 0;
+#X connect 2 1 4 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 1;
+#X connect 6 0 16 0;
+#X connect 8 0 7 0;
+#X connect 9 0 11 0;
+#X connect 10 0 11 1;
+#X connect 11 0 8 0;
+#X connect 12 0 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 9 0;
+#X connect 17 0 12 0;
+#X connect 18 0 10 0;
+#X connect 19 0 6 0;
+#X connect 20 0 19 0;
+#X connect 21 0 20 0;
diff --git a/doc/examples/example12.pd b/doc/examples/example12.pd
new file mode 100644
index 0000000..faa2730
--- /dev/null
+++ b/doc/examples/example12.pd
@@ -0,0 +1,42 @@
+#N canvas 578 52 635 489 10;
+#X obj 83 183 metro 40;
+#X obj 83 154 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 83 361 pdp_xv;
+#X obj 165 299 pdp_loop 50;
+#X obj 218 167 f 0;
+#X obj 218 198 + 1;
+#X obj 218 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 247 140 0;
+#X obj 165 361 pdp_xv;
+#X msg 165 259 store \$1;
+#X obj 83 225 pdp_v4l;
+#X msg 29 118 open /dev/video1;
+#X floatatom 218 230 5 0 0;
+#X obj 312 385 pdp_save_png_sequence 50;
+#X obj 312 351 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 29 96 open /dev/video0;
+#X text 337 349 <- click to save sequence in /tmp dir;
+#X text 247 106 <- click to make a snapshot;
+#X text 288 139 <- click to reset recording to loop;
+#X text 273 229 <- recorded frame;
+#X text 28 27 make loop of snapshots;
+#X connect 0 0 10 0;
+#X connect 0 0 3 0;
+#X connect 1 0 0 0;
+#X connect 3 0 8 0;
+#X connect 3 0 13 0;
+#X connect 4 0 5 0;
+#X connect 5 0 4 1;
+#X connect 5 0 9 0;
+#X connect 5 0 12 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 1;
+#X connect 9 0 3 0;
+#X connect 10 0 2 0;
+#X connect 10 0 3 0;
+#X connect 11 0 10 0;
+#X connect 14 0 13 0;
+#X connect 15 0 11 0;
diff --git a/doc/examples/example13.pd b/doc/examples/example13.pd
new file mode 100644
index 0000000..369c895
--- /dev/null
+++ b/doc/examples/example13.pd
@@ -0,0 +1,104 @@
+#N canvas 419 114 799 646 10;
+#X obj 450 429 pdp_xv;
+#X obj 545 76 pdp_control;
+#X msg 545 48 thread \$1;
+#X obj 545 24 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 134 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X msg 471 397 size 640 480;
+#X obj 239 393 +;
+#X obj 190 432 vsl 15 128 1 0 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 190 393 -;
+#X obj 59 386 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 59 401 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 59 416 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 205 432 vsl 15 128 1 0 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 220 432 vsl 15 128 1 0 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 190 366 unpack f f;
+#X obj 62 317 unpack f f;
+#X obj 68 360 +;
+#X obj 45 360 -;
+#X obj 151 264 pack f f;
+#X obj 215 265 pack f f;
+#X msg 295 77 dim 320 240;
+#X obj 134 72 metro 40;
+#X msg 294 54 dim 640 480;
+#X obj 134 100 pdp_v4l;
+#X obj 450 366 pdp_zoom;
+#X floatatom 450 308 5 0 0;
+#X msg 553 311 centerx \$1;
+#X floatatom 553 289 5 0 0;
+#X floatatom 636 292 5 0 0;
+#X msg 635 310 centery \$1;
+#X obj 511 197 unpack f f f f;
+#X obj 450 287 min;
+#X obj 446 252 expr .5/($f1+.02);
+#X obj 572 252 expr .5/($f1+.02);
+#X msg 450 339 zoomx \$1 \, zoomy \$1;
+#X msg 295 8 open /dev/video0;
+#X msg 295 30 open /dev/video1;
+#X obj 309 244 pack f f f f;
+#X obj 134 156 pdp_diff;
+#X text 208 156 <- compute difference between current and previous
+frame;
+#X obj 134 226 pdp_cog_abs_thresh 0.15;
+#X text 331 492 using the blob tracker on a difference signal to detect
+motion;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 21 0;
+#X connect 5 0 0 0;
+#X connect 6 0 13 0;
+#X connect 8 0 7 0;
+#X connect 14 0 12 0;
+#X connect 14 0 8 0;
+#X connect 14 0 6 0;
+#X connect 14 1 8 1;
+#X connect 14 1 6 1;
+#X connect 15 0 17 0;
+#X connect 15 0 16 0;
+#X connect 15 0 10 0;
+#X connect 15 1 16 1;
+#X connect 15 1 17 1;
+#X connect 16 0 11 0;
+#X connect 17 0 9 0;
+#X connect 18 0 15 0;
+#X connect 19 0 14 0;
+#X connect 20 0 23 0;
+#X connect 21 0 23 0;
+#X connect 22 0 23 0;
+#X connect 23 0 38 0;
+#X connect 24 0 0 0;
+#X connect 25 0 34 0;
+#X connect 26 0 24 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
+#X connect 29 0 24 0;
+#X connect 30 0 27 0;
+#X connect 30 1 32 0;
+#X connect 30 2 28 0;
+#X connect 30 3 33 0;
+#X connect 31 0 25 0;
+#X connect 32 0 31 0;
+#X connect 33 0 31 1;
+#X connect 34 0 24 0;
+#X connect 35 0 23 0;
+#X connect 36 0 23 0;
+#X connect 37 0 30 0;
+#X connect 38 0 24 0;
+#X connect 38 0 40 0;
+#X connect 40 1 18 0;
+#X connect 40 1 37 0;
+#X connect 40 2 19 0;
+#X connect 40 2 37 2;
+#X connect 40 3 18 1;
+#X connect 40 3 37 1;
+#X connect 40 4 19 1;
+#X connect 40 4 37 3;
diff --git a/doc/examples/example14.pd b/doc/examples/example14.pd
new file mode 100644
index 0000000..f29e1b2
--- /dev/null
+++ b/doc/examples/example14.pd
@@ -0,0 +1,54 @@
+#N canvas 621 348 611 467 10;
+#X obj 168 329 pdp_xv;
+#X obj 168 78 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 168 142 pdp_v4l;
+#X obj 168 108 metro 40;
+#X msg 265 83 open /dev/video1;
+#X floatatom 311 151 5 0 0;
+#X obj 168 194 pdp_agc 0.5;
+#X floatatom 310 211 5 0 0;
+#X obj 168 245 pdp_contrast 0.5;
+#X msg 4 157 chanmask \$1;
+#X floatatom 4 133 5 0 0;
+#X msg 4 104 1;
+#X msg 35 104 3;
+#X msg 67 104 5;
+#X msg 99 104 7;
+#X obj 314 192 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 12300 1;
+#X obj 314 132 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 7900 1;
+#X msg 265 58 open /dev/video0;
+#X floatatom 310 272 5 0 0;
+#X obj 314 253 hsl 128 15 0 3 0 1 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 168 298 pdp_saturation 0.5;
+#X text 7 79 Y;
+#X text 36 78 YCr;
+#X text 68 79 YCb;
+#X text 98 78 YCrCb;
+#X text 25 15 some basic image enhancements;
+#X text 13 60 agc color channels;
+#X obj 183 166 pdp_flip_lr;
+#X connect 1 0 3 0;
+#X connect 2 0 27 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 5 0 6 1;
+#X connect 6 0 8 0;
+#X connect 7 0 8 1;
+#X connect 8 0 20 0;
+#X connect 9 0 6 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 13 0 10 0;
+#X connect 14 0 10 0;
+#X connect 15 0 7 0;
+#X connect 16 0 5 0;
+#X connect 17 0 2 0;
+#X connect 18 0 20 1;
+#X connect 19 0 18 0;
+#X connect 20 0 0 0;
+#X connect 27 0 6 0;
diff --git a/doc/examples/example15.pd b/doc/examples/example15.pd
new file mode 100644
index 0000000..5301fc0
--- /dev/null
+++ b/doc/examples/example15.pd
@@ -0,0 +1,27 @@
+#N canvas 632 359 559 496 10;
+#X obj 127 57 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 127 81 metro 40;
+#X obj 148 57 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 126 110 pdp_v4l;
+#X msg 229 56 open /dev/video0;
+#X msg 228 80 open /dev/video1;
+#X obj 126 151 pdp_motion_fade 1;
+#X obj 126 174 pdp_contrast 0.16;
+#X obj 126 199 pdp_mul;
+#X obj 126 224 pdp_gain 22;
+#X text 7 2 using motion_fade \, contrast \, mul and gain to get a
+motion triggered effect;
+#X obj 126 258 pdp_xv;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 0;