#N canvas 0 0 555 619 10; #X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0 14 -228856 -66577 0; #X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header my_canvas 3 12 0 18 -204280 -1 0; #X obj 0 352 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13 -228856 -1 0; #N canvas 49 245 494 344 META 0; #X text 12 85 LIBRARY internal; #X text 12 45 LICENSE SIBSD; #X text 12 105 AUTHOR Thomas Musil; #X text 12 125 WEBSITE; #X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch to conform to the PDDP template for Pd version 0.42.; #X text 12 65 DESCRIPTION gui-rectangle; #X text 12 5 ALIAS cnv; #X text 12 145 RELEASE_DATE 2002; #X text 12 25 KEYWORDS control GUI nonlocal; #X restore 500 597 pd META; #X obj 0 430 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0 13 -228856 -1 0; #X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12 0 13 -228856 -1 0; #X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12 0 13 -228856 -1 0; #N canvas 80 481 428 109 Related_objects 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 14 -204280 -1 0; #X text 8 2 [cnv] Related Objects; #X obj 22 43 drawpolygon; #X obj 112 43 filledpolygon; #X obj 22 73 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx; #X restore 102 597 pd Related_objects; #X text 11 23 gui-rectangle; #X text 418 3 [my_canvas] or [cnv]; #X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/cnv -text pdpedia: cnv; #X text 98 356 (none); #X text 98 435 (none); #X text 98 374 See the following subpatch for messages that change the gui-properties of [cnv]:; #N canvas 80 25 428 604 Changing_GUI_Properties 0; #X obj 27 393 unpack 0 0; #X text 12 301 get position on canvas; #X msg 13 109 size \$1; #X obj 13 72 nbx 3 14 8 200 0 0 empty \$0-dim empty 0 -8 0 12 -262144 -1 -1 15 256; #X obj 13 133 s cnv_rcv; #N canvas 366 206 174 259 flash-time 0; #X obj 68 180 pack; #X obj 103 149 t b a; #X obj 68 205 outlet; #X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty 0 -8 0 12 -262144 -1 -1 100 256; #X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty 0 -8 0 12 -262144 -1 -1 60 256; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 89 59 pd flash-time; #X text 86 38 visible size; #X text 138 61 1.width; #X text 138 81 2.height; #X msg 89 109 vis_size \$1 \$2; #X obj 89 133 s cnv_rcv; #X text 195 38 change send name; #X text 310 38 change receive name; #X obj 196 134 s cnv_rcv; #X obj 310 134 s cnv_rcv; #X msg 196 59 send cnv5a_snd; #X msg 310 59 receive cnv1a_rcv; #X obj 320 109 s cnv1a_rcv; #X msg 320 85 receive cnv_rcv; #X text 132 173 label position; #X text 274 173 font properties; #X text 13 173 label; #X msg 13 194 label new-label; #X msg 134 245 label_pos \$1 \$2; #X msg 276 245 label_font \$1 \$2; #X text 325 197 1.font(0-2); #X text 325 218 2.height; #X text 183 196 1.x-offset; #X text 183 217 2.y-offset; #N canvas 366 206 174 259 flash-time 0; #X obj 68 180 pack; #X obj 103 149 t b a; #X obj 68 205 outlet; #X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty 0 -8 0 12 -262144 -1 -1 20 256; #X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty 0 -8 0 12 -262144 -1 -1 12 256; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 134 195 pd flash-time; #N canvas 366 206 174 259 flash-time 0; #X obj 68 180 pack; #X obj 103 149 t b a; #X obj 68 205 outlet; #X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12 -262144 -1 -1 0 256; #X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty 0 -8 0 12 -262144 -1 -1 14 256; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 276 195 pd flash-time; #X text 164 461 delta; #X text 12 461 position; #X msg 13 558 pos \$1 \$2; #X msg 165 558 delta \$1 \$2; #X text 165 301 preset-colors; #X text 264 301 RGB-colors; #N canvas 364 205 169 292 flash-time 0; #X obj 69 196 t b a; #X obj 33 262 outlet; #X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144 -1 -1 10 256; #X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12 -262144 -1 -1 12 256; #X obj 33 237 pack 0 0; #X connect 0 0 4 0; #X connect 0 1 4 1; #X connect 2 0 4 0; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 165 323 pd flash-time; #N canvas 0 0 306 317 flash-time 0; #X obj 96 521 outlet; #X obj 162 230 t b f; #X obj 96 268 +; #X obj 96 293 t b f; #X obj 96 324 +; #X obj 19 208 * -65536; #X obj 96 208 * -256; #X obj 162 208 * -1; #X obj 96 355 - 1; #X obj 96 385 list prepend 0; #X obj 115 456 t b a; #X obj 104 124 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 120 120 1.bg; #X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144 -258113 -1 0 256; #X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144 -13381 -1 0 256; #X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144 -4160 -1 0 256; #X text 120 137 2.label; #X obj 96 410 route 0 1; #X obj 96 497 pack 0 0; #X connect 1 0 2 0; #X connect 1 1 2 1; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 0 8 0; #X connect 5 0 4 0; #X connect 6 0 2 0; #X connect 7 0 1 0; #X connect 8 0 9 0; #X connect 9 0 17 0; #X connect 10 0 18 0; #X connect 10 1 18 1; #X connect 11 0 9 1; #X connect 13 0 5 0; #X connect 14 0 6 0; #X connect 15 0 7 0; #X connect 17 0 18 0; #X connect 17 1 10 0; #X connect 18 0 0 0; #X coords 0 -1 1 1 102 58 2 100 100; #X restore 265 323 pd flash-time; #X obj 165 534 list; #X obj 165 483 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 214 325 1.bg; #X text 61 482 1.x-position; #X text 61 504 2.y-position; #X text 244 482 1.x-delta; #X text 244 504 2.y-delta; #N canvas 366 206 174 259 flash-time 0; #X obj 68 180 pack; #X obj 103 149 t b a; #X obj 68 205 outlet; #X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0 -8 0 12 -262144 -1 -1 310 256; #X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0 -8 0 12 -262144 -1 -1 500 256; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 13 483 pd flash-time; #N canvas 366 206 174 259 flash-time 0; #X obj 68 180 pack; #X obj 103 149 t b a; #X obj 68 205 outlet; #X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8 0 12 -262144 -1 -1 0 256; #X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8 0 12 -262144 -1 -1 0 256; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 3 0 0 0; #X connect 4 0 1 0; #X coords 0 -1 1 1 48 42 2 100 100; #X restore 194 483 pd flash-time; #X msg 27 322 get_pos; #X obj 27 347 s cnv_rcv; #X obj 165 433 s cnv_rcv; #X obj 13 583 s cnv_rcv; #X obj 165 583 s cnv_rcv; #X obj 276 270 s cnv_rcv; #X obj 134 270 s cnv_rcv; #X obj 13 270 s cnv_rcv; #X text 214 345 2.label; #N canvas 375 166 157 260 init 0; #X obj 16 11 loadbang; #X obj 16 42 f \$0; #X msg 16 72 \; \$1-width 100 \; \$1-height 60 \; \$1-xpos 310 \; \$1-ypos 500 \; \$1-xlabel 20 \; \$1-ylabel 12 \; \$1-dim 15 \; \$1-font 0 \; \$1-font-size 14 \; \$1-bg 10 \; \$1-label 12; #X connect 0 0 1 0; #X connect 1 0 2 0; #X restore 265 408 pd init; #X obj 310 500 cnv 15 100 60 cnv_snd cnv_rcv my_canvas 20 12 0 14 -233017 -33289 0; #X obj 27 370 r cnv_snd; #X msg 165 408 color \$1 \$2; #X obj 27 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -262144 -1 -1 0 256; #X obj 90 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12 -262144 -1 -1 0 256; #X msg 25 245 label my_canvas; #X msg 204 109 send cnv_snd; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 14 -204280 -1 0; #X text 8 2 [cnv] Changing Properties through Messages; #X text 12 51 size; #X text 12 38 selectable; #X text 14 417 x; #X text 76 418 y; #X connect 0 0 61 0; #X connect 0 1 62 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 5 0 9 0; #X connect 9 0 10 0; #X connect 15 0 13 0; #X connect 16 0 14 0; #X connect 18 0 17 0; #X connect 22 0 55 0; #X connect 23 0 54 0; #X connect 24 0 53 0; #X connect 29 0 23 0; #X connect 30 0 24 0; #X connect 33 0 51 0; #X connect 34 0 52 0; #X connect 37 0 60 0; #X connect 38 0 60 0; #X connect 39 0 34 0; #X connect 40 0 39 0; #X connect 46 0 33 0; #X connect 47 0 39 1; #X connect 48 0 49 0; #X connect 59 0 0 0; #X connect 60 0 50 0; #X connect 63 0 55 0; #X connect 64 0 13 0; #X restore 170 407 pd Changing_GUI_Properties; #N canvas 103 143 428 369 canvas-creation-arguments 0; #X msg 23 43 canvas: cnv selectableSize xSize ySize sendName recieveName Label labelXOff labelYOff Font# fontSize bgColor lblColor 0; #X text 20 80 Canvas can be called with 13 creation arguments. These are not "optional" - all parameters must be filled or the canvas will not instantiate correctly.; #X text 20 125 The function of the final "0" is unknown to me (it is found in the textual entry for a canvas object in a .pd file) but can be safely left off without ill effects.; #X text 20 167 For example \, click the msg-box to dynamically create a cnv:; #X obj 23 237 s pd-canvas-creation-arguments; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 14 -204280 -1 0; #X text 8 2 [cnv] Creation Arguments and Dynamic Patching; #X msg 23 195 obj 110 260 cnv 15 200 100 myCanvas myCanvasR Alcyone 75 12 2 14 -261441 12; #X connect 7 0 4 0; #X restore 171 518 pd canvas-creation-arguments; #X text 168 463 - creating a [cnv] without any arguments will set default values for all gui-properties. See the subpatch below to learn how to dynamically instantiate a [cnv] object with custom properties:; #X floatatom 338 318 4 0 0 0 - - -; #X floatatom 382 318 4 0 0 0 - - -; #X text 349 334 x; #X text 393 334 y; #X obj 435 170 metro 100; #X obj 435 150 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 1; #X obj 338 270 r from_K1; #X floatatom 435 318 4 0 0 0 - - -; #X floatatom 479 318 4 0 0 0 - - -; #X text 445 334 x; #X text 490 334 y; #X obj 435 270 r from_K2; #N canvas 8 328 313 315 room 0; #X obj 6 7 cnv 15 300 300 empty empty type...ctrl+e 100 140 2 17 -33289 -24198 0; #X obj 26 27 cnv 1 1 264 empty empty move_K1_and_K2 65 160 2 17 -166441 -24198 0; #X obj 287 30 cnv 1 1 261 empty empty empty 20 12 2 20 -99865 -66577 0; #X obj 27 27 cnv 1 260 1 empty empty empty 20 12 2 20 -166441 -66577 0; #X obj 28 291 cnv 1 260 1 empty empty empty 20 12 2 20 -99865 -66577 0; #X obj 38 40 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526 0; #X obj 251 255 cnv 25 25 25 from_K2 to_K K2 1 13 2 14 -225280 -1109 0; #X restore 128 171 pd room; #X obj 338 294 unpack; #X obj 435 294 unpack; #X text 17 147 Click the subwindow below to use a cnv as a control surface:; #X obj 20 61 cnv 15 100 60 empty empty label 20 12 0 14 -233017 -66577 0; #X text 128 58 Colored rectangle with a label. Right-click in the top-left corner of the gray rectangle to the left and click "properties" to change the object's appearance.; #X text 127 110 The blue rectangle at the top of each help patch is a [cnv] \, as are the horizontal dividers below.; #X text 98 463 13; #X text 207 564 IEM KUG; #X text 182 576 graz \, austria 2002; #X msg 435 192 get_pos; #X obj 435 214 send to_K; #X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide ; #N canvas 405 89 483 507 (subpatch) 0; #X msg 144 296 bang; #X msg 144 321 1 30; #X obj 144 409 line~; #X obj 202 301 del 30; #X obj 61 433 *~; #X obj 62 485 dac~; #X obj 62 359 osc~ 880; #X obj 62 403 clip~ -1 1; #X obj 35 220 list split 1; #X obj 15 311 list; #X obj 35 244 t b a; #X obj 62 334 mtof; #X obj 62 457 *~ 0.07; #X obj 207 128 metro 50; #X obj 207 202 s \$0-cnv; #X obj 207 106 0; #X obj 207 84 del 3000; #X obj 310 170 f; #X obj 342 170 + 1; #X obj 35 12 r \$0-bng; #X obj 106 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 310 197 div 13; #X msg 310 314 color \$1 0; #X obj 242 105 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 279 86 sel 0; #X obj 279 107 -1; #X obj 279 130 t a; #X obj 207 155 f -1; #X msg 207 180 delta 0 \$1; #X obj 35 44 spigot 1; #X obj 35 76 t a b; #X obj 96 55 0; #X obj 130 55 1; #X obj 310 220 sel 3 4; #X msg 371 246 5 \$1; #X obj 371 268 -; #X msg 310 246 1; #X obj 340 245 f 2; #X obj 383 170 sel 1; #X msg 377 198 0; #X msg 411 199 2; #X obj 62 311 + 68; #X obj 15 284 del 170; #X text 167 14 IT'S A SECRET TO EVERYBODY.; #X obj 56 106 loadbang; #X obj 35 174 list; #X obj 114 217 s \$0-randomize; #X obj 71 149 r \$0-new-secret; #X msg 56 128 7 1 0 8 12 16; #X obj 35 197 list prepend 11 10; #X obj 62 381 *~ 1.4; #X msg 202 323 0 400; #X connect 0 0 1 0; #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 2 0 4 1; #X connect 3 0 51 0; #X connect 4 0 12 0; #X connect 6 0 50 0; #X connect 7 0 4 0; #X connect 8 0 10 0; #X connect 8 1 9 1; #X connect 9 0 8 0; #X connect 10 0 42 0; #X connect 10 1 0 0; #X connect 10 1 41 0; #X connect 11 0 6 0; #X connect 12 0 5 0; #X connect 12 0 5 1; #X connect 13 0 17 0; #X connect 13 0 27 0; #X connect 15 0 13 0; #X connect 15 0 17 1; #X connect 16 0 15 0; #X connect 16 0 23 0; #X connect 16 0 32 0; #X connect 17 0 18 0; #X connect 17 0 21 0; #X connect 18 0 17 1; #X connect 19 0 29 0; #X connect 20 0 29 0; #X connect 21 0 33 0; #X connect 22 0 14 0; #X connect 23 0 24 0; #X connect 23 0 38 0; #X connect 24 0 25 0; #X connect 24 1 26 0; #X connect 25 0 26 0; #X connect 26 0 27 1; #X connect 27 0 28 0; #X connect 28 0 14 0; #X connect 29 0 30 0; #X connect 30 0 13 0; #X connect 30 0 16 0; #X connect 30 0 45 0; #X connect 30 1 31 0; #X connect 31 0 29 1; #X connect 32 0 29 1; #X connect 33 0 36 0; #X connect 33 1 37 0; #X connect 33 2 34 0; #X connect 34 0 35 0; #X connect 35 0 22 0; #X connect 36 0 22 0; #X connect 37 0 22 0; #X connect 38 0 39 0; #X connect 38 1 40 0; #X connect 39 0 37 1; #X connect 40 0 37 1; #X connect 41 0 11 0; #X connect 42 0 9 0; #X connect 44 0 48 0; #X connect 45 0 46 0; #X connect 45 0 49 0; #X connect 47 0 45 1; #X connect 48 0 45 1; #X connect 49 0 8 0; #X connect 50 0 7 0; #X connect 51 0 2 0; #X coords 0 -1 1 1 15 15 2 100 100; #X restore 71 330 pd; #X obj 169 553 bng 14 250 50 0 \$0-bng empty empty 4 7 0 12 -262144 -262144 -1; #X text 66 275 You can also use a white [cnv] to; #X text 66 290 conceal parts of a patch (use; #X text 66 305 with care); #N canvas 93 78 450 511 let's-play-pong! 0; #X obj 148 128 cnv 15 100 25 empty \$0-score Score:0 5 12 0 14 -233017 -66577 0; #X obj 14 29 cnv 15 5 60 \$0-ps \$0-pr empty 20 12 0 14 -1 -66577 0 ; #X obj 257 19 key; #X msg 257 112 delta 0 \$1; #X msg 257 87 -5; #X obj 68 48 tgl 16 0 empty empty Go! 19 8 0 10 -4034 -1 -1 0 1; #X obj 337 158 r \$0-ps; #X obj 337 180 unpack; #X obj 370 202 v py; #X obj 68 117 t b b b; #X msg 107 169 \; \$1-br get_pos \; \$1-pr get_pos \;; #X obj 425 6 cnv 5 5 500 empty empty empty 20 12 0 14 -1 -66577 0; #X obj 257 158 r \$0-bs; #X obj 290 202 v by; #X obj 68 447 pack; #X msg 145 340 1; #X msg 178 340 -1; #X obj 68 491 s \$0-br; #X obj 87 297 sel 0 1 2 3 4 5; #X msg 101 361 1; #N canvas 574 158 450 300 drift 0; #X obj 55 40 inlet; #X obj 136 40 inlet; #X obj 205 45 inlet; #X obj 55 117 f; #X obj 93 142 mod; #X obj 55 164 sel 1; #X obj 55 231 f 1; #X obj 55 266 outlet; #X msg 90 231 0; #X obj 136 61 b; #X obj 136 88 random 8; #X obj 136 115 sel 0; #X msg 130 137 1e+37; #X obj 205 155 t a; #X floatatom 13 147 5 0 0 0 - - -; #X obj 93 118 + 1; #X connect 0 0 3 0; #X connect 1 0 9 0; #X connect 2 0 13 0; #X connect 3 0 5 0; #X connect 3 0 14 0; #X connect 3 0 15 0; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 1 8 0; #X connect 6 0 7 0; #X connect 8 0 7 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 11 1 4 1; #X connect 12 0 4 1; #X connect 13 0 6 1; #X connect 15 0 4 0; #X restore 95 427 pd drift; #X obj 68 405 t a b; #X obj 68 383 f 1; #X msg 134 18 10 SLOW; #X msg 134 35 7 MEDIUM; #X obj 257 43 spigot; #X obj 77 71 s \$0-k; #X obj 310 10 r \$0-k; #N canvas 0 0 450 300 score 0; #X obj 84 59 inlet; #X obj 84 113 f; #X obj 120 113 + 1; #X obj 84 86 b; #X msg 84 152 label Score:\$1; #X obj 84 179 s \$0-score; #X obj 165 51 sel 0; #X obj 165 78 0; #X obj 210 92 loadbang; #X msg 210 114 0; #X obj 165 24 r play; #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 1 0 4 0; #X connect 2 0 1 1; #X connect 3 0 1 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 7 0 1 1; #X connect 8 0 9 0; #X connect 9 0 4 0; #X connect 10 0 6 0; #X restore 101 386 pd score; #X obj 68 95 metro 10; #N canvas 0 0 450 300 once 0; #X obj 26 21 inlet; #X obj 26 102 outlet; #X obj 26 75 t a b; #X msg 89 48 0; #X obj 26 48 spigot 1; #X connect 0 0 4 0; #X connect 2 0 1 0; #X connect 2 1 3 0; #X connect 3 0 4 1; #X connect 4 0 2 0; #X restore 310 32 pd once; #X obj 257 65 select 97 122 32; #X msg 336 89 1; #X obj 87 277 t a; #X obj 256 442 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 256 439 a = up \; z = down \; = replay; #X msg 134 69 1.5 WTF; #X text 216 318 0 - die at left wall \; 1 - richochet off left wall \; 2 - die at right wall (not yet) \; 3 - richochet off right wall \; 4 - richochet off top \; 5 - richochet of bottom \;; #X obj 87 225 expr if(bx<=20 \, py<=by && py+60>=by \, -1) \; if (bx>=415 \, 3 \, -1) \; if (by<=0 \, 4 \, if (by>=500 \, 5 \, -1)); #X obj 68 18 r play; #X obj 336 111 s play; #X msg 87 319 0; #X obj 71 51 cnv 10 10 10 \$0-bs \$0-br empty 20 12 0 14 -1 -66577 0; #X obj 257 202 v bx; #X obj 337 202 v px; #X obj 257 180 unpack; #X obj 257 134 s \$0-pr; #X msg 294 87 5; #X msg 134 52 4 FAST; #X obj 107 139 f \$0; #X msg 130 361 -1; #X msg 68 469 delta \$1 \$2; #X obj 87 341 s play; #N canvas 528 152 450 386 sfx 0; #X obj 21 169 noise~; #X obj 22 201 *~; #X obj 102 176 vline~; #X obj 23 249 +~; #X obj 174 146 delread~ \$0-b; #X obj 36 278 delwrite~ \$0-b 500; #X obj 22 302 *~ 0.1; #X obj 23 330 dac~; #X obj 135 120 del; #X msg 102 120 1; #X msg 135 145 0; #X obj 174 120 * 10; #X obj 175 176 *~ 0.8; #X msg 174 81 2; #X obj 117 9 inlet; #X obj 174 54 change; #X obj 117 31 sel -1 0 2; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 5 0; #X connect 3 0 6 0; #X connect 4 0 12 0; #X connect 6 0 7 0; #X connect 6 0 7 1; #X connect 8 0 10 0; #X connect 9 0 2 0; #X connect 10 0 2 0; #X connect 11 0 4 0; #X connect 12 0 3 1; #X connect 13 0 9 0; #X connect 13 0 8 0; #X connect 13 0 11 0; #X connect 14 0 16 0; #X connect 15 0 13 0; #X connect 16 3 15 0; #X restore 211 294 pd sfx; #X connect 2 0 25 0; #X connect 3 0 46 0; #X connect 4 0 3 0; #X connect 5 0 26 0; #X connect 5 0 29 0; #X connect 6 0 7 0; #X connect 7 0 44 0; #X connect 7 1 8 0; #X connect 9 0 22 0; #X connect 9 1 38 0; #X connect 9 2 49 0; #X connect 12 0 45 0; #X connect 14 0 51 0; #X connect 15 0 20 2; #X connect 16 0 20 2; #X connect 18 0 41 0; #X connect 18 1 19 0; #X connect 18 2 41 0; #X connect 18 3 50 0; #X connect 18 4 15 0; #X connect 18 5 16 0; #X connect 19 0 20 1; #X connect 19 0 22 1; #X connect 19 0 28 0; #X connect 20 0 14 1; #X connect 21 0 14 0; #X connect 21 1 20 0; #X connect 22 0 21 0; #X connect 23 0 29 1; #X connect 24 0 29 1; #X connect 25 0 31 0; #X connect 27 0 30 0; #X connect 29 0 9 0; #X connect 30 0 25 1; #X connect 31 0 4 0; #X connect 31 1 47 0; #X connect 31 2 32 0; #X connect 32 0 40 0; #X connect 33 0 18 0; #X connect 33 0 53 0; #X connect 36 0 29 1; #X connect 38 0 33 0; #X connect 38 1 33 0; #X connect 38 2 33 0; #X connect 39 0 5 0; #X connect 41 0 52 0; #X connect 45 0 43 0; #X connect 45 1 13 0; #X connect 47 0 3 0; #X connect 48 0 29 1; #X connect 49 0 10 0; #X connect 50 0 20 1; #X connect 50 0 22 1; #X connect 51 0 17 0; #X restore 136 312 pd let's-play-pong!; #X text 185 551 musil@iem.kug.ac.at; #X text 171 550 c; #X obj 60 267 cnv 15 210 70 empty \$0-cnv empty 20 12 0 14 -262144 -262144 0; #X obj 69 329 cnv 15 17 17 empty empty empty 20 12 0 14 -262144 -66577 0; #X text 244 191 send it a "get_pos" message ->; #X text 244 176 To get a cnv position \,; #X text 325 551 Note: [cnv] is not to be confused; #X text 325 564 with the Pd canvas \, or [pd] \,; #X text 325 577 [table] \, etc.; #X connect 21 0 39 0; #X connect 22 0 21 0; #X connect 23 0 30 0; #X connect 28 0 31 0; #X connect 30 0 17 0; #X connect 30 1 18 0; #X connect 31 0 24 0; #X connect 31 1 25 0; #X connect 39 0 40 0;