From e28a07fba67af0af818dda6afa4cf67c09700816 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 16 Dec 2005 00:53:00 +0000 Subject: 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=4231 --- abstractions/pdp_affine.pd | 15 +++ abstractions/pdp_agc.pd | 28 +++++ abstractions/pdp_blur.pd | 27 +++++ abstractions/pdp_blur_hor.pd | 27 +++++ abstractions/pdp_blur_ver.pd | 27 +++++ abstractions/pdp_cheby3o.pd | 22 ++++ abstractions/pdp_contrast.pd | 41 ++++++++ abstractions/pdp_conv_alledge.pd | 28 +++++ abstractions/pdp_conv_emboss.pd | 37 +++++++ abstractions/pdp_conv_smooth.pd | 14 +++ abstractions/pdp_conv_sobel_edge.pd | 21 ++++ abstractions/pdp_conv_sobel_hor.pd | 15 +++ abstractions/pdp_conv_sobel_ver.pd | 16 +++ abstractions/pdp_diff.pd | 14 +++ abstractions/pdp_dither.pd | 30 ++++++ abstractions/pdp_gain3.pd | 27 +++++ abstractions/pdp_gradient.pd | 58 +++++++++++ abstractions/pdp_grey.pd | 7 ++ abstractions/pdp_invert.pd | 18 ++++ abstractions/pdp_m_inverse.pd | 11 ++ abstractions/pdp_motion_blur.pd | 14 +++ abstractions/pdp_motion_fade.pd | 19 ++++ abstractions/pdp_motion_phase.pd | 14 +++ abstractions/pdp_offset.pd | 17 +++ abstractions/pdp_phase.pd | 70 +++++++++++++ abstractions/pdp_phase_hor.pd | 41 ++++++++ abstractions/pdp_phase_ver.pd | 41 ++++++++ abstractions/pdp_png_to.pd | 21 ++++ abstractions/pdp_pps.pd | 18 ++++ abstractions/pdp_qt_control.pd | 147 ++++++++++++++++++++++++++ abstractions/pdp_qtloop2~.pd | 190 ++++++++++++++++++++++++++++++++++ abstractions/pdp_qtloop~.pd | 183 ++++++++++++++++++++++++++++++++ abstractions/pdp_saturation.pd | 18 ++++ abstractions/pdp_save_png_sequence.pd | 28 +++++ abstractions/pdp_sub.pd | 8 ++ abstractions/pdp_tag.pd | 19 ++++ abstractions/pdp_xv_keycursor.pd | 77 ++++++++++++++ abstractions/rgb2ycrcb.pd | 7 ++ 38 files changed, 1415 insertions(+) create mode 100644 abstractions/pdp_affine.pd create mode 100644 abstractions/pdp_agc.pd create mode 100644 abstractions/pdp_blur.pd create mode 100644 abstractions/pdp_blur_hor.pd create mode 100644 abstractions/pdp_blur_ver.pd create mode 100644 abstractions/pdp_cheby3o.pd create mode 100644 abstractions/pdp_contrast.pd create mode 100644 abstractions/pdp_conv_alledge.pd create mode 100644 abstractions/pdp_conv_emboss.pd create mode 100644 abstractions/pdp_conv_smooth.pd create mode 100644 abstractions/pdp_conv_sobel_edge.pd create mode 100644 abstractions/pdp_conv_sobel_hor.pd create mode 100644 abstractions/pdp_conv_sobel_ver.pd create mode 100644 abstractions/pdp_diff.pd create mode 100644 abstractions/pdp_dither.pd create mode 100644 abstractions/pdp_gain3.pd create mode 100644 abstractions/pdp_gradient.pd create mode 100644 abstractions/pdp_grey.pd create mode 100644 abstractions/pdp_invert.pd create mode 100644 abstractions/pdp_m_inverse.pd create mode 100644 abstractions/pdp_motion_blur.pd create mode 100644 abstractions/pdp_motion_fade.pd create mode 100644 abstractions/pdp_motion_phase.pd create mode 100644 abstractions/pdp_offset.pd create mode 100644 abstractions/pdp_phase.pd create mode 100644 abstractions/pdp_phase_hor.pd create mode 100644 abstractions/pdp_phase_ver.pd create mode 100644 abstractions/pdp_png_to.pd create mode 100644 abstractions/pdp_pps.pd create mode 100644 abstractions/pdp_qt_control.pd create mode 100644 abstractions/pdp_qtloop2~.pd create mode 100644 abstractions/pdp_qtloop~.pd create mode 100644 abstractions/pdp_saturation.pd create mode 100644 abstractions/pdp_save_png_sequence.pd create mode 100644 abstractions/pdp_sub.pd create mode 100644 abstractions/pdp_tag.pd create mode 100644 abstractions/pdp_xv_keycursor.pd create mode 100644 abstractions/rgb2ycrcb.pd (limited to 'abstractions') diff --git a/abstractions/pdp_affine.pd b/abstractions/pdp_affine.pd new file mode 100644 index 0000000..831d8ae --- /dev/null +++ b/abstractions/pdp_affine.pd @@ -0,0 +1,15 @@ +#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; diff --git a/abstractions/pdp_agc.pd b/abstractions/pdp_agc.pd new file mode 100644 index 0000000..bd67c58 --- /dev/null +++ b/abstractions/pdp_agc.pd @@ -0,0 +1,28 @@ +#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; 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_cheby3o.pd b/abstractions/pdp_cheby3o.pd new file mode 100644 index 0000000..db9c83f --- /dev/null +++ b/abstractions/pdp_cheby3o.pd @@ -0,0 +1,22 @@ +#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; diff --git a/abstractions/pdp_contrast.pd b/abstractions/pdp_contrast.pd new file mode 100644 index 0000000..4aaa0d3 --- /dev/null +++ b/abstractions/pdp_contrast.pd @@ -0,0 +1,41 @@ +#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; 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..5346bde --- /dev/null +++ b/abstractions/pdp_conv_emboss.pd @@ -0,0 +1,37 @@ +#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; 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..6bbb7db --- /dev/null +++ b/abstractions/pdp_conv_sobel_edge.pd @@ -0,0 +1,21 @@ +#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; 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_diff.pd b/abstractions/pdp_diff.pd new file mode 100644 index 0000000..a3ad5f4 --- /dev/null +++ b/abstractions/pdp_diff.pd @@ -0,0 +1,14 @@ +#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; diff --git a/abstractions/pdp_dither.pd b/abstractions/pdp_dither.pd new file mode 100644 index 0000000..c579cc8 --- /dev/null +++ b/abstractions/pdp_dither.pd @@ -0,0 +1,30 @@ +#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; diff --git a/abstractions/pdp_gain3.pd b/abstractions/pdp_gain3.pd new file mode 100644 index 0000000..76ed097 --- /dev/null +++ b/abstractions/pdp_gain3.pd @@ -0,0 +1,27 @@ +#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; diff --git a/abstractions/pdp_gradient.pd b/abstractions/pdp_gradient.pd new file mode 100644 index 0000000..8867c69 --- /dev/null +++ b/abstractions/pdp_gradient.pd @@ -0,0 +1,58 @@ +#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; diff --git a/abstractions/pdp_grey.pd b/abstractions/pdp_grey.pd new file mode 100644 index 0000000..fb1fa20 --- /dev/null +++ b/abstractions/pdp_grey.pd @@ -0,0 +1,7 @@ +#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; diff --git a/abstractions/pdp_invert.pd b/abstractions/pdp_invert.pd new file mode 100644 index 0000000..517de18 --- /dev/null +++ b/abstractions/pdp_invert.pd @@ -0,0 +1,18 @@ +#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; diff --git a/abstractions/pdp_m_inverse.pd b/abstractions/pdp_m_inverse.pd new file mode 100644 index 0000000..e942e8a --- /dev/null +++ b/abstractions/pdp_m_inverse.pd @@ -0,0 +1,11 @@ +#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; 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_fade.pd b/abstractions/pdp_motion_fade.pd new file mode 100644 index 0000000..fa61735 --- /dev/null +++ b/abstractions/pdp_motion_fade.pd @@ -0,0 +1,19 @@ +#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; 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_offset.pd b/abstractions/pdp_offset.pd new file mode 100644 index 0000000..da8a8a4 --- /dev/null +++ b/abstractions/pdp_offset.pd @@ -0,0 +1,17 @@ +#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; diff --git a/abstractions/pdp_phase.pd b/abstractions/pdp_phase.pd new file mode 100644 index 0000000..c615d2e --- /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 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; 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_png_to.pd b/abstractions/pdp_png_to.pd new file mode 100644 index 0000000..b6a9bcb --- /dev/null +++ b/abstractions/pdp_png_to.pd @@ -0,0 +1,21 @@ +#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; 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_qt_control.pd b/abstractions/pdp_qt_control.pd new file mode 100644 index 0000000..7bb2de8 --- /dev/null +++ b/abstractions/pdp_qt_control.pd @@ -0,0 +1,147 @@ +#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; diff --git a/abstractions/pdp_qtloop2~.pd b/abstractions/pdp_qtloop2~.pd new file mode 100644 index 0000000..237f60c --- /dev/null +++ b/abstractions/pdp_qtloop2~.pd @@ -0,0 +1,190 @@ +#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; diff --git a/abstractions/pdp_qtloop~.pd b/abstractions/pdp_qtloop~.pd new file mode 100644 index 0000000..bb2074e --- /dev/null +++ b/abstractions/pdp_qtloop~.pd @@ -0,0 +1,183 @@ +#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; diff --git a/abstractions/pdp_saturation.pd b/abstractions/pdp_saturation.pd new file mode 100644 index 0000000..44f5a86 --- /dev/null +++ b/abstractions/pdp_saturation.pd @@ -0,0 +1,18 @@ +#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; diff --git a/abstractions/pdp_save_png_sequence.pd b/abstractions/pdp_save_png_sequence.pd new file mode 100644 index 0000000..786df47 --- /dev/null +++ b/abstractions/pdp_save_png_sequence.pd @@ -0,0 +1,28 @@ +#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; diff --git a/abstractions/pdp_sub.pd b/abstractions/pdp_sub.pd new file mode 100644 index 0000000..b4abe36 --- /dev/null +++ b/abstractions/pdp_sub.pd @@ -0,0 +1,8 @@ +#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; diff --git a/abstractions/pdp_tag.pd b/abstractions/pdp_tag.pd new file mode 100644 index 0000000..d1884f6 --- /dev/null +++ b/abstractions/pdp_tag.pd @@ -0,0 +1,19 @@ +#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; diff --git a/abstractions/pdp_xv_keycursor.pd b/abstractions/pdp_xv_keycursor.pd new file mode 100644 index 0000000..a10a708 --- /dev/null +++ b/abstractions/pdp_xv_keycursor.pd @@ -0,0 +1,77 @@ +#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; diff --git a/abstractions/rgb2ycrcb.pd b/abstractions/rgb2ycrcb.pd new file mode 100644 index 0000000..acb517f --- /dev/null +++ b/abstractions/rgb2ycrcb.pd @@ -0,0 +1,7 @@ +#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; -- cgit v1.2.1