aboutsummaryrefslogtreecommitdiff
path: root/abstractions
diff options
context:
space:
mode:
Diffstat (limited to 'abstractions')
-rw-r--r--abstractions/pdp_blur.pd27
-rw-r--r--abstractions/pdp_blur_hor.pd27
-rw-r--r--abstractions/pdp_blur_ver.pd27
-rw-r--r--abstractions/pdp_conv_alledge.pd28
-rw-r--r--abstractions/pdp_conv_emboss.pd34
-rw-r--r--abstractions/pdp_conv_smooth.pd14
-rw-r--r--abstractions/pdp_conv_sobel_edge.pd19
-rw-r--r--abstractions/pdp_conv_sobel_hor.pd15
-rw-r--r--abstractions/pdp_conv_sobel_ver.pd16
-rw-r--r--abstractions/pdp_motion_blur.pd14
-rw-r--r--abstractions/pdp_motion_phase.pd14
-rw-r--r--abstractions/pdp_phase.pd70
-rw-r--r--abstractions/pdp_phase_hor.pd41
-rw-r--r--abstractions/pdp_phase_ver.pd41
-rw-r--r--abstractions/pdp_pps.pd18
-rw-r--r--abstractions/pdp_saturation.pd13
16 files changed, 418 insertions, 0 deletions
diff --git a/abstractions/pdp_blur.pd b/abstractions/pdp_blur.pd
new file mode 100644
index 0000000..46425dd
--- /dev/null
+++ b/abstractions/pdp_blur.pd
@@ -0,0 +1,27 @@
+#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;
diff --git a/abstractions/pdp_blur_hor.pd b/abstractions/pdp_blur_hor.pd
new file mode 100644
index 0000000..00c4f89
--- /dev/null
+++ b/abstractions/pdp_blur_hor.pd
@@ -0,0 +1,27 @@
+#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;
diff --git a/abstractions/pdp_blur_ver.pd b/abstractions/pdp_blur_ver.pd
new file mode 100644
index 0000000..915931f
--- /dev/null
+++ b/abstractions/pdp_blur_ver.pd
@@ -0,0 +1,27 @@
+#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;
diff --git a/abstractions/pdp_conv_alledge.pd b/abstractions/pdp_conv_alledge.pd
new file mode 100644
index 0000000..0433c16
--- /dev/null
+++ b/abstractions/pdp_conv_alledge.pd
@@ -0,0 +1,28 @@
+#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;
diff --git a/abstractions/pdp_conv_emboss.pd b/abstractions/pdp_conv_emboss.pd
new file mode 100644
index 0000000..427ee45
--- /dev/null
+++ b/abstractions/pdp_conv_emboss.pd
@@ -0,0 +1,34 @@
+#N canvas 222 642 591 233 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 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 7 0;
diff --git a/abstractions/pdp_conv_smooth.pd b/abstractions/pdp_conv_smooth.pd
new file mode 100644
index 0000000..e37320e
--- /dev/null
+++ b/abstractions/pdp_conv_smooth.pd
@@ -0,0 +1,14 @@
+#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;
diff --git a/abstractions/pdp_conv_sobel_edge.pd b/abstractions/pdp_conv_sobel_edge.pd
new file mode 100644
index 0000000..ccf0c38
--- /dev/null
+++ b/abstractions/pdp_conv_sobel_edge.pd
@@ -0,0 +1,19 @@
+#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 15 9 inlet;
+#X obj 15 151 outlet;
+#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 0 0;
+#X connect 6 0 1 0;
diff --git a/abstractions/pdp_conv_sobel_hor.pd b/abstractions/pdp_conv_sobel_hor.pd
new file mode 100644
index 0000000..599034e
--- /dev/null
+++ b/abstractions/pdp_conv_sobel_hor.pd
@@ -0,0 +1,15 @@
+#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;
diff --git a/abstractions/pdp_conv_sobel_ver.pd b/abstractions/pdp_conv_sobel_ver.pd
new file mode 100644
index 0000000..5ff2edd
--- /dev/null
+++ b/abstractions/pdp_conv_sobel_ver.pd
@@ -0,0 +1,16 @@
+#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;
diff --git a/abstractions/pdp_motion_blur.pd b/abstractions/pdp_motion_blur.pd
new file mode 100644
index 0000000..cc3b8c9
--- /dev/null
+++ b/abstractions/pdp_motion_blur.pd
@@ -0,0 +1,14 @@
+#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;
diff --git a/abstractions/pdp_motion_phase.pd b/abstractions/pdp_motion_phase.pd
new file mode 100644
index 0000000..2bded3d
--- /dev/null
+++ b/abstractions/pdp_motion_phase.pd
@@ -0,0 +1,14 @@
+#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;
diff --git a/abstractions/pdp_phase.pd b/abstractions/pdp_phase.pd
new file mode 100644
index 0000000..2927fd9
--- /dev/null
+++ b/abstractions/pdp_phase.pd
@@ -0,0 +1,70 @@
+#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 4t 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;
diff --git a/abstractions/pdp_phase_hor.pd b/abstractions/pdp_phase_hor.pd
new file mode 100644
index 0000000..8dcac9d
--- /dev/null
+++ b/abstractions/pdp_phase_hor.pd
@@ -0,0 +1,41 @@
+#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;
diff --git a/abstractions/pdp_phase_ver.pd b/abstractions/pdp_phase_ver.pd
new file mode 100644
index 0000000..7af57df
--- /dev/null
+++ b/abstractions/pdp_phase_ver.pd
@@ -0,0 +1,41 @@
+#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;
diff --git a/abstractions/pdp_pps.pd b/abstractions/pdp_pps.pd
new file mode 100644
index 0000000..8abb1dc
--- /dev/null
+++ b/abstractions/pdp_pps.pd
@@ -0,0 +1,18 @@
+#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;
diff --git a/abstractions/pdp_saturation.pd b/abstractions/pdp_saturation.pd
new file mode 100644
index 0000000..f96f79d
--- /dev/null
+++ b/abstractions/pdp_saturation.pd
@@ -0,0 +1,13 @@
+#N canvas 247 212 237 275 10;
+#X obj 44 52 inlet;
+#X obj 139 53 inlet;
+#X obj 44 202 outlet;
+#X obj 44 139 pdp_gain;
+#X msg 101 103 u \$1;
+#X msg 139 103 v \$1;
+#X connect 0 0 3 0;
+#X connect 1 0 4 0;
+#X connect 1 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;