From 04c235c6ac5f36b507c629de5634d5e6d326222b Mon Sep 17 00:00:00 2001 From: "N.N." Date: Tue, 4 Oct 2005 02:04:42 +0000 Subject: adding abstractions and helpfiles svn path=/trunk/; revision=3647 --- .../pd_abstractions/#apply_colormap_channelwise.pd | 12 + externals/gridflow/pd_abstractions/#camera.pd | 149 ++++++++ .../gridflow/pd_abstractions/#camera_control.pd | 129 +++++++ .../gridflow/pd_abstractions/#centre_of_gravity.pd | 113 ++++++ externals/gridflow/pd_abstractions/#centroid.pd | 80 ++++ externals/gridflow/pd_abstractions/#checkers.pd | 18 + externals/gridflow/pd_abstractions/#clip.pd | 20 + externals/gridflow/pd_abstractions/#color.pd | 68 ++++ externals/gridflow/pd_abstractions/#contrast.pd | 20 + externals/gridflow/pd_abstractions/#fade.pd | 37 ++ externals/gridflow/pd_abstractions/#fade_lin.pd | 29 ++ .../gridflow/pd_abstractions/#greyscale_to_rgb.pd | 8 + externals/gridflow/pd_abstractions/#hueshift.pd | 31 ++ .../gridflow/pd_abstractions/#motion_detection.pd | 64 ++++ externals/gridflow/pd_abstractions/#mouse.pd | 93 +++++ externals/gridflow/pd_abstractions/#posterize.pd | 15 + externals/gridflow/pd_abstractions/#ravel.pd | 15 + externals/gridflow/pd_abstractions/#remap_image.pd | 21 ++ .../gridflow/pd_abstractions/#rgb_to_greyscale.pd | 10 + externals/gridflow/pd_abstractions/#rgb_to_yuv.pd | 10 + externals/gridflow/pd_abstractions/#solarize.pd | 14 + externals/gridflow/pd_abstractions/#spread.pd | 22 ++ .../gridflow/pd_abstractions/#text_to_image.pd | 41 ++ externals/gridflow/pd_abstractions/#yuv_to_rgb.pd | 10 + externals/gridflow/pd_abstractions/@complex_sq.pd | 8 + externals/gridflow/pd_abstractions/count.pd | 44 +++ externals/gridflow/pd_abstractions/pingpong.pd | 27 ++ .../gridflow/pd_examples/binary_operations.pd | 73 ++++ externals/gridflow/pd_examples/blob.pd | 106 ++++++ externals/gridflow/pd_examples/cellular_1d.pd | 164 ++++++++ externals/gridflow/pd_examples/color_correction.pd | 154 ++++++++ externals/gridflow/pd_examples/color_detect.pd | 218 +++++++++++ externals/gridflow/pd_examples/convolve.pd | 94 +++++ externals/gridflow/pd_examples/cross_fade.pd | 73 ++++ externals/gridflow/pd_examples/drag_rectangle.pd | 110 ++++++ externals/gridflow/pd_examples/eclipse.pd | 80 ++++ externals/gridflow/pd_examples/epicycloid.pd | 125 ++++++ externals/gridflow/pd_examples/feedback_fractal.pd | 147 ++++++++ externals/gridflow/pd_examples/fire.pd | 180 +++++++++ externals/gridflow/pd_examples/game_of_life.pd | 67 ++++ externals/gridflow/pd_examples/goop.pd | 138 +++++++ externals/gridflow/pd_examples/hello-world.pd | 38 ++ externals/gridflow/pd_examples/image_stats.pd | 62 +++ externals/gridflow/pd_examples/linear_transform.pd | 123 ++++++ externals/gridflow/pd_examples/motion_detect.pd | 44 +++ externals/gridflow/pd_examples/nervous_video.pd | 154 ++++++++ externals/gridflow/pd_examples/photo_pianoroll.pd | 159 ++++++++ externals/gridflow/pd_examples/plot.pd | 73 ++++ externals/gridflow/pd_examples/polygon.pd | 113 ++++++ externals/gridflow/pd_examples/ripple.pd | 190 ++++++++++ externals/gridflow/pd_examples/sand.pd | 417 +++++++++++++++++++++ externals/gridflow/pd_examples/saturation.pd | 81 ++++ externals/gridflow/pd_examples/scratch_video.pd | 124 ++++++ externals/gridflow/pd_examples/spectrogram.pd | 109 ++++++ externals/gridflow/pd_examples/threshold.pd | 81 ++++ externals/gridflow/pd_examples/transform.pd | 61 +++ externals/gridflow/pd_examples/videodev_effects.pd | 303 +++++++++++++++ externals/gridflow/pd_examples/waves.pd | 339 +++++++++++++++++ externals/gridflow/pd_help/@!.pd | 65 ++++ externals/gridflow/pd_help/@.pd | 115 ++++++ .../pd_help/@apply_colormap_channelwise.pd | 29 ++ externals/gridflow/pd_help/@cast.pd | 46 +++ externals/gridflow/pd_help/@checkers.pd | 13 + externals/gridflow/pd_help/@complex_sq.pd | 27 ++ externals/gridflow/pd_help/@convolve.pd | 40 ++ externals/gridflow/pd_help/@downscale_by.pd | 26 ++ externals/gridflow/pd_help/@draw_polygon.pd | 36 ++ externals/gridflow/pd_help/@finished.pd | 15 + externals/gridflow/pd_help/@fold.pd | 39 ++ externals/gridflow/pd_help/@foldinnerouter.pd | 94 +++++ externals/gridflow/pd_help/@for.pd | 16 + externals/gridflow/pd_help/@global.pd | 9 + externals/gridflow/pd_help/@grade.pd | 20 + externals/gridflow/pd_help/@greyscale_to_rgb.pd | 21 ++ externals/gridflow/pd_help/@importexport.pd | 51 +++ externals/gridflow/pd_help/@inner2.pd | 17 + externals/gridflow/pd_help/@inout.pd | 63 ++++ externals/gridflow/pd_help/@join.pd | 42 +++ externals/gridflow/pd_help/@layer.pd | 46 +++ externals/gridflow/pd_help/@perspective.pd | 29 ++ externals/gridflow/pd_help/@posterize.pd | 36 ++ externals/gridflow/pd_help/@print.pd | 28 ++ externals/gridflow/pd_help/@ravel.pd | 31 ++ externals/gridflow/pd_help/@redim.pd | 21 ++ externals/gridflow/pd_help/@rgb_to_greyscale.pd | 19 + externals/gridflow/pd_help/@scale_by.pd | 30 ++ externals/gridflow/pd_help/@scale_to.pd | 34 ++ externals/gridflow/pd_help/@scan.pd | 26 ++ externals/gridflow/pd_help/@solarize.pd | 25 ++ externals/gridflow/pd_help/@spread.pd | 64 ++++ externals/gridflow/pd_help/@store.pd | 48 +++ externals/gridflow/pd_help/@twothreefour.pd | 70 ++++ externals/gridflow/pd_help/help_count.pd | 15 + externals/gridflow/pd_help/help_fade.pd | 19 + externals/gridflow/pd_help/help_motion_detect.pd | 76 ++++ externals/gridflow/pd_help/help_mouse.pd | 55 +++ externals/gridflow/pd_help/printargs.pd | 10 + externals/gridflow/pd_help/rubyprint.pd | 26 ++ 98 files changed, 6800 insertions(+) create mode 100644 externals/gridflow/pd_abstractions/#apply_colormap_channelwise.pd create mode 100644 externals/gridflow/pd_abstractions/#camera.pd create mode 100644 externals/gridflow/pd_abstractions/#camera_control.pd create mode 100644 externals/gridflow/pd_abstractions/#centre_of_gravity.pd create mode 100644 externals/gridflow/pd_abstractions/#centroid.pd create mode 100644 externals/gridflow/pd_abstractions/#checkers.pd create mode 100644 externals/gridflow/pd_abstractions/#clip.pd create mode 100644 externals/gridflow/pd_abstractions/#color.pd create mode 100644 externals/gridflow/pd_abstractions/#contrast.pd create mode 100644 externals/gridflow/pd_abstractions/#fade.pd create mode 100644 externals/gridflow/pd_abstractions/#fade_lin.pd create mode 100644 externals/gridflow/pd_abstractions/#greyscale_to_rgb.pd create mode 100644 externals/gridflow/pd_abstractions/#hueshift.pd create mode 100644 externals/gridflow/pd_abstractions/#motion_detection.pd create mode 100644 externals/gridflow/pd_abstractions/#mouse.pd create mode 100644 externals/gridflow/pd_abstractions/#posterize.pd create mode 100644 externals/gridflow/pd_abstractions/#ravel.pd create mode 100644 externals/gridflow/pd_abstractions/#remap_image.pd create mode 100644 externals/gridflow/pd_abstractions/#rgb_to_greyscale.pd create mode 100644 externals/gridflow/pd_abstractions/#rgb_to_yuv.pd create mode 100644 externals/gridflow/pd_abstractions/#solarize.pd create mode 100644 externals/gridflow/pd_abstractions/#spread.pd create mode 100644 externals/gridflow/pd_abstractions/#text_to_image.pd create mode 100644 externals/gridflow/pd_abstractions/#yuv_to_rgb.pd create mode 100644 externals/gridflow/pd_abstractions/@complex_sq.pd create mode 100644 externals/gridflow/pd_abstractions/count.pd create mode 100644 externals/gridflow/pd_abstractions/pingpong.pd create mode 100644 externals/gridflow/pd_examples/binary_operations.pd create mode 100644 externals/gridflow/pd_examples/blob.pd create mode 100644 externals/gridflow/pd_examples/cellular_1d.pd create mode 100644 externals/gridflow/pd_examples/color_correction.pd create mode 100644 externals/gridflow/pd_examples/color_detect.pd create mode 100644 externals/gridflow/pd_examples/convolve.pd create mode 100644 externals/gridflow/pd_examples/cross_fade.pd create mode 100644 externals/gridflow/pd_examples/drag_rectangle.pd create mode 100644 externals/gridflow/pd_examples/eclipse.pd create mode 100644 externals/gridflow/pd_examples/epicycloid.pd create mode 100644 externals/gridflow/pd_examples/feedback_fractal.pd create mode 100644 externals/gridflow/pd_examples/fire.pd create mode 100644 externals/gridflow/pd_examples/game_of_life.pd create mode 100644 externals/gridflow/pd_examples/goop.pd create mode 100644 externals/gridflow/pd_examples/hello-world.pd create mode 100644 externals/gridflow/pd_examples/image_stats.pd create mode 100644 externals/gridflow/pd_examples/linear_transform.pd create mode 100644 externals/gridflow/pd_examples/motion_detect.pd create mode 100644 externals/gridflow/pd_examples/nervous_video.pd create mode 100644 externals/gridflow/pd_examples/photo_pianoroll.pd create mode 100644 externals/gridflow/pd_examples/plot.pd create mode 100644 externals/gridflow/pd_examples/polygon.pd create mode 100644 externals/gridflow/pd_examples/ripple.pd create mode 100644 externals/gridflow/pd_examples/sand.pd create mode 100644 externals/gridflow/pd_examples/saturation.pd create mode 100644 externals/gridflow/pd_examples/scratch_video.pd create mode 100644 externals/gridflow/pd_examples/spectrogram.pd create mode 100644 externals/gridflow/pd_examples/threshold.pd create mode 100644 externals/gridflow/pd_examples/transform.pd create mode 100644 externals/gridflow/pd_examples/videodev_effects.pd create mode 100644 externals/gridflow/pd_examples/waves.pd create mode 100644 externals/gridflow/pd_help/@!.pd create mode 100644 externals/gridflow/pd_help/@.pd create mode 100644 externals/gridflow/pd_help/@apply_colormap_channelwise.pd create mode 100644 externals/gridflow/pd_help/@cast.pd create mode 100644 externals/gridflow/pd_help/@checkers.pd create mode 100644 externals/gridflow/pd_help/@complex_sq.pd create mode 100644 externals/gridflow/pd_help/@convolve.pd create mode 100644 externals/gridflow/pd_help/@downscale_by.pd create mode 100644 externals/gridflow/pd_help/@draw_polygon.pd create mode 100644 externals/gridflow/pd_help/@finished.pd create mode 100644 externals/gridflow/pd_help/@fold.pd create mode 100644 externals/gridflow/pd_help/@foldinnerouter.pd create mode 100644 externals/gridflow/pd_help/@for.pd create mode 100644 externals/gridflow/pd_help/@global.pd create mode 100644 externals/gridflow/pd_help/@grade.pd create mode 100644 externals/gridflow/pd_help/@greyscale_to_rgb.pd create mode 100644 externals/gridflow/pd_help/@importexport.pd create mode 100644 externals/gridflow/pd_help/@inner2.pd create mode 100644 externals/gridflow/pd_help/@inout.pd create mode 100644 externals/gridflow/pd_help/@join.pd create mode 100644 externals/gridflow/pd_help/@layer.pd create mode 100644 externals/gridflow/pd_help/@perspective.pd create mode 100644 externals/gridflow/pd_help/@posterize.pd create mode 100644 externals/gridflow/pd_help/@print.pd create mode 100644 externals/gridflow/pd_help/@ravel.pd create mode 100644 externals/gridflow/pd_help/@redim.pd create mode 100644 externals/gridflow/pd_help/@rgb_to_greyscale.pd create mode 100644 externals/gridflow/pd_help/@scale_by.pd create mode 100644 externals/gridflow/pd_help/@scale_to.pd create mode 100644 externals/gridflow/pd_help/@scan.pd create mode 100644 externals/gridflow/pd_help/@solarize.pd create mode 100644 externals/gridflow/pd_help/@spread.pd create mode 100644 externals/gridflow/pd_help/@store.pd create mode 100644 externals/gridflow/pd_help/@twothreefour.pd create mode 100644 externals/gridflow/pd_help/help_count.pd create mode 100644 externals/gridflow/pd_help/help_fade.pd create mode 100644 externals/gridflow/pd_help/help_motion_detect.pd create mode 100644 externals/gridflow/pd_help/help_mouse.pd create mode 100644 externals/gridflow/pd_help/printargs.pd create mode 100644 externals/gridflow/pd_help/rubyprint.pd (limited to 'externals') diff --git a/externals/gridflow/pd_abstractions/#apply_colormap_channelwise.pd b/externals/gridflow/pd_abstractions/#apply_colormap_channelwise.pd new file mode 100644 index 00000000..2402036a --- /dev/null +++ b/externals/gridflow/pd_abstractions/#apply_colormap_channelwise.pd @@ -0,0 +1,12 @@ +#N canvas 0 0 450 300 10; +#X obj 17 17 inlet; +#X obj 17 37 #outer & ( -1 0 ); +#X obj 17 57 # + ( 3 2 # 0 0 0 1 0 2 ); +#X obj 17 77 #store; +#X obj 17 97 outlet; +#X obj 67 17 inlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 3 1; diff --git a/externals/gridflow/pd_abstractions/#camera.pd b/externals/gridflow/pd_abstractions/#camera.pd new file mode 100644 index 00000000..71780ad0 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#camera.pd @@ -0,0 +1,149 @@ +#N canvas 192 66 485 362 10; +#X obj 132 83 hradio 18 1 0 4 \$0-channel \$0-channel _0__1__2__3_ +0 14 0 8 -241291 -258699 -1 1; +#X obj 299 31 hsl 128 15 0 65535 0 0 \$0-brightness \$0-brightness +brightness 8 8 0 8 -260818 -1 -1 10250 1; +#X obj 299 71 hsl 128 15 0 65535 0 0 \$0-hue \$0-hue hue 8 8 0 8 -260818 +-1 -1 6600 1; +#X obj 299 11 hsl 128 15 0 65535 0 0 \$0-contrast \$0-contrast contrast +8 8 0 8 -260818 -1 -1 8800 1; +#X obj 299 91 hsl 128 15 0 65635 0 0 \$0-whiteness \$0-whiteness whiteness +8 8 0 8 -260818 -1 -1 0 1; +#N canvas 256 168 546 412 camera 0; +#X obj 20 387 outlet; +#X obj 11 9 inlet; +#X msg 160 126 contrast \$1; +#X msg 160 186 whiteness \$1; +#X msg 160 106 brightness \$1; +#X msg 160 227 channel \$1; +#X obj 270 106 r \$0-brightness; +#X obj 270 126 r \$0-contrast; +#X obj 270 186 r \$0-whiteness; +#X obj 153 276 r \$0-size; +#X obj 270 226 r \$0-channel; +#X obj 270 166 r \$0-hue; +#X msg 160 166 hue \$1; +#X msg 160 146 colour \$1; +#X obj 270 146 r \$0-colour; +#X obj 23 198 t a; +#X msg 319 382 open videodev \$1 \, get; +#X obj 318 363 rubysprintf /dev/video%d; +#X msg 160 206 frequency \$1; +#X obj 270 206 r \$0-frequency; +#X obj 318 344 r \$0-device; +#X obj 153 346 #export_list; +#X msg 153 295 list \$1; +#X msg 154 365 size \$1 \$2; +#X obj 153 314 #store ( 4 2 # 120 160 240 320 480 640 120 180 240 360 +480 720 ); +#X obj 12 98 rubysprintf %d-%s; +#X obj 11 117 pack s f; +#X obj 12 77 t a a; +#X msg 68 77 \$3; +#X msg 11 136 \; \$1 \$2; +#X obj 11 56 messageprepend \$0; +#X msg 160 247 tuner \$1; +#X obj 270 246 r \$0-tuner; +#X connect 1 0 30 0; +#X connect 2 0 15 0; +#X connect 3 0 15 0; +#X connect 4 0 15 0; +#X connect 5 0 15 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 8 0 3 0; +#X connect 9 0 22 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 13 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 16 0; +#X connect 18 0 15 0; +#X connect 19 0 18 0; +#X connect 20 0 17 0; +#X connect 21 0 23 0; +#X connect 22 0 24 0; +#X connect 23 0 0 0; +#X connect 24 0 21 0; +#X connect 25 0 26 0; +#X connect 26 0 29 0; +#X connect 27 0 25 0; +#X connect 27 1 28 0; +#X connect 28 0 26 1; +#X connect 30 0 27 0; +#X connect 31 0 15 0; +#X connect 32 0 31 0; +#X restore 49 115 pd camera; +#X msg 317 236 colorspace YUV420P; +#X obj 66 177 #yuv_to_rgb; +#X obj 299 51 hsl 128 15 0 65535 0 0 \$0-colour \$0-colour colour 8 +8 0 8 -260818 -1 -1 12700 1; +#X obj 133 21 vradio 15 1 0 3 \$0-size \$0-size empty 0 -6 0 8 -241291 +-258699 -1 1; +#X text 151 21 120 \, 160; +#X text 151 37 240 \, 320; +#X text 151 52 480 \, 640; +#X text 131 6 select size; +#X text 132 68 select channel; +#X obj 240 12 nbx 5 14 0 65535 0 0 \$0-contrast \$0-contrast empty +0 -6 0 10 -260818 -1 -1 45410 256; +#X obj 240 32 nbx 5 14 0 65535 0 0 \$0-brightness \$0-brightness empty +0 -6 0 10 -260818 -1 -1 52892 256; +#X obj 240 52 nbx 5 14 0 65535 0 0 \$0-colour \$0-colour empty 0 -6 +0 10 -260818 -1 -1 65535 256; +#X obj 240 72 nbx 5 14 0 65535 0 0 \$0-hue \$0-hue empty 0 -6 0 10 +-260818 -1 -1 34058 256; +#X obj 240 92 nbx 5 14 0 65535 0 0 \$0-whiteness \$0-whiteness empty +0 -6 0 10 -260818 -1 -1 0 256; +#X text 17 6 Select a camera; +#X msg 317 156 transfer mmap; +#X msg 317 196 transfer read; +#X msg 317 216 colorspace RGB24; +#X text 316 140 Special options:; +#X obj 22 115 #in; +#X obj 22 245 outlet image; +#X obj 21 33 hradio 18 1 0 4 \$0-device \$0-device _0__1__2__3_ 0 -4 +0 8 -241291 -258699 -1 0; +#X obj 22 148 shunt 2; +#X obj 141 206 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -258699 +-1 0; +#X text 161 221 YUV->RGB; +#X text 161 205 no conversion; +#X obj 23 96 inlet; +#X obj 66 198 # min 255; +#X obj 66 217 # max 0; +#X msg 317 176 transfer mmap 4; +#X obj 132 117 hradio 18 1 0 4 \$0-tuner \$0-tuner _0__1__2__3_ 0 14 +0 8 -241291 -258699 -1 0; +#X text 132 102 select tuner; +#X obj 299 121 hsl 128 15 0 65635 0 0 \$0-frequency \$0-frequency frequency +8 8 0 8 -62784 -44926 -44926 0 1; +#X obj 240 122 nbx 5 14 0 65535 0 0 \$0-frequency \$0-frequency empty +0 -6 0 10 -62784 -44926 -44926 0 256; +#X obj 21 271 \$0; +#X obj 47 272 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X obj 305 257 s \$0-o; +#X msg 21 290 \; \$1-device 0 \; \$1-size 1 \; \$1-channel 1; +#X obj 62 95 r \$0-o; +#X connect 5 0 25 0; +#X connect 6 0 42 0; +#X connect 7 0 33 0; +#X connect 21 0 42 0; +#X connect 22 0 42 0; +#X connect 23 0 42 0; +#X connect 25 0 28 0; +#X connect 25 1 5 0; +#X connect 28 0 26 0; +#X connect 28 1 7 0; +#X connect 29 0 28 1; +#X connect 32 0 25 0; +#X connect 33 0 34 0; +#X connect 34 0 26 0; +#X connect 35 0 42 0; +#X connect 40 0 43 0; +#X connect 41 0 40 0; +#X connect 44 0 25 0; diff --git a/externals/gridflow/pd_abstractions/#camera_control.pd b/externals/gridflow/pd_abstractions/#camera_control.pd new file mode 100644 index 00000000..c759fd23 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#camera_control.pd @@ -0,0 +1,129 @@ +#N canvas 287 295 576 286 10; +#X obj 50 265 outlet; +#X obj 239 124 hradio 18 1 0 4 \$0-channel \$0-channel _0__1__2__3_ +0 -4 0 8 -241291 -258699 -1 0; +#X obj 413 63 hsl 128 15 0 65535 0 0 \$0-brightness \$0-brightness +brightness 8 8 0 8 -260818 -1 -1 0 1; +#X obj 413 103 hsl 128 15 0 65535 0 0 \$0-hue \$0-hue hue 8 8 0 8 -260818 +-1 -1 0 1; +#X obj 413 43 hsl 128 15 0 65535 0 0 \$0-contrast \$0-contrast contrast +8 8 0 8 -260818 -1 -1 0 1; +#X obj 413 123 hsl 128 15 0 65635 0 0 \$0-whiteness \$0-whiteness whiteness +8 8 0 8 -260818 -1 -1 0 1; +#X text 119 245 <-- open to access more camera controls; +#N canvas 170 20 420 404 camera 0; +#X obj 9 362 outlet; +#X obj 9 8 inlet; +#X msg 66 153 contrast \$1; +#X msg 66 213 whiteness \$1; +#X msg 66 133 brightness \$1; +#X msg 171 383 size 120 160; +#X msg 190 363 size 240 320; +#X msg 209 343 size 480 640; +#X msg 72 277 channel \$1; +#X obj 176 133 r \$0-brightness; +#X obj 176 153 r \$0-contrast; +#X obj 176 213 r \$0-whiteness; +#X obj 171 299 r \$0-size; +#X obj 182 277 r \$0-channel; +#X obj 176 193 r \$0-hue; +#X msg 66 193 hue \$1; +#X msg 66 173 colour \$1; +#X obj 176 173 r \$0-colour; +#X obj 171 319 sel 0 1 2; +#X obj 67 55 s \$0-brightness; +#X obj 77 75 s \$0-contrast; +#X obj 197 55 s \$0-colour; +#X obj 207 75 s \$0-hue; +#X obj 217 95 s \$0-whiteness; +#X obj 32 245 t a; +#X obj 9 35 route symbol brightness contrast colour hue whiteness; +#X msg 9 109 open videodev \$1 \, get; +#X connect 1 0 25 0; +#X connect 2 0 24 0; +#X connect 3 0 24 0; +#X connect 4 0 24 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 4 0; +#X connect 10 0 2 0; +#X connect 11 0 3 0; +#X connect 12 0 18 0; +#X connect 13 0 8 0; +#X connect 14 0 15 0; +#X connect 15 0 24 0; +#X connect 16 0 24 0; +#X connect 17 0 16 0; +#X connect 18 0 5 0; +#X connect 18 1 6 0; +#X connect 18 2 7 0; +#X connect 24 0 0 0; +#X connect 25 0 26 0; +#X connect 25 1 19 0; +#X connect 25 2 20 0; +#X connect 25 3 21 0; +#X connect 25 4 22 0; +#X connect 25 5 23 0; +#X connect 25 6 0 0; +#X connect 26 0 0 0; +#X restore 50 245 pd camera; +#X msg 83 196 colorspace YUV420P; +#X text 218 196 <-- click here if your webcam uses this colorspace +; +#X obj 103 222 #yuv_to_rgb; +#X text 185 222 <-- add this after [#in] to translate the colorspaces +; +#X obj 413 83 hsl 128 15 0 65535 0 0 \$0-colour \$0-colour colour 8 +8 0 8 -260818 -1 -1 0 1; +#X text 98 266 plug this to #in; +#X obj 241 53 vradio 15 1 0 3 \$0-size \$0-size empty 0 -6 0 8 -241291 +-258699 -1 0; +#X text 259 53 120 \, 160; +#X text 259 69 240 \, 320; +#X text 259 84 480 \, 640; +#X text 239 38 select size; +#X text 239 101 select channel; +#X obj 10 245 inlet; +#X obj 354 44 nbx 5 14 0 65535 0 0 \$0-contrast \$0-contrast empty +0 -6 0 10 -260818 -1 -1 0 256; +#X obj 354 64 nbx 5 14 0 65535 0 0 \$0-brightness \$0-brightness empty +0 -6 0 10 -260818 -1 -1 0 256; +#X obj 354 84 nbx 5 14 0 65535 0 0 \$0-colour \$0-colour empty 0 -6 +0 10 -260818 -1 -1 0 256; +#X obj 354 104 nbx 5 14 0 65535 0 0 \$0-hue \$0-hue empty 0 -6 0 10 +-260818 -1 -1 0 256; +#X obj 354 124 nbx 5 14 0 65535 0 0 \$0-whiteness \$0-whiteness empty +0 -6 0 10 -260818 -1 -1 0 256; +#X msg 50 28 symbol /dev/video0; +#X msg 50 48 symbol /dev/video1; +#X msg 50 68 symbol /dev/video2; +#X msg 50 88 symbol /dev/video3; +#X text 17 6 Select a camera; +#X obj 31 28 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X obj 31 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X obj 31 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X obj 31 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X msg 81 133 transfer mmap; +#X msg 81 153 transfer read; +#X msg 83 176 colorspace RGB24; +#X text 70 115 Special options:; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 20 0 7 0; +#X connect 26 0 7 0; +#X connect 27 0 7 0; +#X connect 28 0 7 0; +#X connect 29 0 7 0; +#X connect 31 0 26 0; +#X connect 32 0 27 0; +#X connect 33 0 28 0; +#X connect 34 0 29 0; +#X connect 35 0 7 0; +#X connect 36 0 7 0; +#X connect 37 0 7 0; diff --git a/externals/gridflow/pd_abstractions/#centre_of_gravity.pd b/externals/gridflow/pd_abstractions/#centre_of_gravity.pd new file mode 100644 index 00000000..543b409d --- /dev/null +++ b/externals/gridflow/pd_abstractions/#centre_of_gravity.pd @@ -0,0 +1,113 @@ +#N canvas 311 42 543 559 10; +#X obj 166 26 inlet; +#X obj 51 106 #rgb_to_greyscale; +#X obj 51 162 #fold +; +#X obj 51 188 # >> 8; +#N canvas 0 0 450 300 gravity 0; +#X obj 77 20 inlet; +#X obj 75 276 outlet; +#X obj 77 54 t a a; +#X obj 41 90 #finished; +#X obj 125 79 #dim; +#X obj 126 105 #fold +; +#X obj 68 140 #for 0 0 1; +#X obj 172 190 #fold +; +#X obj 72 179 # *; +#X obj 72 199 #fold +; +#X obj 72 249 # /; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 2 1 8 1; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 8 0; +#X connect 7 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 36 221 pd gravity; +#X obj 50 244 #export; +#X obj 84 277 #two; +#X obj 85 301 #export_list; +#X obj 86 367 # ==; +#X obj 51 132 #fold +; +#X obj 85 344 #for ( 0 0 ) ( 288 352 ) ( 1 1 ); +#X obj 264 253 #finished; +#X obj 86 388 #fold |; +#X obj 194 319 inlet; +#X obj 98 441 #finished; +#X obj 98 469 #store; +#X obj 110 499 #outer * ( 255 -255 -255 ); +#X obj 112 520 # +; +#X obj 112 540 # min 255; +#X obj 112 560 # max 0; +#X obj 112 586 outlet; +#X obj 122 162 #fold +; +#X obj 122 189 # >> 8; +#N canvas 0 0 450 300 gravity 0; +#X obj 77 20 inlet; +#X obj 75 276 outlet; +#X obj 77 54 t a a; +#X obj 41 90 #finished; +#X obj 125 79 #dim; +#X obj 126 105 #fold +; +#X obj 68 140 #for 0 0 1; +#X obj 172 190 #fold +; +#X obj 72 179 # *; +#X obj 72 199 #fold +; +#X obj 72 249 # /; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 2 1 8 1; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 8 0; +#X connect 7 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 134 219 pd gravity; +#X obj 141 242 #export; +#X obj 9 352 print list; +#X obj 91 414 fork; +#X obj 166 51 fork; +#X obj 9 332 outlet; +#X obj 122 134 #transpose; +#X connect 0 0 27 0; +#X connect 1 0 9 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 1; +#X connect 7 0 28 0; +#X connect 8 0 12 0; +#X connect 9 0 2 0; +#X connect 9 0 29 0; +#X connect 10 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 26 0; +#X connect 13 0 10 1; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 6 1; +#X connect 26 0 14 0; +#X connect 26 1 15 1; +#X connect 27 0 11 0; +#X connect 27 0 1 0; +#X connect 27 1 17 1; +#X connect 29 0 21 0; diff --git a/externals/gridflow/pd_abstractions/#centroid.pd b/externals/gridflow/pd_abstractions/#centroid.pd new file mode 100644 index 00000000..646b828a --- /dev/null +++ b/externals/gridflow/pd_abstractions/#centroid.pd @@ -0,0 +1,80 @@ +#N canvas 494 135 339 225 10; +#X obj -63 82 #fold +; +#X obj -63 101 # >> 8; +#N canvas 0 0 450 300 gravity 0; +#X obj 77 20 inlet; +#X obj 75 276 outlet; +#X obj 77 54 t a a; +#X obj 41 90 #finished; +#X obj 125 79 #dim; +#X obj 126 105 #fold +; +#X obj 68 140 #for 0 0 1; +#X obj 172 190 #fold +; +#X obj 72 179 # *; +#X obj 72 199 #fold +; +#X obj 72 249 # /; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 2 1 8 1; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 8 0; +#X connect 7 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore -63 120 pd gravity; +#X obj -63 139 #export; +#X obj -63 25 #fold +; +#X obj 30 83 #fold +; +#X obj 30 102 # >> 8; +#N canvas 0 0 450 300 gravity 0; +#X obj 77 20 inlet; +#X obj 75 276 outlet; +#X obj 77 54 t a a; +#X obj 41 90 #finished; +#X obj 125 79 #dim; +#X obj 126 105 #fold +; +#X obj 68 140 #for 0 0 1; +#X obj 172 190 #fold +; +#X obj 72 179 # *; +#X obj 72 199 #fold +; +#X obj 72 249 # /; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 1 7 0; +#X connect 2 1 8 1; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 8 0; +#X connect 7 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 30 121 pd gravity; +#X obj 30 140 #export; +#X obj 30 63 #transpose; +#X obj -63 44 t a a; +#X obj -63 178 #pack 2; +#X obj -63 197 outlet position; +#X obj -63 6 inlet greyscale_image; +#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 10 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 11 1; +#X connect 9 0 5 0; +#X connect 10 0 0 0; +#X connect 10 1 9 0; +#X connect 11 0 12 0; +#X connect 13 0 4 0; +#X coords 0 0 5.43251e-06 7.95071e-06 100 40 0; diff --git a/externals/gridflow/pd_abstractions/#checkers.pd b/externals/gridflow/pd_abstractions/#checkers.pd new file mode 100644 index 00000000..24ca52eb --- /dev/null +++ b/externals/gridflow/pd_abstractions/#checkers.pd @@ -0,0 +1,18 @@ +#N canvas 0 0 450 300 10; +#X obj 18 14 inlet; +#X obj 18 34 # >> 3; +#X obj 18 54 # & 1; +#X obj 18 74 #fold ^; +#X obj 18 94 # inv+; +#X obj 18 114 # & 63; +#X obj 18 134 # + 128; +#X obj 18 154 #outer ignore ( 0 0 0 ); +#X obj 18 174 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; diff --git a/externals/gridflow/pd_abstractions/#clip.pd b/externals/gridflow/pd_abstractions/#clip.pd new file mode 100644 index 00000000..c96553c0 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#clip.pd @@ -0,0 +1,20 @@ +#N canvas 531 259 450 300 10; +#X obj 87 22 inlet; +#X obj 87 206 outlet; +#X obj 87 94 # min \$1; +#X obj 87 143 # max \$2; +#X obj 196 38 inlet; +#X obj 249 108 inlet; +#X msg 132 59 255; +#X obj 132 39 loadbang; +#X obj 184 106 loadbang; +#X msg 184 126 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 2 1; +#X connect 5 0 3 1; +#X connect 6 0 2 1; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; diff --git a/externals/gridflow/pd_abstractions/#color.pd b/externals/gridflow/pd_abstractions/#color.pd new file mode 100644 index 00000000..bd97d09b --- /dev/null +++ b/externals/gridflow/pd_abstractions/#color.pd @@ -0,0 +1,68 @@ +#N canvas 648 305 209 58 10; +#X floatatom 3 29 5 0 0 0 - - -; +#X obj 75 28 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -225271 +-24198 -1 0 1; +#X obj 75 43 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -228992 +-62784 -1 0 1; +#X floatatom 3 44 5 0 0 0 - - -; +#X obj 75 13 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 1; +#X floatatom 3 14 5 0 0 0 - - -; +#X obj 3 76 #pack 3; +#X obj 209 36 #export_list; +#X obj 210 55 unpack 0 0 0; +#X obj 208 17 inlet rgb_color; +#X obj 56 75 outlet rgb_color; +#X obj 43 12 int; +#X obj 43 27 int; +#X obj 43 42 int; +#X obj 196 2 cnv 10 60 10 empty \$0-cnv empty 20 12 0 14 -262144 -262144 +0; +#X obj 125 192 s \$0-cnv; +#X msg 125 172 color \$1; +#X obj 4 154 #export; +#X obj 3 133 # ^ -1; +#X obj 3 114 #fold |; +#X obj 3 95 # << ( 16 8 0 ); +#X obj 194 75 loadbang; +#X msg 194 151 range \$1 \$2; +#X obj 194 132 #export_list; +#X obj 194 94 listmake \$1 \$2; +#X obj 194 113 # || ( 0 255 ); +#X obj 59 134 loadbang; +#X obj 88 154 - \$3; +#X msg 59 154 1; +#X obj 3 180 spigot; +#X connect 0 0 6 1; +#X connect 1 0 12 0; +#X connect 2 0 13 0; +#X connect 3 0 6 2; +#X connect 4 0 11 0; +#X connect 5 0 6 0; +#X connect 6 0 10 0; +#X connect 6 0 20 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 8 1 1 0; +#X connect 8 2 2 0; +#X connect 9 0 7 0; +#X connect 11 0 5 0; +#X connect 12 0 0 0; +#X connect 13 0 3 0; +#X connect 16 0 15 0; +#X connect 17 0 29 0; +#X connect 18 0 17 0; +#X connect 19 0 18 0; +#X connect 20 0 19 0; +#X connect 21 0 24 0; +#X connect 22 0 2 0; +#X connect 22 0 1 0; +#X connect 22 0 4 0; +#X connect 23 0 22 0; +#X connect 24 0 25 0; +#X connect 25 0 23 0; +#X connect 26 0 28 0; +#X connect 27 0 29 1; +#X connect 28 0 27 0; +#X connect 29 0 16 0; +#X coords 0 0 1 1 120 56 1; diff --git a/externals/gridflow/pd_abstractions/#contrast.pd b/externals/gridflow/pd_abstractions/#contrast.pd new file mode 100644 index 00000000..13549341 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#contrast.pd @@ -0,0 +1,20 @@ +#N canvas 0 0 450 300 10; +#X obj 14 14 inlet; +#X obj 14 34 # inv+ 255; +#X obj 14 54 # *>>8; +#X obj 14 74 # inv+ 255; +#X obj 14 94 # *>>8; +#X obj 14 114 # min 255; +#X obj 14 134 # max 0; +#X obj 14 154 outlet; +#X obj 54 14 inlet; +#X obj 94 14 inlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 2 1; +#X connect 9 0 4 1; diff --git a/externals/gridflow/pd_abstractions/#fade.pd b/externals/gridflow/pd_abstractions/#fade.pd new file mode 100644 index 00000000..ade53918 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#fade.pd @@ -0,0 +1,37 @@ +#N canvas 398 352 418 256 10; +#X obj 21 65 inlet; +#X obj 21 233 outlet; +#X obj 21 85 # +; +#X obj 78 199 # *; +#X obj 190 108 float \$1; +#X obj 190 88 loadbang; +#X obj 156 64 inlet; +#X text 20 7 new = (x-1)/x of old input + 1/x of new input; +#X obj 173 180 # - 1; +#X text 198 65 select fade rate; +#X text 61 65 input; +#X text 70 236 output; +#X obj 21 106 # +; +#X obj 127 169 # / 2; +#X obj 156 86 t a; +#X text 19 21 now rounds to closest; +#X obj 21 127 # *>>8; +#X obj 70 128 # inv* 256; +#X obj 21 213 t a a; +#X text 19 34 also faster (uses *>>8 instead of /); +#X connect 0 0 2 0; +#X connect 2 0 12 0; +#X connect 3 0 2 1; +#X connect 4 0 14 0; +#X connect 5 0 4 0; +#X connect 6 0 14 0; +#X connect 8 0 3 1; +#X connect 12 0 16 0; +#X connect 13 0 12 1; +#X connect 14 0 13 0; +#X connect 14 0 8 0; +#X connect 14 0 17 0; +#X connect 16 0 18 0; +#X connect 17 0 16 1; +#X connect 18 0 1 0; +#X connect 18 1 3 0; diff --git a/externals/gridflow/pd_abstractions/#fade_lin.pd b/externals/gridflow/pd_abstractions/#fade_lin.pd new file mode 100644 index 00000000..22054260 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#fade_lin.pd @@ -0,0 +1,29 @@ +#N canvas 614 446 450 300 10; +#X obj 68 16 inlet; +#X obj 92 146 outlet; +#X obj 95 61 # -; +#X obj 155 16 inlet; +#X obj 65 123 # +; +#X obj 95 124 t a; +#X obj 155 36 f \$1; +#X obj 140 101 # inv+ 0; +#X obj 296 38 loadbang; +#X obj 78 101 # max -1; +#X obj 78 81 # min 1; +#X obj 195 16 inlet; +#X obj 195 37 f \$2; +#X connect 0 0 2 0; +#X connect 2 0 10 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 4 1; +#X connect 5 0 1 0; +#X connect 5 0 2 1; +#X connect 6 0 10 1; +#X connect 7 0 9 1; +#X connect 8 0 6 0; +#X connect 8 0 12 0; +#X connect 9 0 4 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 12 0 7 0; diff --git a/externals/gridflow/pd_abstractions/#greyscale_to_rgb.pd b/externals/gridflow/pd_abstractions/#greyscale_to_rgb.pd new file mode 100644 index 00000000..612bcb14 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#greyscale_to_rgb.pd @@ -0,0 +1,8 @@ +#N canvas 550 233 335 174 10; +#X obj 10 10 inlet; +#X obj 10 70 outlet; +#X obj 10 30 #fold put; +#X obj 10 50 #outer ignore ( 0 0 0 ); +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; diff --git a/externals/gridflow/pd_abstractions/#hueshift.pd b/externals/gridflow/pd_abstractions/#hueshift.pd new file mode 100644 index 00000000..028801ea --- /dev/null +++ b/externals/gridflow/pd_abstractions/#hueshift.pd @@ -0,0 +1,31 @@ +#N canvas 581 130 450 278 10; +#X obj 13 105 inlet; +#X obj 13 162 outlet; +#X obj 59 48 #rgb_to_yuv; +#X obj 59 124 #yuv_to_rgb; +#X obj 59 67 # - 128; +#X obj 59 105 # + 128; +#X obj 171 10 inlet; +#X obj 59 86 #rotate \, axis 1 2 3; +#X obj 59 7 loadbang; +#X obj 171 29 t b f; +#X obj 212 29 \$1; +#X obj 212 10 loadbang; +#X obj 13 124 #inner; +#X msg 59 29 3 3 # 256 0 0 0; +#X obj 13 143 # >> 8; +#X connect 0 0 12 0; +#X connect 2 0 4 0; +#X connect 3 0 12 1; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 9 0; +#X connect 7 0 5 0; +#X connect 8 0 13 0; +#X connect 9 0 13 0; +#X connect 9 1 7 1; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 12 0 14 0; +#X connect 13 0 2 0; +#X connect 14 0 1 0; diff --git a/externals/gridflow/pd_abstractions/#motion_detection.pd b/externals/gridflow/pd_abstractions/#motion_detection.pd new file mode 100644 index 00000000..2867cd2c --- /dev/null +++ b/externals/gridflow/pd_abstractions/#motion_detection.pd @@ -0,0 +1,64 @@ +#N canvas 70 26 572 517 10; +#X msg 152 39 1; +#X msg 152 63 0; +#X text 188 37 <-- take a snapshot; +#X text 190 64 <-- compare incoming images; +#X obj 61 153 t a a; +#X obj 62 206 # -; +#X obj 62 366 # min 255; +#X obj 62 341 # max 0; +#X obj 62 295 # abs-; +#X obj 102 178 spigot; +#X obj 86 109 inlet; +#X obj 63 491 outlet; +#X obj 301 445 #fold +; +#X obj 317 467 #fold +; +#X obj 331 490 #fold +; +#X obj 337 516 #export; +#X obj 371 542 route int; +#X obj 385 564 / 10000; +#X msg 289 257 1; +#X msg 302 286 0; +#X obj 252 401 spigot; +#X text 325 255 <-- output values; +#X obj 91 411 # -; +#X obj 150 406 r noise; +#X obj 64 453 # max 0; +#X obj 310 348 r displaced; +#X text 339 281 <-- save your cpu some work and turn it off; +#X obj 486 592 s displaced_numb; +#X obj 163 121 r snapshot; +#X obj 134 242 r emboss; +#X obj 134 295 # + 128; +#X obj 62 230 # << 2; +#X obj 62 267 shunt 2; +#X connect 0 0 9 1; +#X connect 1 0 9 1; +#X connect 4 0 9 0; +#X connect 4 1 5 0; +#X connect 5 0 31 0; +#X connect 6 0 20 0; +#X connect 6 0 22 0; +#X connect 7 0 6 0; +#X connect 8 0 7 0; +#X connect 9 0 5 1; +#X connect 10 0 4 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 27 0; +#X connect 18 0 20 1; +#X connect 19 0 20 1; +#X connect 20 0 12 0; +#X connect 22 0 24 0; +#X connect 23 0 22 1; +#X connect 24 0 11 0; +#X connect 25 0 20 1; +#X connect 28 0 9 1; +#X connect 29 0 32 1; +#X connect 30 0 7 0; +#X connect 31 0 32 0; +#X connect 32 0 8 0; +#X connect 32 1 30 0; diff --git a/externals/gridflow/pd_abstractions/#mouse.pd b/externals/gridflow/pd_abstractions/#mouse.pd new file mode 100644 index 00000000..7e87688e --- /dev/null +++ b/externals/gridflow/pd_abstractions/#mouse.pd @@ -0,0 +1,93 @@ +#N canvas 313 211 690 428 10; +#X obj 23 103 listsublist 0 2; +#X obj 48 64 fork; +#X obj 126 181 fork; +#X text 153 149 is button pressed?; +#X obj 129 209 -; +#X obj 125 150 > 0; +#X obj 183 86 listelement 2; +#X obj 120 377 outlet; +#X text 161 183 1=click \, 0=nochange \, -1=unclick; +#X text 157 36 list (y \, x \, buttons); +#X obj 49 8 inlet; +#X obj 48 34 route position; +#X text 93 8 compatible with output of [#out window]; +#X obj 142 246 inv+ 1; +#X obj 98 397 outlet; +#X obj 142 356 outlet; +#X text 431 330 three toggle-compatible outputs; +#X text 432 346 and one +1/0/-1 for the wheel; +#X text 147 397 click; +#X text 193 357 unclick; +#X obj 468 60 listelement 2; +#X obj 430 301 outlet; +#X obj 480 301 outlet; +#X obj 530 301 outlet; +#X obj 580 301 outlet; +#X obj 430 273 change; +#X obj 108 63 fork; +#X obj 468 86 #outer >> ( 8 9 10 11 12 ); +#X obj 469 115 # & 1; +#X obj 469 173 unpack 0 0 0 0 0; +#X obj 549 241 inv+; +#X obj 480 274 change; +#X obj 530 275 change; +#X obj 580 276 change; +#X obj 469 145 #export_list; +#X obj 163 335 outlet; +#X text 172 378 drag; +#X text 214 337 move; +#X obj 163 275 inv+ 1; +#X obj 389 16 inlet; +#X text 433 9 list of 3 toggles; +#X text 434 23 which buttons should be active; +#X obj 347 81 # << ( 8 9 10 ); +#X obj 345 107 #fold +; +#X obj 345 131 #export; +#X obj 125 126 &; +#X text 151 126 check only wanted buttons; +#X obj 305 33 loadbang; +#X msg 305 57 1 1 1; +#X obj 98 269 shunt 3; +#X obj 120 302 shunt 2; +#X connect 0 0 49 0; +#X connect 1 0 0 0; +#X connect 1 1 6 0; +#X connect 2 0 4 1; +#X connect 2 1 4 0; +#X connect 2 1 38 0; +#X connect 4 0 13 0; +#X connect 5 0 2 0; +#X connect 6 0 45 0; +#X connect 10 0 11 0; +#X connect 11 0 26 0; +#X connect 13 0 49 1; +#X connect 20 0 27 0; +#X connect 25 0 21 0; +#X connect 26 0 1 0; +#X connect 26 1 20 0; +#X connect 27 0 28 0; +#X connect 28 0 34 0; +#X connect 29 0 25 0; +#X connect 29 1 31 0; +#X connect 29 2 32 0; +#X connect 29 3 30 0; +#X connect 29 4 30 1; +#X connect 30 0 33 0; +#X connect 31 0 22 0; +#X connect 32 0 23 0; +#X connect 33 0 24 0; +#X connect 34 0 29 0; +#X connect 38 0 50 1; +#X connect 39 0 42 0; +#X connect 42 0 43 0; +#X connect 43 0 44 0; +#X connect 44 0 45 1; +#X connect 45 0 5 0; +#X connect 47 0 48 0; +#X connect 48 0 42 0; +#X connect 49 0 14 0; +#X connect 49 1 50 0; +#X connect 49 2 15 0; +#X connect 50 0 7 0; +#X connect 50 1 35 0; diff --git a/externals/gridflow/pd_abstractions/#posterize.pd b/externals/gridflow/pd_abstractions/#posterize.pd new file mode 100644 index 00000000..5e763eac --- /dev/null +++ b/externals/gridflow/pd_abstractions/#posterize.pd @@ -0,0 +1,15 @@ +#N canvas 0 0 450 300 10; +#X obj 13 11 inlet; +#X obj 13 31 # *>>8; +#X obj 13 51 # * 255; +#X obj 13 71 # /; +#X obj 92 31 # - 1; +#X obj 13 91 outlet; +#X obj 92 11 inlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 3 1; +#X connect 6 0 4 0; +#X connect 6 0 1 1; diff --git a/externals/gridflow/pd_abstractions/#ravel.pd b/externals/gridflow/pd_abstractions/#ravel.pd new file mode 100644 index 00000000..bf17742f --- /dev/null +++ b/externals/gridflow/pd_abstractions/#ravel.pd @@ -0,0 +1,15 @@ +#N canvas 0 0 450 300 10; +#X obj 14 15 inlet; +#X obj 44 65 #dim; +#X obj 44 85 #fold * \, seed 1; +#X obj 44 105 #redim ( 1 ); +#X obj 14 125 #redim ( 42 ); +#X obj 14 35 t a a; +#X obj 14 145 outlet; +#X connect 0 0 5 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 1 1 0; diff --git a/externals/gridflow/pd_abstractions/#remap_image.pd b/externals/gridflow/pd_abstractions/#remap_image.pd new file mode 100644 index 00000000..d56eae88 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#remap_image.pd @@ -0,0 +1,21 @@ +#N canvas 0 0 450 300 10; +#X obj 18 13 inlet; +#X obj 168 163 inlet; +#X obj 18 160 #store; +#X obj 113 90 #dim; +#X obj 18 33 t a a; +#X obj 18 110 #finished; +#X obj 18 130 #for ( 0 0 ) ( 0 0 ) ( 1 1 ); +#X obj 18 191 outlet; +#X obj 113 110 #inner ( 3 2 # 1 0 0 ); +#X obj 68 191 outlet; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 7 0; +#X connect 3 0 8 0; +#X connect 4 0 5 0; +#X connect 4 1 3 0; +#X connect 4 1 2 1; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 8 0 6 1; diff --git a/externals/gridflow/pd_abstractions/#rgb_to_greyscale.pd b/externals/gridflow/pd_abstractions/#rgb_to_greyscale.pd new file mode 100644 index 00000000..24c5c0d9 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#rgb_to_greyscale.pd @@ -0,0 +1,10 @@ +#N canvas 550 233 335 174 10; +#X obj 10 10 inlet; +#X obj 10 30 # * ( 77 151 28 ); +#X obj 10 50 #fold +; +#X obj 10 70 #outer >> ( 8 ); +#X obj 10 90 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; diff --git a/externals/gridflow/pd_abstractions/#rgb_to_yuv.pd b/externals/gridflow/pd_abstractions/#rgb_to_yuv.pd new file mode 100644 index 00000000..c144dda0 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#rgb_to_yuv.pd @@ -0,0 +1,10 @@ +#N canvas 550 233 438 174 10; +#X obj 10 10 inlet; +#X obj 10 90 outlet; +#X obj 10 70 # + ( 0 128 128 ); +#X obj 10 50 # >> 8; +#X obj 10 30 #inner ( 3 3 # 76 -44 128 150 -85 -108 29 128 -21 ); +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; diff --git a/externals/gridflow/pd_abstractions/#solarize.pd b/externals/gridflow/pd_abstractions/#solarize.pd new file mode 100644 index 00000000..62cf7b75 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#solarize.pd @@ -0,0 +1,14 @@ +#N canvas 0 0 450 300 10; +#X obj 15 14 inlet; +#X obj 15 34 # & 255; +#X obj 15 54 # << 1; +#X obj 15 74 # inv+ 255; +#X obj 15 114 # inv+ 255; +#X obj 15 134 outlet; +#X obj 15 94 # abs-; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 6 0 4 0; diff --git a/externals/gridflow/pd_abstractions/#spread.pd b/externals/gridflow/pd_abstractions/#spread.pd new file mode 100644 index 00000000..b86ed96e --- /dev/null +++ b/externals/gridflow/pd_abstractions/#spread.pd @@ -0,0 +1,22 @@ +#N canvas 0 0 450 300 10; +#X obj 17 12 inlet; +#X obj 17 52 # & 0; +#X obj 17 72 # + 5; +#X obj 17 92 #! rand; +#X obj 17 112 # - 2; +#X obj 137 162 # +; +#X obj 124 68 # >> 1; +#X obj 17 32 t a a; +#X obj 137 182 outlet; +#X obj 124 32 inlet; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 4 1; +#X connect 7 0 1 0; +#X connect 7 1 5 1; +#X connect 9 0 6 0; +#X connect 9 0 2 1; diff --git a/externals/gridflow/pd_abstractions/#text_to_image.pd b/externals/gridflow/pd_abstractions/#text_to_image.pd new file mode 100644 index 00000000..f9d57480 --- /dev/null +++ b/externals/gridflow/pd_abstractions/#text_to_image.pd @@ -0,0 +1,41 @@ +#N canvas 305 189 450 300 10; +#X obj 16 14 inlet text; +#X obj 16 265 outlet image; +#X obj 291 132 inlet font; +#X obj 16 155 #store; +#X obj 203 38 inlet colors; +#X text 203 2 0: background; +#X text 203 18 1: foreground; +#X obj 203 66 t a; +#X obj 16 174 #store; +#X obj 229 66 loadbang; +#X text 67 157 font; +#X text 68 174 palette; +#X obj 16 33 #outer ignore ( 0 ); +#X obj 16 212 t a a; +#X obj 16 238 #redim ( ); +#X obj 154 161 #dim; +#X obj 154 180 #unpack 4; +#X obj 174 200 *; +#X obj 16 193 #transpose 0 1; +#X obj 154 228 pack 0 0 0; +#X msg 229 85 2 3 # 0 0 0 255 255 255; +#X connect 0 0 12 0; +#X connect 2 0 3 1; +#X connect 3 0 8 0; +#X connect 4 0 7 0; +#X connect 8 0 18 0; +#X connect 9 0 20 0; +#X connect 12 0 3 0; +#X connect 13 0 14 0; +#X connect 13 1 15 0; +#X connect 14 0 1 0; +#X connect 15 0 16 0; +#X connect 16 0 19 0; +#X connect 16 1 17 0; +#X connect 16 2 17 1; +#X connect 16 3 19 2; +#X connect 17 0 19 1; +#X connect 18 0 13 0; +#X connect 19 0 14 1; +#X connect 20 0 8 1; diff --git a/externals/gridflow/pd_abstractions/#yuv_to_rgb.pd b/externals/gridflow/pd_abstractions/#yuv_to_rgb.pd new file mode 100644 index 00000000..4856a10f --- /dev/null +++ b/externals/gridflow/pd_abstractions/#yuv_to_rgb.pd @@ -0,0 +1,10 @@ +#N canvas 550 233 438 174 10; +#X obj 10 10 inlet; +#X obj 10 90 outlet; +#X obj 10 30 # - ( 0 128 128 ); +#X obj 10 70 # >> 8; +#X obj 10 50 #inner ( 3 3 # 256 256 256 0 -88 454 358 -183 0 ); +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; diff --git a/externals/gridflow/pd_abstractions/@complex_sq.pd b/externals/gridflow/pd_abstractions/@complex_sq.pd new file mode 100644 index 00000000..9b05de81 --- /dev/null +++ b/externals/gridflow/pd_abstractions/@complex_sq.pd @@ -0,0 +1,8 @@ +#N canvas 0 0 303 155 10; +#X obj 17 15 inlet; +#X obj 17 75 outlet; +#X obj 17 35 #inner ( 2 2 2 # 0 2 1 -1 1 0 1 1 ); +#X obj 17 55 #fold * \, seed 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; diff --git a/externals/gridflow/pd_abstractions/count.pd b/externals/gridflow/pd_abstractions/count.pd new file mode 100644 index 00000000..087bd40d --- /dev/null +++ b/externals/gridflow/pd_abstractions/count.pd @@ -0,0 +1,44 @@ +#N canvas 448 36 450 300 10; +#X obj 131 81 + 1; +#X obj 132 37 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 190 82 5 0 0 0 - - -; +#X msg 131 61 1; +#X obj 204 168 select 1; +#X obj 191 195 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 70 39 inlet; +#X obj 131 150 outlet; +#X obj 239 80 inlet; +#X obj 190 106 == \$2; +#X floatatom 131 132 5 0 0 0 - - -; +#X obj 191 218 outlet; +#X obj 131 106 - 1; +#X floatatom 191 130 5 0 0 0 - - -; +#X obj 203 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 293 49 print; +#X obj 222 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 192 38 float \$1; +#X text 231 9 <-- bang this to reset; +#X obj 219 -11 inlet; +#X connect 0 0 2 0; +#X connect 0 0 12 0; +#X connect 1 0 3 0; +#X connect 2 0 0 1; +#X connect 2 0 9 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 4 0 17 0; +#X connect 5 0 11 0; +#X connect 6 0 1 0; +#X connect 8 0 9 1; +#X connect 9 0 13 0; +#X connect 10 0 7 0; +#X connect 12 0 10 0; +#X connect 13 0 4 0; +#X connect 14 0 17 0; +#X connect 16 0 2 0; +#X connect 17 0 2 0; +#X connect 19 0 14 0; diff --git a/externals/gridflow/pd_abstractions/pingpong.pd b/externals/gridflow/pd_abstractions/pingpong.pd new file mode 100644 index 00000000..406c9d16 --- /dev/null +++ b/externals/gridflow/pd_abstractions/pingpong.pd @@ -0,0 +1,27 @@ +#N canvas 0 0 450 270 10; +#X text 50 11 counter; +#X obj 67 40 inlet; +#X obj 67 83 %; +#X obj 67 103 -; +#X obj 164 49 inlet; +#X text 163 32 maxvalue; +#X obj 83 62 * 2; +#X obj 67 124 abs; +#X obj 67 185 outlet; +#X text 123 184 values from 0 to maxvalue; +#X obj 67 145 -; +#X obj 67 165 * -1; +#X obj 164 70 float \$1; +#X obj 206 49 loadbang; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 4 0 12 0; +#X connect 6 0 2 1; +#X connect 7 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 8 0; +#X connect 12 0 6 0; +#X connect 12 0 10 1; +#X connect 12 0 3 1; +#X connect 13 0 12 0; diff --git a/externals/gridflow/pd_examples/binary_operations.pd b/externals/gridflow/pd_examples/binary_operations.pd new file mode 100644 index 00000000..cf4df98a --- /dev/null +++ b/externals/gridflow/pd_examples/binary_operations.pd @@ -0,0 +1,73 @@ +#N canvas 401 211 734 490 10; +#X text 163 212 posterize; +#X obj 99 187 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 143 187 hsl 59 15 2 8 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X obj 65 103 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 87 361 # ^; +#X obj 135 336 hsl 137 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X obj 99 237 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X text 124 144 negative; +#X obj 39 121 #in; +#X text 146 361 munchies (XOR effect) in the colour domain; +#X obj 39 187 shunt 2; +#X obj 39 338 shunt 2; +#X text 157 297 color wrapping; +#X obj 88 261 # %; +#X obj 98 338 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 87 164 # inv+ 255; +#X obj 99 142 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 65 54 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; +#X obj 89 304 # /; +#X obj 39 142 shunt 2; +#X obj 39 423 #out window; +#X obj 88 283 # * 255; +#X obj 166 265 hsl 137 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X obj 39 237 shunt 2; +#X text 88 105 image loader; +#X msg 65 121 open r001.jpg \, bang; +#X obj 65 78 metro 33.3667; +#X obj 87 212 #posterize; +#X obj 8 456 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 16 463 GridFlow 0.8.0; +#X obj 8 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 5 binary_operations.pd; +#X text 222 143 <-- try various combinations of checkboxes and settings. +then click on the image loader to see the result.; +#X text 11 19 Copyright Mathieu Bouchard; +#X connect 1 0 10 1; +#X connect 2 0 27 1; +#X connect 3 0 25 0; +#X connect 4 0 20 0; +#X connect 5 0 4 1; +#X connect 6 0 23 1; +#X connect 8 0 19 0; +#X connect 10 0 23 0; +#X connect 10 1 27 0; +#X connect 11 0 20 0; +#X connect 11 1 4 0; +#X connect 13 0 21 0; +#X connect 14 0 11 1; +#X connect 15 0 10 0; +#X connect 16 0 19 1; +#X connect 17 0 26 0; +#X connect 18 0 11 0; +#X connect 19 0 10 0; +#X connect 19 1 15 0; +#X connect 21 0 18 0; +#X connect 22 0 18 1; +#X connect 22 0 13 1; +#X connect 23 0 11 0; +#X connect 23 1 13 0; +#X connect 25 0 8 0; +#X connect 26 0 3 0; +#X connect 27 0 23 0; diff --git a/externals/gridflow/pd_examples/blob.pd b/externals/gridflow/pd_examples/blob.pd new file mode 100644 index 00000000..48f5251a --- /dev/null +++ b/externals/gridflow/pd_examples/blob.pd @@ -0,0 +1,106 @@ +#N canvas 19 81 792 565 10; +#X floatatom 405 212 5 0 0 0 - - -; +#X obj 347 172 r move; +#X obj 56 95 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 56 128 240 320 3 # 0; +#X msg 461 357 300; +#X obj 398 342 # * 300; +#X obj 311 436 # cos*; +#X msg 460 319 1600; +#X msg 513 249 25; +#X obj 373 212 +; +#X msg 513 268 100; +#X obj 504 192 hsl 128 15 100 2600 0 1 empty empty empty -2 -6 0 8 +-260818 -1 -1 2297 1; +#X text 364 435 make circular orbit of variable radius; +#X floatatom 502 211 5 0 0 0 - - -; +#X msg 461 338 800; +#X text 294 325 frequency of the orbit; +#X text 500 177 increment; +#X msg 373 192 1; +#X obj 64 58 s move; +#X obj 311 394 #outer + ( 0 9000 ); +#X obj 73 94 loadbang; +#X obj 19 0 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1; +#X obj 78 351 #out window; +#X obj 246 126 # +; +#X obj 438 299 # + 50; +#X text 401 197 counter; +#X obj 19 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 311 458 # + ( 120 160 ); +#X obj 19 309 #store; +#X text 65 113 blank image to start with; +#X text 272 127 translate the square; +#X text 546 247 make a wavy radius (50-100) \; the 1100 is its frequency +\; tune it for fun and profit.; +#X obj 19 58 t b b; +#X obj 368 232 t a a a; +#X msg 246 74 4 2 # -1 -1 -1 1 1 1 1 -1; +#X obj 19 22 metro 1.367; +#X obj 8 491 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 16 498 GridFlow 0.8.0; +#X obj 8 -38 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 21 -38 Blob.pd; +#X msg 514 287 10; +#X obj 437 257 # * 1000; +#X obj 101 215 #color; +#X obj 101 171 loadbang; +#X text 452 383 duplicate the angle \; make the 2nd 90 degrees apart +(required for a circle \; else it'll be an oval or a line); +#X obj 78 309 #draw_polygon + (3 # ); +#X text 21 -25 Copyright 2002 Mathieu Bouchard and Alexandre Castonguay +; +#X text 245 58 a 2x2 square's coordinates; +#X text 288 103 scale factor; +#X obj 246 102 # * 8; +#X obj 78 330 #solarize; +#X text 400 -1 This is the classic "Shadebob" effect of the demoscene +; +#X msg 101 193 12 24 36; +#X text 6 284 superimpose the light of many squares; +#X obj 438 278 # cos* 100; +#X connect 0 0 9 1; +#X connect 1 0 17 0; +#X connect 2 0 3 0; +#X connect 3 0 28 1; +#X connect 4 0 5 1; +#X connect 5 0 19 0; +#X connect 6 0 27 0; +#X connect 7 0 5 1; +#X connect 8 0 54 1; +#X connect 9 0 0 0; +#X connect 9 0 33 0; +#X connect 10 0 54 1; +#X connect 11 0 13 0; +#X connect 13 0 41 1; +#X connect 14 0 5 1; +#X connect 17 0 9 0; +#X connect 19 0 6 0; +#X connect 20 0 2 0; +#X connect 21 0 35 0; +#X connect 23 0 45 2; +#X connect 24 0 6 1; +#X connect 26 0 32 0; +#X connect 27 0 23 1; +#X connect 28 0 45 0; +#X connect 32 0 28 0; +#X connect 32 1 18 0; +#X connect 33 0 34 0; +#X connect 33 1 5 0; +#X connect 33 2 41 0; +#X connect 34 0 49 0; +#X connect 35 0 26 0; +#X connect 40 0 54 1; +#X connect 41 0 54 0; +#X connect 42 0 45 1; +#X connect 43 0 52 0; +#X connect 45 0 28 1; +#X connect 45 0 50 0; +#X connect 49 0 23 0; +#X connect 50 0 22 0; +#X connect 52 0 42 0; +#X connect 54 0 24 0; diff --git a/externals/gridflow/pd_examples/cellular_1d.pd b/externals/gridflow/pd_examples/cellular_1d.pd new file mode 100644 index 00000000..eb1c6c30 --- /dev/null +++ b/externals/gridflow/pd_examples/cellular_1d.pd @@ -0,0 +1,164 @@ +#N canvas 337 53 804 634 10; +#X obj 43 68 loadbang; +#X obj 93 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1 +; +#X obj 108 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1 +1; +#X obj 123 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1 +1; +#X obj 138 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 +1; +#X obj 153 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1 +1; +#X obj 168 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 +1; +#X obj 183 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1 +1; +#X obj 198 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 +1; +#X obj 124 498 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 86 256; +#X obj -5 188 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 17 332 1 256 # 1; +#X msg 43 102 1 256 # 2; +#X obj 17 -2 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1; +#X obj 418 199 loadbang; +#X msg 418 219 1 256 # 0; +#X text 131 482 characteristic number; +#X obj 428 11 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 4 256; +#X msg 467 69 \$1 256; +#X msg 352 82 set \$1; +#X text 104 124 randomizer; +#X text 91 361 specify behaviour here; +#X text 24 254 compute new state; +#X text 315 237 make scrollie; +#X text 367 270 convert bit matrix to rgb image; +#X text 313 250 (window height = 128); +#X obj 202 38 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 151 337 loadbang; +#X text 47 84 click here to restart; +#X obj 99 200 t a a; +#X obj 17 26 metro 33.3667; +#X obj 416 115 t a a; +#X obj 472 359 loadbang; +#X obj 389 495 unpack 0 0 0; +#X obj 564 494 unpack 0 0 0; +#X msg 389 394 3 # 0; +#X msg 565 395 3 # 255; +#X text 442 392 background; +#X text 629 395 foreground; +#X obj 17 292 t a a; +#X obj 43 124 # rand; +#X obj 17 234 #store; +#X obj 17 312 #finished; +#X obj 17 352 # <<; +#X obj 17 372 # &; +#X obj 17 392 # != 0; +#X obj 123 406 #pack 8; +#X obj 124 445 #fold +; +#X obj 124 466 #export; +#X obj 202 56 #for 0 256 1; +#X obj 202 76 # == 128; +#X obj 202 96 #redim ( 1 256 ); +#X obj 416 96 #import ( 1 256 ); +#X obj 416 135 #finished; +#X obj 352 157 #for 1 128 1; +#X obj 352 177 #outer ignore ( 0 ); +#X obj 352 197 #store; +#X obj 352 218 @join 0; +#X obj 351 287 #outer ignore ( 0 ); +#X obj 351 308 #store; +#X obj 398 308 #redim ( 2 3 ); +#X obj 389 414 #color; +#X obj 565 414 #color; +#X obj 389 475 #export_list; +#X obj 565 475 #export_list; +#X obj 492 526 #pack 6; +#X obj 17 272 #convolve (1 3 # 1 2 4); +#X obj 124 426 # << (0 1 2 3 4 5 6 7); +#X obj -4 550 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 4 557 GridFlow 0.8.0; +#X obj -7 -50 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 351 330 #out window; +#X text -3 -35 Copyright 2002 Mathieu Bouchard; +#X text -3 -49 Cellular_1d; +#X obj 428 34 max 1; +#X text 495 9 <-- number of new lines per frame; +#X text 221 37 <-- make single dot; +#X connect 0 0 12 0; +#X connect 1 0 46 0; +#X connect 2 0 46 1; +#X connect 3 0 46 2; +#X connect 4 0 46 3; +#X connect 5 0 46 4; +#X connect 6 0 46 5; +#X connect 7 0 46 6; +#X connect 8 0 46 7; +#X connect 9 0 44 1; +#X connect 10 0 41 0; +#X connect 11 0 43 0; +#X connect 12 0 40 0; +#X connect 13 0 30 0; +#X connect 14 0 15 0; +#X connect 15 0 56 1; +#X connect 17 0 74 0; +#X connect 18 0 52 1; +#X connect 19 0 54 0; +#X connect 26 0 49 0; +#X connect 27 0 2 0; +#X connect 27 0 3 0; +#X connect 27 0 7 0; +#X connect 27 0 5 0; +#X connect 29 0 41 1; +#X connect 29 1 52 0; +#X connect 30 0 41 0; +#X connect 31 0 53 0; +#X connect 31 1 57 1; +#X connect 32 0 35 0; +#X connect 32 0 36 0; +#X connect 33 0 65 0; +#X connect 33 1 65 1; +#X connect 33 2 65 2; +#X connect 34 0 65 3; +#X connect 34 1 65 4; +#X connect 34 2 65 5; +#X connect 35 0 61 0; +#X connect 36 0 62 0; +#X connect 39 0 42 0; +#X connect 39 1 43 1; +#X connect 40 0 29 0; +#X connect 41 0 66 0; +#X connect 42 0 11 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 29 0; +#X connect 46 0 67 0; +#X connect 47 0 48 0; +#X connect 48 0 9 0; +#X connect 49 0 50 0; +#X connect 50 0 51 0; +#X connect 51 0 29 0; +#X connect 52 0 31 0; +#X connect 53 0 54 0; +#X connect 54 0 55 0; +#X connect 55 0 56 0; +#X connect 56 0 57 0; +#X connect 57 0 56 1; +#X connect 57 0 58 0; +#X connect 58 0 59 0; +#X connect 59 0 71 0; +#X connect 60 0 59 1; +#X connect 61 0 63 0; +#X connect 62 0 64 0; +#X connect 63 0 33 0; +#X connect 64 0 34 0; +#X connect 65 0 60 0; +#X connect 66 0 39 0; +#X connect 67 0 47 0; +#X connect 74 0 19 0; +#X connect 74 0 18 0; diff --git a/externals/gridflow/pd_examples/color_correction.pd b/externals/gridflow/pd_examples/color_correction.pd new file mode 100644 index 00000000..2a153d20 --- /dev/null +++ b/externals/gridflow/pd_examples/color_correction.pd @@ -0,0 +1,154 @@ +#N canvas 455 129 676 546 10; +#X text 360 96 sigma (extremes); +#X obj 134 433 #out window; +#X text 361 171 linear (contrast); +#X obj 134 364 shunt 2; +#N canvas 1 96 188 188 color 0; +#X obj 55 134 # inv+; +#X obj 55 90 # inv+ 255; +#X obj 127 89 inlet; +#X obj 55 177 outlet 0; +#X obj 55 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 55 22 inlet; +#X obj 55 112 #outer <; +#X obj 55 155 # & 255; +#X obj 55 67 #for 0 256 1; +#X connect 0 0 7 0; +#X connect 1 0 6 0; +#X connect 2 0 6 1; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 7 0 3 0; +#X connect 8 0 1 0; +#X restore 184 386 pd color correction graph generator; +#X obj 19 295 #in; +#X text 360 244 constant (brightness); +#N canvas 604 262 237 400 color-correction 0; +#X obj 23 214 # + 128; +#X obj 23 194 # /; +#X obj 23 112 # *; +#X obj 23 291 # +; +#X obj 77 112 # max 32; +#X obj 23 317 # max 0; +#X obj 77 151 # tanh* 512; +#X obj 23 340 # min 255; +#X obj 23 64 # gamma; +#X obj 77 131 # << 5; +#X obj 23 93 # - 128; +#X obj 23 172 # tanh* 65535; +#X obj 23 132 # >> 2; +#X text 89 327 trim; +#X obj 95 242 inlet linear; +#X obj 114 264 inlet constant; +#X obj 23 243 # *>>8; +#X obj 77 93 inlet sigma; +#X obj 34 38 inlet gamma; +#X obj 23 12 inlet image; +#X obj 23 369 outlet image; +#X connect 0 0 16 0; +#X connect 1 0 0 0; +#X connect 2 0 12 0; +#X connect 3 0 5 0; +#X connect 4 0 2 1; +#X connect 4 0 9 0; +#X connect 5 0 7 0; +#X connect 6 0 1 1; +#X connect 7 0 20 0; +#X connect 8 0 10 0; +#X connect 9 0 6 0; +#X connect 10 0 2 0; +#X connect 11 0 1 0; +#X connect 12 0 11 0; +#X connect 14 0 16 1; +#X connect 15 0 3 1; +#X connect 16 0 3 0; +#X connect 17 0 4 0; +#X connect 18 0 8 1; +#X connect 19 0 8 0; +#X restore 176 274 pd color-correction; +#X obj 134 386 #store; +#X obj 29 5 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; +#X obj 29 50 #for 0 256 1; +#X msg 19 274 open teapot.png \, bang; +#X obj 164 298 #finished; +#X obj 29 27 metro 33.3667; +#X obj 19 254 loadbang; +#X obj 256 52 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 277 53 regular; +#X text 276 68 solarize; +#X text 277 82 solarize 2; +#X obj 29 91 shunt 3; +#X obj 29 163 t a; +#X obj 122 146 # sin* 255; +#X obj 123 127 # / 255; +#X obj 123 108 # * 18000; +#X obj 190 351 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 209 351 see picture; +#X text 209 366 see graph; +#X obj 8 231 spigot; +#X obj 57 232 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X text 13 214 enable stream; +#X text 361 20 gamma (midtones); +#X msg 254 143 3 # 256; +#X obj 253 123 loadbang; +#X msg 237 171 3 # 0; +#X obj 8 320 #camera; +#X obj 362 37 #color 0 1024 1; +#X obj 362 112 #color 0 1024 1; +#X obj 362 186 #color 0 1024 1; +#X obj 362 258 #color -256 256 1; +#X obj 51 114 #solarize; +#X obj 134 411 #apply_colormap_channelwise; +#X obj 2 -38 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 15 -25 Copyright 2002 Mathieu Bouchard; +#X obj 2 477 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 10 484 GridFlow 0.8.0; +#X text 15 -38 color_correction.pd; +#X obj 29 71 #outer + (0 0 0); +#X connect 3 0 8 0; +#X connect 3 1 4 0; +#X connect 4 0 1 0; +#X connect 5 0 8 1; +#X connect 7 0 12 0; +#X connect 7 0 4 1; +#X connect 7 0 40 1; +#X connect 8 0 40 0; +#X connect 9 0 13 0; +#X connect 10 0 46 0; +#X connect 11 0 5 0; +#X connect 12 0 3 0; +#X connect 13 0 10 0; +#X connect 13 0 27 0; +#X connect 14 0 11 0; +#X connect 15 0 19 1; +#X connect 19 0 20 0; +#X connect 19 1 39 0; +#X connect 19 2 23 0; +#X connect 20 0 7 0; +#X connect 21 0 20 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 3 1; +#X connect 27 0 34 0; +#X connect 28 0 27 1; +#X connect 31 0 35 0; +#X connect 31 0 36 0; +#X connect 31 0 37 0; +#X connect 32 0 31 0; +#X connect 32 0 33 0; +#X connect 33 0 38 0; +#X connect 34 0 8 1; +#X connect 35 0 7 1; +#X connect 36 0 7 2; +#X connect 37 0 7 3; +#X connect 38 0 7 4; +#X connect 39 0 20 0; +#X connect 40 0 1 0; +#X connect 46 0 19 0; diff --git a/externals/gridflow/pd_examples/color_detect.pd b/externals/gridflow/pd_examples/color_detect.pd new file mode 100644 index 00000000..91610cdb --- /dev/null +++ b/externals/gridflow/pd_examples/color_detect.pd @@ -0,0 +1,218 @@ +#N canvas 562 75 668 715 10; +#X obj 14 262 # > 0; +#X obj 68 284 # + 128; +#X obj 383 135 hsl 222 15 0 442 0 0 empty empty tolerance 8 8 0 8 -260818 +-1 -1 10300 1; +#X obj 224 530 #out window; +#X obj 68 262 # tanh* 127; +#X obj 86 2 #store; +#X obj 277 177 tgl 15 1 empty empty empty 0 -6 0 8 -261689 -258699 +-1 1 1; +#X obj 31 -64 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 14 179 # inv+; +#X obj 14 284 # << 8; +#X obj 14 160 #fold +; +#X obj 315 360 loadbang; +#X obj 298 398 #checkers; +#X obj 224 468 # +; +#X obj 224 445 # *; +#X obj 297 446 # *; +#X obj 224 489 # >> 8; +#X obj 297 424 # inv+ 256; +#X obj 271 490 # min 255; +#X obj 298 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 380 76 #color; +#X obj 72 22 s image; +#X obj 240 426 r image; +#X text 374 46 select a point in the color cube \; and a radius of +accepted similarity.; +#X obj 277 196 #pack 3; +#X obj 299 177 tgl 15 1 empty empty empty 0 -6 0 8 -225271 -24198 -1 +1 1; +#X obj 321 177 tgl 15 1 empty empty empty 0 -6 0 8 -228992 -62784 -1 +1 1; +#X text 271 161 enable selection on:; +#X text 339 178 all three = select sphere in color cube \; pick two += select circle in a color square \; pick one = select range in one +channel; +#X text 377 360 make background; +#X obj 57 217 # inv+; +#X obj 295 229 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -66577 +-1 0; +#X text 314 228 erase nonselected; +#X text 314 245 erase selected; +#X obj 295 269 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -66577 +-1 1; +#X text 317 268 strict; +#X text 316 284 fuzzy; +#X obj 296 325 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -66577 +-1 0; +#X text 318 324 see filtered image on checkers; +#X text 318 339 see opacity mask; +#X obj 224 406 t a a; +#N canvas 414 518 450 216 color 0; +#X obj 25 3 inlet bang; +#X obj 26 182 outlet image; +#X obj 26 144 # min 255; +#X obj 26 163 # max 0; +#X obj 178 31 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 25 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 178 88 #outer + ( 0 0 9000 ); +#X obj 48 24 t b b; +#X obj 26 81 #outer * ( 1 0 0 ); +#X obj 26 105 # +; +#X obj 178 132 # + ( 0 128 128 ); +#X obj 178 48 #for 0 320 1; +#X obj 179 67 # * 113; +#X obj 26 62 #outer + ( 320 # 0 ); +#X obj 26 43 #for -120 360 2; +#X obj 178 155 #redim ( 240 320 3 ); +#X obj 178 109 # cos* ( 0 128 128 ); +#X obj 26 124 #yuv_to_rgb; +#X connect 0 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 11 0; +#X connect 5 0 14 0; +#X connect 6 0 16 0; +#X connect 7 0 5 0; +#X connect 7 1 4 0; +#X connect 8 0 9 0; +#X connect 9 0 17 0; +#X connect 10 0 15 0; +#X connect 11 0 12 0; +#X connect 12 0 6 0; +#X connect 13 0 8 0; +#X connect 14 0 13 0; +#X connect 15 0 9 1; +#X connect 16 0 10 0; +#X connect 17 0 2 0; +#X restore 133 21 pd color panorama; +#X obj 133 2 loadbang; +#X obj 210 -53 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -66577 +-1 1; +#X text 229 -54 on video; +#X text 229 -38 on color panorama; +#X floatatom 336 136 5 0 0 0 - - -; +#X obj 76 240 # *>>8 256; +#X obj 338 302 hsl 129 15 4 4096 1 1 empty empty empty -2 -6 0 8 -260818 +-1 -1 7000 1; +#X floatatom 295 302 5 0 0 0 - - -; +#X obj 58 87 #rgb_to_yuv; +#X obj 90 55 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 107 55 RGB; +#X text 107 70 YUV; +#X text 141 55 warning: in YUV mode \,; +#X text 140 81 green slider = U chroma; +#X text 147 94 blue slider = V chroma; +#X text 154 68 red slider = Y luma; +#X obj 31 -39 metro 33.3667; +#X obj 31 22 t a a; +#X obj 31 1 #camera; +#X obj 332 446 spigot; +#X obj 379 447 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X text 398 448 recurrent layering; +#X obj 224 511 t a; +#X obj 14 141 # &; +#X obj 40 141 # inv+; +#X obj 36 397 # >> 6; +#X obj 14 198 shunt 2; +#X obj 14 241 shunt 2; +#X obj 14 55 shunt 2; +#X obj 14 306 shunt 2; +#X obj 68 308 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X text 87 302 sort-of feather; +#X obj 224 385 shunt 2; +#X text 87 317 (8x8 square blur on mask); +#X obj 31 -18 shunt 2; +#X obj 36 377 # + 32; +#X obj -2 561 cnv 15 740 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 6 568 GridFlow 0.8.0; +#X obj 1 -118 cnv 15 740 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 14 -118 color_detect.pd; +#X text 13 -105 Copyright 2001-2004 Mathieu Bouchard; +#X obj 14 122 # sq-; +#X obj 61 179 # sq-; +#X obj 36 337 #convolve (8 1 # 1); +#X obj 36 357 #convolve (1 8 # 1); +#X obj 14 457 #outer ignore (3 # 0); +#X obj 298 379 #for (0 0) (240 320) (1 1); +#X connect 0 0 9 0; +#X connect 1 0 71 0; +#X connect 2 0 46 0; +#X connect 4 0 1 0; +#X connect 5 0 59 0; +#X connect 6 0 24 0; +#X connect 7 0 58 0; +#X connect 8 0 68 0; +#X connect 9 0 71 0; +#X connect 10 0 8 0; +#X connect 11 0 19 0; +#X connect 12 0 15 1; +#X connect 13 0 16 0; +#X connect 14 0 13 0; +#X connect 15 0 13 1; +#X connect 16 0 64 0; +#X connect 17 0 15 0; +#X connect 18 0 64 0; +#X connect 19 0 88 0; +#X connect 20 0 83 1; +#X connect 22 0 14 1; +#X connect 24 0 66 0; +#X connect 25 0 24 1; +#X connect 26 0 24 2; +#X connect 30 0 69 0; +#X connect 31 0 68 1; +#X connect 34 0 69 1; +#X connect 37 0 74 1; +#X connect 40 0 14 0; +#X connect 40 1 17 0; +#X connect 41 0 5 1; +#X connect 42 0 41 0; +#X connect 43 0 76 1; +#X connect 46 0 84 0; +#X connect 47 0 4 0; +#X connect 48 0 49 0; +#X connect 49 0 47 1; +#X connect 50 0 83 0; +#X connect 51 0 70 1; +#X connect 58 0 76 0; +#X connect 59 0 70 0; +#X connect 59 1 21 0; +#X connect 60 0 59 0; +#X connect 61 0 15 1; +#X connect 62 0 61 1; +#X connect 64 0 3 0; +#X connect 64 0 61 0; +#X connect 65 0 10 0; +#X connect 66 0 65 1; +#X connect 67 0 87 0; +#X connect 68 0 69 0; +#X connect 68 1 30 0; +#X connect 69 0 0 0; +#X connect 69 1 47 0; +#X connect 70 0 83 0; +#X connect 70 1 50 0; +#X connect 71 0 87 0; +#X connect 71 1 85 0; +#X connect 72 0 71 1; +#X connect 74 0 40 0; +#X connect 74 1 18 0; +#X connect 76 0 60 0; +#X connect 76 1 5 0; +#X connect 77 0 67 0; +#X connect 83 0 65 0; +#X connect 84 0 8 1; +#X connect 85 0 86 0; +#X connect 86 0 77 0; +#X connect 87 0 74 0; +#X connect 88 0 12 0; diff --git a/externals/gridflow/pd_examples/convolve.pd b/externals/gridflow/pd_examples/convolve.pd new file mode 100644 index 00000000..19a08510 --- /dev/null +++ b/externals/gridflow/pd_examples/convolve.pd @@ -0,0 +1,94 @@ +#N canvas 17 90 652 511 10; +#X msg 382 117 3 3 # 0 4 0 4 9 -4 0 -4 0; +#X obj 20 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 386 63 3 3 # 4 0 0 0 1 0 0 0 4; +#X obj 20 130 #store; +#X obj 116 218 # / 9; +#X msg 381 37 3 3 # 1 1 1 1 1 1 1 1 1; +#X obj 76 131 #out window; +#X msg 399 180 1 3 # 0 9 -9; +#X obj 58 85 #in; +#X msg 387 90 3 3 # 2 2 2 2 -7 2 2 2 2; +#X obj 20 -24 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 116 286 @! abs; +#X obj 116 352 # max 0; +#X text 331 -15 step 1: select one of those six grids; +#X obj 116 331 # min 255; +#X obj 58 45 loadbang; +#X obj 20 2 metro 33.3667; +#X obj 58 107 t a; +#X obj 116 197 #convolve \, seed 4; +#X obj 332 5 loadbang; +#X text -7 149 feedback loop; +#X obj 116 244 shunt 2; +#X obj 171 246 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X msg 253 227 0; +#X obj 163 307 # + 128; +#X msg 253 251 1; +#X obj 331 307 display; +#X obj 48 233 fps; +#X obj 40 277 print; +#X obj -15 391 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 398 GridFlow 0.8.0; +#X text -7 398 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -72 Copyright 2002 Mathieu Bouchard; +#X text 0 -85 convolve.pd; +#X msg 399 159 1 3 # 0 2 -2; +#X msg 399 212 3 3 # 0 -1 0 -1 4 -1 0 -1 0; +#X msg 397 235 3 3 # -1 -1 -1 -1 8 -1 -1 -1 -1; +#X text 506 192 Laplacian masks; +#X msg 396 280 3 3 # 0 -1 0 -1 13 -1 0 -1 0; +#X text 542 261 Sharpen; +#X text 507 17 Blurs; +#X obj 163 265 # << 4; +#X text 416 140 Edge detection; +#X msg 58 65 open babbage.jpg \, bang; +#X connect 0 0 23 0; +#X connect 0 0 18 1; +#X connect 0 0 26 0; +#X connect 1 0 3 0; +#X connect 2 0 23 0; +#X connect 2 0 18 1; +#X connect 3 0 18 0; +#X connect 4 0 21 0; +#X connect 5 0 23 0; +#X connect 5 0 18 1; +#X connect 6 0 27 0; +#X connect 7 0 18 1; +#X connect 7 0 25 0; +#X connect 8 0 17 0; +#X connect 9 0 23 0; +#X connect 9 0 18 1; +#X connect 10 0 16 0; +#X connect 11 0 14 0; +#X connect 12 0 17 0; +#X connect 14 0 12 0; +#X connect 15 0 44 0; +#X connect 16 0 1 0; +#X connect 17 0 3 1; +#X connect 17 0 6 0; +#X connect 18 0 4 0; +#X connect 19 0 5 0; +#X connect 21 0 11 0; +#X connect 21 1 42 0; +#X connect 22 0 21 1; +#X connect 23 0 22 0; +#X connect 24 0 14 0; +#X connect 25 0 22 0; +#X connect 27 0 28 0; +#X connect 35 0 23 0; +#X connect 35 0 18 1; +#X connect 36 0 18 1; +#X connect 36 0 25 0; +#X connect 37 0 25 0; +#X connect 37 0 18 1; +#X connect 39 0 23 0; +#X connect 39 0 18 1; +#X connect 42 0 24 0; +#X connect 44 0 8 0; diff --git a/externals/gridflow/pd_examples/cross_fade.pd b/externals/gridflow/pd_examples/cross_fade.pd new file mode 100644 index 00000000..f7af6195 --- /dev/null +++ b/externals/gridflow/pd_examples/cross_fade.pd @@ -0,0 +1,73 @@ +#N canvas 401 101 681 500 10; +#X obj 33 191 # *>>8; +#X text 60 235 first picture plus a fraction of the difference; +#X obj 33 233 # +; +#X obj 33 170 #store; +#X obj 264 103 # inv+; +#X obj 88 254 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X text 152 324 note: the #layer/#join objects can make the crossfade +process simpler but it's still not faster.; +#X obj 50 -30 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X msg 309 72 open r001.jpg \, cast int16 \, bang; +#X obj 283 72 #in; +#X obj 33 149 #finished; +#X text 109 257 click to clip out-of-range colours; +#X text 82 190 multiply by a N/256 fraction; +#X obj 81 295 # max 0; +#X obj 264 51 #in; +#X obj 81 274 # min 255; +#X obj 33 326 #out window; +#X obj 33 109 #cast int16; +#X text 81 170 keep the difference between both pictures; +#X msg 290 51 open b001.jpg \, cast int16 \, bang; +#X obj 290 31 t b b; +#X obj 330 31 loadbang; +#X obj 33 253 shunt 2; +#X obj 50 -5 metro 33.3667; +#X obj 50 15 float; +#X obj 62 44 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 94 14 + 4; +#X obj 50 65 pingpong 256; +#X obj 61 87 hsl 129 15 0 256 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X obj 33 128 t a a; +#X text 153 362 also #draw_image/#join is a possibility; +#X obj 0 -77 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 14 -64 Copyright 2002 Mathieu Bouchard; +#X text 14 -80 cross_fade.pd; +#X obj 0 391 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 8 399 GridFlow 0.8.0; +#X connect 0 0 2 0; +#X connect 2 0 22 0; +#X connect 3 0 0 0; +#X connect 4 0 3 1; +#X connect 5 0 22 1; +#X connect 7 0 23 0; +#X connect 8 0 9 0; +#X connect 9 0 4 1; +#X connect 10 0 3 0; +#X connect 13 0 16 0; +#X connect 14 0 4 0; +#X connect 14 0 2 1; +#X connect 15 0 13 0; +#X connect 17 0 29 0; +#X connect 19 0 14 0; +#X connect 20 0 19 0; +#X connect 20 1 8 0; +#X connect 21 0 20 0; +#X connect 22 0 16 0; +#X connect 22 1 15 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 24 0 26 0; +#X connect 24 0 27 0; +#X connect 26 0 24 1; +#X connect 27 0 28 0; +#X connect 27 0 17 0; +#X connect 29 0 10 0; +#X connect 29 1 0 1; diff --git a/externals/gridflow/pd_examples/drag_rectangle.pd b/externals/gridflow/pd_examples/drag_rectangle.pd new file mode 100644 index 00000000..3453c9a8 --- /dev/null +++ b/externals/gridflow/pd_examples/drag_rectangle.pd @@ -0,0 +1,110 @@ +#N canvas 702 123 647 484 10; +#X obj 231 -7 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 231 117 #out window; +#X obj 21 144 hsl 128 15 0 319 0 0 h_end_o h_end_i empty -2 -8 1 10 +-262144 -1 -1 12700 1; +#X obj 21 -4 hsl 128 15 0 319 0 0 h_start_o h_start_i empty 0 8 1 10 +-262144 -66577 -258699 0 0; +#X obj 3 13 vsl 15 128 239 0 0 0 v_start_o v_start_i empty 0 -8 1 10 +-262144 -1 -1 12647 1; +#X obj 151 13 vsl 15 128 239 0 0 0 v_end_o v_end_i empty 0 -8 1 10 +-262144 -1 -1 425 1; +#N canvas 504 374 452 302 make_rectangle 0; +#X obj 27 16 inlet; +#X text 25 -3 image; +#X obj 93 17 inlet; +#X text 92 0 start pos; +#X obj 172 18 inlet; +#X text 172 1 end pos; +#X obj 27 244 outlet; +#X text 27 264 image; +#X obj 93 37 unpack 0 0; +#X obj 173 37 unpack 0 0; +#X obj 126 61 #pack 4; +#X obj 125 81 #export_list; +#X msg 95 135 4 2 # \$1 \$2 \$1 \$4 \$3 \$4 \$3 \$2; +#X obj 27 177 #draw_polygon >> ( 1 1 1 ); +#X connect 0 0 13 0; +#X connect 2 0 8 0; +#X connect 4 0 9 0; +#X connect 8 0 10 0; +#X connect 8 1 10 1; +#X connect 9 0 10 2; +#X connect 9 1 10 3; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 13 2; +#X connect 13 0 6 0; +#X restore 231 97 pd make_rectangle; +#X obj 231 43 metro 33.3667; +#X text -22 -5 start; +#X text 155 144 end; +#X obj 328 23 loadbang; +#X obj 231 72 #store; +#X obj 393 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 315 117 #mouse \, ...; +#X obj 260 266 listelement 0; +#X obj 367 190 listelement 1; +#X obj 260 225 listelement 0; +#X obj 368 149 listelement 1; +#X obj 368 170 s h_start_i; +#X obj 367 211 s h_end_i; +#X obj 260 287 s v_end_i; +#X obj 260 246 s v_start_i; +#X obj 378 65 loadbang; +#X msg 378 85 0 0; +#X obj 328 161 t a; +#X obj 64 330 #out window; +#X obj 47 267 #for ( 0 0 ) ( 0 0 ) ( 1 1 ); +#X obj 112 221 t b a; +#X obj 64 294 #store; +#X msg 48 243 set ( \$1 \$2 ); +#X obj 327 43 #in b001.jpg; +#X text 30 35 drag the mouse; +#X text 56 20 step 2:; +#X text 39 51 inside the; +#X text 37 66 first window; +#X text 218 -25 step 1: turn on; +#X text 69 312 cropping (to 2nd window); +#X obj -41 373 cnv 15 640 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -33 380 GridFlow 0.8.0; +#X text -33 380 GridFlow 0.8.0; +#X obj -40 -77 cnv 15 640 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -27 -64 Copyright 2002 Mathieu Bouchard; +#X text -27 -77 drag_rectangle.pd; +#X connect 0 0 7 0; +#X connect 1 0 13 0; +#X connect 6 0 1 0; +#X connect 7 0 11 0; +#X connect 10 0 30 0; +#X connect 11 0 6 0; +#X connect 12 0 30 0; +#X connect 13 0 6 1; +#X connect 13 0 16 0; +#X connect 13 0 17 0; +#X connect 13 0 29 0; +#X connect 13 0 24 0; +#X connect 13 1 24 0; +#X connect 13 2 24 0; +#X connect 13 2 27 0; +#X connect 14 0 20 0; +#X connect 15 0 19 0; +#X connect 16 0 21 0; +#X connect 17 0 18 0; +#X connect 22 0 23 0; +#X connect 23 0 6 1; +#X connect 23 0 6 2; +#X connect 24 0 14 0; +#X connect 24 0 15 0; +#X connect 24 0 6 2; +#X connect 26 0 28 0; +#X connect 27 0 26 0; +#X connect 27 1 26 1; +#X connect 28 0 25 0; +#X connect 29 0 26 0; +#X connect 30 0 11 1; +#X connect 30 0 28 1; diff --git a/externals/gridflow/pd_examples/eclipse.pd b/externals/gridflow/pd_examples/eclipse.pd new file mode 100644 index 00000000..65ef9ef3 --- /dev/null +++ b/externals/gridflow/pd_examples/eclipse.pd @@ -0,0 +1,80 @@ +#N canvas 623 182 635 533 10; +#X floatatom 292 323 5 0 0 0 - - -; +#X msg 244 303 24; +#X obj 61 -35 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 244 281 loadbang; +#X msg 292 303 32; +#X floatatom 244 323 5 0 0 0 - - -; +#X obj 38 17 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 61 -6 metro 33.3667; +#X text 239 258 size of subimages; +#X obj 61 111 t a a a; +#X obj 61 166 t a a; +#X text 224 54 gain on colour blue; +#X obj 61 17 #camera; +#X obj 61 73 #scale_by 2; +#X obj 141 97 #dim; +#X obj 141 117 #inner (3 2 # 1 0 0 1 0 0); +#X obj 61 147 #finished; +#X obj 61 211 # /; +#X obj 61 234 # *; +#X obj 58 265 #store; +#X obj 70 311 # *; +#X obj 70 334 # >> 7; +#X obj 70 356 # min 255; +#X obj 70 378 #out window; +#X obj 244 343 #pack 2; +#X obj 141 242 # /; +#X obj 107 265 #store; +#X obj 107 242 # *; +#X obj 61 186 #for (0 0) (240 320) (1 1); +#X obj 107 208 #for (0 0) (240 320) (1 1); +#X obj 61 54 # *>>8 (256 256 384); +#X obj 1 418 cnv 15 640 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 9 425 GridFlow 0.8.0; +#X text 9 425 GridFlow 0.8.0; +#X obj 3 -85 cnv 15 640 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 16 -72 Copyright 2002 Mathieu Bouchard; +#X text 121 17 <-- open this; +#X text 16 -85 eclipse.pd; +#X connect 0 0 24 1; +#X connect 1 0 5 0; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 5 0 24 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 9 0 16 0; +#X connect 9 1 14 0; +#X connect 9 1 19 1; +#X connect 9 1 26 1; +#X connect 10 0 28 0; +#X connect 10 1 29 0; +#X connect 12 0 30 0; +#X connect 13 0 9 0; +#X connect 14 0 15 0; +#X connect 15 0 25 0; +#X connect 15 0 28 1; +#X connect 15 0 29 1; +#X connect 16 0 10 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 17 1; +#X connect 24 0 18 1; +#X connect 24 0 25 1; +#X connect 25 0 27 1; +#X connect 26 0 20 1; +#X connect 27 0 26 0; +#X connect 28 0 17 0; +#X connect 29 0 27 0; +#X connect 30 0 13 0; diff --git a/externals/gridflow/pd_examples/epicycloid.pd b/externals/gridflow/pd_examples/epicycloid.pd new file mode 100644 index 00000000..c1589de9 --- /dev/null +++ b/externals/gridflow/pd_examples/epicycloid.pd @@ -0,0 +1,125 @@ +#N canvas 443 76 1178 736 10; +#X text 18 93 epicycloid; +#X text 18 116 x(t) = (R+r) cos(t) - p*cos((R+r)t/r); +#X text 18 140 y(t) = (R+r) sin(t) - p*sin((R+r)t/r); +#X obj 38 383 #draw_polygon put 1; +#X obj 287 438 #import ( 4 2 ); +#X obj 38 406 #out window; +#X obj -22 -22 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 327 375 pack f f f f; +#X msg 327 404 \$2 \$1 \$4 \$1 \$4 \$3 \$2 \$3; +#X text 334 350 x; +#X text 394 352 y; +#X text 421 354 y+1; +#X text 357 352 x+1; +#X floatatom 327 327 5 0 0 0 - - -; +#X obj 369 325 + 1; +#X floatatom 405 327 5 0 0 0 - - -; +#X obj 447 324 + 1; +#X obj 332 297 t f f; +#X obj 417 297 t f f; +#X obj 0 50 s met; +#X obj 286 350 r met; +#X obj 468 97 hsl 128 15 5 100 0 1 empty empty empty -2 -6 0 8 -24198 +-1 -1 5500 1; +#X obj 585 148 hsl 128 15 -100 100 0 1 empty empty empty -2 -6 0 8 +-44926 -1 -1 4000 1; +#X obj 732 173 hsl 128 15 -150 150 0 1 empty empty empty -2 -6 0 8 +-258699 -1 -1 3200 1; +#X text 439 52 t = valeur en angles de 0 a 360; +#X obj 465 153 t f f; +#X obj 582 180 t f f; +#X obj 729 193 t f f; +#X obj 333 127 * 6.28319; +#X obj 333 106 / 360; +#X floatatom 333 88 5 0 0 0 - - -; +#X obj 333 152 t f f; +#X obj -22 355 #store; +#X obj 15 205 loadbang; +#X obj 420 250 expr ($f2+$f3)*sin($f1) - $f4*sin(($f2+$f3)*$f1/$f3) +; +#X obj 333 212 expr ($f2+$f3)*cos($f1) - $f4*cos(($f2+$f3)*$f1/$f3) +; +#X obj 333 65 + 1; +#X msg 333 41 1; +#X floatatom 375 65 5 0 0 0 - - -; +#X msg 375 16 0; +#X text 406 19 reset count; +#X text 129 231 reset image; +#X text 540 126 r = Rayon du deuxieme cercle -100 a 100; +#X obj 420 275 + 150; +#X obj 333 272 + 150; +#X floatatom 477 123 5 0 0 0 - - -; +#X floatatom 633 173 5 0 0 0 - - -; +#X floatatom 779 196 5 0 0 0 - - -; +#X obj -22 7 metro 1; +#X obj 33 -21 hsl 128 15 0 15 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X text 440 78 R = Rayon du premier cercle 5 a 100; +#X obj -38 525 cnv 15 900 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -29 532 GridFlow 0.8.0; +#X text -29 532 GridFlow 0.8.0; +#X obj -35 -85 cnv 15 940 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 102 317 #color; +#X obj 102 268 loadbang; +#X msg 102 292 230 224 0; +#X msg 15 232 300 300 3 # 0; +#X text -22 -72 Copyright 2004 Alexandre Castonguay; +#X text -22 -85 epicycloid.pd; +#X text 80 204 start with a blank \, black image; +#X text 727 158 deuxieme cercle - 150 a 150; +#X text 727 143 p = distance du centre du; +#X connect 3 0 5 0; +#X connect 3 0 32 1; +#X connect 4 0 3 2; +#X connect 6 0 48 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 13 0 7 0; +#X connect 14 0 7 2; +#X connect 15 0 7 1; +#X connect 16 0 7 3; +#X connect 17 0 13 0; +#X connect 17 1 14 0; +#X connect 18 0 15 0; +#X connect 18 1 16 0; +#X connect 20 0 7 0; +#X connect 21 0 25 0; +#X connect 21 0 45 0; +#X connect 22 0 26 0; +#X connect 22 0 46 0; +#X connect 23 0 27 0; +#X connect 23 0 47 0; +#X connect 25 0 35 1; +#X connect 25 1 34 1; +#X connect 26 0 35 2; +#X connect 26 1 34 2; +#X connect 27 0 35 3; +#X connect 27 1 34 3; +#X connect 28 0 31 0; +#X connect 29 0 28 0; +#X connect 30 0 29 0; +#X connect 31 0 35 0; +#X connect 31 1 34 0; +#X connect 32 0 3 0; +#X connect 33 0 58 0; +#X connect 34 0 43 0; +#X connect 35 0 44 0; +#X connect 36 0 38 0; +#X connect 36 0 30 0; +#X connect 37 0 36 0; +#X connect 38 0 36 1; +#X connect 39 0 38 0; +#X connect 43 0 18 0; +#X connect 44 0 17 0; +#X connect 48 0 19 0; +#X connect 48 0 32 0; +#X connect 48 0 37 0; +#X connect 49 0 48 1; +#X connect 55 0 3 1; +#X connect 56 0 57 0; +#X connect 57 0 55 0; +#X connect 58 0 32 1; diff --git a/externals/gridflow/pd_examples/feedback_fractal.pd b/externals/gridflow/pd_examples/feedback_fractal.pd new file mode 100644 index 00000000..2d012a78 --- /dev/null +++ b/externals/gridflow/pd_examples/feedback_fractal.pd @@ -0,0 +1,147 @@ +#N canvas 609 30 779 549 10; +#N canvas 0 0 450 300 experimental 0; +#X obj 32 212 outlet 0; +#X obj 39 81 @for ( 0 0 ) ( 256 256 ) ( 1 1 ); +#X obj 39 55 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 207 64 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 206 87 @for ( 0 0 ) ( 256 256 ) ( 1 1 ); +#X obj 206 109 @ >> ( 4 6 ); +#X obj 39 104 @ << ( 4 2 ); +#X obj 198 140 @inner & ^ 1 ( 2 2 # 85 170 170 85 ); +#X obj 39 126 @ +; +#X obj 39 33 inlet; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 8 1; +#X connect 6 0 8 0; +#X connect 8 0 0 0; +#X connect 9 0 2 0; +#X restore 462 229 pd experimental features; +#X text 527 134 Choose Julia Mapping or Rotation; +#X obj 31 -34 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 414 67 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 190 59 apply transform (with feedback); +#X floatatom 454 281 5 0 0 0 - - -; +#X floatatom 451 323 5 0 0 0 - - -; +#X msg 84 319 cast uint8 \, bang; +#X text 530 281 zoom; +#X text 531 324 move x; +#X msg 501 324 -45; +#X msg 501 281 128; +#X obj 170 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 450 92 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 505 133 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X floatatom 451 303 5 0 0 0 - - -; +#X text 531 303 move y; +#X msg 501 303 193; +#X obj 31 -7 metro 33.3667; +#X obj 450 131 shunt 2; +#X obj 84 297 loadbang; +#X obj 414 45 t b b; +#X obj 414 21 loadbang; +#X obj 31 276 t a; +#X obj 202 99 loadbang; +#X obj 212 119 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 200 266 t a; +#X obj 31 21 t b b; +#X obj 73 22 float; +#X obj 73 41 + 1; +#X obj 84 61 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 24 256; +#X obj 508 257 t b; +#X text 230 120 reset transform; +#X obj 99 41 mod 60; +#X obj 73 81 sel 59; +#X obj 31 113 #store; +#X obj 31 189 # << 7; +#X obj 31 223 #fade 10; +#X obj 31 252 # >> 7; +#X obj 31 335 #store; +#X obj 84 340 #in teapot.png; +#X obj 31 364 #out window; +#X obj 414 391 # -; +#X obj 438 367 # - 128; +#X obj 438 345 #two; +#X obj 414 303 # /; +#X obj 414 229 #store; +#X obj 450 110 #for ( -128 -128 ) ( 128 128 ) ( 1 1 ); +#X obj 446 154 @complex_sq; +#X obj 461 175 #inner (2 2 # 120 30 -30 120); +#X obj -13 -87 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -15 431 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 438 GridFlow 0.8.0; +#X text -7 438 GridFlow 0.8.0; +#X text 0 -87 feedback_fractal.pd; +#X text 0 -74 Copyright 2001 Mathieu Bouchard; +#X obj 212 138 #for (0 0) (256 256) (1 1); +#X obj 210 210 #convolve (2 2 # 1); +#X obj 209 232 # >> 2; +#X obj 200 181 #store; +#X obj 200 159 #store; +#X connect 0 0 46 1; +#X connect 2 0 18 0; +#X connect 3 0 46 0; +#X connect 5 0 45 1; +#X connect 7 0 40 0; +#X connect 10 0 6 0; +#X connect 11 0 17 0; +#X connect 11 0 5 0; +#X connect 12 0 60 0; +#X connect 13 0 47 0; +#X connect 14 0 19 1; +#X connect 17 0 15 0; +#X connect 18 0 27 0; +#X connect 19 0 48 0; +#X connect 19 1 49 0; +#X connect 20 0 7 0; +#X connect 21 0 3 0; +#X connect 21 1 13 0; +#X connect 21 1 31 0; +#X connect 22 0 21 0; +#X connect 23 0 39 0; +#X connect 24 0 56 0; +#X connect 25 0 56 0; +#X connect 26 0 35 1; +#X connect 26 0 59 1; +#X connect 27 0 35 0; +#X connect 27 1 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 29 0 33 0; +#X connect 29 0 34 0; +#X connect 31 0 11 0; +#X connect 31 0 17 0; +#X connect 31 0 10 0; +#X connect 33 0 28 1; +#X connect 34 0 12 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 23 0; +#X connect 39 0 41 0; +#X connect 40 0 39 1; +#X connect 42 0 60 1; +#X connect 43 0 42 1; +#X connect 45 0 42 0; +#X connect 46 0 45 0; +#X connect 47 0 19 0; +#X connect 48 0 46 1; +#X connect 49 0 46 1; +#X connect 56 0 35 1; +#X connect 56 0 59 1; +#X connect 57 0 58 0; +#X connect 58 0 26 0; +#X connect 59 0 26 0; +#X connect 60 0 59 0; diff --git a/externals/gridflow/pd_examples/fire.pd b/externals/gridflow/pd_examples/fire.pd new file mode 100644 index 00000000..2a88a3a0 --- /dev/null +++ b/externals/gridflow/pd_examples/fire.pd @@ -0,0 +1,180 @@ +#N canvas 399 42 621 522 10; +#X obj 347 171 loadbang; +#X text 229 287 palette generator; +#X obj 103 329 fps detailed; +#X obj 250 325 #for 0 256 1; +#X obj 23 180 #store; +#X obj 250 347 #outer gamma; +#X obj 103 351 print; +#X msg 60 130 \$1 \$2 # 0; +#X obj 71 217 #outer ignore ( 0 ); +#X obj 250 304 #finished; +#X obj 23 -25 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 204 -21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 40 71 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 318 304 fork; +#X text 262 2 height width; +#X obj 103 307 #out window; +#X text 101 269 applying palette; +#X obj 103 287 #store; +#N canvas 268 454 450 300 circle 0; +#X obj 47 177 #fold +; +#X obj 47 244 # << 7; +#X obj 47 199 # >> 6; +#X obj 47 157 @! sq; +#X obj 47 222 # == 10; +#X obj 47 15 inlet size; +#X obj 47 267 outlet matrix; +#X obj 47 126 #for ( 0 0 ) ( 0 0 ) ( 1 1 ); +#X obj 47 34 # / 2; +#X obj 47 77 t a a; +#X obj 47 54 #export_list; +#X obj 47 101 # inv+; +#X connect 0 0 2 0; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 7 0 3 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 9 1 7 1; +#X connect 10 0 9 0; +#X connect 11 0 7 0; +#X restore 247 84 pd circle generator; +#N canvas 498 387 361 260 baseline 0; +#X obj 18 123 #fold +; +#X obj 127 149 - 4; +#X obj 18 56 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 18 101 # & ( -1 0 ); +#X obj 18 146 # ==; +#X obj 127 130 listelement 0; +#X text 93 10 line generator; +#X obj 18 166 # << 7; +#X obj 18 79 #for ( 0 0 ) ( 0 0 ) ( 1 1 ); +#X obj 127 110 #export_list; +#X obj 18 9 inlet size; +#X obj 18 187 outlet matrix; +#X obj 18 33 fork; +#X text 154 151 four pixels from bottom; +#X connect 0 0 4 0; +#X connect 1 0 4 1; +#X connect 2 0 8 0; +#X connect 3 0 0 0; +#X connect 4 0 7 0; +#X connect 5 0 1 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 5 0; +#X connect 10 0 12 0; +#X connect 12 0 2 0; +#X connect 12 1 9 0; +#X connect 12 1 8 1; +#X restore 204 117 pd baseline generator; +#X text 78 236 (height \, width \, 1) grid = grey image; +#X text 49 113 make blank image; +#X text 30 163 feedback loop; +#X text 78 200 (height \, width) grid = matrix; +#X obj 204 63 shunt 2; +#X obj 258 64 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 347 213 #color 0 800 1; +#X msg 347 191 600 200 75; +#X obj 224 -22 loadbang; +#N canvas 645 360 400 289 fire 1; +#X obj 174 180 #store; +#X obj 61 196 #export_list; +#X obj 6 65 # >> 2; +#X obj 6 26 fork; +#X obj 6 45 #convolve ( 3 3 # 1 0 0 0 1 0 1 1 1 ); +#X obj 6 235 # & 255; +#X obj 174 115 listmake; +#X obj 6 103 # / 80; +#X msg 174 138 \$1 1 # 256; +#X obj 174 97 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 174 78 route grid; +#X obj 60 155 inlet; +#X obj 274 146 # + 32; +#X obj 60 177 #dim; +#X obj 6 214 # +; +#X obj 6 258 outlet 0; +#X msg 274 101 256 \$2 # 64; +#X obj 6 84 # *; +#X obj 6 7 inlet image; +#X obj 274 79 inlet size; +#X text 102 8 this fire algorithm; +#X text 101 22 was designed by matju in 1994; +#X text 264 167 makes a cache of; +#X text 264 180 random numbers; +#X obj 174 159 # rand; +#X obj 274 123 # rand; +#X connect 0 0 17 1; +#X connect 1 0 6 1; +#X connect 2 0 17 0; +#X connect 3 0 4 0; +#X connect 3 1 10 0; +#X connect 4 0 2 0; +#X connect 5 0 15 0; +#X connect 6 0 8 0; +#X connect 7 0 14 0; +#X connect 8 0 24 0; +#X connect 9 0 6 0; +#X connect 10 0 9 0; +#X connect 11 0 14 1; +#X connect 11 0 13 0; +#X connect 12 0 0 1; +#X connect 13 0 1 0; +#X connect 14 0 5 0; +#X connect 16 0 25 0; +#X connect 17 0 7 0; +#X connect 18 0 3 0; +#X connect 19 0 16 0; +#X connect 24 0 0 0; +#X connect 25 0 12 0; +#X restore 71 180 pd fire generator; +#X text 183 46 note: reset the size if you change the generator; +#X msg 204 2 80 256; +#X obj 23 -2 metro 33.3667; +#X obj -15 -84 cnv 15 620 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -5 -84 fire.pd; +#X text -5 -71 Copyright 2001 Mathieu Bouchard; +#X obj -15 403 cnv 15 620 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 411 GridFlow 0.8.0; +#X text -7 411 GridFlow 0.8.0; +#X connect 0 0 27 0; +#X connect 2 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 29 0; +#X connect 5 0 17 1; +#X connect 7 0 4 1; +#X connect 8 0 17 0; +#X connect 9 0 3 0; +#X connect 10 0 32 0; +#X connect 11 0 31 0; +#X connect 12 0 4 0; +#X connect 13 0 9 0; +#X connect 13 1 5 1; +#X connect 15 0 2 0; +#X connect 17 0 15 0; +#X connect 18 0 29 1; +#X connect 19 0 29 1; +#X connect 24 0 19 0; +#X connect 24 1 18 0; +#X connect 25 0 24 1; +#X connect 26 0 13 0; +#X connect 27 0 26 0; +#X connect 28 0 31 0; +#X connect 29 0 8 0; +#X connect 29 0 4 1; +#X connect 31 0 7 0; +#X connect 31 0 29 2; +#X connect 31 0 24 0; +#X connect 32 0 4 0; diff --git a/externals/gridflow/pd_examples/game_of_life.pd b/externals/gridflow/pd_examples/game_of_life.pd new file mode 100644 index 00000000..c35187a9 --- /dev/null +++ b/externals/gridflow/pd_examples/game_of_life.pd @@ -0,0 +1,67 @@ +#N canvas 400 83 719 454 10; +#X text 41 -19 click here; +#X obj 23 -17 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 31 251 #out window; +#X text 48 92 this is the feedback loop; +#X obj 123 0 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 141 -1 for 0 10 1; +#X obj 263 53 loadbang; +#X obj 141 73 #store; +#X obj 141 19 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 31 291 print; +#X obj 31 271 fps detailed; +#X obj 31 113 fork; +#X text 159 19 next; +#N canvas 0 0 450 210 game 0; +#X obj 28 64 inlet matrix; +#X obj 28 141 outlet matrix; +#X text 18 14 this part at the left defines the rule of the game (this +is my own rewriting of the rules. it is equivalent to the original +but faster to compute.); +#X obj 28 83 # << (b # 1); +#X obj 28 103 #convolve (3 3 b # 0 0 0 0 1) \, op >> \, seed (b # -5) +; +#X obj 28 122 # < (b # 3); +#X connect 0 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X restore 31 72 pd game of life; +#X text 260 20 init with a random map; +#X text 262 35 10% white dots; +#X text 33 179 convert this 1-bit matrix to standard RGB \; 1 becomes +-1 becomes 255 \, but 0 stays 0; +#X obj 23 15 metro 5; +#X obj -15 339 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 346 GridFlow 0.8.0; +#X text -7 346 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -85 game_of_life.pd; +#X text 0 -72 Copyright 2001 Mathieu Bouchard; +#X obj 263 97 # rand (b #); +#X obj 263 119 # == (b # 0); +#X msg 263 75 240 320 b # 10; +#X obj 31 209 # inv+ (b # 0); +#X obj 31 230 #outer ignore (3 b #); +#X connect 1 0 17 0; +#X connect 2 0 10 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 26 0; +#X connect 7 0 13 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 11 0 27 0; +#X connect 11 1 7 1; +#X connect 13 0 11 0; +#X connect 17 0 7 0; +#X connect 24 0 25 0; +#X connect 25 0 11 0; +#X connect 26 0 24 0; +#X connect 27 0 28 0; +#X connect 28 0 2 0; diff --git a/externals/gridflow/pd_examples/goop.pd b/externals/gridflow/pd_examples/goop.pd new file mode 100644 index 00000000..8f96d2c4 --- /dev/null +++ b/externals/gridflow/pd_examples/goop.pd @@ -0,0 +1,138 @@ +#N canvas 481 120 730 701 10; +#X obj 91 -43 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 91 8 #camera; +#X obj 38 113 t a a; +#X msg 96 114 240 320 3 #; +#X obj 95 92 loadbang; +#N canvas 286 95 450 300 analysis 0; +#X obj 46 17 inlet; +#X obj 49 236 outlet; +#X obj 64 67 spigot; +#X obj 46 44 t a a; +#X obj 114 68 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 114 15 inlet; +#X obj 49 86 # -; +#X obj 49 129 # - 30; +#X obj 49 154 # max 0; +#X obj 49 182 # * 20; +#X obj 49 211 # min 256; +#X obj 49 108 @! abs; +#X connect 0 0 3 0; +#X connect 2 0 6 1; +#X connect 3 0 2 0; +#X connect 3 1 6 0; +#X connect 4 0 2 1; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X connect 11 0 7 0; +#X restore 192 94 pd analysis; +#X obj 275 94 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 123 433 r cam; +#X obj 113 67 s cam; +#X obj 91 33 t a a b; +#X obj 340 65 loadbang; +#X msg 307 66 1; +#X obj 417 85 loadbang; +#X msg 306 88 0; +#X obj 150 484 loadbang; +#X msg 150 504 set_geometry 0 0 480 640 \, hidecursor; +#X obj 338 89 delay 5000; +#X obj 91 -17 metro 33.3667; +#X obj -15 -84 cnv 15 640 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -17 582 cnv 15 640 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -6 592 GridFlow 0.8.0; +#X text 157 9 <-- open this and set your camera up; +#X obj 38 92 #store; +#X obj 71 143 # put 63; +#X obj 71 164 # rand; +#X obj 38 184 # +; +#X obj 161 144 # *>>8; +#X obj 192 121 # inv+ 256; +#X obj 38 211 #convolve (1 5 # 1); +#X obj 39 233 #convolve (5 1 # 1); +#X obj 39 306 # max -128; +#X obj 39 325 # min 127; +#X obj 39 344 # + 128; +#X obj 39 365 #inner (3 3 # 3 0 1 1 3 0 0 1 3); +#X obj 39 387 # >> 2; +#X obj 113 383 # inv+ 255; +#X obj 39 407 # *>>8; +#X obj 39 431 # +; +#X obj 70 431 # *>>8; +#X obj 39 457 #clip; +#X obj 337 209 #rgb_to_greyscale; +#X obj 337 235 # +; +#X obj 337 256 #convolve (1 3 # 1); +#X obj 337 278 #convolve (3 1 # 1); +#X obj 337 324 # min 255; +#X obj 337 345 #greyscale_to_rgb; +#X obj 116 547 #out window; +#X text 1 -85 goop.pd; +#X obj 39 478 #scale_by 2; +#X obj 71 185 # - 31; +#X obj 337 301 # *>>8 27; +#X obj 39 287 # *>>8 25; +#X text 1 -71 Copyright 2004 Mathieu Bouchard; +#X obj 39 261 # + 5; +#X connect 0 0 17 0; +#X connect 1 0 9 0; +#X connect 2 0 25 0; +#X connect 2 1 23 0; +#X connect 3 0 22 1; +#X connect 4 0 3 0; +#X connect 5 0 27 0; +#X connect 5 0 40 0; +#X connect 6 0 5 1; +#X connect 7 0 38 0; +#X connect 9 0 5 0; +#X connect 9 1 8 0; +#X connect 9 2 22 0; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 12 0 16 0; +#X connect 13 0 6 0; +#X connect 14 0 15 0; +#X connect 15 0 46 0; +#X connect 16 0 13 0; +#X connect 17 0 1 0; +#X connect 22 0 2 0; +#X connect 23 0 24 0; +#X connect 24 0 49 0; +#X connect 25 0 28 0; +#X connect 26 0 22 1; +#X connect 27 0 26 1; +#X connect 28 0 29 0; +#X connect 29 0 53 0; +#X connect 30 0 31 0; +#X connect 31 0 26 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 34 0; +#X connect 34 0 36 0; +#X connect 35 0 36 1; +#X connect 36 0 37 0; +#X connect 37 0 39 0; +#X connect 38 0 37 1; +#X connect 39 0 48 0; +#X connect 40 0 41 0; +#X connect 41 0 42 0; +#X connect 42 0 43 0; +#X connect 43 0 50 0; +#X connect 44 0 41 1; +#X connect 44 0 45 0; +#X connect 45 0 35 0; +#X connect 45 0 38 1; +#X connect 48 0 46 0; +#X connect 49 0 25 1; +#X connect 50 0 44 0; +#X connect 51 0 30 0; +#X connect 53 0 51 0; diff --git a/externals/gridflow/pd_examples/hello-world.pd b/externals/gridflow/pd_examples/hello-world.pd new file mode 100644 index 00000000..fb101d24 --- /dev/null +++ b/externals/gridflow/pd_examples/hello-world.pd @@ -0,0 +1,38 @@ +#N canvas 604 118 501 445 10; +#X obj 46 67 # / 320; +#X obj 46 187 # * 255; +#X obj 46 153 # != 0; +#X obj 46 -12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X obj 46 280 #out window; +#X obj 46 99 # inv+ 7; +#X obj 46 15 #for 0 320 1; +#X obj 46 48 # * 7; +#X obj 46 -34 loadbang; +#X text 66 -12 make one line:; +#X text 54 31 numbers 0 to 319; +#X text 55 84 numbers 0 to 6 repeated 45 or 46 times; +#X text 56 116 numbers 7 down to 1 ...; +#X text 53 172 3*1-bit rgb image line; +#X text 83 206 3*8-bit rgb image line; +#X text 53 234 repeat line 240 times; +#X obj -13 -85 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -86 hello-world.pd; +#X obj 46 134 #outer & (2 4 1); +#X obj 46 252 #redim (240 320 3); +#X obj -14 319 cnv 15 500 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 325 GridFlow 0.8.0; +#X text -7 325 GridFlow 0.8.0; +#X text 0 -72 Copyright 2001 Mathieu Bouchard; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 5 0 18 0; +#X connect 6 0 7 0; +#X connect 7 0 0 0; +#X connect 8 0 3 0; +#X connect 18 0 2 0; +#X connect 19 0 4 0; diff --git a/externals/gridflow/pd_examples/image_stats.pd b/externals/gridflow/pd_examples/image_stats.pd new file mode 100644 index 00000000..9f9c753a --- /dev/null +++ b/externals/gridflow/pd_examples/image_stats.pd @@ -0,0 +1,62 @@ +#N canvas 391 151 716 416 10; +#X obj 257 173 print total_value; +#X obj 523 151 #dim; +#X obj 22 187 #export_list; +#X obj 328 150 print number_of_values; +#X obj 523 200 print number_of_dimensions; +#X obj 523 173 #export; +#X obj 185 91 #fold +; +#X obj 281 201 /; +#X obj 185 135 #fold +; +#X obj 22 215 print total_pixel; +#X obj 185 57 fork; +#X obj 245 28 #in; +#X obj 328 106 #fold * \, seed 1; +#X obj 480 112 print dimensions; +#X obj 281 228 print average_value; +#X obj 186 157 #export; +#X obj 185 113 #fold +; +#X obj 480 90 #export_list; +#X obj 480 68 #dim; +#X obj 328 84 #dim; +#X obj 328 128 #export; +#X msg 271 -35 open bluemarble.jpg \, bang; +#X msg 271 -15 open teapot.png \, bang; +#X msg 271 5 open r001.jpg \, bang; +#X obj -15 304 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 311 GridFlow 0.8.0; +#X text -7 311 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -5 -72 Copyright 2001 Mathieu Bouchard; +#X text -5 -86 image_stats.pd; +#X obj 22 131 #fold + \, seed (3 #); +#X obj 22 92 #fold + \, seed (3 #); +#X text 460 -36 <-- click on one of these; +#X connect 1 0 5 0; +#X connect 2 0 9 0; +#X connect 5 0 4 0; +#X connect 6 0 16 0; +#X connect 7 0 14 0; +#X connect 8 0 15 0; +#X connect 10 0 6 0; +#X connect 10 0 31 0; +#X connect 10 1 19 0; +#X connect 11 0 10 0; +#X connect 11 0 18 0; +#X connect 12 0 20 0; +#X connect 15 0 0 0; +#X connect 15 0 7 0; +#X connect 16 0 8 0; +#X connect 17 0 13 0; +#X connect 18 0 17 0; +#X connect 18 0 1 0; +#X connect 19 0 12 0; +#X connect 20 0 3 0; +#X connect 20 0 7 1; +#X connect 21 0 11 0; +#X connect 22 0 11 0; +#X connect 23 0 11 0; +#X connect 30 0 2 0; +#X connect 31 0 30 0; diff --git a/externals/gridflow/pd_examples/linear_transform.pd b/externals/gridflow/pd_examples/linear_transform.pd new file mode 100644 index 00000000..b5e87d8d --- /dev/null +++ b/externals/gridflow/pd_examples/linear_transform.pd @@ -0,0 +1,123 @@ +#N canvas 454 137 685 580 10; +#X text 455 -6 click here to go in manual mode; +#X floatatom 138 224 5 0 0 0 - - -; +#X obj 7 289 # >> 11; +#X obj 7 62 #store; +#X obj 194 204 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0 +8 -260818 -1 -1 0 1; +#X obj 545 123 * 3; +#X obj 418 376 # sin*; +#X obj 194 223 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0 +8 -260818 -1 -1 0 1; +#X floatatom 138 170 5 0 0 0 - - -; +#X msg 448 137 10000; +#X obj 7 -26 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1; +#X obj 194 166 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0 +8 -260818 -1 -1 0 1; +#X obj 94 40 loadbang; +#X obj 82 266 #redim ( 2 2 ); +#X text 191 147 linear transform; +#X obj 7 310 # + 128; +#X floatatom 138 188 5 0 0 0 - - -; +#X floatatom 138 206 5 0 0 0 - - -; +#X obj 194 185 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0 +8 -260818 -1 -1 0 1; +#X obj 418 175 vsl 15 128 0 35999 0 0 empty empty empty 0 -8 0 8 -260818 +-1 -1 12700 1; +#X obj 453 174 vsl 15 128 -10000 10000 0 0 empty empty empty 0 -8 0 +8 -260818 -1 -1 7400 1; +#X obj 427 34 % 36000; +#X obj 448 116 loadbang; +#X text 360 146 rotozoomer; +#X obj 545 143 # sin* 100; +#X obj 384 -6 shunt 2; +#X msg 132 342 open teapot.png \, bang; +#X msg 545 215 set \$1; +#X obj 132 321 loadbang; +#X obj 7 363 #store; +#X obj 7 384 #out window; +#X obj 453 312 t b f; +#X obj 439 -5 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1 +; +#X obj 81 247 #pack 4; +#X obj 7 35 t b b; +#X obj 384 33 float; +#X obj 427 14 + 100; +#X obj 545 164 # inv* 100000; +#X obj 545 185 #export; +#X obj 63 341 #camera; +#X obj 132 363 #in; +#X obj 63 321 spigot; +#X obj 111 322 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 7 268 #inner; +#X obj 81 144 loadbang; +#X obj 23 412 fps detailed; +#X obj 23 435 print; +#X obj 7 8 metro 5; +#X obj -18 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 1 -72 Copyright 2002 Mathieu Bouchard; +#X text 1 -85 convolve.pd; +#X obj -18 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 1 -85 linear_transform.pd; +#X obj 94 61 #for (-128 -128) (128 128) (1 1); +#X obj 418 355 #outer + (9000 18000 0 9000); +#X text 1 -72 Copyright 2001 Mathieu Bouchard; +#X obj -18 464 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -10 471 GridFlow 0.8.0; +#X text -10 471 GridFlow 0.8.0; +#X connect 1 0 33 3; +#X connect 2 0 15 0; +#X connect 3 0 43 0; +#X connect 4 0 17 0; +#X connect 5 0 24 0; +#X connect 6 0 13 0; +#X connect 7 0 1 0; +#X connect 8 0 33 0; +#X connect 9 0 20 0; +#X connect 10 0 47 0; +#X connect 11 0 8 0; +#X connect 12 0 53 0; +#X connect 13 0 43 1; +#X connect 15 0 29 0; +#X connect 16 0 33 1; +#X connect 17 0 33 2; +#X connect 18 0 16 0; +#X connect 19 0 54 0; +#X connect 20 0 31 0; +#X connect 21 0 35 1; +#X connect 22 0 9 0; +#X connect 24 0 37 0; +#X connect 25 0 35 0; +#X connect 26 0 40 0; +#X connect 27 0 20 0; +#X connect 28 0 26 0; +#X connect 29 0 30 0; +#X connect 30 0 45 0; +#X connect 31 0 19 0; +#X connect 31 1 6 1; +#X connect 32 0 25 1; +#X connect 33 0 13 0; +#X connect 34 0 3 0; +#X connect 34 1 25 0; +#X connect 34 1 41 0; +#X connect 35 0 36 0; +#X connect 35 0 19 0; +#X connect 35 0 5 0; +#X connect 36 0 21 0; +#X connect 37 0 38 0; +#X connect 38 0 27 0; +#X connect 38 0 31 0; +#X connect 39 0 29 1; +#X connect 40 0 29 1; +#X connect 41 0 39 0; +#X connect 42 0 41 1; +#X connect 43 0 2 0; +#X connect 44 0 33 0; +#X connect 45 0 46 0; +#X connect 47 0 34 0; +#X connect 53 0 3 1; +#X connect 54 0 6 0; diff --git a/externals/gridflow/pd_examples/motion_detect.pd b/externals/gridflow/pd_examples/motion_detect.pd new file mode 100644 index 00000000..c0d00178 --- /dev/null +++ b/externals/gridflow/pd_examples/motion_detect.pd @@ -0,0 +1,44 @@ +#N canvas 564 180 494 470 10; +#X obj 32 -33 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 37 193 #downscale_by ( 15 20 ) smoothly; +#X obj 37 219 #scale_by ( 32 32 ); +#X obj 37 251 #out window; +#X obj 32 42 t a a; +#X obj 37 68 # -; +#X obj 37 91 @! abs; +#X obj 37 114 # * 8; +#X obj 37 140 # - 64; +#X obj 61 291 fps detailed; +#X obj 61 311 print; +#X obj 32 -6 metro 33.3667; +#X obj 32 18 #camera; +#X obj 37 165 #clip; +#X obj -15 353 cnv 15 500 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 360 GridFlow 0.8.0; +#X text -7 360 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -5 -85 motion_detect.pd; +#X text -6 -72 Copyright 2001 Mathieu Bouchard; +#X obj 181 253 display; +#X text 127 79 This patch demonstrates the basis of motion detection. +The substraction of two subsequent frames after [t a a]. It then downscales +and rescales the image \, breaking it down into larger regions that +can be monitored for changes.; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 1 0 20 0; +#X connect 2 0 3 0; +#X connect 3 0 9 0; +#X connect 4 0 5 1; +#X connect 4 1 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 13 0; +#X connect 9 0 10 0; +#X connect 11 0 12 0; +#X connect 12 0 4 0; +#X connect 13 0 1 0; diff --git a/externals/gridflow/pd_examples/nervous_video.pd b/externals/gridflow/pd_examples/nervous_video.pd new file mode 100644 index 00000000..1f20094e --- /dev/null +++ b/externals/gridflow/pd_examples/nervous_video.pd @@ -0,0 +1,154 @@ +#N canvas 446 102 590 659 10; +#X obj 33 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 123 298 450 300 counter 0; +#X obj 131 70 + 1; +#X obj 131 23 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 170 70 5 0 0 0 - - -; +#X msg 131 47 1; +#X floatatom 170 114 5 0 0 0 - - -; +#X obj 132 157 select 1; +#X msg 170 44 0; +#X obj 132 178 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 70 25 inlet; +#X obj 132 195 outlet; +#X obj 220 65 inlet; +#X obj 298 106 outlet; +#X obj 170 95 >= 32; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 0 1; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 2 0; +#X connect 7 0 9 0; +#X connect 8 0 1 0; +#X connect 10 0 12 1; +#X connect 12 0 4 0; +#X restore 241 137 pd counter; +#X obj 24 252 / 10; +#X floatatom 24 290 5 0 0 0 - - -; +#X obj 24 -26 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X floatatom 25 504 5 0 0 0 - - -; +#X obj 24 484 fps; +#X obj 24 2 metro 33.3667; +#X msg 24 314 list \$1; +#X msg 225 315 reassign \, 32 240 320 3 #; +#X msg 225 295 reassign \, 32 120 160 3 #; +#X msg 225 335 reassign \, 32 480 640 3 #; +#X msg 316 94 32; +#X obj 24 233 random 320; +#X obj 24 461 #out window; +#X floatatom 316 114 5 0 0 0 - - -; +#X obj 347 94 loadbang; +#X text 358 113 maximum value is 32; +#X text 359 126 (see below); +#X obj 24 120 float; +#X text 203 277 the buffer size decides the maximum loop length; +#X obj 24 189 shunt 4; +#X obj 24 213 bang; +#X obj 24 271 int; +#X obj 145 163 vradio 15 1 0 4 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 166 163 caffeine twitch; +#X text 166 178 ethanol lag; +#X obj 131 233 * 2; +#X obj 160 234 * -1; +#X text 166 209 back flash acid; +#X text 165 193 acid flash back; +#X obj 255 369 vradio 15 1 0 4 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 273 366 plain; +#X text 274 399 hilitemotion; +#X text 273 415 embossmotion; +#X obj 80 402 @! abs; +#X text 133 -3 This patch was created by Alexandre Castonguay \,; +#X text 133 10 as a clone of Edo Tannenbaum's "nervous video" effect +\, http://effectv.sourceforge.net; +#X text 133 38 Later modified by Mathieu to add more effects; +#X obj 80 381 # -; +#X obj 81 421 # << 2; +#X obj 102 233 + 1; +#X obj 135 382 # -; +#X obj 136 401 # + 128; +#X obj 136 421 # max 0; +#X obj 80 441 # min 255; +#X obj 24 358 shunt 4; +#X obj 119 353 shunt 4; +#X text 273 384 mix 50%; +#X obj 34 421 # >> 1; +#X obj 38 388 # +; +#X obj 89 101 #camera; +#X obj 24 53 t b b b; +#X obj -16 536 cnv 15 700 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 543 GridFlow 0.8.0; +#X text -7 543 GridFlow 0.8.0; +#X obj -17 -85 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -6 -86 nervous_video.pd; +#X text -7 -74 Copyright 2002 Alexandre Castonguay \, Mathieu Bouchard +; +#X text 146 101 <-- open this; +#X obj 24 333 #store (32 240 320 3 #); +#X msg 316 165 put_at ( \$1 0 0 0 ); +#X connect 0 0 52 0; +#X connect 1 1 61 0; +#X connect 1 1 19 1; +#X connect 2 0 23 0; +#X connect 3 0 8 0; +#X connect 4 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 52 0; +#X connect 8 0 60 0; +#X connect 9 0 60 1; +#X connect 10 0 60 1; +#X connect 11 0 60 1; +#X connect 12 0 15 0; +#X connect 13 0 2 0; +#X connect 14 0 6 0; +#X connect 15 0 1 1; +#X connect 16 0 12 0; +#X connect 19 0 21 0; +#X connect 21 0 22 0; +#X connect 21 1 41 0; +#X connect 21 2 27 0; +#X connect 21 3 28 0; +#X connect 22 0 13 0; +#X connect 23 0 3 0; +#X connect 24 0 21 1; +#X connect 27 0 8 0; +#X connect 28 0 8 0; +#X connect 31 0 47 1; +#X connect 31 0 46 1; +#X connect 35 0 40 0; +#X connect 39 0 35 0; +#X connect 40 0 45 0; +#X connect 41 0 8 0; +#X connect 42 0 43 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 14 0; +#X connect 46 0 14 0; +#X connect 46 1 50 0; +#X connect 46 2 39 0; +#X connect 46 3 42 0; +#X connect 47 1 50 1; +#X connect 47 2 39 1; +#X connect 47 3 42 1; +#X connect 49 0 14 0; +#X connect 50 0 49 0; +#X connect 51 0 47 0; +#X connect 51 0 60 1; +#X connect 52 0 19 0; +#X connect 52 1 51 0; +#X connect 52 2 1 0; +#X connect 60 0 46 0; +#X connect 61 0 60 1; diff --git a/externals/gridflow/pd_examples/photo_pianoroll.pd b/externals/gridflow/pd_examples/photo_pianoroll.pd new file mode 100644 index 00000000..b97e2008 --- /dev/null +++ b/externals/gridflow/pd_examples/photo_pianoroll.pd @@ -0,0 +1,159 @@ +#N canvas 476 141 695 640 10; +#X obj 146 24 #in lada.jpg; +#X obj 58 479 #out window; +#X obj 28 -9 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; +#X obj 58 93 #store; +#X obj 164 3 loadbang; +#X text 268 -34 How to play a car; +#X obj 146 4 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 406 488 dac~; +#X obj 333 54 +; +#X msg 333 33 1; +#X obj 361 54 % 365; +#N canvas 0 0 450 300 fft 0; +#X obj 23 68 rifft~; +#X obj 23 88 outlet~; +#X obj 359 16 block~ 1024; +#X obj 23 48 tabreceive~ array2; +#X connect 0 0 1 0; +#X connect 3 0 0 0; +#X restore 405 448 pd fft; +#X obj 7 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1 +; +#X obj 28 40 t b b; +#X msg 284 418 4 2 # 0 0 0 502 1 502 1 0; +#X obj 284 437 # +; +#X obj 58 418 t a b; +#X msg 311 437 \$1 0; +#X obj 58 439 #greyscale_to_rgb; +#X obj 477 135 #store; +#X obj 476 214 #export_list; +#X obj 517 234 s array1; +#X obj 477 174 #cast float32; +#X obj 186 126 # inv+ 255; +#X obj 146 64 # min 255; +#X obj 146 45 # * 3; +#X msg 477 113 1 1 # \$1; +#X obj 444 14 table array1 502; +#X obj 477 234 t b a; +#X obj 350 437 r row; +#X obj 361 76 s row; +#X obj 478 285 t f f; +#X obj 480 392 tabwrite array2; +#X obj 479 326 exp; +#X obj 137 221 #mouse \, ...; +#X obj 272 242 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 224 243 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 165 374 #draw_polygon put; +#X msg 272 259 1 # 255; +#X msg 223 261 1 # 0; +#X obj 169 350 spigot; +#X obj 280 292 t a a; +#X obj 294 374 # +; +#X obj 146 139 t a; +#X msg 280 314 4 2 # 0 0 0 1 1 1 1 0; +#X obj 280 336 # *; +#X obj 357 333 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262131 -1 -1 20 256; +#X msg 185 182 365 502 1 # 255; +#X text 296 182 clear; +#X obj 480 373 tabread4 array1; +#X obj 477 265 for 0 64 1; +#X obj 477 154 #fade 5; +#X obj 444 35 table array2 1024; +#X obj 406 468 lop~ 1000; +#X obj 479 305 / 20; +#X obj 480 346 * 22; +#X obj 28 19 metro 46.44; +#X obj 357 350 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262131 -1 -1 1 256; +#X obj 325 373 #pack 2; +#X obj 475 194 # / ( float32 # 4000 ); +#X obj 186 155 #convolve ( 1 7 # 1 1 2 8 2 1 1 ); +#X obj 514 90 # >> 4; +#X obj 146 84 #convolve ( 2 2 # 1 ); +#X obj 146 103 # >> 2; +#X obj 58 459 #draw_polygon put (3 # 255 0 0); +#X obj -18 524 cnv 15 700 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -10 531 GridFlow 0.8.0; +#X text -10 531 GridFlow 0.8.0; +#X obj -18 -85 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -3 -86 photo_pianoroll.pd; +#X text -5 -72 Copyright 2004 Mathieu Bouchard; +#X connect 0 0 25 0; +#X connect 1 0 34 0; +#X connect 2 0 56 0; +#X connect 3 0 16 0; +#X connect 3 0 40 0; +#X connect 4 0 0 0; +#X connect 6 0 0 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 10 0 8 1; +#X connect 10 0 30 0; +#X connect 10 0 26 0; +#X connect 11 0 53 0; +#X connect 12 0 13 0; +#X connect 13 0 9 0; +#X connect 13 1 3 0; +#X connect 14 0 15 0; +#X connect 15 0 64 2; +#X connect 16 0 18 0; +#X connect 16 1 14 0; +#X connect 17 0 15 1; +#X connect 18 0 64 0; +#X connect 19 0 51 0; +#X connect 20 0 28 0; +#X connect 22 0 59 0; +#X connect 23 0 60 0; +#X connect 24 0 62 0; +#X connect 25 0 24 0; +#X connect 26 0 19 0; +#X connect 28 0 50 0; +#X connect 28 1 21 0; +#X connect 29 0 17 0; +#X connect 31 0 54 0; +#X connect 31 1 32 1; +#X connect 33 0 55 0; +#X connect 34 0 41 0; +#X connect 34 1 41 0; +#X connect 34 4 36 0; +#X connect 34 4 40 1; +#X connect 34 6 35 0; +#X connect 34 6 40 1; +#X connect 35 0 38 0; +#X connect 36 0 39 0; +#X connect 37 0 43 0; +#X connect 38 0 37 1; +#X connect 39 0 37 1; +#X connect 40 0 37 0; +#X connect 41 0 44 0; +#X connect 41 1 42 1; +#X connect 42 0 37 2; +#X connect 43 0 3 1; +#X connect 43 0 23 0; +#X connect 44 0 45 0; +#X connect 45 0 42 0; +#X connect 46 0 58 0; +#X connect 47 0 43 0; +#X connect 49 0 32 0; +#X connect 50 0 31 0; +#X connect 51 0 22 0; +#X connect 53 0 7 0; +#X connect 53 0 7 1; +#X connect 54 0 33 0; +#X connect 55 0 49 0; +#X connect 56 0 13 0; +#X connect 57 0 58 1; +#X connect 58 0 45 1; +#X connect 59 0 20 0; +#X connect 60 0 61 0; +#X connect 61 0 19 1; +#X connect 62 0 63 0; +#X connect 63 0 43 0; +#X connect 64 0 1 0; diff --git a/externals/gridflow/pd_examples/plot.pd b/externals/gridflow/pd_examples/plot.pd new file mode 100644 index 00000000..dad9db76 --- /dev/null +++ b/externals/gridflow/pd_examples/plot.pd @@ -0,0 +1,73 @@ +#N canvas 211 415 621 272 10; +#N canvas 803 450 420 235 plot-a-function 0; +#X obj 8 61 # inv+ 640; +#X obj 8 40 #for 0 640 1; +#X obj 105 59 outlet; +#X obj 33 175 #outer <; +#X obj 105 80 inlet; +#X text 209 199 to rgb; +#X text 97 176 make graph \, twotone channelless; +#X obj 35 232 outlet; +#X obj 105 34 #for 0 640 1; +#X obj 105 10 inlet; +#X obj 92 132 #finished; +#X obj 105 103 t a a; +#X obj 33 200 #outer * (255 255 255); +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 3 0 12 0; +#X connect 4 0 11 0; +#X connect 8 0 2 0; +#X connect 9 0 8 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 11 1 3 1; +#X connect 12 0 7 0; +#X restore 57 47 pd plot-a-function ( tm ); +#X obj 257 81 # + 320; +#X obj 57 72 #out window; +#X obj 256 -3 # - 320; +#X obj 256 53 # tanh* 343; +#X obj 256 25 # * 30; +#X obj 33 15 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 +; +#X obj -16 -85 cnv 15 620 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -15 152 cnv 15 620 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 159 GridFlow 0.8.0; +#X text -7 159 GridFlow 0.8.0; +#X text -3 -86 plot.pd; +#X obj 57 -10 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 57 14 metro 100; +#X obj 360 -3 hsl 128 15 0 500 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 3600 1; +#X floatatom 314 -2 5 0 0 0 - - -; +#X obj 358 25 hsl 128 15 0 500 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 1300 1; +#X floatatom 311 26 5 0 0 0 - - -; +#X obj 390 54 hsl 128 15 0 500 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 6700 1; +#X floatatom 343 54 5 0 0 0 - - -; +#X obj 361 82 hsl 128 15 0 500 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 5600 1; +#X floatatom 314 82 5 0 0 0 - - -; +#X text -3 -72 Copyright 2003 Mathieu Bouchard; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 1 0 0 1; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 14 0 15 0; +#X connect 15 0 3 1; +#X connect 16 0 17 0; +#X connect 17 0 5 1; +#X connect 18 0 19 0; +#X connect 19 0 4 1; +#X connect 20 0 21 0; +#X connect 21 0 1 1; diff --git a/externals/gridflow/pd_examples/polygon.pd b/externals/gridflow/pd_examples/polygon.pd new file mode 100644 index 00000000..d43a14f8 --- /dev/null +++ b/externals/gridflow/pd_examples/polygon.pd @@ -0,0 +1,113 @@ +#N canvas 242 170 497 560 10; +#X obj 30 250 #draw_polygon +; +#X obj 127 3 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 +; +#X obj 187 80 +; +#X obj 30 214 #store; +#X obj 220 102 * 5000; +#X obj 165 -27 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X msg 187 61 1; +#X obj 30 394 #out window; +#X obj 391 7 vsl 15 137 0 36000 0 1 empty empty empty -2 -6 0 8 -260818 +-1 -1 3400 1; +#N canvas 0 0 415 291 create 0; +#X msg 82 66 0 \$1; +#X obj 5 131 #outer + ( 0 9000 ); +#X obj 5 153 # +; +#X obj 5 197 # + ( 120 160 ); +#X obj 5 175 # cos* 116; +#X obj 5 109 # * 14400; +#X obj 5 87 #for 0 5 1; +#X obj 34 153 inlet rotation_angle; +#X obj 5 10 inlet bang; +#X obj 5 219 outlet polygon; +#X obj 82 44 inlet tilt_factor; +#X text 81 27 default: 9000 \, for flatness; +#X connect 0 0 1 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 9 0; +#X connect 4 0 3 0; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 7 0 2 1; +#X connect 8 0 6 0; +#X connect 10 0 0 0; +#X restore 289 149 pd create star; +#N canvas 0 0 450 300 color 0; +#X obj 18 141 outlet 0; +#X obj 18 95 # sin* 128; +#X obj 18 117 # + 128; +#X obj 18 37 # * 1146; +#X obj 18 13 inlet; +#X obj 18 60 #outer + ( 0 12000 24000 ); +#X text 139 52 each channel is a sine wave \; the three are offset +from each other 120 degrees. it is almost like turning around in the +color wheel except we don't support the HSV color model for now.; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 1 0; +#X restore 80 129 pd color generator; +#X obj 165 1 metro 33.3667; +#X obj 165 34 t b b b; +#X obj 30 71 t b; +#X floatatom 392 151 6 0 0 0 - - -; +#X obj 89 194 loadbang; +#X obj 215 81 % 36000; +#X obj 46 272 shunt 2; +#X obj 115 274 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X text 133 273 blur; +#X msg 89 214 240 320 3 b # 0; +#X obj 80 167 #cast b; +#X obj 80 148 # >> 7; +#X obj 74 357 #solarize; +#X obj 30 317 shunt 2; +#X obj 93 318 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X obj 131 301 # >> (b # 2); +#X obj 131 321 #convolve (1 3 b # 1 2 1) \, seed (b # 0); +#X obj -15 442 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 450 GridFlow 0.8.0; +#X text -7 450 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -72 Copyright 2002 Mathieu Bouchard; +#X text 0 -86 polygon.pd; +#X connect 0 0 17 0; +#X connect 0 0 24 0; +#X connect 1 0 12 0; +#X connect 2 0 16 0; +#X connect 3 0 0 0; +#X connect 4 0 9 1; +#X connect 5 0 11 0; +#X connect 6 0 2 0; +#X connect 8 0 14 0; +#X connect 9 0 0 2; +#X connect 10 0 22 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 12 1 6 0; +#X connect 12 2 9 0; +#X connect 13 0 3 0; +#X connect 14 0 9 2; +#X connect 15 0 20 0; +#X connect 16 0 2 1; +#X connect 16 0 10 0; +#X connect 16 0 4 0; +#X connect 17 0 3 1; +#X connect 17 1 26 0; +#X connect 18 0 17 1; +#X connect 20 0 3 1; +#X connect 21 0 0 1; +#X connect 22 0 21 0; +#X connect 23 0 7 0; +#X connect 24 0 7 0; +#X connect 24 1 23 0; +#X connect 25 0 24 1; +#X connect 26 0 27 0; +#X connect 27 0 3 1; diff --git a/externals/gridflow/pd_examples/ripple.pd b/externals/gridflow/pd_examples/ripple.pd new file mode 100644 index 00000000..634122d0 --- /dev/null +++ b/externals/gridflow/pd_examples/ripple.pd @@ -0,0 +1,190 @@ +#N canvas 103 42 683 618 10; +#X obj 78 419 #out window; +#X obj 47 173 #outer ignore ( 0 0 ); +#X obj 78 105 +; +#X obj 47 326 # +; +#X obj 283 170 #outer + ( 0 9000 ); +#X obj 47 370 shunt 2; +#X obj 283 189 # sin* 256; +#N canvas 609 247 325 236 distance 0; +#X text 16 15 bang; +#X obj 18 58 #for ( -128 -128 ) ( 128 128 ) ( 1 1 ); +#X text 15 167 distances to middle; +#X obj 18 125 @! sqrt; +#X obj 18 36 inlet; +#X obj 18 103 #fold +; +#X obj 18 81 # ** 2; +#X text 89 101 pythagoras' theorem; +#X obj 18 149 outlet; +#X connect 1 0 6 0; +#X connect 3 0 8 0; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X restore 164 41 pd distance map; +#X obj 78 440 fps detailed; +#X obj 283 130 loadbang; +#X obj 47 42 fork; +#X obj 168 278 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X msg 78 86 1; +#X obj 47 105 # -; +#X obj 47 62 #store; +#N canvas 659 552 420 225 apply 0; +#X obj 60 48 #fold +; +#X obj 12 190 outlet 0; +#X obj 60 16 inlet; +#X obj 12 124 # +; +#X obj 12 167 # max 0; +#X obj 12 146 # min 255; +#X obj 12 16 inlet; +#X obj 58 101 #outer *>>8; +#X obj 130 69 inlet; +#X obj 60 73 # << 2; +#X connect 0 0 9 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 3 0; +#X connect 7 0 3 1; +#X connect 8 0 7 1; +#X connect 9 0 7 0; +#X restore 78 400 pd apply shading; +#X obj 47 -27 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 47 348 #store; +#X obj 47 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 48 281 #finished; +#X obj 164 329 #for ( 0 0 ) ( 256 256 ) ( 1 1 ); +#X obj 164 130 # + 10; +#X text 187 278 shading on/off; +#X obj 47 240 shunt 2; +#X floatatom 106 108 5 0 0 0 - - -; +#X obj 47 195 # *>>8; +#X obj 164 310 loadbang; +#X obj 164 21 loadbang; +#X obj 47 303 #store; +#X obj 78 462 print; +#X obj 164 149 # inv* 10000; +#N canvas 588 233 480 480 angle 0; +#X obj 71 163 #outer atan; +#X obj 71 55 #finished; +#X text 70 210 angles to centre; +#X text 168 63 bang; +#X obj 167 82 inlet; +#X obj 168 106 #for -128 128 1; +#X obj 71 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 72 188 outlet 0; +#X obj 71 107 #for -128 128 1; +#X connect 0 0 7 0; +#X connect 1 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 0 1; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 8 0 0 0; +#X restore 283 151 pd angle map; +#X obj 47 151 # *>>8; +#X obj 46 218 # *>>8; +#X obj 259 235 hsl 128 15 -256 256 0 1 empty empty empty -2 -6 0 8 +-260818 -1 -1 12600 1; +#X obj 259 252 hsl 128 15 -256 256 0 1 empty empty empty -2 -6 0 8 +-260818 -1 -1 3200 1; +#N canvas 715 537 387 220 compute 0; +#X obj 8 113 #store; +#X obj 55 113 # sin* 64; +#X obj 55 71 #for 0 1024 1; +#X obj 55 50 loadbang; +#X obj 55 92 # * 900; +#X obj 125 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 8 135 outlet; +#X text 75 151 This is somewhat like [# sin]; +#X text 75 166 but much faster (lookup table); +#X obj 8 11 inlet; +#X obj 8 30 #outer ignore (0); +#X connect 0 0 6 0; +#X connect 1 0 0 1; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 2 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X restore 47 128 pd compute sine; +#X text 232 358 background image; +#X obj 165 375 #in teapot.png; +#X obj 165 356 loadbang; +#X obj 48 261 t a a; +#X text 215 219 intensity of wave; +#X obj 47 4 metro 33.3667; +#X text 246 5 waves.pd is more interesting; +#X text 225 -9 this is a quite boring wave generator; +#X text 95 61 table for distance map; +#X floatatom 216 237 5 0 0 0 - - -; +#X floatatom 216 253 5 0 0 0 - - -; +#X obj 157 239 #pack 2; +#X obj -13 -85 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -72 Copyright 2002 Mathieu Bouchard; +#X text 0 -85 ripple.pd; +#X obj -15 501 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 508 GridFlow 0.8.0; +#X text -7 508 GridFlow 0.8.0; +#X obj 246 410 #color; +#X text 430 407 color of ripple shading; +#X connect 0 0 8 0; +#X connect 1 0 25 0; +#X connect 2 0 24 0; +#X connect 2 0 13 1; +#X connect 3 0 17 0; +#X connect 4 0 6 0; +#X connect 5 0 15 0; +#X connect 5 1 0 0; +#X connect 6 0 25 1; +#X connect 7 0 21 0; +#X connect 7 0 14 1; +#X connect 8 0 29 0; +#X connect 9 0 31 0; +#X connect 10 0 14 0; +#X connect 10 1 12 0; +#X connect 11 0 23 1; +#X connect 11 0 5 1; +#X connect 12 0 2 0; +#X connect 13 0 36 0; +#X connect 14 0 13 0; +#X connect 15 0 0 0; +#X connect 16 0 42 0; +#X connect 17 0 5 0; +#X connect 18 0 10 0; +#X connect 19 0 28 0; +#X connect 20 0 3 1; +#X connect 21 0 30 0; +#X connect 23 0 15 1; +#X connect 23 0 40 0; +#X connect 23 1 3 0; +#X connect 24 0 2 1; +#X connect 25 0 33 0; +#X connect 26 0 20 0; +#X connect 27 0 7 0; +#X connect 28 0 3 0; +#X connect 30 0 32 1; +#X connect 31 0 4 0; +#X connect 32 0 1 0; +#X connect 33 0 23 0; +#X connect 34 0 46 0; +#X connect 35 0 47 0; +#X connect 36 0 32 0; +#X connect 38 0 17 1; +#X connect 39 0 38 0; +#X connect 40 0 19 0; +#X connect 40 1 28 1; +#X connect 42 0 18 0; +#X connect 46 0 48 0; +#X connect 47 0 48 1; +#X connect 48 0 33 1; +#X connect 55 0 15 2; diff --git a/externals/gridflow/pd_examples/sand.pd b/externals/gridflow/pd_examples/sand.pd new file mode 100644 index 00000000..42a0ed93 --- /dev/null +++ b/externals/gridflow/pd_examples/sand.pd @@ -0,0 +1,417 @@ +#N canvas 524 30 680 685 10; +#X text 317 199 disable falling; +#X obj 6 392 # min 255; +#X obj 3 167 fork; +#X obj 295 402 # != 0; +#X obj 356 446 #fold +; +#X obj 99 518 s position; +#X obj 192 -31 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 295 465 #export; +#X obj 192 68 #store; +#X obj 247 133 shunt 2; +#N canvas 25 226 369 359 mouse 0; +#X text 143 214 is there a click?; +#X obj 44 114 != 0; +#X text 112 256 coordinates; +#X obj 19 8 inlet; +#X text 56 9 #out's outlet 0; +#X obj 44 93 >> 8; +#X obj 65 237 listsublist 0 2; +#X obj 16 31 route position; +#X obj 94 214 outlet; +#X obj 65 257 outlet; +#X obj 16 214 shunt 2; +#X obj 44 72 listelement 2; +#X obj 16 51 t a a; +#X connect 1 0 8 0; +#X connect 1 0 10 1; +#X connect 3 0 7 0; +#X connect 5 0 1 0; +#X connect 6 0 9 0; +#X connect 7 0 12 0; +#X connect 10 1 6 0; +#X connect 11 0 5 0; +#X connect 12 0 10 0; +#X connect 12 1 11 0; +#X restore 398 151 pd mouse click/drag; +#X obj 358 152 # / 2; +#X obj 295 423 #ravel; +#X msg 11 142 100 100; +#X obj 6 415 # max; +#X obj 247 198 shunt 2; +#X obj 26 187 s size; +#X obj 295 444 #fold +; +#X obj 454 112 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 356 404 @! abs; +#X obj 432 412 #export; +#X obj 432 370 #ravel; +#X obj 288 260 shunt 2; +#X obj 301 199 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 356 467 #export; +#X obj 398 111 shunt 2; +#X obj 6 348 #greyscale_to_rgb; +#X obj 399 132 r position; +#N canvas 504 75 496 430 falling 0; +#X obj 42 147 # +; +#X text 228 286 vertical falling; +#X obj 70 327 # / 3; +#X obj 138 25 inlet; +#X text 179 25 Dim[rows \, columns \, {height}]; +#X obj 43 281 #store; +#X obj 43 260 #finished; +#X obj 69 168 # / 3; +#X obj 70 306 # / 3; +#X obj 42 168 # +; +#X obj 43 306 # +; +#X text 105 366 Dim[rows \, columns \, {height}]; +#X text 197 129 horizontal falling; +#X obj 69 147 # / 3; +#X obj 43 327 # +; +#X obj 42 123 #store; +#X obj 52 365 outlet; +#X obj 42 104 #finished; +#X obj 138 58 t a a; +#X obj 133 218 t a a; +#X obj 110 147 #convolve ( 1 2 # 1 1 0 ) \, fold inv+; +#X obj 110 168 #convolve ( 1 3 # 1 1 0 ) \, fold inv+; +#X obj 111 306 #convolve ( 2 1 # 1 1 ) \, fold inv+; +#X obj 111 327 #convolve ( 3 1 # 1 1 0 ) \, fold inv+; +#X connect 0 0 9 0; +#X connect 2 0 14 1; +#X connect 3 0 18 0; +#X connect 5 0 10 0; +#X connect 6 0 5 0; +#X connect 7 0 9 1; +#X connect 8 0 10 1; +#X connect 9 0 19 0; +#X connect 10 0 14 0; +#X connect 13 0 0 1; +#X connect 14 0 16 0; +#X connect 15 0 0 0; +#X connect 17 0 15 0; +#X connect 18 0 17 0; +#X connect 18 1 15 1; +#X connect 18 1 20 0; +#X connect 18 1 21 0; +#X connect 19 0 6 0; +#X connect 19 1 5 1; +#X connect 19 1 22 0; +#X connect 19 1 23 0; +#X connect 20 0 13 0; +#X connect 21 0 7 0; +#X connect 22 0 8 0; +#X connect 23 0 2 0; +#X restore 247 218 pd falling sand; +#X obj 6 465 #scale_by 2; +#X obj 8 287 shunt 3; +#X obj 6 540 print; +#X obj 136 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X text 253 -8 auto; +#N canvas 292 75 480 513 falling 0; +#X obj 105 177 # div 5; +#X text 292 85 horizontal falling; +#X obj 42 118 #store; +#X obj 153 58 fork; +#X obj 171 230 fork; +#X obj 46 392 outlet; +#X obj 42 147 # +; +#X obj 46 307 # +; +#X obj 46 281 #store; +#X obj 42 91 #finished; +#X obj 42 176 # +; +#X obj 48 260 #finished; +#X text 88 17 Dim[rows \, columns \, {height}]; +#X text 293 262 vertical falling; +#X obj 106 336 # div 5; +#X obj 102 148 # div 5; +#X obj 46 336 # +; +#X obj 103 307 # div 5; +#X text 101 392 Dim[rows \, columns \, {height}]; +#X obj 47 17 inlet; +#X obj 162 149 #convolve (1 2 # 1 1) \, fold inv+ \, seed -3; +#X obj 166 177 #convolve (1 3 # 1 1 0) \, fold inv+ \, seed -3; +#X obj 170 305 #convolve (2 1 # 1 1) \, fold inv+ \, seed -3; +#X obj 171 335 #convolve (3 1 # 1 1 0) \, fold inv+ \, seed -3; +#X connect 0 0 10 1; +#X connect 2 0 6 0; +#X connect 3 0 9 0; +#X connect 3 1 2 1; +#X connect 3 1 20 0; +#X connect 3 1 21 0; +#X connect 4 0 11 0; +#X connect 4 1 8 1; +#X connect 4 1 22 0; +#X connect 4 1 23 0; +#X connect 6 0 10 0; +#X connect 7 0 16 0; +#X connect 8 0 7 0; +#X connect 9 0 2 0; +#X connect 10 0 4 0; +#X connect 11 0 8 0; +#X connect 14 0 16 1; +#X connect 15 0 6 1; +#X connect 16 0 5 0; +#X connect 17 0 7 1; +#X connect 19 0 3 0; +#X connect 20 0 15 0; +#X connect 21 0 0 0; +#X connect 22 0 17 0; +#X connect 23 0 14 0; +#X restore 292 238 pd falling sand ( 2 ); +#N canvas 525 58 536 584 finger 0; +#X obj 192 7 inlet; +#X obj 36 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 63 267 # / 20; +#X obj 74 327 # *; +#X obj 12 436 #store; +#X obj 14 18 inlet; +#X obj 73 309 #redim ( 64 64 1 ); +#X obj 279 51 loadbang; +#X obj 13 38 fork; +#X obj 63 247 #fold +; +#X text 22 159 "dig" the sphere into the sand; +#X text 240 104 compute a halfsphere; +#X obj 192 29 # - 32; +#X obj 63 225 #ravel; +#N canvas 1 58 415 284 make 0; +#X obj 28 129 #fold +; +#X obj 28 66 # -; +#X obj 28 108 @! sq; +#X obj 28 45 #for ( -32 -32 ) ( 32 32 ) ( 1 1 ); +#X obj 28 171 outlet; +#X obj 28 87 # << 2; +#X obj 28 150 @! sqrt; +#X text 63 21 bang; +#X obj 27 20 inlet; +#X text 98 92 make distance map; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 3 0 1 0; +#X connect 5 0 2 0; +#X connect 6 0 4 0; +#X connect 8 0 3 0; +#X restore 259 74 pd make distance map with center 32; +#X obj 12 480 outlet; +#X obj 260 53 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 83 293 find out how high the compensation torus should be; +#X obj 73 349 # div 256; +#X obj 36 58 route grid; +#X obj 12 417 #finished; +#X obj 13 206 t a a; +#N canvas 669 471 315 202 halfsphere 0; +#X obj 45 19 inlet distancemap; +#X obj 45 143 outlet image; +#X obj 46 102 @! sqrt; +#X obj 46 122 #outer ignore ( 0 ); +#X obj 46 62 # inv+ 200; +#X text 121 63 16 * radius^2; +#X obj 46 41 @! sq; +#X obj 46 82 # max 0; +#X connect 0 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X restore 126 120 pd halfsphere; +#X obj 13 141 #draw_image - ( 1 1 1 # ) ( 0 0 ); +#X obj 12 457 #draw_image - ( 1 1 1 # ) ( 0 0 ); +#N canvas 0 0 323 279 torus 0; +#X obj 59 26 inlet; +#X obj 56 185 outlet; +#X obj 57 97 # inv+ 200; +#X obj 57 76 @! sq; +#X text 102 54 toroidal radius; +#X obj 57 162 #outer ignore ( 0 ); +#X obj 56 120 # max 0; +#X text 138 99 16*radius^2; +#X obj 57 141 @! sqrt; +#X obj 57 56 # - 20; +#X connect 0 0 9 0; +#X connect 2 0 6 0; +#X connect 3 0 2 0; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 8 0 5 0; +#X connect 9 0 3 0; +#X restore 296 346 pd torus; +#X text 65 475 put extra sand as a ring around the hole; +#X connect 0 0 12 0; +#X connect 1 0 16 0; +#X connect 2 0 6 0; +#X connect 3 0 18 0; +#X connect 4 0 24 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 14 0; +#X connect 8 0 23 0; +#X connect 8 1 19 0; +#X connect 9 0 2 0; +#X connect 12 0 23 2; +#X connect 12 0 24 2; +#X connect 13 0 9 0; +#X connect 14 0 22 0; +#X connect 14 0 25 0; +#X connect 16 0 14 0; +#X connect 18 0 24 1; +#X connect 19 0 1 0; +#X connect 20 0 4 0; +#X connect 21 0 20 0; +#X connect 21 1 13 0; +#X connect 21 1 4 1; +#X connect 22 0 23 1; +#X connect 23 0 21 0; +#X connect 24 0 15 0; +#X connect 25 0 3 1; +#X restore 290 152 pd finger; +#X obj 342 376 # -; +#X obj 356 425 #ravel; +#X msg 3 118 240 320; +#X obj 432 391 #fold +; +#X obj 6 328 # + 128; +#X obj 148 476 #greyscale_to_rgb; +#X obj 303 134 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X text 362 263 enable stats; +#X text 292 529 checking for conservation of amounts of sand; +#X msg 3 212 \$1 \$2 1 # 0; +#X text 33 159 set size / reset; +#N canvas 56 229 441 265 lighting 0; +#X obj 27 209 outlet; +#X obj 27 180 # +; +#X obj 17 9 inlet; +#X obj 99 142 #convolve ( 2 1 # 1 1 ) \, op inv+; +#X obj 100 65 #convolve ( 1 2 # 1 1 ) \, op inv+; +#X obj 103 39 r size; +#X obj 27 39 #redim ( ); +#X obj 27 79 #finished; +#X obj 27 120 #store; +#X obj 25 149 # + 128; +#X obj 27 59 t a a; +#X text 163 47 colourize the horizontal differences; +#X text 113 123 colourize the vertical differences; +#X obj 100 86 #outer & ( -1 0 0 ); +#X obj 99 164 #outer & ( -1 -1 0 ); +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 3 0 14 0; +#X connect 4 0 13 0; +#X connect 5 0 6 1; +#X connect 6 0 10 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 7 0; +#X connect 10 1 4 0; +#X connect 10 1 3 0; +#X connect 13 0 8 1; +#X connect 14 0 1 1; +#X restore 151 355 pd lighting; +#X obj 6 518 fps detailed; +#X obj 344 262 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X text 152 26 step; +#X obj 71 253 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X obj 6 486 #out window; +#X obj 295 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 356 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 432 508 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X text 90 268 differential; +#X text 89 253 heightmap; +#X text 89 284 topographic; +#X obj 152 68 t a a; +#X obj 247 260 t a a; +#X obj 149 457 # * 255; +#X obj 150 437 # >= 6; +#X obj 150 416 # & 7; +#X obj 2 97 loadbang; +#X text 470 112 disable finger; +#X obj 332 354 t a a; +#X obj 6 309 # << 2; +#X obj 151 334 # << 4; +#X obj 192 -8 metro 20; +#X obj -15 569 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 576 GridFlow 0.8.0; +#X text -7 576 GridFlow 0.8.0; +#X obj -13 -85 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -72 Copyright 2002 Mathieu Bouchard; +#X text 0 -85 sand.pd; +#X connect 1 0 14 0; +#X connect 2 0 45 0; +#X connect 2 1 16 0; +#X connect 3 0 12 0; +#X connect 4 0 24 0; +#X connect 6 0 69 0; +#X connect 7 0 53 0; +#X connect 8 0 9 0; +#X connect 9 0 15 0; +#X connect 9 1 35 0; +#X connect 10 0 11 0; +#X connect 10 1 25 0; +#X connect 11 0 35 1; +#X connect 12 0 17 0; +#X connect 13 0 2 0; +#X connect 14 0 29 0; +#X connect 15 0 28 0; +#X connect 15 1 60 0; +#X connect 17 0 7 0; +#X connect 18 0 25 1; +#X connect 19 0 37 0; +#X connect 20 0 55 0; +#X connect 21 0 39 0; +#X connect 22 1 21 0; +#X connect 22 1 66 0; +#X connect 23 0 15 1; +#X connect 24 0 54 0; +#X connect 25 0 9 1; +#X connect 26 0 1 0; +#X connect 27 0 10 0; +#X connect 28 0 60 0; +#X connect 29 0 52 0; +#X connect 30 0 67 0; +#X connect 30 1 68 0; +#X connect 30 2 63 0; +#X connect 32 0 8 0; +#X connect 34 0 60 0; +#X connect 35 0 15 0; +#X connect 36 0 19 0; +#X connect 36 0 3 0; +#X connect 37 0 4 0; +#X connect 38 0 2 0; +#X connect 39 0 20 0; +#X connect 40 0 26 0; +#X connect 41 0 29 0; +#X connect 42 0 9 1; +#X connect 45 0 59 0; +#X connect 47 0 1 0; +#X connect 48 0 31 0; +#X connect 49 0 22 1; +#X connect 51 0 30 1; +#X connect 52 0 48 0; +#X connect 52 0 5 0; +#X connect 59 0 30 0; +#X connect 59 1 8 1; +#X connect 60 0 59 0; +#X connect 60 1 22 0; +#X connect 61 0 41 0; +#X connect 62 0 61 0; +#X connect 63 0 62 0; +#X connect 64 0 38 0; +#X connect 66 0 36 1; +#X connect 66 1 36 0; +#X connect 67 0 40 0; +#X connect 68 0 47 0; +#X connect 69 0 8 0; diff --git a/externals/gridflow/pd_examples/saturation.pd b/externals/gridflow/pd_examples/saturation.pd new file mode 100644 index 00000000..d6cbda6c --- /dev/null +++ b/externals/gridflow/pd_examples/saturation.pd @@ -0,0 +1,81 @@ +#N canvas 904 61 449 319 10; +#X obj 11 117 print; +#X obj 11 77 #out window; +#X text 342 55 OR; +#X text 238 30 global saturation; +#N canvas 0 0 441 339 #saturation 0; +#X obj 63 88 # inv+ 255; +#X obj 14 219 # +; +#X obj 37 47 #rgb_to_greyscale; +#X obj 14 239 # >> 8; +#X obj 162 146 loadbang; +#X obj 14 158 #finished; +#X text 68 266 keep values inside visible range; +#X obj 14 199 # *; +#X obj 14 178 #store; +#X obj 37 88 # *; +#X msg 133 146 0; +#X obj 8 9 inlet image; +#X obj 14 293 outlet image; +#X obj 107 126 inlet saturation; +#X text 230 130 0 = grey \; 256 = identity; +#X text 40 222 mix the original picture with its greyed version; +#X obj 37 107 t a a; +#X obj 8 28 t a a; +#X obj 37 67 #greyscale_to_rgb; +#X obj 107 146 t a; +#X obj 14 265 #clip; +#X connect 0 0 9 1; +#X connect 1 0 3 0; +#X connect 2 0 18 0; +#X connect 3 0 20 0; +#X connect 4 0 10 0; +#X connect 5 0 8 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 16 0; +#X connect 10 0 19 0; +#X connect 11 0 17 0; +#X connect 13 0 19 0; +#X connect 16 0 5 0; +#X connect 16 1 1 1; +#X connect 17 0 8 1; +#X connect 17 1 2 0; +#X connect 18 0 9 0; +#X connect 19 0 7 1; +#X connect 19 0 0 0; +#X connect 20 0 12 0; +#X restore 11 53 pd #saturation; +#X obj 11 98 fps detailed; +#X text 203 68 per-channel saturation; +#X msg 194 25 0; +#X obj 194 4 loadbang; +#X obj 197 46 hsl 137 15 -256 512 0 0 empty empty empty -2 -6 0 8 -260818 +-128992 -1 4533 1; +#X floatatom 155 47 5 0 0 0 - - -; +#X obj 11 -26 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 11 3 metro 33.3667; +#X obj 11 30 #in teapot.png; +#X obj 147 95 #color -256 512 1; +#X msg 147 69 3 # \$1; +#X obj -16 -85 cnv 15 450 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -3 -72 Copyright 2002 Mathieu Bouchard; +#X obj -15 203 cnv 15 450 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 210 GridFlow 0.8.0; +#X text -7 210 GridFlow 0.8.0; +#X text -3 -85 saturation.pd; +#X connect 1 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 9 0 15 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 4 0; +#X connect 14 0 4 1; +#X connect 15 0 14 0; diff --git a/externals/gridflow/pd_examples/scratch_video.pd b/externals/gridflow/pd_examples/scratch_video.pd new file mode 100644 index 00000000..c322b745 --- /dev/null +++ b/externals/gridflow/pd_examples/scratch_video.pd @@ -0,0 +1,124 @@ +#N canvas 622 70 580 592 10; +#X obj 109 21 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 109 329 listelement 1; +#X floatatom 109 352 5 0 0 0 - - -; +#X floatatom 132 244 5 0 0 0 - - -; +#X obj 109 305 route position; +#X obj 109 221 #in; +#X msg 142 167 open /home/alx/Documents/images/videos/bus_1.mov; +#X obj 112 391 hsl 128 15 1 320 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 3145 1; +#X obj -13 -85 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj -16 472 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 16 476 GridFlow 0.8.0; +#X text 16 476 GridFlow 0.8.0; +#X text 0 -85 traveling.pd; +#X text 0 -72 Copyright 2003 Alexandre Castonguay; +#X text -1 -34 Use the mouse position to scratch the video \, a touchscreen +works well.; +#N canvas 0 0 450 300 decide_framerate 0; +#X obj 6 56 - 160; +#X floatatom 6 80 5 0 0 0 - - -; +#X obj 55 122 hsl 128 15 20 150 0 0 empty empty empty -2 -6 0 8 -24198 +-1 -1 5862 1; +#X obj 6 99 abs; +#X floatatom 6 142 5 0 0 0 - - -; +#X obj 6 121 / 3; +#X floatatom 6 226 5 0 0 0 - - -; +#X obj 6 184 abs; +#X obj 6 162 - 64; +#X obj 6 205 + 5; +#X obj -25 21 inlet; +#X obj 34 263 outlet; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 5 0; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 9 0 6 0; +#X connect 10 0 0 0; +#X restore 257 390 pd decide_framerate; +#X obj 257 414 s framerate; +#X obj 181 31 r framerate; +#X obj 109 279 #out window; +#X text 176 242 <-- frame number; +#X text 213 328 <-- get x values; +#X text 142 184 load your own until we get a bundled video for the +docs; +#X text 142 197 this one is 320 x 240; +#N canvas 0 0 450 300 frame_count 1; +#X msg 103 112 1; +#X floatatom 103 168 5 0 0 0 - - -; +#X obj 153 153 float \$1; +#X obj 103 86 shunt 2; +#X msg 173 69 1; +#X msg 173 46 0; +#X obj 103 140 + 1; +#X msg 147 112 -1; +#X msg 208 109 0; +#X obj 46 -34 inlet; +#X obj 231 68 inlet; +#X obj 113 212 outlet; +#X floatatom 147 -41 5 0 0 0 - - -; +#X obj 147 -19 > 160; +#X floatatom 147 8 5 0 0 0 - - -; +#X text 192 -20 <-- is the direction left or right on a width of 320 +pixels; +#X text 242 109 <-- reset; +#X obj 147 -64 r position; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 1 0 11 0; +#X connect 2 0 6 1; +#X connect 3 0 0 0; +#X connect 3 1 7 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 1 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 9 0 3 0; +#X connect 10 0 8 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 3 1; +#X connect 17 0 12 0; +#X restore 109 113 pd frame_count; +#X obj 202 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X text 226 85 <-- reset; +#X obj 13 391 s position; +#X msg 314 230 loop 1; +#X obj 206 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 224 62 r loopit; +#X obj 236 264 print loopit; +#X obj 109 56 metro 100.33; +#X obj 71 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 31 0; +#X connect 1 0 2 0; +#X connect 2 0 7 0; +#X connect 2 0 15 0; +#X connect 2 0 26 0; +#X connect 4 0 1 0; +#X connect 5 0 18 0; +#X connect 5 1 3 0; +#X connect 5 1 28 0; +#X connect 6 0 5 0; +#X connect 15 0 16 0; +#X connect 17 0 31 1; +#X connect 18 0 4 0; +#X connect 23 0 5 0; +#X connect 24 0 23 1; +#X connect 27 0 5 0; +#X connect 28 0 30 0; +#X connect 31 0 23 0; +#X connect 32 0 5 0; diff --git a/externals/gridflow/pd_examples/spectrogram.pd b/externals/gridflow/pd_examples/spectrogram.pd new file mode 100644 index 00000000..ff9f55e7 --- /dev/null +++ b/externals/gridflow/pd_examples/spectrogram.pd @@ -0,0 +1,109 @@ +#N canvas 695 85 580 565 10; +#X msg 143 149 reset; +#X obj 27 -34 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 +; +#X obj 316 -15 adc~; +#X obj 28 110 tabread4 array1; +#X obj 7 10 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 +; +#X obj 351 -14 table array1 1024; +#X obj 290 138 loadbang; +#X obj 270 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 306 167 analysis 0; +#X obj 24 -205 inlet~; +#X obj 26 -135 tabsend~ array1; +#X obj 24 -184 rfft~; +#X obj 25 -157 expr~ sqrt($v1*$v1+$v2*$v2)/64; +#X obj 148 -198 block~ 1024; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 3 1; +#X connect 3 0 1 0; +#X restore 317 8 pd analysis; +#X obj 30 210 demux 2; +#X obj 373 186 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1 +-1 1; +#X obj 242 226 loadbang; +#X obj 219 225 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 27 34 for 0 320 1; +#X obj 29 129 * 2000; +#X text 392 187 black stripes; +#X text 391 200 graph; +#X obj 28 77 / 2; +#X text 77 129 <-- adding some extra gain; +#X obj 88 88 exp; +#X obj 28 55 demux 2; +#X obj 173 46 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1 +-1 0; +#X text 195 46 linear; +#X text 193 60 logarithmic; +#X obj 89 67 / 51; +#X obj 31 331 #fade; +#X obj 123 332 loadbang; +#X msg 72 331 16 4 1; +#X obj 27 -9 metro 23.22; +#X text 115 26 = 1000*1024/44100; +#X obj 29 149 #import ( 320 ); +#X obj 29 169 # *>>8; +#X obj 30 190 #fade 2; +#X obj 30 249 # inv+ 255; +#X obj 105 222 #outer <; +#X obj 105 241 # * 255; +#X obj 105 261 #transpose; +#X obj 30 287 #redim (120 320 1); +#X obj 31 309 #greyscale_to_rgb; +#X obj 31 353 #clip; +#X obj 31 375 #scale_by 2; +#X obj 31 404 #out window; +#X obj -15 449 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 456 GridFlow 0.8.0; +#X text -7 456 GridFlow 0.8.0; +#X obj -15 -85 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text -2 -72 Copyright 2002 Mathieu Bouchard; +#X text -2 -85 spectrogram.pd; +#X obj 219 245 #for 120 0 -1; +#X obj 270 161 #for 0 320 1; +#X obj 270 184 # + 10; +#X connect 0 0 30 0; +#X connect 1 0 28 0; +#X connect 2 0 8 0; +#X connect 2 1 8 0; +#X connect 3 0 14 0; +#X connect 4 0 13 0; +#X connect 6 0 7 0; +#X connect 7 0 49 0; +#X connect 9 0 33 0; +#X connect 9 1 34 0; +#X connect 10 0 9 1; +#X connect 11 0 12 0; +#X connect 12 0 48 0; +#X connect 13 0 20 0; +#X connect 14 0 30 0; +#X connect 17 0 3 0; +#X connect 19 0 3 0; +#X connect 20 0 17 0; +#X connect 20 1 24 0; +#X connect 21 0 20 1; +#X connect 24 0 19 0; +#X connect 25 0 39 0; +#X connect 26 0 27 0; +#X connect 27 0 25 1; +#X connect 28 0 13 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 32 0 9 0; +#X connect 33 0 37 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 25 0; +#X connect 39 0 40 0; +#X connect 40 0 41 0; +#X connect 48 0 34 1; +#X connect 49 0 50 0; +#X connect 50 0 31 1; diff --git a/externals/gridflow/pd_examples/threshold.pd b/externals/gridflow/pd_examples/threshold.pd new file mode 100644 index 00000000..4a609930 --- /dev/null +++ b/externals/gridflow/pd_examples/threshold.pd @@ -0,0 +1,81 @@ +#N canvas 720 79 579 617 10; +#X obj 40 121 @ -; +#X obj 40 144 @ max 0; +#X obj 40 167 @ ||; +#X obj 40 190 @ +; +#X obj 99 143 inv+ 0; +#X obj 40 -33 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 95 56 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 +; +#X floatatom 251 270 5 0 0 0 - - -; +#X obj 251 137 vsl 15 128 0 256 0 0 empty empty empty 0 -8 0 8 -260818 +-1 -1 0 1; +#X obj 40 55 shunt 2; +#X obj 40 448 @out window; +#X text 6 100 simple per-channel threshold; +#X text 316 102 bluescreen luma threshold; +#X text 381 255 here we have a mask; +#X text 361 267 (alpha as separate image); +#X obj 327 356 @join 2; +#X text 386 295 make a RGBA image; +#X obj 310 137 t b a a; +#X text 218 398 = medium blue; +#X obj 297 290 t a a; +#X obj 131 449 fps; +#X floatatom 161 451 5 0 0 0 - - -; +#X obj 40 9 metro 100; +#X msg 70 397 240 320 3 # 0 0 170; +#X text 386 333 won't be necessary; +#X text 319 117 with alpha channel; +#X text 13 368 you could also load a picture; +#X text 13 380 instead of using uniform blue; +#X text 58 -31 1000/100 = 10 fps (max) (adjustable); +#X text 281 22 see also color_detect.pd; +#X obj 40 33 #camera; +#X obj -13 -86 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 0 -73 Copyright 2002 Mathieu Bouchard; +#X obj -15 499 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text -7 506 GridFlow 0.8.0; +#X text -7 506 GridFlow 0.8.0; +#X text 0 -86 threshold.pd; +#X obj 290 335 #store; +#X obj 290 314 #finished; +#X obj 354 204 # * 255; +#X obj 354 181 # >=; +#X obj 354 162 #rgb_to_greyscale; +#X text 384 320 this silly #finished; +#X text 388 347 in GridFlow 1; +#X obj 70 425 #draw_image put \, alpha 1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 10 0; +#X connect 4 0 2 1; +#X connect 5 0 22 0; +#X connect 6 0 9 1; +#X connect 7 0 0 1; +#X connect 7 0 4 0; +#X connect 7 0 3 1; +#X connect 7 0 40 1; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X connect 9 1 17 0; +#X connect 10 0 20 0; +#X connect 17 0 23 0; +#X connect 17 1 19 0; +#X connect 17 2 41 0; +#X connect 19 0 38 0; +#X connect 19 1 37 1; +#X connect 20 0 21 0; +#X connect 22 0 30 0; +#X connect 23 0 44 0; +#X connect 30 0 9 0; +#X connect 37 0 15 0; +#X connect 38 0 37 0; +#X connect 39 0 15 1; +#X connect 40 0 39 0; +#X connect 41 0 40 0; +#X connect 44 0 10 0; diff --git a/externals/gridflow/pd_examples/transform.pd b/externals/gridflow/pd_examples/transform.pd new file mode 100644 index 00000000..a4d5b653 --- /dev/null +++ b/externals/gridflow/pd_examples/transform.pd @@ -0,0 +1,61 @@ +#N canvas 726 225 674 481 10; +#X obj 146 296 #remap_image; +#X obj 146 381 #out window; +#X obj 125 94 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 294 376 # -; +#X obj 294 202 t a a a; +#X obj 380 273 # % 2; +#X obj 380 297 # * -2; +#X obj 380 318 # + 1; +#X obj 316 342 # *; +#X obj 425 245 # / 2; +#X obj 428 184 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -261681 +-1 -1 12700 1; +#X obj 316 301 # -; +#X obj 425 207 t f; +#X obj 316 262 # %; +#X obj 380 248 # /; +#X obj 186 214 #camera; +#X obj 125 120 metro 10; +#X obj 8 442 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 +0; +#X text 16 449 GridFlow 0.8.0; +#X obj 374 449 #reverse; +#X text 293 450 see also :; +#X obj 1 -2 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 4 -2 Transform.pd; +#X obj 95 215 #in r001.jpg; +#X obj 125 155 shunt; +#X obj 176 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 68 32 By Mathieu Bouchard \, based on Clifford Smith's 'Transform' +effect that is part of Fukuchi Kentaro's EffecTV : http://effectv.sourceforge.net +; +#X text 199 153 <-- choose from a still image or camera input; +#X connect 0 0 1 0; +#X connect 0 1 4 0; +#X connect 2 0 16 0; +#X connect 3 0 0 1; +#X connect 4 0 3 0; +#X connect 4 1 13 0; +#X connect 4 2 14 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 1; +#X connect 8 0 3 1; +#X connect 9 0 11 1; +#X connect 10 0 12 0; +#X connect 11 0 8 0; +#X connect 12 0 9 0; +#X connect 12 0 13 1; +#X connect 12 0 14 1; +#X connect 13 0 11 0; +#X connect 14 0 5 0; +#X connect 15 0 0 0; +#X connect 16 0 24 0; +#X connect 23 0 0 0; +#X connect 24 0 23 0; +#X connect 24 1 15 0; +#X connect 25 0 24 1; diff --git a/externals/gridflow/pd_examples/videodev_effects.pd b/externals/gridflow/pd_examples/videodev_effects.pd new file mode 100644 index 00000000..b11f026f --- /dev/null +++ b/externals/gridflow/pd_examples/videodev_effects.pd @@ -0,0 +1,303 @@ +#N canvas 106 79 569 546 10; +#X obj 86 397 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 72 149 # max 0; +#N canvas 52 305 399 248 motion 0; +#X obj 60 49 inlet; +#X obj 60 72 # +; +#X obj 60 158 outlet; +#X msg 108 51 0; +#X obj 60 142 fork; +#X text 164 114 divide by 32 \, 16 \, 4; +#X text 4 1 we do like #fade but faster (because of >>); +#X text 4 15 feedback factors are 1/32 for red \, 1/16 for green \, +1/8 for blue.; +#X obj 60 114 # >> ( 5 4 2 ); +#X obj 175 85 # * ( 31 15 3 ); +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 3 0 1 1; +#X connect 4 0 2 0; +#X connect 4 1 9 0; +#X connect 8 0 4 0; +#X connect 9 0 1 1; +#X restore 130 218 pd motion fade; +#X obj 28 263 shunt 2; +#X obj 72 69 #downscale_by 2 smoothly; +#X obj 28 398 shunt 2; +#X obj 82 265 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 87 88 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 8 7 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; +#X obj 316 261 fork; +#X obj 28 48 shunt 2; +#X msg 286 243 256; +#X obj 28 474 #out window; +#X obj 84 49 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 28 515 print; +#X obj 285 284 #for 0 256 1; +#X floatatom 316 242 5 0 0 0 - - -; +#N canvas 67 462 236 230 detect 0; +#X obj 66 59 # * ( -1 -1 2 ); +#X obj 66 171 # max 0; +#X obj 66 31 inlet; +#X obj 66 222 #outer ignore ( 0 0 0 ); +#X obj 66 197 # min 255; +#X obj 66 249 outlet; +#X obj 65 82 #fold + \, seed -20; +#X connect 0 0 6 0; +#X connect 1 0 4 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 6 0 1 0; +#X restore 437 236 pd detect blue; +#X obj 72 285 #outer ignore ( 0 ); +#X obj 103 131 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 5700 1; +#X obj 28 189 shunt 2; +#X obj 170 335 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 28 335 shunt 2; +#X obj 28 495 fps detailed; +#X obj 286 223 loadbang; +#X obj 87 335 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 72 307 #store; +#N canvas 81 205 480 500 sort 0; +#X obj 10 305 # * ( 1 0 ); +#X obj 180 260 # * 255; +#X obj 194 331 #outer ignore ( 0 0 0 ); +#X obj 10 345 # >> 0; +#X obj 43 432 outlet; +#X obj 181 53 inlet; +#X obj 225 191 # / 2; +#X obj 10 285 #for ( 0 0 ) ( 288 352 ) ( 1 1 ); +#X obj 10 325 # +; +#X obj 44 9 inlet; +#X obj 242 150 # - 1; +#X obj 121 382 # +; +#X obj 180 238 # < 176; +#X obj 10 369 #store; +#X obj 97 31 #grade; +#X obj 121 404 # >> 1; +#X obj 283 269 # / 351; +#X obj 97 53 shunt 2; +#X obj 145 77 #grade; +#X obj 112 210 #outer & ( 0 -1 ); +#X obj 121 127 inlet; +#X text 271 128 extract width; +#X obj 10 266 #finished; +#X obj 283 247 # * 255; +#X obj 96 9 #fold +; +#X obj 97 153 shunt 4; +#X obj 107 359 shunt 4; +#X msg 235 126 \$2; +#X obj 204 77 #dim; +#X obj 44 37 t a a; +#X msg 186 127 \$1 \$2; +#X obj 204 97 #export_list; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 13 0; +#X connect 5 0 17 1; +#X connect 6 0 12 1; +#X connect 7 0 0 0; +#X connect 8 0 3 0; +#X connect 9 0 29 0; +#X connect 10 0 16 1; +#X connect 11 0 15 0; +#X connect 12 0 1 0; +#X connect 13 0 26 0; +#X connect 14 0 17 0; +#X connect 15 0 4 0; +#X connect 16 0 2 0; +#X connect 17 0 25 0; +#X connect 17 1 18 0; +#X connect 18 0 25 0; +#X connect 19 0 8 1; +#X connect 20 0 25 1; +#X connect 20 0 26 1; +#X connect 22 0 7 0; +#X connect 23 0 16 0; +#X connect 24 0 14 0; +#X connect 25 0 22 0; +#X connect 25 0 19 0; +#X connect 25 1 22 0; +#X connect 25 1 19 0; +#X connect 25 2 12 0; +#X connect 25 3 23 0; +#X connect 26 0 4 0; +#X connect 26 1 11 0; +#X connect 27 0 6 0; +#X connect 27 0 10 0; +#X connect 28 0 31 0; +#X connect 29 0 24 0; +#X connect 29 1 13 1; +#X connect 29 1 28 0; +#X connect 29 1 11 1; +#X connect 30 0 7 1; +#X connect 31 0 27 0; +#X connect 31 0 30 0; +#X restore 87 355 pd sort me out; +#X obj 285 304 # gamma; +#X obj 72 129 # -; +#X obj 82 191 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X text 74 238 enable gamma correction; +#X obj 285 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 372 198 399 273 motion 0; +#X obj 15 113 # << 2; +#X obj 15 162 @! abs; +#X obj 15 9 inlet; +#X obj 18 80 # -; +#X obj 70 174 # + 128; +#X obj 15 245 outlet; +#X obj 15 204 # min 255; +#X obj 15 224 # max 0; +#X obj 70 155 # << 2; +#X obj 15 35 t a a; +#X obj 15 134 shunt 2; +#X obj 70 133 inlet render; +#X obj 155 54 inlet type; +#X obj 15 54 shunt 2; +#X connect 0 0 10 0; +#X connect 1 0 6 0; +#X connect 2 0 9 0; +#X connect 3 0 0 0; +#X connect 4 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 4 0; +#X connect 9 0 13 0; +#X connect 9 1 3 0; +#X connect 10 0 1 0; +#X connect 10 1 8 0; +#X connect 11 0 10 1; +#X connect 12 0 13 1; +#X connect 13 0 3 1; +#X restore 72 109 pd motion detection; +#X obj 105 335 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X text 126 149 noise reduction (on find-edges only); +#N canvas 67 462 236 230 detect 0; +#X obj 66 171 # max 0; +#X obj 66 31 inlet; +#X obj 66 222 #outer ignore ( 0 0 0 ); +#X obj 66 197 # min 255; +#X obj 66 249 outlet; +#X obj 65 82 #fold + \, seed -20; +#X obj 66 59 # * ( 2 -1 -1 ); +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 5 0 0 0; +#X connect 6 0 5 0; +#X restore 437 217 pd detect red; +#X obj 27 8 metro 33.3667; +#X obj 28 69 t a a; +#X text 101 49 Smaller Picture; +#X obj 28 89 shunt 2; +#X obj 211 96 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X obj 163 427 #centroid; +#X obj 163 448 #export_list; +#X floatatom 165 487 5 0 0 0 - - -; +#X obj 164 467 unpack 0 0; +#X floatatom 229 487 5 0 0 0 - - -; +#N canvas 639 147 477 267 crosshair 0; +#X obj 12 224 outlet; +#X obj 12 9 inlet; +#X obj 95 169 # + ( 120 160 ); +#X msg 21 125 12 2 # \$1 \$2 \$1 \$3 \$2 \$3 \$2 \$4 \$3 \$4 \$3 \$3 +\$4 \$3 \$4 \$2 \$3 \$2 \$3 \$1 \$2 \$1 \$2 \$2; +#X msg 54 95 -32 -1 1 32; +#X obj 12 205 #draw_polygon + ( 0 170 0 ); +#X obj 175 37 #fade 8; +#X obj 175 18 inlet; +#X obj 170 60 #finished; +#X connect 1 0 5 0; +#X connect 2 0 5 2; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 6 0 2 1; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 4 0; +#X restore 72 428 pd crosshair; +#X msg 128 8 open dc1394; +#X msg 217 9 open mpeg file images/movies/washington_zoom_in.mpeg; +#X msg 217 29 open xine images/movies/washington_zoom_in.mpeg; +#X obj 28 27 #camera; +#X obj 186 30 #in; +#X obj 104 192 #fade; +#X msg 145 194 32 16 4; +#X obj 28 450 t a; +#X text 231 110 emboss; +#X text 230 96 hilite; +#X text 110 397 designed to work with "hilite" above; +#X obj 281 96 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X text 300 96 motion; +#X text 301 110 presence; +#X connect 0 0 5 1; +#X connect 1 0 20 0; +#X connect 2 0 3 0; +#X connect 3 0 22 0; +#X connect 3 1 18 0; +#X connect 4 0 38 0; +#X connect 5 0 55 0; +#X connect 5 1 42 0; +#X connect 5 1 47 0; +#X connect 6 0 3 1; +#X connect 7 0 40 1; +#X connect 8 0 37 0; +#X connect 9 0 32 0; +#X connect 9 1 28 1; +#X connect 10 0 38 0; +#X connect 10 1 4 0; +#X connect 11 0 16 0; +#X connect 12 0 23 0; +#X connect 13 0 10 1; +#X connect 15 0 28 0; +#X connect 16 0 9 0; +#X connect 18 0 26 0; +#X connect 19 0 29 1; +#X connect 20 0 3 0; +#X connect 20 1 2 0; +#X connect 21 0 27 2; +#X connect 22 0 5 0; +#X connect 22 1 27 0; +#X connect 23 0 14 0; +#X connect 24 0 11 0; +#X connect 25 0 22 1; +#X connect 26 0 22 0; +#X connect 27 0 5 0; +#X connect 28 0 26 1; +#X connect 29 0 1 0; +#X connect 30 0 20 1; +#X connect 32 0 15 0; +#X connect 33 0 29 0; +#X connect 34 0 27 1; +#X connect 37 0 51 0; +#X connect 38 0 40 0; +#X connect 40 0 20 0; +#X connect 40 1 33 0; +#X connect 41 0 33 1; +#X connect 42 0 43 0; +#X connect 42 0 47 1; +#X connect 43 0 45 0; +#X connect 45 0 44 0; +#X connect 45 1 46 0; +#X connect 47 0 55 0; +#X connect 51 0 10 0; +#X connect 53 0 3 0; +#X connect 54 0 53 1; +#X connect 55 0 12 0; +#X connect 59 0 33 2; diff --git a/externals/gridflow/pd_examples/waves.pd b/externals/gridflow/pd_examples/waves.pd new file mode 100644 index 00000000..c9706ca4 --- /dev/null +++ b/externals/gridflow/pd_examples/waves.pd @@ -0,0 +1,339 @@ +#N canvas 366 97 753 590 10; +#X obj 265 207 #greyscale_to_rgb; +#X obj 251 350 # min 255; +#X obj 271 5 loadbang; +#X obj 211 25 fork; +#X obj 251 389 #out x11; +#X obj 313 409 print; +#N canvas 23 304 369 368 mouse 0; +#X text 109 189 coordinates; +#X obj 56 189 outlet; +#X obj 57 164 listsublist 0 2; +#X obj 8 141 shunt 2; +#X text 56 9 #out's outlet 0; +#X obj 100 142 outlet; +#X obj 41 94 >> 8; +#X obj 41 115 != 0; +#X obj 16 31 route position; +#X text 154 143 is there a click?; +#X obj 19 8 inlet; +#X obj 16 55 fork; +#X obj 41 73 listelement 2; +#X connect 2 0 1 0; +#X connect 3 1 2 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 7 0 3 1; +#X connect 8 0 11 0; +#X connect 10 0 8 0; +#X connect 11 0 3 0; +#X connect 11 1 12 0; +#X connect 12 0 6 0; +#X restore 251 428 pd mouse click/drag; +#X obj 12 39 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1 +; +#N canvas 637 335 419 287 lighting 0; +#X obj 56 243 outlet; +#X obj 17 9 inlet; +#X obj 86 138 #outer & ( -1 0 0 ); +#X text 91 100 produce red/cyan from horiz differences; +#X text 64 160 produce white/black from vertical differences; +#X obj 56 199 #outer & ( -1 -1 0 ); +#X obj 56 222 # +; +#X obj 108 10 #dim; +#X obj 140 10 #export_list; +#X obj 56 29 #redim ( ); +#X obj 56 9 t a a; +#X obj 56 49 t a a; +#X msg 141 30 \$1 \$2; +#X obj 86 117 #convolve ( 1 2 # ) \, op ignore \, fold inv+; +#X obj 56 177 #convolve ( 2 1 # ) \, op ignore \, fold inv+; +#X connect 1 0 10 0; +#X connect 2 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 8 0 12 0; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 10 1 7 0; +#X connect 11 0 14 0; +#X connect 11 1 13 0; +#X connect 12 0 9 1; +#X connect 13 0 2 0; +#X connect 14 0 5 0; +#X restore 216 242 pd lighting; +#X obj 251 447 # / 2; +#X msg 138 46 \$1 \$2 1 # 0; +#N canvas 137 251 392 303 finger 0; +#X obj 149 39 #redim ( 4 2 ); +#X obj 71 16 inlet; +#X obj 149 20 inlet; +#X obj 71 217 outlet; +#X obj 149 158 # +; +#X obj 177 157 # *; +#X msg 177 137 0 0 0 1 1 1 1 0; +#X obj 193 79 inlet size; +#X text 291 137 square or rect; +#X obj 177 112 #finished; +#X obj 70 195 #draw_polygon put ( 1000 ); +#X connect 0 0 4 0; +#X connect 1 0 10 0; +#X connect 2 0 0 0; +#X connect 4 0 10 2; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 7 0 5 1; +#X connect 9 0 6 0; +#X connect 10 0 3 0; +#X restore 292 519 pd finger; +#X obj 245 25 s size; +#X obj 251 370 #scale_by 2; +#X obj 80 142 #store; +#X obj 312 389 fps detailed; +#N canvas 53 323 453 223 wave 0; +#X obj 26 20 inlet; +#X obj 28 182 outlet; +#X text 70 137 time differential; +#X text 81 50 space differential: (d/dx)^2 + (d/dy)^2; +#X text 71 8 Recurrence equation for propagation of oscillations; +#X obj 28 137 # -; +#X obj 54 102 # >> 4; +#X obj 28 158 # *>>8 242; +#X text 105 159 amortizing by ~5.5%; +#X obj 24 46 t a a; +#X obj 54 81 #convolve ( 3 3 # 1 4 1 4 0 4 ) \, seed 8; +#X connect 0 0 9 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 9 0 5 1; +#X connect 9 1 10 0; +#X connect 10 0 6 0; +#X restore 80 203 pd wave equation; +#X obj 249 515 t a; +#X obj 117 122 t a; +#X obj 251 330 # max 0; +#X obj 265 188 # >> 1; +#X obj 31 63 s metro; +#X msg 211 5 240 320; +#X text 441 19 Copyright (c) 2003 \, 2004 by Mathieu Bouchard; +#X text 481 72 (Best complemented with a touchscreen); +#X text 441 2 waves.pd; +#X obj 376 141 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -258699 +-1 2; +#X text 395 155 height greys; +#X obj 298 103 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699 +-1 0; +#X text 317 102 plain; +#X text 318 118 line-art; +#X text 315 46 smooth; +#X obj 296 46 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699 +-1 0; +#X text 316 60 raw; +#X obj 443 379 hradio 18 1 1 4 empty empty _1__2__3__4_ 0 -4 0 8 -262144 +-258699 -1 1; +#X text 441 354 scale by...; +#X obj 443 400 + 1; +#X obj 664 129 loadbang; +#X obj 557 331 #in; +#X obj 584 305 #camera_control; +#X obj 558 284 spigot; +#X obj 605 285 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784 +1 1; +#X obj 558 264 r metro; +#N canvas 242 284 365 231 line-art 0; +#X obj 32 123 # << 8; +#X obj 32 37 inlet; +#X obj 32 145 outlet; +#X text 146 31 double-thresholding; +#X text 146 114 else becomes 0; +#X obj 32 82 # min 1; +#X obj 32 103 # max -1; +#X obj 32 60 # / 3; +#X text 146 85 < -3 becomes -256; +#X text 146 100 > +3 becomes +256; +#X connect 0 0 2 0; +#X connect 1 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 7 0 5 0; +#X restore 283 142 pd line-art; +#X text 560 214 Background colour; +#X text 625 285 enable video; +#X msg 584 325 open r001.jpg \, bang; +#X text 394 141 four-colour emboss; +#X obj 142 402 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 +1; +#X obj 88 377 r metro; +#X obj 88 441 @! rand; +#X msg 87 421 240 320; +#X text 160 399 rain; +#X text 558 3 bundled with GridFlow 0.7.7; +#X obj 240 100 # >> 2; +#X text 378 36 Originally made for Alexandre Castonguay's "DIGITALE" +; +#X text 495 53 But suitable for a lot more uses :-); +#X msg 599 129 3 # 128; +#X obj 557 154 #color; +#X obj 239 121 shunt 2; +#X obj 239 59 shunt 2; +#X obj 403 486 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262131 -1 -1 2 256; +#X obj 403 503 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262131 -1 -1 2 256; +#X obj 359 519 #pack 2; +#X obj 216 291 # +; +#X obj 332 302 #store; +#X obj 421 236 shunt 2; +#X obj 477 232 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699 +-1 0; +#X text 495 230 plain; +#X text 495 248 refraction; +#X obj 216 263 t a; +#N canvas 203 363 443 300 heightmap2indexmap 0; +#X obj 48 279 outlet; +#X obj 9 8 inlet; +#X obj 48 159 # +; +#X obj 100 9 #dim; +#X obj 132 9 #export_list; +#X obj 48 28 #redim ( ); +#X obj 48 8 t a a; +#X obj 48 48 t a a; +#X msg 133 29 \$1 \$2; +#X obj 78 92 #outer & ( -1 0 ); +#X obj 48 137 #outer & ( 0 -1 ); +#X obj 48 251 # +; +#X obj 73 251 #for ( 0 0 ) ( 240 320 ) ( 1 1 ); +#X obj 116 229 loadbang; +#X obj 84 229 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 48 182 # >> 1; +#X obj 48 115 #convolve ( 2 1 # ) \, op ignore \, fold inv+; +#X obj 78 71 #convolve ( 1 2 # ) \, op ignore \, fold inv+; +#X connect 1 0 6 0; +#X connect 2 0 15 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 6 1 3 0; +#X connect 7 0 16 0; +#X connect 7 1 17 0; +#X connect 8 0 5 1; +#X connect 9 0 2 1; +#X connect 10 0 2 0; +#X connect 11 0 0 0; +#X connect 12 0 11 1; +#X connect 13 0 12 0; +#X connect 14 0 12 0; +#X connect 15 0 11 0; +#X connect 16 0 10 0; +#X connect 17 0 9 0; +#X restore 332 281 pd heightmap2indexmap; +#X obj 11 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1 +-1; +#X obj 332 228 spigot; +#X text 397 170 no reflection; +#X obj 239 167 shunt 3; +#X obj 239 145 t a; +#X obj 313 188 # put 0; +#X obj 255 491 shunt 2; +#X obj 325 493 shunt 2; +#X obj 87 401 shunt 2; +#X obj 31 39 metro 33.3667; +#X obj 80 171 shunt 2; +#X text 154 173 freeze time; +#X obj 137 173 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 131 100 r feedback; +#X obj 229 543 s feedback; +#X obj 124 264 t a; +#X obj 239 80 #convolve ( 2 2 # ) \, op ignore; +#X obj 571 403 #yuv_to_rgb; +#X text 500 501 pas de reflection \, + yuv; +#X connect 0 0 70 0; +#X connect 1 0 13 0; +#X connect 2 0 22 0; +#X connect 3 0 10 0; +#X connect 3 1 12 0; +#X connect 4 0 15 0; +#X connect 4 0 6 0; +#X connect 6 0 9 0; +#X connect 6 1 79 0; +#X connect 7 0 81 0; +#X connect 8 0 70 0; +#X connect 9 0 11 1; +#X connect 10 0 18 0; +#X connect 11 0 17 0; +#X connect 13 0 4 0; +#X connect 14 0 82 0; +#X connect 15 0 5 0; +#X connect 16 0 87 0; +#X connect 17 0 86 0; +#X connect 18 0 14 1; +#X connect 18 0 60 0; +#X connect 19 0 1 0; +#X connect 20 0 0 0; +#X connect 22 0 3 0; +#X connect 26 0 75 1; +#X connect 28 0 59 1; +#X connect 32 0 60 1; +#X connect 34 0 36 0; +#X connect 36 0 9 1; +#X connect 36 0 13 1; +#X connect 37 0 57 0; +#X connect 38 0 89 0; +#X connect 39 0 38 0; +#X connect 40 0 38 0; +#X connect 41 0 40 1; +#X connect 42 0 40 0; +#X connect 43 0 76 0; +#X connect 46 0 38 0; +#X connect 48 0 78 1; +#X connect 48 0 79 1; +#X connect 48 0 80 1; +#X connect 49 0 80 0; +#X connect 50 0 11 1; +#X connect 51 0 50 0; +#X connect 54 0 59 0; +#X connect 57 0 58 0; +#X connect 58 0 66 0; +#X connect 59 0 76 0; +#X connect 59 1 43 0; +#X connect 60 0 88 0; +#X connect 60 1 59 0; +#X connect 61 0 63 0; +#X connect 62 0 63 1; +#X connect 63 0 11 2; +#X connect 64 0 19 0; +#X connect 65 0 64 1; +#X connect 66 0 64 1; +#X connect 66 1 65 1; +#X connect 67 0 66 1; +#X connect 67 0 73 1; +#X connect 70 0 64 0; +#X connect 71 0 65 0; +#X connect 72 0 21 0; +#X connect 72 0 14 0; +#X connect 73 0 71 0; +#X connect 75 0 8 0; +#X connect 75 1 20 0; +#X connect 75 2 77 0; +#X connect 76 0 75 0; +#X connect 76 0 73 0; +#X connect 77 0 0 0; +#X connect 78 0 17 0; +#X connect 78 1 11 0; +#X connect 79 0 78 1; +#X connect 80 1 51 0; +#X connect 81 0 14 0; +#X connect 81 0 21 0; +#X connect 82 0 16 0; +#X connect 82 1 87 0; +#X connect 84 0 82 1; +#X connect 85 0 18 0; +#X connect 87 0 78 0; +#X connect 88 0 54 0; +#X connect 89 0 77 1; diff --git a/externals/gridflow/pd_help/@!.pd b/externals/gridflow/pd_help/@!.pd new file mode 100644 index 00000000..c52fe904 --- /dev/null +++ b/externals/gridflow/pd_help/@!.pd @@ -0,0 +1,65 @@ +#N canvas 301 131 593 440 10; +#X obj 18 145 @! abs; +#X obj 18 178 @export; +#X obj 133 177 @export; +#X obj 133 144 @! rand; +#X obj 249 178 @export; +#X obj 249 145 @! sqrt; +#X floatatom 18 94 5 0 0 0 - - -; +#X obj 364 144 @! sq; +#X obj 364 178 @export; +#X text 19 325 inlet: grid | outlet: grid; +#X text 15 241 absolute value; +#X text 363 241 A * A; +#X text 14 14 the one-input operators: @! abs \, @! rand \, @! sqrt +\, @! sq; +#X obj 18 111 @import ( 1 ); +#X floatatom 133 94 5 0 0 0 - - -; +#X obj 133 111 @import ( 1 ); +#X floatatom 249 95 5 0 0 0 - - -; +#X obj 249 112 @import ( 1 ); +#X floatatom 364 95 5 0 0 0 - - -; +#X obj 364 112 @import ( 1 ); +#X text 132 242 random non-; +#X text 133 257 negative number; +#X text 133 273 below A; +#X text 246 325 A refers to the left inlet; +#X text 250 257 of A rounded; +#X text 249 242 sqare root; +#X text 250 273 downwards; +#X obj 115 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 18 197 route int; +#X obj 133 196 route int; +#X obj 249 197 route int; +#X obj 364 197 route int; +#X floatatom 18 217 5 0 0 0 - - -; +#X floatatom 133 216 5 0 0 0 - - -; +#X floatatom 249 217 5 0 0 0 - - -; +#X floatatom 364 217 5 0 0 0 - - -; +#X obj 94 376 @ +; +#X text 19 371 see also:; +#X text 514 13 gridflow; +#X text 38 37 computes one of the four basic one-input operators; +#X text 36 51 on each value of a grid; +#X connect 0 0 1 0; +#X connect 1 0 28 0; +#X connect 2 0 29 0; +#X connect 3 0 2 0; +#X connect 4 0 30 0; +#X connect 5 0 4 0; +#X connect 6 0 13 0; +#X connect 7 0 8 0; +#X connect 8 0 31 0; +#X connect 13 0 0 0; +#X connect 14 0 15 0; +#X connect 15 0 3 0; +#X connect 16 0 17 0; +#X connect 17 0 5 0; +#X connect 18 0 19 0; +#X connect 19 0 7 0; +#X connect 27 0 14 0; +#X connect 28 0 32 0; +#X connect 29 0 33 0; +#X connect 30 0 34 0; +#X connect 31 0 35 0; diff --git a/externals/gridflow/pd_help/@.pd b/externals/gridflow/pd_help/@.pd new file mode 100644 index 00000000..8c891d2d --- /dev/null +++ b/externals/gridflow/pd_help/@.pd @@ -0,0 +1,115 @@ +#N canvas 662 216 748 501 10; +#X obj 19 157 @ +; +#X obj 210 158 @ -; +#X text 50 161 A + B; +#X text 241 162 A - B; +#X obj 402 158 @ inv+; +#X text 458 161 B - A; +#X obj 19 273 @ *; +#X text 50 276 A * B; +#X text 240 272 A / B; +#X text 240 283 rounded towards zero; +#X obj 210 274 @ /; +#X obj 402 272 @ inv*; +#X text 455 279 rounded towards zero; +#X text 457 269 B / A; +#X obj 20 390 @ %; +#X obj 211 391 @ swap%; +#X obj 403 392 @ rem; +#X text 50 393 A % B \, modulo; +#X text 270 395 B % A \, modulo; +#X text 452 394 A % B \, remainder; +#X floatatom 509 52 5 0 0 0 - - -; +#X obj 509 76 @import ( 1 ); +#X floatatom 621 52 5 0 0 0 - - -; +#X obj 621 76 @import ( 1 ); +#X obj 19 130 r l; +#X obj 44 130 r r; +#X obj 210 131 r l; +#X obj 235 131 r r; +#X obj 402 131 r l; +#X obj 427 131 r r; +#X obj 19 246 r l; +#X obj 44 246 r r; +#X obj 210 247 r l; +#X obj 235 247 r r; +#X obj 402 244 r l; +#X obj 427 244 r r; +#X obj 20 361 r l; +#X obj 45 361 r r; +#X obj 211 362 r l; +#X obj 236 362 r r; +#X obj 403 363 r l; +#X obj 428 363 r r; +#X obj 509 96 s l; +#X obj 621 97 s r; +#X floatatom 19 204 5 0 0 0 - - -; +#X obj 19 185 @export_list; +#X floatatom 210 204 5 0 0 0 - - -; +#X obj 210 185 @export_list; +#X floatatom 402 204 5 0 0 0 - - -; +#X obj 402 185 @export_list; +#X text 14 14 the two-input operators: *whoa \, there's a lot of them* +; +#X floatatom 19 320 5 0 0 0 - - -; +#X obj 19 301 @export_list; +#X floatatom 210 320 5 0 0 0 - - -; +#X obj 210 301 @export_list; +#X floatatom 402 320 5 0 0 0 - - -; +#X obj 402 301 @export_list; +#X floatatom 20 440 5 0 0 0 - - -; +#X obj 20 421 @export_list; +#X floatatom 211 440 5 0 0 0 - - -; +#X obj 211 421 @export_list; +#X floatatom 403 440 5 0 0 0 - - -; +#X obj 403 421 @export_list; +#X text 18 472 see also:; +#X obj 99 476 @! abs; +#X text 684 13 gridflow; +#X text 14 80 angles are in hundredth of degrees \, so a full circle +(two pi radians) is 36000 you can convert from radians to our angles +by multiplying by 18000/pi.; +#X text 14 54 for all of these \, A refers to the left inlet and B +to the value on the right.; +#X text 15 27 Consult doc/architecture.html to see all the 40 of them. +; +#X connect 0 0 45 0; +#X connect 1 0 47 0; +#X connect 4 0 49 0; +#X connect 6 0 52 0; +#X connect 10 0 54 0; +#X connect 11 0 56 0; +#X connect 14 0 58 0; +#X connect 15 0 60 0; +#X connect 16 0 62 0; +#X connect 20 0 21 0; +#X connect 21 0 42 0; +#X connect 22 0 23 0; +#X connect 23 0 43 0; +#X connect 24 0 0 0; +#X connect 25 0 0 1; +#X connect 26 0 1 0; +#X connect 27 0 1 1; +#X connect 28 0 4 0; +#X connect 29 0 4 1; +#X connect 30 0 6 0; +#X connect 31 0 6 1; +#X connect 32 0 10 0; +#X connect 33 0 10 1; +#X connect 34 0 11 0; +#X connect 35 0 11 1; +#X connect 36 0 14 0; +#X connect 37 0 14 1; +#X connect 38 0 15 0; +#X connect 39 0 15 1; +#X connect 40 0 16 0; +#X connect 41 0 16 1; +#X connect 45 0 44 0; +#X connect 47 0 46 0; +#X connect 49 0 48 0; +#X connect 52 0 51 0; +#X connect 54 0 53 0; +#X connect 56 0 55 0; +#X connect 58 0 57 0; +#X connect 60 0 59 0; +#X connect 62 0 61 0; diff --git a/externals/gridflow/pd_help/@apply_colormap_channelwise.pd b/externals/gridflow/pd_help/@apply_colormap_channelwise.pd new file mode 100644 index 00000000..7f4cbbbf --- /dev/null +++ b/externals/gridflow/pd_help/@apply_colormap_channelwise.pd @@ -0,0 +1,29 @@ +#N canvas 119 122 762 396 10; +#X obj 19 118 @in; +#X obj 19 239 @apply_colormap_channelwise; +#X text 14 17 @apply_colormap_channelweb; +#X obj 203 190 @import ( 256 3 ); +#X obj 203 168 random 255; +#X msg 203 128 768; +#X obj 203 148 until; +#X text 305 108 colormap is a grid dim (2) (intensity channels); +#X text 679 13 gridflow; +#X msg 52 86 open bluemarble.jpg; +#X obj 19 366 @out window; +#X text 304 54 this object is useful for color correction. for each +pixel it takes it apart \, looks up each part separately in the colormap +and constructs a new pixel from that.; +#X obj 19 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 19 59 fork; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 3 0 1 1; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 9 0 0 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 13 0 5 0; +#X connect 13 1 9 0; diff --git a/externals/gridflow/pd_help/@cast.pd b/externals/gridflow/pd_help/@cast.pd new file mode 100644 index 00000000..92543dee --- /dev/null +++ b/externals/gridflow/pd_help/@cast.pd @@ -0,0 +1,46 @@ +#N canvas 435 101 684 379 10; +#X text 14 15 @cast; +#X text 143 14 returns a grid of the same dimensions containing all +the same values after type conversion. note that while casting to a +smaller type \, overflowing values will be truncated.; +#X text 626 13 gridflow; +#X text 142 58 numbertypes are: uint8 \, int16 \, int32 \, int64 \, +float32 \, float64. see doc/architecture.html for more info.; +#X obj 126 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262144 -1 -1 3.1416 256; +#X obj 115 136 @pack 4 float32; +#X obj 78 185 @store; +#X obj 78 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 14 136 print it:; +#X obj 136 234 @print; +#X obj 78 205 t a a a a; +#X obj 78 354 @print; +#X obj 97 314 @print; +#X obj 116 254 @cast uint8; +#X obj 116 274 @print; +#X obj 97 294 @cast int32; +#X obj 78 334 @cast float64; +#X obj 216 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262144 -1 -1 42 256; +#X obj 126 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262144 -1 -1 2004 256; +#X obj 216 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 +-262144 -1 -1 1e+10 256; +#X obj 118 158 @redim ( 2 2 ); +#X text 182 295 normally the default; +#X connect 4 0 5 0; +#X connect 5 0 20 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 10 0 16 0; +#X connect 10 1 15 0; +#X connect 10 2 13 0; +#X connect 10 3 9 0; +#X connect 13 0 14 0; +#X connect 15 0 12 0; +#X connect 16 0 11 0; +#X connect 17 0 5 1; +#X connect 18 0 5 2; +#X connect 19 0 5 3; +#X connect 20 0 6 1; diff --git a/externals/gridflow/pd_help/@checkers.pd b/externals/gridflow/pd_help/@checkers.pd new file mode 100644 index 00000000..a8de669e --- /dev/null +++ b/externals/gridflow/pd_help/@checkers.pd @@ -0,0 +1,13 @@ +#N canvas 431 74 440 355 10; +#X obj 20 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 20 164 @checkers; +#X obj 20 81 @for ( 0 0 ) ( 128 128 ) ( 1 1 ); +#X text 16 7 @checkers; +#X text 216 297 see also; +#X obj 283 301 @draw_polygon; +#X text 354 7 gridflow; +#X obj 20 309 @out window; +#X connect 0 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 1 0; diff --git a/externals/gridflow/pd_help/@complex_sq.pd b/externals/gridflow/pd_help/@complex_sq.pd new file mode 100644 index 00000000..9adacae8 --- /dev/null +++ b/externals/gridflow/pd_help/@complex_sq.pd @@ -0,0 +1,27 @@ +#N canvas 301 131 637 303 10; +#X text 14 14 @comlex_sq; +#X obj 21 159 @complex_sq; +#X text 96 15 this object computes the square of complex numbers. if +seeing imaginary as Y and real as X \, then this operation squares +the distance of a point from origin and doubles the angle between it +and the +X half-axis clockwise. :); +#X floatatom 21 108 5 0 0 0 - - -; +#X obj 21 188 @export_list; +#X floatatom 21 238 5 0 0 0 - - -; +#X obj 21 128 @two; +#X floatatom 64 108 5 0 0 0 - - -; +#X obj 114 235 @print; +#X obj 21 209 unpack; +#X floatatom 58 238 5 0 0 0 - - -; +#X text 572 13 gridflow; +#X text 21 275 see also:; +#X obj 94 279 @ +; +#X obj 127 279 @! abs; +#X connect 1 0 4 0; +#X connect 1 0 8 0; +#X connect 3 0 6 0; +#X connect 4 0 9 0; +#X connect 6 0 1 0; +#X connect 7 0 6 1; +#X connect 9 0 5 0; +#X connect 9 1 10 0; diff --git a/externals/gridflow/pd_help/@convolve.pd b/externals/gridflow/pd_help/@convolve.pd new file mode 100644 index 00000000..31c77936 --- /dev/null +++ b/externals/gridflow/pd_help/@convolve.pd @@ -0,0 +1,40 @@ +#N canvas 923 183 662 404 10; +#X obj 19 37 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X text 14 15 @convolve blurs \, sharpens \, finds edges \, emboss +& more ...; +#X obj 19 108 @in; +#X obj 19 133 @convolve ^ + 0; +#X msg 212 76 1 1 1 1 1 1 1 1 1; +#X obj 212 96 @redim ( 3 3 ); +#X text 569 17 gridflow; +#X text 18 363 see also:; +#X obj 234 367 @solarize; +#X obj 303 367 @layer; +#X obj 158 367 @posterize; +#X obj 89 367 @contrast; +#X obj 212 57 loadbang; +#X msg 42 85 open bluemarble.jpg; +#X text 216 187 splits the incoming grid into dim(rest...) parts \, +for each of those parts at (xy \, x). a rectangle of such parts \, +centered around (y \, x) is combined with the convolution grid like +a [@] of operation op_para. then each such result is folded like [@ +fold] of operation op_fold and specified base. the results are assembled +into a grid that is sent to the outlet. near the borders of the grid +\, coordinates wrap around. this means the whole grid has to be received +before production of the next grid starts. this is the convolution +grid and it gets stored in the object. rows2 and columns2 must be odd +numbers.; +#X text 145 130 here ^ is the parallel operator \, fold is indicated +by + and 0 is its base.; +#X obj 19 62 fork; +#X obj 19 309 @out window; +#X connect 0 0 16 0; +#X connect 2 0 3 0; +#X connect 3 0 17 0; +#X connect 4 0 5 0; +#X connect 5 0 3 1; +#X connect 12 0 4 0; +#X connect 13 0 2 0; +#X connect 16 0 2 0; +#X connect 16 1 13 0; diff --git a/externals/gridflow/pd_help/@downscale_by.pd b/externals/gridflow/pd_help/@downscale_by.pd new file mode 100644 index 00000000..bf2356cc --- /dev/null +++ b/externals/gridflow/pd_help/@downscale_by.pd @@ -0,0 +1,26 @@ +#N canvas 614 643 463 368 10; +#X obj 144 82 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 113 101 @in; +#X obj 20 72 metro 10; +#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1 +; +#X text 301 313 see also:; +#X obj 377 312 @scale_to; +#X obj 200 133 @import ( 1 ); +#X floatatom 200 113 5 0 0 0 - - -; +#X obj 377 333 @scale_by; +#X text 14 15 @downscale_by; +#X text 384 17 gridflow; +#X obj 113 157 @downscale_by; +#X obj 113 310 @out window; +#X msg 114 56 open bluemarble.jpg; +#X connect 0 0 1 0; +#X connect 1 0 11 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 6 0 11 1; +#X connect 7 0 6 0; +#X connect 11 0 12 0; +#X connect 13 0 1 0; +#X connect 13 0 0 0; diff --git a/externals/gridflow/pd_help/@draw_polygon.pd b/externals/gridflow/pd_help/@draw_polygon.pd new file mode 100644 index 00000000..b4325a02 --- /dev/null +++ b/externals/gridflow/pd_help/@draw_polygon.pd @@ -0,0 +1,36 @@ +#N canvas 386 391 634 338 10; +#X obj 22 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X floatatom 58 142 5 0 255 0 - - -; +#X obj 84 179 @three; +#X floatatom 101 142 5 0 255 0 - - -; +#X floatatom 144 142 5 0 255 0 - - -; +#X obj 195 158 until; +#X obj 195 177 random 128; +#X text 16 7 @draw_polygon; +#X text 362 6 gridflow; +#X obj 20 237 @draw_polygon put 1; +#X obj 20 48 fork; +#X obj 51 48 fork; +#X obj 20 106 @in; +#X obj 196 196 @import ( 4 2 ); +#X msg 195 139 4; +#X obj 20 309 @out window; +#X msg 47 81 open r001.jpg; +#X text 158 80 1 <-- open image; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 9 1; +#X connect 3 0 2 1; +#X connect 4 0 2 2; +#X connect 5 0 6 0; +#X connect 6 0 13 0; +#X connect 9 0 15 0; +#X connect 10 0 12 0; +#X connect 10 1 11 0; +#X connect 11 0 2 0; +#X connect 11 1 14 0; +#X connect 12 0 9 0; +#X connect 13 0 9 2; +#X connect 14 0 5 0; +#X connect 16 0 12 0; diff --git a/externals/gridflow/pd_help/@finished.pd b/externals/gridflow/pd_help/@finished.pd new file mode 100644 index 00000000..b91ee5a7 --- /dev/null +++ b/externals/gridflow/pd_help/@finished.pd @@ -0,0 +1,15 @@ +#N canvas 551 311 442 238 10; +#X text 21 22 @finished; +#X text 22 53 a bang is emitted every time a grid transmission ends +; +#X obj 24 146 @finished; +#X obj 24 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 24 118 @two; +#X floatatom 24 80 5 0 0 0 - - -; +#X floatatom 47 98 5 0 0 0 - - -; +#X text 371 15 gridflow; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 4 1; diff --git a/externals/gridflow/pd_help/@fold.pd b/externals/gridflow/pd_help/@fold.pd new file mode 100644 index 00000000..dee0f54a --- /dev/null +++ b/externals/gridflow/pd_help/@fold.pd @@ -0,0 +1,39 @@ +#N canvas 306 222 526 344 10; +#X obj 18 103 @in; +#X obj 18 280 print value; +#X obj 18 137 @fold + 0; +#X obj 18 160 @fold + 0; +#X obj 18 184 @fold + 0; +#X text 114 133 treats the grid as a grid of one- dimensional grids +such that the same operation (here addition) will be performed on all +its elements together with the base value. the results are combined +back. each @fold operation removes a dimension. syntax: @fold ; +#X text 19 8 @fold; +#X text 451 11 gridflow; +#X obj 85 313 @inner2; +#X text 14 309 see also:; +#X obj 141 313 @join; +#X obj 183 313 @perspective; +#X msg 41 70 open bluemarble.jpg; +#X obj 18 246 @export_list; +#X msg 237 66 open b001.jpg; +#X obj 18 49 fork; +#X obj 9 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1 +; +#X obj 214 41 fork; +#X obj 199 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 13 0; +#X connect 12 0 0 0; +#X connect 13 0 1 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 15 1 12 0; +#X connect 16 0 15 0; +#X connect 17 0 0 0; +#X connect 17 1 14 0; +#X connect 18 0 17 0; diff --git a/externals/gridflow/pd_help/@foldinnerouter.pd b/externals/gridflow/pd_help/@foldinnerouter.pd new file mode 100644 index 00000000..46f2dc6d --- /dev/null +++ b/externals/gridflow/pd_help/@foldinnerouter.pd @@ -0,0 +1,94 @@ +#N canvas 63 0 747 645 10; +#X obj 18 34 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 18 233 @export; +#X obj 18 96 @in; +#X text 18 10 @fold \, @inner \, @outer; +#X obj 18 264 print value; +#X obj 18 137 @fold + 0; +#X obj 18 160 @fold + 0; +#X obj 18 184 @fold + 0; +#X text 114 133 treats the grid as a grid of one- dimensional grids +such that the same operation (here addition) will be performed on all +its elements together with the base value. the results are combined +back. each @fold operation removes a dimension. syntax: @fold ; +#X obj 19 309 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 171 402 @ * 128; +#X obj 19 400 spigot; +#X obj 100 400 spigot; +#X obj 67 400 == 0; +#X obj 67 309 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1 +; +#X obj 19 432 @outer +; +#X obj 100 431 @outer ^; +#X obj 100 451 @ * 2; +#X text 171 448 @outer does the same two-input operation between every +possible pair of the left-side grid and the right side grid. @inner +treats both input grids like @fold does \, then does a @outer on the +other dimensions \, such that every two-input operation is like a @fold. +this is a very powerful operation that can be used to do rotations +\, rgb->yuv \, color conversions \, etc.; +#X text 88 310 select pattern; +#X text 17 566 combine channelless picture with gamma factors (r \, +g \, b); +#X obj 19 379 @import ( 128 ); +#X obj 19 359 until; +#X msg 19 338 128; +#X obj 60 359 float 1; +#X obj 115 359 + 1; +#X obj 19 525 @outer gamma; +#X obj 171 360 until; +#X obj 212 360 float 1; +#X obj 267 360 + 1; +#X msg 171 339 4; +#X obj 171 381 @import ( 3 ); +#X text 665 16 gridflow; +#X text 19 598 see also:; +#X obj 87 603 @scan; +#X obj 129 603 @join; +#X obj 171 603 @finished; +#X obj 241 603 @cast; +#X obj 283 603 @ravel; +#X obj 331 603 @grade; +#X obj 380 603 @perspective; +#X msg 41 76 open bluemarble.jpg; +#X obj 18 55 fork; +#X obj 19 547 @out window; +#X connect 0 0 42 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X connect 9 0 23 0; +#X connect 9 0 30 0; +#X connect 10 0 26 1; +#X connect 11 0 15 0; +#X connect 11 0 15 1; +#X connect 12 0 16 0; +#X connect 12 0 16 1; +#X connect 13 0 12 1; +#X connect 14 0 11 1; +#X connect 14 0 13 0; +#X connect 15 0 26 0; +#X connect 16 0 17 0; +#X connect 17 0 26 0; +#X connect 21 0 11 0; +#X connect 21 0 12 0; +#X connect 22 0 24 0; +#X connect 23 0 22 0; +#X connect 24 0 25 0; +#X connect 24 0 21 0; +#X connect 25 0 24 1; +#X connect 26 0 43 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 28 0 31 0; +#X connect 29 0 28 1; +#X connect 30 0 27 0; +#X connect 31 0 10 0; +#X connect 41 0 2 0; +#X connect 42 0 2 0; +#X connect 42 1 41 0; diff --git a/externals/gridflow/pd_help/@for.pd b/externals/gridflow/pd_help/@for.pd new file mode 100644 index 00000000..9a9e1666 --- /dev/null +++ b/externals/gridflow/pd_help/@for.pd @@ -0,0 +1,16 @@ +#N canvas 923 183 569 289 10; +#X text 14 15 @for; +#X obj 20 136 @for 0 320 1; +#X floatatom 20 73 5 0 0 0 - - -; +#X floatatom 59 94 5 0 0 0 - - -; +#X floatatom 99 116 5 0 0 0 - - -; +#X text 137 141 works like a for object \, plugged to an @import tuned +for a dim(size) where size is the number of values produced by a bang +to that for. syntax: @for outlet: grid dim(size) +where size = floor(to-from+1)/step; +#X obj 20 199 @print; +#X text 490 16 gridflow; +#X connect 1 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 1 1; +#X connect 4 0 1 2; diff --git a/externals/gridflow/pd_help/@global.pd b/externals/gridflow/pd_help/@global.pd new file mode 100644 index 00000000..3031ff5f --- /dev/null +++ b/externals/gridflow/pd_help/@global.pd @@ -0,0 +1,9 @@ +#N canvas 923 183 400 205 10; +#X text 21 22 @global; +#X text 22 53 dummy object for controlling the profiler; +#X obj 24 146 @global; +#X msg 48 95 profiler_reset; +#X msg 59 115 profiler_dump; +#X text 321 18 gridflow; +#X connect 3 0 2 0; +#X connect 4 0 2 0; diff --git a/externals/gridflow/pd_help/@grade.pd b/externals/gridflow/pd_help/@grade.pd new file mode 100644 index 00000000..e7873d77 --- /dev/null +++ b/externals/gridflow/pd_help/@grade.pd @@ -0,0 +1,20 @@ +#N canvas 435 101 649 221 10; +#X text 143 15 splits a dim[a... \, b] grid into dim[b] vectors that +each contain numbers from 0 to b-1 indicating the ordering of the values. +the result is a dim[a... \, b] grid.; +#X text 14 15 @grade; +#X obj 19 139 @grade; +#X floatatom 19 74 5 0 0 0 - - -; +#X floatatom 60 74 5 0 0 0 - - -; +#X obj 19 168 @print; +#X obj 19 106 @four; +#X floatatom 101 74 5 0 0 0 - - -; +#X floatatom 142 74 5 0 0 0 - - -; +#X text 585 14 gridflow; +#X text 146 175 (behaves unstable in 0.7.0); +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 4 0 6 1; +#X connect 6 0 2 0; +#X connect 7 0 6 2; +#X connect 8 0 6 3; diff --git a/externals/gridflow/pd_help/@greyscale_to_rgb.pd b/externals/gridflow/pd_help/@greyscale_to_rgb.pd new file mode 100644 index 00000000..106126b1 --- /dev/null +++ b/externals/gridflow/pd_help/@greyscale_to_rgb.pd @@ -0,0 +1,21 @@ +#N canvas 119 122 433 374 10; +#X obj 15 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 19 105 @in; +#X obj 19 141 @rgb_to_greyscale; +#X obj 19 161 s xx; +#X obj 19 185 r xx; +#X obj 19 205 @greyscale_to_rgb; +#X text 24 5 @greyscale_to_rgb; +#X text 353 13 gridflow; +#X msg 42 78 open bluemarble.jpg; +#X obj 19 55 fork; +#X obj 19 263 @out window; +#X connect 0 0 9 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 8 0 1 0; +#X connect 9 0 1 0; +#X connect 9 1 8 0; diff --git a/externals/gridflow/pd_help/@importexport.pd b/externals/gridflow/pd_help/@importexport.pd new file mode 100644 index 00000000..454d7149 --- /dev/null +++ b/externals/gridflow/pd_help/@importexport.pd @@ -0,0 +1,51 @@ +#N canvas 119 230 748 467 10; +#X msg 75 125 reset; +#X obj 33 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X msg 33 111 200; +#X text 125 129 abort output of grid \, if any; +#X text 14 9 @import \, @export \, @export_list converts integers to +grids and back; +#X obj 41 239 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 33 283 @dim; +#X obj 322 335 @export_list; +#X obj 322 366 print export_list; +#X obj 33 335 @export; +#X obj 33 366 print export; +#X obj 33 176 @out 240 320; +#X obj 33 260 @in; +#X text 70 285 gets the size of the picture; +#X text 87 334 accepts grids and sends integers; +#X text 416 328 accepts grids and sends lists of integers; +#X obj 33 88 until; +#X msg 33 67 230400; +#X obj 33 157 @import ( 240 320 3 ); +#X text 188 158 syntax: @import ( +); +#X text 32 418 see also:; +#X obj 162 421 @two; +#X obj 196 421 @three; +#X obj 244 421 @four; +#X text 671 16 gridflow; +#X obj 101 421 @in; +#X obj 128 421 @out; +#X obj 33 301 s size; +#X obj 33 319 r size; +#X obj 322 315 r size; +#X msg 33 216 open jpeg file 1.jpg; +#X connect 0 0 18 0; +#X connect 1 0 17 0; +#X connect 2 0 18 0; +#X connect 5 0 12 0; +#X connect 6 0 27 0; +#X connect 7 0 8 0; +#X connect 9 0 10 0; +#X connect 12 0 6 0; +#X connect 16 0 2 0; +#X connect 17 0 16 0; +#X connect 18 0 11 0; +#X connect 28 0 9 0; +#X connect 29 0 7 0; +#X connect 30 0 12 0; +#X connect 30 0 5 0; diff --git a/externals/gridflow/pd_help/@inner2.pd b/externals/gridflow/pd_help/@inner2.pd new file mode 100644 index 00000000..34cb3ad1 --- /dev/null +++ b/externals/gridflow/pd_help/@inner2.pd @@ -0,0 +1,17 @@ +#N canvas 63 0 748 632 10; +#X obj 18 49 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 18 125 @in; +#X text 14 15 @inner; +#X obj 18 169 @inner2 * + 0; +#X text 660 16 gridflow; +#X text 178 172 this has yet to be done!; +#X obj 18 307 @out window; +#X msg 41 95 open bluemarble.jpg; +#X obj 18 70 fork; +#X connect 0 0 8 0; +#X connect 1 0 3 0; +#X connect 3 0 6 0; +#X connect 7 0 1 0; +#X connect 8 0 1 0; +#X connect 8 1 7 0; diff --git a/externals/gridflow/pd_help/@inout.pd b/externals/gridflow/pd_help/@inout.pd new file mode 100644 index 00000000..fdf1e8b0 --- /dev/null +++ b/externals/gridflow/pd_help/@inout.pd @@ -0,0 +1,63 @@ +#N canvas 281 197 649 652 10; +#X obj 35 213 @in; +#X msg 52 283 option timelog \$1; +#X obj 52 263 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1 +; +#X text 274 307 upload a grid; +#X text 261 80 upload a grid; +#X text 194 108 open default display for screenshot; +#X msg 73 134 open videodev /dev/video0; +#X text 260 136 open a video device; +#X msg 75 332 open x11 here; +#X msg 87 356 open x11 local 10; +#X text 182 285 show/hide timing statistics; +#X text 178 334 connect to default display; +#X text 218 358 connect to display #10 on this machine; +#X msg 100 380 open x11 remote.host.bla.net 0; +#X text 324 382 connect to remote machine on display #0; +#X text 290 161 open mpeg video stream; +#X obj 35 441 @out; +#X text 14 15 @in \, @out communicating grids (pictures) to/from devices +\, sockets \, files; +#X text 272 155 *; +#X text 36 558 * path is where you started pd from. usually $home. +; +#X text 308 188 open an image file; +#X msg 114 450 close; +#X text 577 15 gridflow; +#X text 37 590 see also:; +#X obj 108 595 @import ( 1 ); +#X obj 205 595 @export; +#X obj 260 595 @export_list; +#X obj 350 595 @export_symbol; +#X obj 454 595 @two; +#X obj 488 595 @three; +#X obj 536 595 @four; +#X msg 90 161 open lsd.mpeg; +#X msg 55 107 open x11 here; +#X msg 35 80 open host.bla.net 7777; +#X msg 113 404 open img/bla.jpg; +#X text 300 405 open single file in jpg format; +#X msg 108 186 open ./img/bla.jpg; +#X text 35 481 incoming file is sent through the opened device/socket/file. +in single file formats subsequent pictures overwrite the preceeding +one. there are many more options. for more information see the reference +manual in the "formats" and "objects for input/output" sections.; +#X msg 65 307 open x.test.at 7777; +#X msg 125 426 open window; +#X text 228 426 opens a window x11 \, quartz or sdl; +#X connect 0 0 16 0; +#X connect 1 0 16 0; +#X connect 2 0 1 0; +#X connect 6 0 0 0; +#X connect 8 0 16 0; +#X connect 9 0 16 0; +#X connect 13 0 16 0; +#X connect 21 0 16 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 16 0; +#X connect 36 0 0 0; +#X connect 38 0 16 0; +#X connect 39 0 16 0; diff --git a/externals/gridflow/pd_help/@join.pd b/externals/gridflow/pd_help/@join.pd new file mode 100644 index 00000000..3a8f3cdc --- /dev/null +++ b/externals/gridflow/pd_help/@join.pd @@ -0,0 +1,42 @@ +#N canvas 297 501 659 362 10; +#X obj 18 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 18 96 @in; +#X obj 211 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 211 96 @in; +#X obj 237 96 @rgb_to_greyscale; +#X obj 18 161 @join 2; +#X text 16 8 @join; +#X text 204 238 the left grid and right grid must have the same number +of elements in all dimensions except the one specified \, which will +be the sum of the two corresponding; +#X obj 18 208 @perspective; +#X text 563 10 gridflow; +#X text 17 306 see also:; +#X obj 86 310 @fold +; +#X obj 142 310 @scan +; +#X obj 18 269 @out window; +#X text 205 170 creation argument is the number of the dimensions by +which the join will occur. for n-dimensional grids \, the dimensions +are numbered from 0 to n-1. in addition \, negative numbers from -n +to -1 may be used \, to which n will be added.; +#X msg 41 73 open r001.jpg; +#X msg 234 69 open b001.jpg; +#X obj 18 53 fork; +#X obj 211 48 fork; +#X text 244 29 1 <--; +#X text 45 31 2 <--; +#X connect 0 0 17 0; +#X connect 1 0 5 0; +#X connect 2 0 18 0; +#X connect 3 0 4 0; +#X connect 4 0 5 1; +#X connect 5 0 8 0; +#X connect 8 0 13 0; +#X connect 15 0 1 0; +#X connect 16 0 3 0; +#X connect 17 0 1 0; +#X connect 17 1 15 0; +#X connect 18 0 3 0; +#X connect 18 1 16 0; diff --git a/externals/gridflow/pd_help/@layer.pd b/externals/gridflow/pd_help/@layer.pd new file mode 100644 index 00000000..98a68acd --- /dev/null +++ b/externals/gridflow/pd_help/@layer.pd @@ -0,0 +1,46 @@ +#N canvas 297 501 656 323 10; +#X obj 18 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 18 96 @in; +#X obj 211 28 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 211 96 @in; +#X obj 237 96 @rgb_to_greyscale; +#X text 14 5 @layer; +#X obj 18 208 @layer; +#X obj 18 161 @join -1; +#X obj 406 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 406 96 @in; +#X text 208 121 opacity channel file; +#X text 51 95 foreground file; +#X text 438 96 background file; +#X text 579 14 gridflow; +#X obj 18 269 @out window; +#X text 206 209 a picture that has an opacity level will be used as +foreground vs a picture that has no opacity channel. the output is +a picture that has no opacity channel; +#X msg 41 72 open r001.jpg; +#X msg 234 69 open b001.jpg; +#X msg 429 71 open g001.jpg; +#X obj 18 50 fork; +#X obj 211 47 fork; +#X obj 406 50 fork; +#X connect 0 0 19 0; +#X connect 1 0 7 0; +#X connect 2 0 20 0; +#X connect 3 0 4 0; +#X connect 4 0 7 1; +#X connect 6 0 14 0; +#X connect 7 0 6 0; +#X connect 8 0 21 0; +#X connect 9 0 6 1; +#X connect 16 0 1 0; +#X connect 17 0 3 0; +#X connect 18 0 9 0; +#X connect 19 0 1 0; +#X connect 19 1 16 0; +#X connect 20 0 3 0; +#X connect 20 1 17 0; +#X connect 21 0 9 0; +#X connect 21 1 18 0; diff --git a/externals/gridflow/pd_help/@perspective.pd b/externals/gridflow/pd_help/@perspective.pd new file mode 100644 index 00000000..db145d54 --- /dev/null +++ b/externals/gridflow/pd_help/@perspective.pd @@ -0,0 +1,29 @@ +#N canvas 280 56 664 282 10; +#X text 403 215 see also:; +#X obj 477 214 @redim; +#X obj 259 173 @perspective; +#X obj 20 147 @three; +#X obj 530 214 @ravel; +#X obj 20 125 random 10; +#X obj 87 125 random 10; +#X obj 155 125 random 10; +#X obj 20 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 587 12 gridflow; +#X text 14 15 @perspective; +#X obj 20 210 @print; +#X obj 259 210 @print; +#X text 143 15 transforms a dim[a... \, b] grid into a dim[a... \, +b-1] grid. there is a projection plane perpendicular to the last axis +and whose position is given by the creation argument. each vector's +length is adjusted so that it lies onto that plane. then the last dimension +of each vector is dropped; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 3 0 11 0; +#X connect 5 0 3 0; +#X connect 6 0 3 1; +#X connect 7 0 3 2; +#X connect 8 0 5 0; +#X connect 8 0 6 0; +#X connect 8 0 7 0; diff --git a/externals/gridflow/pd_help/@posterize.pd b/externals/gridflow/pd_help/@posterize.pd new file mode 100644 index 00000000..e10e42ba --- /dev/null +++ b/externals/gridflow/pd_help/@posterize.pd @@ -0,0 +1,36 @@ +#N canvas 432 100 640 338 10; +#X obj 20 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 20 100 @in; +#X obj 19 174 @posterize; +#X text 16 7 @posterize; +#X floatatom 84 131 5 2 255 0 - - -; +#X obj 84 147 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 19 127 @store; +#X text 132 131 2 - 255; +#X text 157 157 number of possible levels per channel. the levels are +equally spaced \, with the lowest at 0 and the highest at 255 the minimum +number of levels is 2 and the default value is also 2; +#X text 572 6 gridflow; +#X text 210 300 see also:; +#X obj 281 304 @convolve; +#X obj 419 304 @solarize; +#X obj 488 304 @layer; +#X obj 350 304 @contrast; +#X obj 20 59 fork; +#X msg 43 79 open bluemarble.jpg; +#X obj 19 303 @out window; +#X text 98 7 reduces the number of possible intensities in an image: +it rounds the color values. the effect is mostly apparent with a low +number of levels; +#X connect 0 0 15 0; +#X connect 1 0 6 1; +#X connect 2 0 17 0; +#X connect 4 0 2 1; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 15 0 1 0; +#X connect 15 1 16 0; +#X connect 16 0 1 0; diff --git a/externals/gridflow/pd_help/@print.pd b/externals/gridflow/pd_help/@print.pd new file mode 100644 index 00000000..1537faab --- /dev/null +++ b/externals/gridflow/pd_help/@print.pd @@ -0,0 +1,28 @@ +#N canvas 435 101 688 277 10; +#X text 191 203 see also:; +#X obj 297 208 @export; +#X obj 352 208 @export_list; +#X obj 442 208 rubyprint; +#X obj 19 123 @three; +#X floatatom 19 73 5 0 0 0 - - -; +#X floatatom 37 52 5 0 0 0 - - -; +#X floatatom 56 73 5 0 0 0 - - -; +#X obj 19 197 @print; +#X text 14 15 @print; +#X text 143 15 prints grids dimensions or all the grid data if there +are 2 dimensions or less.; +#X obj 112 123 @import ( 3 3 3 ); +#X obj 113 73 until; +#X msg 113 53 27; +#X obj 112 93 random 27; +#X text 619 13 gridflow; +#X obj 262 208 @dim; +#X obj 512 208 printargs; +#X connect 4 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 11 0 8 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 11 0; diff --git a/externals/gridflow/pd_help/@ravel.pd b/externals/gridflow/pd_help/@ravel.pd new file mode 100644 index 00000000..65bcad40 --- /dev/null +++ b/externals/gridflow/pd_help/@ravel.pd @@ -0,0 +1,31 @@ +#N canvas 435 101 660 279 10; +#X text 14 15 @ravel; +#X text 143 15 like @redim but always produces a 1-D grid with the +same total number of elements.; +#X obj 20 102 @in; +#X obj 20 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 20 168 @dim; +#X obj 20 190 @export_list; +#X obj 20 211 print before; +#X obj 140 129 @ravel; +#X obj 259 170 @dim; +#X obj 259 192 @export_list; +#X obj 259 213 print after; +#X text 403 215 see also:; +#X obj 567 214 @perspective; +#X text 575 14 gridflow; +#X obj 477 214 @redim ( 1 ); +#X msg 43 81 open bluemarble.jpg; +#X obj 20 60 fork; +#X connect 2 0 4 0; +#X connect 2 0 7 0; +#X connect 3 0 16 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 15 0 2 0; +#X connect 16 0 2 0; +#X connect 16 1 15 0; diff --git a/externals/gridflow/pd_help/@redim.pd b/externals/gridflow/pd_help/@redim.pd new file mode 100644 index 00000000..69e47169 --- /dev/null +++ b/externals/gridflow/pd_help/@redim.pd @@ -0,0 +1,21 @@ +#N canvas 435 101 633 282 10; +#X text 15 8 @redim; +#X text 114 14 rearrange a grid's values according to new dimensions +; +#X obj 25 99 @in; +#X obj 25 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 25 132 @redim ( 120 120 3 ); +#X text 287 192 see also:; +#X obj 367 195 @ravel; +#X obj 418 195 @perspective; +#X text 551 13 gridflow; +#X msg 48 77 open bluemarble.jpg; +#X obj 25 55 fork; +#X obj 25 187 @out window; +#X connect 2 0 4 0; +#X connect 3 0 10 0; +#X connect 4 0 11 0; +#X connect 9 0 2 0; +#X connect 10 0 2 0; +#X connect 10 1 9 0; diff --git a/externals/gridflow/pd_help/@rgb_to_greyscale.pd b/externals/gridflow/pd_help/@rgb_to_greyscale.pd new file mode 100644 index 00000000..c905d183 --- /dev/null +++ b/externals/gridflow/pd_help/@rgb_to_greyscale.pd @@ -0,0 +1,19 @@ +#N canvas 119 122 514 375 10; +#X obj 19 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 19 100 @in; +#X obj 19 132 @rgb_to_greyscale; +#X text 14 15 @rgb_to_greyscale; +#X obj 19 152 s xx; +#X obj 18 215 r xx; +#X obj 18 235 @greyscale_to_rgb; +#X text 444 11 gridflow; +#X obj 18 329 @out window; +#X msg 44 72 open r001.jpg; +#X connect 0 0 9 0; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 9 0 1 0; diff --git a/externals/gridflow/pd_help/@scale_by.pd b/externals/gridflow/pd_help/@scale_by.pd new file mode 100644 index 00000000..fa73b249 --- /dev/null +++ b/externals/gridflow/pd_help/@scale_by.pd @@ -0,0 +1,30 @@ +#N canvas 614 643 589 398 10; +#X obj 113 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 113 101 @in; +#X obj 20 72 metro 10; +#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1 +; +#X text 26 359 see also:; +#X text 14 15 @scale_by; +#X obj 102 358 @scale_to; +#X obj 113 157 @scale_by; +#X floatatom 172 116 5 0 0 0 - - -; +#X text 518 16 gridflow; +#X obj 172 358 @downscale_by; +#X obj 172 136 @import ( 1 ); +#X text 157 198 identical to scale_to with arguments that are exactly +twice that of the incoming grid. it's several times faster.; +#X obj 113 275 @out window; +#X msg 136 71 open bluemarble.jpg; +#X obj 113 50 fork; +#X connect 0 0 15 0; +#X connect 1 0 7 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 7 0 13 0; +#X connect 8 0 11 0; +#X connect 11 0 7 1; +#X connect 14 0 1 0; +#X connect 15 0 1 0; +#X connect 15 1 14 0; diff --git a/externals/gridflow/pd_help/@scale_to.pd b/externals/gridflow/pd_help/@scale_to.pd new file mode 100644 index 00000000..432e223f --- /dev/null +++ b/externals/gridflow/pd_help/@scale_to.pd @@ -0,0 +1,34 @@ +#N canvas 497 180 649 321 10; +#X obj 113 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 113 101 @in; +#X text 14 15 @scale_to; +#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1 +; +#X obj 269 157 @two; +#X obj 310 43 vsl 15 128 0 640 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 3300 1; +#X obj 333 43 vsl 15 128 0 480 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 6300 1; +#X obj 352 285 @scale_by; +#X text 281 281 see also:; +#X text 190 182 though not pointed out in the manual \, the initial +arguments seem to be mandatory.; +#X text 578 11 gridflow; +#X obj 423 285 @downscale_by; +#X obj 20 72 metro 100; +#X obj 113 262 @out window; +#X msg 135 74 open b001.jpg; +#X obj 113 51 fork; +#X obj 113 157 @scale_to ( 133 133 ); +#X connect 0 0 15 0; +#X connect 1 0 16 0; +#X connect 3 0 12 0; +#X connect 4 0 16 1; +#X connect 5 0 4 0; +#X connect 6 0 4 1; +#X connect 12 0 1 0; +#X connect 14 0 1 0; +#X connect 15 0 1 0; +#X connect 15 1 14 0; +#X connect 16 0 13 0; diff --git a/externals/gridflow/pd_help/@scan.pd b/externals/gridflow/pd_help/@scan.pd new file mode 100644 index 00000000..64f62f95 --- /dev/null +++ b/externals/gridflow/pd_help/@scan.pd @@ -0,0 +1,26 @@ +#N canvas 140 0 421 309 10; +#X text 14 15 @scan; +#X text 69 15 computes subtotals; +#X obj 17 127 @scan +; +#X obj 17 96 @three; +#X floatatom 17 56 5 0 0 0 - - -; +#X floatatom 62 56 5 0 0 0 - - -; +#X floatatom 109 56 5 0 0 0 - - -; +#X floatatom 17 225 5 0 0 0 - - -; +#X obj 17 186 unpack f f f; +#X floatatom 56 225 5 0 0 0 - - -; +#X floatatom 96 225 5 0 0 0 - - -; +#X obj 17 164 @export_list; +#X text 73 129 second inlet seems to be dead; +#X text 340 14 gridflow; +#X text 14 266 see also:; +#X obj 83 270 @fold +; +#X connect 2 0 11 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 8 2 10 0; +#X connect 11 0 8 0; diff --git a/externals/gridflow/pd_help/@solarize.pd b/externals/gridflow/pd_help/@solarize.pd new file mode 100644 index 00000000..60c48b25 --- /dev/null +++ b/externals/gridflow/pd_help/@solarize.pd @@ -0,0 +1,25 @@ +#N canvas 432 100 613 339 10; +#X obj 20 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 20 138 @in; +#X text 16 7 @solarize; +#X obj 20 174 @solarize; +#X text 98 7 makes medium intensities brightest. formerly brightest +colors become darkest \, formerly darkest stays darkest. this filter +is linear. it's like a 200% contrast \, except that overflows are mirrored +instead of clipped or wrapped.; +#X text 545 5 gridflow; +#X text 202 305 see also:; +#X obj 273 309 @convolve; +#X obj 487 309 @layer; +#X obj 342 309 @contrast; +#X obj 411 309 @posterize; +#X obj 20 222 @out window; +#X msg 43 112 open bluemarble.jpg; +#X obj 20 83 fork; +#X connect 0 0 13 0; +#X connect 1 0 3 0; +#X connect 3 0 11 0; +#X connect 12 0 1 0; +#X connect 13 0 1 0; +#X connect 13 1 12 0; diff --git a/externals/gridflow/pd_help/@spread.pd b/externals/gridflow/pd_help/@spread.pd new file mode 100644 index 00000000..c3c39895 --- /dev/null +++ b/externals/gridflow/pd_help/@spread.pd @@ -0,0 +1,64 @@ +#N canvas 265 540 787 472 10; +#X text 14 15 @spread; +#X text 129 15 makes noise; +#X obj 232 159 @in; +#X obj 232 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 232 207 spigot; +#X obj 278 207 == 0; +#X obj 275 140 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 +1; +#X obj 310 207 spigot; +#X obj 310 291 @ min 255; +#X obj 310 270 @spread 1; +#X obj 310 312 @ min 0; +#X floatatom 368 241 5 0 0 0 - - -; +#X obj 195 269 @store; +#X obj 20 197 @spread 1; +#X floatatom 78 163 5 0 0 0 - - -; +#X obj 20 88 until; +#X obj 20 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X msg 20 69 65536; +#X obj 61 88 float; +#X obj 101 88 + 1; +#X obj 20 129 @import ( 256 256 2 ); +#X text 368 314 we limit here \, because the values might go out of +range; +#X text 702 13 gridflow; +#X obj 195 393 @out window; +#X obj 310 395 @out window; +#X msg 255 112 open r001.jpg; +#X obj 232 87 fork; +#X obj 149 73 metro 50; +#X obj 149 51 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X text 300 141 switch displays \, use this to get an image into the +@store; +#X connect 2 0 4 0; +#X connect 2 0 7 0; +#X connect 3 0 26 0; +#X connect 4 0 12 1; +#X connect 5 0 7 1; +#X connect 6 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 10 0 24 0; +#X connect 11 0 9 1; +#X connect 12 0 23 0; +#X connect 13 0 12 0; +#X connect 14 0 13 1; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 18 0 20 0; +#X connect 19 0 18 1; +#X connect 20 0 13 0; +#X connect 25 0 2 0; +#X connect 26 0 2 0; +#X connect 26 1 25 0; +#X connect 27 0 2 0; +#X connect 28 0 27 0; diff --git a/externals/gridflow/pd_help/@store.pd b/externals/gridflow/pd_help/@store.pd new file mode 100644 index 00000000..68dd5a14 --- /dev/null +++ b/externals/gridflow/pd_help/@store.pd @@ -0,0 +1,48 @@ +#N canvas 519 121 541 394 10; +#X text 14 15 @store; +#X obj 18 118 @two; +#X floatatom 18 86 5 0 0 0 - - -; +#X floatatom 63 86 5 0 0 0 - - -; +#X text 92 15 stores a single grid and can recall parts of it.; +#X obj 111 136 @export_list; +#X floatatom 111 184 5 0 0 0 - - -; +#X obj 73 221 @redim ( 1 2 ); +#X obj 73 266 @store; +#X obj 73 307 @export_list; +#X obj 294 119 @in; +#X obj 294 45 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 +-1; +#X obj 73 326 unpack f f f; +#X floatatom 73 351 5 0 0 0 - - -; +#X text 56 352 R:; +#X floatatom 134 351 5 0 0 0 - - -; +#X floatatom 194 351 5 0 0 0 - - -; +#X text 117 352 G:; +#X text 178 352 B:; +#X text 130 262 this example allows you to select a single pixel from +the loaded picture and view its rgb value.; +#X obj 111 155 unpack; +#X floatatom 164 185 5 0 0 0 - - -; +#X text 92 185 X:; +#X text 149 186 Y:; +#X text 478 14 gridflow; +#X msg 317 92 open r001.jpg; +#X obj 294 70 fork; +#X connect 1 0 5 0; +#X connect 1 0 7 0; +#X connect 2 0 1 0; +#X connect 3 0 1 1; +#X connect 5 0 20 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 12 0; +#X connect 10 0 8 1; +#X connect 11 0 26 0; +#X connect 12 0 13 0; +#X connect 12 1 15 0; +#X connect 12 2 16 0; +#X connect 20 0 6 0; +#X connect 20 1 21 0; +#X connect 25 0 10 0; +#X connect 26 0 10 0; +#X connect 26 1 25 0; diff --git a/externals/gridflow/pd_help/@twothreefour.pd b/externals/gridflow/pd_help/@twothreefour.pd new file mode 100644 index 00000000..fa57a796 --- /dev/null +++ b/externals/gridflow/pd_help/@twothreefour.pd @@ -0,0 +1,70 @@ +#N canvas 573 90 733 417 10; +#X text 14 15 @two \, @three \, @four; +#X text 173 16 hold 2 \, 3 or 4 values \, defaulting to all zeroes. +each time one is changed (by sending an integer in that inlet) \, a +dim(n) grid is sent through the inlet.; +#X floatatom 20 95 5 0 0 0 - - -; +#X floatatom 62 95 5 0 0 0 - - -; +#X obj 20 129 @two; +#X floatatom 113 95 5 0 0 0 - - -; +#X floatatom 155 95 5 0 0 0 - - -; +#X obj 113 129 @three; +#X floatatom 197 95 5 0 0 0 - - -; +#X floatatom 249 96 5 0 0 0 - - -; +#X floatatom 291 96 5 0 0 0 - - -; +#X floatatom 333 96 5 0 0 0 - - -; +#X obj 249 130 @four; +#X floatatom 376 96 5 0 0 0 - - -; +#X obj 22 294 @export_list; +#X obj 20 152 s _2; +#X obj 113 152 s _3; +#X obj 249 152 s _4; +#X obj 22 272 r _2; +#X obj 55 272 r _3; +#X obj 88 272 r _4; +#X floatatom 22 346 5 0 0 0 - - -; +#X obj 165 295 @fold +; +#X obj 165 273 r _2; +#X obj 198 273 r _3; +#X obj 231 273 r _4; +#X obj 165 315 @export; +#X obj 165 336 print sum; +#X obj 309 273 r _2; +#X obj 342 273 r _3; +#X obj 375 273 r _4; +#X obj 309 296 @export; +#X obj 309 317 print; +#X text 19 381 see also:; +#X obj 149 385 @import ( 1 ); +#X obj 279 385 @export; +#X obj 334 385 @export_list; +#X obj 424 385 @export_symbol; +#X text 658 16 gridflow; +#X obj 245 385 @dim; +#X obj 88 385 @in; +#X obj 115 385 @for; +#X connect 2 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 15 0; +#X connect 5 0 7 0; +#X connect 6 0 7 1; +#X connect 7 0 16 0; +#X connect 8 0 7 2; +#X connect 9 0 12 0; +#X connect 10 0 12 1; +#X connect 11 0 12 2; +#X connect 12 0 17 0; +#X connect 13 0 12 3; +#X connect 14 0 21 0; +#X connect 18 0 14 0; +#X connect 19 0 14 0; +#X connect 20 0 14 0; +#X connect 22 0 26 0; +#X connect 23 0 22 0; +#X connect 24 0 22 0; +#X connect 25 0 22 0; +#X connect 26 0 27 0; +#X connect 28 0 31 0; +#X connect 29 0 31 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; diff --git a/externals/gridflow/pd_help/help_count.pd b/externals/gridflow/pd_help/help_count.pd new file mode 100644 index 00000000..9d812919 --- /dev/null +++ b/externals/gridflow/pd_help/help_count.pd @@ -0,0 +1,15 @@ +#N canvas 85 117 336 239 10; +#X obj 65 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 65 144 5 0 0 0 - - -; +#X obj 130 143 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 130 79 42; +#X obj 65 110 count 0 10; +#X text 158 78 count limit; +#X text 26 19 simple counter from a to b in increments of '1'. The +arguments sets the range.; +#X connect 0 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 1 0; +#X connect 4 1 2 0; diff --git a/externals/gridflow/pd_help/help_fade.pd b/externals/gridflow/pd_help/help_fade.pd new file mode 100644 index 00000000..e96fb054 --- /dev/null +++ b/externals/gridflow/pd_help/help_fade.pd @@ -0,0 +1,19 @@ +#N canvas 68 40 747 435 10; +#X obj 197 148 @in; +#X obj 215 114 @camera_control; +#X obj 95 87 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 197 190 @fade 10; +#X text 268 184 the creation argument is the number of frames the fade +occurs over; +#X obj 251 161 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -260818 +-1 -1 0 1; +#X obj 122 86 metro 50; +#X obj 197 240 @out window; +#X text 514 13 gridflow; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 3 0 7 0; +#X connect 5 0 3 1; +#X connect 6 0 0 0; diff --git a/externals/gridflow/pd_help/help_motion_detect.pd b/externals/gridflow/pd_help/help_motion_detect.pd new file mode 100644 index 00000000..95e8123a --- /dev/null +++ b/externals/gridflow/pd_help/help_motion_detect.pd @@ -0,0 +1,76 @@ +#N canvas 126 0 350 447 10; +#X obj 37 24 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 71 539 fps detailed; +#X obj 71 559 print; +#X obj 82 254 @motion_detection; +#X floatatom 261 298 5 0 0 0 - displaced_numb -; +#X obj 112 79 @camera_control; +#X obj 71 116 @in; +#X obj 261 272 tgl 15 0 displaced empty empty 0 0 128 4 -233017 -62784 +-233017 0 1; +#X text 283 271 <-- toggle displaced pixels on/off; +#X text 229 78 <-- select and initialise the type of camera first; +#X obj 264 246 hsl 128 15 0 30 0 0 noise empty noise_reduction 10 6 +128 12 -233017 -1 -62784 0 0; +#X text 312 299 <-- total number of displaced pixels (divided by 100000) +; +#X obj 261 220 tgl 15 0 snapshot empty empty 0 0 128 4 -233017 -258699 +-260818 0 1; +#X text 284 219 <-- compare incoming images/ take a snapshot; +#X obj 82 358 @centroid; +#X obj 37 45 metro 50; +#X obj 71 143 fork; +#X obj 71 231 demux 2; +#X obj 71 333 demux 2; +#X obj 71 441 demux 2; +#X obj 115 210 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 115 313 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 115 421 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 +1; +#X obj 71 518 @out window; +#N canvas 0 0 450 300 pixelate 0; +#X obj 55 92 @downscale_by ( 15 20 ) smoothly; +#X obj 55 118 @scale_by ( 32 32 ); +#X obj 42 40 inlet; +#X obj 39 168 outlet; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X restore 82 464 pd pixelate; +#N canvas 0 0 450 300 get_image_size 0; +#X obj 39 70 @dim; +#X obj 39 116 @export_list; +#X obj 39 139 s size; +#X obj 39 92 @inner * + 0 ( 3 2 # 1 0 0 1 0 0 ); +#X obj 30 28 inlet; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 94 169 pd get_image_size; +#X text 226 169 <-- necessary for centroid; +#X text 208 357 <-- finds the centre of the displaced pixels; +#X text 169 463 <-- make the image into 15 x 20 squares; +#X connect 0 0 15 0; +#X connect 1 0 2 0; +#X connect 3 0 18 0; +#X connect 5 0 6 0; +#X connect 6 0 16 0; +#X connect 14 0 19 0; +#X connect 15 0 6 0; +#X connect 16 0 17 0; +#X connect 16 1 25 0; +#X connect 17 0 18 0; +#X connect 17 1 3 0; +#X connect 18 0 19 0; +#X connect 18 1 14 0; +#X connect 19 0 23 0; +#X connect 19 1 24 0; +#X connect 20 0 17 1; +#X connect 21 0 18 1; +#X connect 22 0 19 1; +#X connect 23 0 1 0; +#X connect 24 0 23 0; diff --git a/externals/gridflow/pd_help/help_mouse.pd b/externals/gridflow/pd_help/help_mouse.pd new file mode 100644 index 00000000..3b5dc0a5 --- /dev/null +++ b/externals/gridflow/pd_help/help_mouse.pd @@ -0,0 +1,55 @@ +#N canvas 215 0 510 490 10; +#X msg 147 123 option setcursor 32; +#X text 49 22 How to get the mouse coordinates and hide / change the +cursor?; +#X msg 128 100 option hidecursor; +#X text 273 98 <-- removes the cursor; +#X text 307 120 <-- accepts 0 - 63; +#X obj 206 168 print xy_clicked; +#X obj 110 165 @out window; +#X obj 207 214 print xy_unclicked; +#X obj 107 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 127 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 147 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 178 359 5 0 0 0 - - -; +#X obj 178 333 +; +#X obj 210 333 t a; +#X obj 207 238 print xy_moved; +#X obj 206 190 print xy_dragged; +#X obj 110 267 @mouse \, ...; +#X obj 380 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 400 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 420 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 380 402 @three; +#X obj 380 431 @export_list; +#X obj 440 352 loadbang; +#X text 281 332 select buttons to be considered in click/drag/unclick +; +#X connect 0 0 6 0; +#X connect 2 0 6 0; +#X connect 6 0 16 0; +#X connect 12 0 13 0; +#X connect 12 0 11 0; +#X connect 13 0 12 1; +#X connect 16 0 5 0; +#X connect 16 1 15 0; +#X connect 16 2 7 0; +#X connect 16 3 14 0; +#X connect 16 4 8 0; +#X connect 16 5 9 0; +#X connect 16 6 10 0; +#X connect 16 7 12 0; +#X connect 17 0 20 0; +#X connect 18 0 20 1; +#X connect 19 0 20 2; +#X connect 20 0 21 0; +#X connect 21 0 16 1; +#X connect 22 0 17 0; +#X connect 22 0 18 0; +#X connect 22 0 19 0; diff --git a/externals/gridflow/pd_help/printargs.pd b/externals/gridflow/pd_help/printargs.pd new file mode 100644 index 00000000..39ada19e --- /dev/null +++ b/externals/gridflow/pd_help/printargs.pd @@ -0,0 +1,10 @@ +#N canvas 435 101 688 277 10; +#X text 191 203 see also:; +#X obj 297 208 @export; +#X text 619 13 gridflow; +#X obj 262 208 @dim; +#X obj 352 208 @print; +#X text 14 15 printargs; +#X text 144 14 prints everything; +#X obj 401 208 rubyprint; +#X obj 17 101 printargs lallala; diff --git a/externals/gridflow/pd_help/rubyprint.pd b/externals/gridflow/pd_help/rubyprint.pd new file mode 100644 index 00000000..2cdc5e56 --- /dev/null +++ b/externals/gridflow/pd_help/rubyprint.pd @@ -0,0 +1,26 @@ +#N canvas 435 101 688 277 10; +#X text 191 203 see also:; +#X obj 297 208 @export; +#X obj 19 123 @three; +#X floatatom 19 73 5 0 0 0 - - -; +#X floatatom 37 52 5 0 0 0 - - -; +#X floatatom 56 73 5 0 0 0 - - -; +#X obj 112 123 @import ( 3 3 3 ); +#X obj 113 73 until; +#X msg 113 53 27; +#X obj 112 93 random 27; +#X text 619 13 gridflow; +#X obj 262 208 @dim; +#X obj 401 208 printargs; +#X text 14 15 rubyprint; +#X obj 352 208 @print; +#X obj 19 197 rubyprint; +#X text 144 15 prints the message to the console; +#X connect 2 0 15 0; +#X connect 3 0 2 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 15 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 9 0 6 0; -- cgit v1.2.1