From 29e4cd906c1da010a02103b9eb4ece410de013c5 Mon Sep 17 00:00:00 2001 From: "N.N." Date: Fri, 12 Sep 2003 19:24:08 +0000 Subject: updated these documents to conform to new PDDP layout...also includes new abstractions etc. to explain locality and special send/receive objects. svn path=/trunk/; revision=950 --- doc/pddp/help-send.pd | 331 ++++++++++++++++++++------------------------------ 1 file changed, 132 insertions(+), 199 deletions(-) (limited to 'doc/pddp/help-send.pd') diff --git a/doc/pddp/help-send.pd b/doc/pddp/help-send.pd index f8d8bc92..e7cfefdc 100644 --- a/doc/pddp/help-send.pd +++ b/doc/pddp/help-send.pd @@ -1,199 +1,132 @@ -#N canvas -7 -1 1011 660 10; -#X obj 25 11 send; -#X text 58 12 - sends messages without patch cords.; -#X text 481 26 At this point \, it is necessary to explain 'locality' -and 'scope'. When creating a [send] and/or [receive] object it is helpful -to determine whether or not the messages you pass through those objects -will be used by only ONE patch \, or throughout all open patches.; -#X obj 229 34 s; -#X text 23 35 This object can be abbreviated as; -#X text 23 158 Send and recevie objects are given a name to tell them -who to connect to. Here is a simple example of how these objects work -together:; -#X text 25 60 The [send] object \, and its counterpart \, [receive] -\, are useful for linking objects and subroutines together in a single -canvas or throughout multiple patches. Understanding these objects -will help 'clean up' your patches and allow you to communicate messages -between various modules that you build or between objects where patch -cords are not possible.; -#X floatatom 246 223 5 0 0; -#X floatatom 26 205 5 0 0; -#X text 67 205 Click-n-drag this number box.; -#X obj 26 222 send this_number; -#X obj 246 204 receive this_number; -#X obj 26 293 send this_symbol; -#X obj 245 279 receive this_symbol; -#X symbolatom 245 297 15 0 0; -#X msg 26 252 symbol dog; -#X msg 40 272 symbol cat; -#X text 101 253 Click these messages.; -#X text 23 323 Also note that you can send messages to a receive object -by providing the name of the receive object and your message in a message -box \, like below: (watch the receive object ABOVE); -#X msg 27 385 \; this_number 20 \; this_symbol symbol foo \;; -#X msg 230 384 \; this_number 4000 \; this_symbol symbol hello_world -\;; -#X msg 27 435 \; this_number 42 \;; -#X msg 230 434 \; this_symbol symbol Jupiter \;; -#X obj 436 5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 436 581 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 473 10 IMPORTANT; -#N canvas 0 0 248 163 example_a 0; -#X obj 18 9 r foo; -#X floatatom 18 34 5 0 0; -#X obj 24 96 r a-foo; -#X floatatom 24 116 5 0 0; -#X connect 0 0 1 0; -#X connect 2 0 3 0; -#X restore 561 139 pd example_a; -#N canvas 2 238 250 157 example_b 0; -#X obj 12 9 r foo; -#X floatatom 12 28 5 0 0; -#X obj 15 74 r b-foo; -#X floatatom 15 93 5 0 0; -#X connect 0 0 1 0; -#X connect 2 0 3 0; -#X restore 642 140 pd example_b; -#N canvas -1 473 225 163 example_c 0; -#X obj 12 8 r foo; -#X floatatom 12 30 5 0 0; -#X obj 12 65 r c-foo; -#X floatatom 12 86 5 0 0; -#X connect 0 0 1 0; -#X connect 2 0 3 0; -#X restore 724 140 pd example_c; -#X obj 480 240 s foo; -#X floatatom 480 224 5 0 0; -#X text 478 196 Click-n-drag these number boxes and notice the appropriate -receive objects in each open sub-patch.; -#X floatatom 525 224 5 0 0; -#X floatatom 581 225 5 0 0; -#X floatatom 639 225 5 0 0; -#X obj 525 240 s a-foo; -#X obj 581 241 s b-foo; -#X obj 639 241 s c-foo; -#X text 475 166 TO SEND MESSAGES TO ALL RECEIVES OF THE SAME NAME IN -ALL OPEN PATCHES - global scope.; -#X text 482 95 To observe these features \, click on the following -sub-patches to open each one on your screen. Move them all so that -you can see each one clearly and also see this main patch.; -#X text 470 397 TO SEND MESSAGES TO RECEIVE OBJECTS WITHIN A SINGLE -PATCH - local scope.; -#X text 480 426 There are many cases where you may want messages to -be sent within a single patch. For example \, you might have designed -many modules with a receive object called [r number] but you want that -'number' to be passed to only the objects within a single module so -that they don't effect the performance of the other modules.; -#X text 481 506 In these cases \, you should use "local variables" -to name your send and receive objects. Local variables are assigned -using dollar signs and numbers. There is more documentation about this -in 2.control.examples/locality.pd; -#X text 23 550 RELATED OBJECTS; -#X obj 86 574 send~; -#X obj 123 574 receive~; -#X obj 179 574 netsend; -#X obj 228 574 netreceive; -#X obj 24 574 receive; -#X obj 23 596 tabsend~; -#X text 477 262 Send objects simply post their information to the cyberspace -within your computer (that's one way to look at it!) Receive objects -simply keep their ears open for all messages floating through that -cyberspace from send objects of the same name! Hence \, if you name -a [send] something like "foo" \, then all [receive] objects in open -patches named "foo" will 'hear' those messages. Also note that the -term 'open patches' includes all sub-patches \, abstractions and patches -that are currently open in PD - they don't have to be VISIBLE...they -only have to be active.; -#X text 481 585 This document was updated for PD version 0.35 by Dave -Sabine as part of a project called pddp proposed by Krzysztof Czaja -to build comprehensive documentation for PD.; -#X text 21 478 SPECIAL OBJECTS AND THEIR PROPERTIES; -#X text 27 492 Some objects in PD contain their own internal send and -receive functionality. Open the following sub-patch for more information: -; -#N canvas 129 123 768 452 special-send-and-receives 0; -#X text 26 18 SPECIAL OBJECTS; -#X obj 28 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 28 66 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 28 91 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 0 256; -#X obj 28 117 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 --1 -1 0 1; -#X obj 21 368 hdl 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 -1 -0; -#X obj 159 129 vdl 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1 -1 -0; -#X obj 24 343 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 0 1; -#X obj 79 208 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; -#X obj 192 31 cnv 15 100 60 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 54 41 bng; -#X text 51 66 toggle; -#X text 93 90 number 2; -#X text 48 168 Vertical Slider; -#X text 185 167 Vertical Dial; -#X text 164 344 Horizontal Slider; -#X text 154 368 Horizontal Dial; -#X text 136 261 VU Meter; -#X text 225 55 canvas; -#X text 331 28 The objects in this patch \, and likely many more which -I have not included \, include their own send and receive functionality. -This functionality can be accessed by right-clicking on the object -and choosing "Properties" from the menu that appears.; -#X text 328 101 EXAMPLE; -#X text 333 117 In other words \, these objects can send and/or receive -messages without attaching a separate [send] or [receive] object to -them with a patch cord.; -#X text 328 161 THE OL'FASHION WAY; -#X floatatom 330 182 5 0 0; -#X floatatom 375 200 5 0 0; -#X obj 330 199 s a; -#X obj 375 181 r a; -#X text 330 222 USING THESE OBJECTS' INTERNAL SEND AND RECEIVE FUNCTIONALITY -; -#X text 422 181 As you see here \, these number boxes are linked together -with send and receives objects.; -#X obj 332 244 nbx 5 14 -1e+037 1e+037 0 0 b empty empty 0 -6 128 10 --262144 -1 -1 0 256; -#X obj 394 244 nbx 5 14 -1e+037 1e+037 0 0 empty b empty 0 -6 64 10 --262144 -1 -1 0 256; -#X text 334 262 These number boxes are linked together via their 'send' -or 'receive' property.; -#X connect 23 0 25 0; -#X connect 26 0 24 0; -#X restore 136 523 pd special-send-and-receives; -#N canvas 0 0 439 206 related_objects_from_other_libraries 0; -#X text 17 52 These objects are offered in PD only if you have downloaded -and properly installed the appropriate library. These objects may or -may not exist in a single library.; -#X text 16 101 The best places to find information about PD's libraries -is:; -#X text 13 123 www.pure-data.org and click on "Downloads" then "Software" -; -#X text 15 138 or; -#X text 15 153 iem.kug.ac.at/pdb/; -#X obj 16 22 streamout~; -#X obj 82 22 sendlocal; -#X obj 144 22 system; -#X obj 186 22 shoutcast~; -#X obj 254 22 sendOSC; -#X obj 304 22 send13~; -#X restore 172 596 pd related_objects_from_other_libraries; -#X obj 76 596 throw~; -#X obj 118 596 catch~; -#X obj 297 574 value; -#X connect 8 0 10 0; -#X connect 11 0 7 0; -#X connect 13 0 14 0; -#X connect 15 0 12 0; -#X connect 16 0 12 0; -#X connect 23 0 24 0; -#X connect 30 0 29 0; -#X connect 32 0 35 0; -#X connect 33 0 36 0; -#X connect 34 0 37 0; +#N canvas 1 2 640 638 12; +#X obj 117 554 pddp; +#X obj 8 3 cnv 15 90 578 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 37 44 INLETS:; +#X text 29 170 OUTLETS:; +#X text 14 115 ARGUMENTS:; +#X text 19 213 EXAMPLES:; +#X text 23 369 SEE ALSO:; +#N canvas 109 3 419 268 Related_Objects 0; +#X text 25 11 Native PD Objects; +#X text 22 148 Externals and other object libraries; +#X obj 11 53 receive~; +#X obj 95 54 send~; +#X obj 220 54 throw~; +#X obj 285 54 catch~; +#X obj 21 103 tabreceive~; +#X obj 129 103 tabsend~; +#X obj 211 103 netsend; +#X obj 287 103 netreceive; +#X text 189 199 [dist]; +#X text 191 221 [netdist]; +#X text 309 177 [remote]; +#X obj 350 54 value; +#X obj 150 53 receive; +#X text 28 175 [streamout~]; +#X text 29 197 [sendlocal]; +#X text 290 227 [system]; +#X text 29 219 [shoutcast~]; +#X text 287 200 [sendOSC]; +#X text 188 177 [send13~]; +#X restore 117 499 pd Related_Objects; +#N canvas 90 1 655 636 More_Info 0; +#X obj 44 576 all_about_send_n_receive; +#X text 27 511 There is a lot of information available about [send] +and [receive] \, but that means there's lots to know! Open the abstraction +below to learn more...; +#X text 34 18 SEND USING [SEND] OR MESSAGE? DYNAMIC SEND?; +#X text 42 52 Consider this:; +#X floatatom 172 53 5 0 0 0 - - -; +#X floatatom 237 53 5 0 0 0 - - -; +#X obj 172 79 s dave; +#X obj 237 79 s hans; +#X obj 371 57 r dave; +#X obj 447 56 r hans; +#X floatatom 371 84 5 0 0 0 - - -; +#X floatatom 447 85 5 0 0 0 - - -; +#X text 41 136 Now consider this:; +#X floatatom 200 138 5 0 0 0 - - -; +#X floatatom 269 139 5 0 0 0 - - -; +#X msg 200 166 \; dave \$1; +#X msg 269 166 \; hans \$1; +#X text 43 278 And to complicate things a little more \, and offer +some interesting functionality \, consider the following:; +#X obj 371 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 447 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 64 322 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 188 321 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 64 346 symbol dave; +#X obj 188 345 symbol hans; +#X msg 67 394 \; \$1 42; +#X text 143 384 In this example \, I have created a single routine +which acts as a 'dynamic' send object. The variable ($1) in this message +box is replaced by the incoming 'symbol'.; +#X text 135 213 In this example \, the message box contains a PD command +which effectively sends the value of the variable ($1) to either 'dave' +or 'hans'.; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 18 0; +#X connect 11 0 19 0; +#X connect 13 0 15 0; +#X connect 14 0 16 0; +#X connect 20 0 22 0; +#X connect 21 0 23 0; +#X connect 22 0 24 0; +#X connect 23 0 24 0; +#X restore 117 528 pd More_Info; +#X obj 116 250 s; +#X floatatom 116 226 5 0 0 0 - - -; +#X floatatom 218 255 5 0 0 0 - - -; +#X obj 218 226 r; +#X floatatom 273 255 5 0 0 0 - - -; +#X obj 273 226 r; +#X floatatom 324 255 5 0 0 0 - - -; +#X obj 324 226 r; +#X floatatom 120 309 5 0 0 0 - - -; +#X floatatom 375 335 5 0 0 0 - - -; +#X floatatom 446 335 5 0 0 0 - - -; +#X floatatom 521 335 5 0 0 0 - - -; +#X text 119 289 with creation argument; +#X obj 120 333 s dave; +#X obj 375 306 r dave; +#X obj 446 306 r dave; +#X floatatom 220 310 5 0 0 0 - - -; +#X text 104 45 None. Data can be inputted to the [receive] object using +the [send] object or by creating a PD 'send' command in a message box. +The [receive] object accepts any atom type as input.; +#X obj 521 306 r hans; +#X obj 220 334 s hans; +#X text 114 386 doc/1.manual/x5.htm; +#X text 114 369 doc/1.manual/x2.htm; +#X text 114 403 doc/2.control.examples/09.send_receive.pd; +#X text 114 419 doc/2.control.examples/10.more.messages.pd; +#X text 115 435 doc/2.control.examples/11.review.pd; +#X text 115 452 doc/2.control.examples/13.locality.pd; +#X text 115 470 doc/5.reference/help-message.pd; +#X obj 56 18 send; +#X text 109 18 - SEND MESSAGES WITHOUT PATCH CORDS - abbreviation: +; +#X obj 551 18 s; +#X text 107 171 None - sends messages to a corresponding [receive] +of the same name.; +#X text 105 115 One - [send] accepts a single argument (text \, not +numbers) which is a 'name'. A [send] object corresponds to all [receive] +objects of the same name.; +#X text 161 555 - Dave Sabine \, September 12 \, 2003; +#X connect 10 0 9 0; +#X connect 12 0 11 0; +#X connect 14 0 13 0; +#X connect 16 0 15 0; +#X connect 17 0 22 0; +#X connect 23 0 18 0; +#X connect 24 0 19 0; +#X connect 25 0 28 0; +#X connect 27 0 20 0; -- cgit v1.2.1