From 7686b96d2119d2d70b329a02a8af52792ca2d9f1 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 27 May 2004 16:53:47 +0000 Subject: added a number of sketches for the help structure; most are not close to completion svn path=/trunk/; revision=1770 --- doc/pddp/all_about_cyclone.pd | 24 ++++++ doc/pddp/all_about_data_structures.pd | 32 ++++++++ doc/pddp/all_about_data_types.pd | 126 ++++++++++++++++++++++++++++++ doc/pddp/all_about_lists_vs_anythings.pd | 59 ++++++++++++++ doc/pddp/all_about_looping.pd | 109 ++++++++++++++++++++++++++ doc/pddp/all_about_symbol_construction.pd | 43 ++++++++++ doc/pddp/dynamic_sends.pd | 27 +++++++ doc/pddp/netreceive-help.pd | 13 +++ doc/pddp/pddp-style-guide.pd | 12 +++ doc/pddp/pddp.pd | 65 +++++++-------- doc/pddp/scalar-help.pd | 30 +++++++ doc/pddp/select-help.pd | 83 ++++++++++++++++++++ doc/pddp/set-help.pd | 40 ++++++++++ doc/pddp/standard_gui_elements.pd | 24 ++++++ doc/pddp/sublist-help.pd | 14 ++++ 15 files changed, 670 insertions(+), 31 deletions(-) create mode 100644 doc/pddp/all_about_cyclone.pd create mode 100644 doc/pddp/all_about_data_structures.pd create mode 100644 doc/pddp/all_about_data_types.pd create mode 100644 doc/pddp/all_about_lists_vs_anythings.pd create mode 100644 doc/pddp/all_about_looping.pd create mode 100644 doc/pddp/all_about_symbol_construction.pd create mode 100644 doc/pddp/dynamic_sends.pd create mode 100644 doc/pddp/netreceive-help.pd create mode 100644 doc/pddp/pddp-style-guide.pd create mode 100644 doc/pddp/scalar-help.pd create mode 100644 doc/pddp/select-help.pd create mode 100644 doc/pddp/set-help.pd create mode 100644 doc/pddp/standard_gui_elements.pd create mode 100644 doc/pddp/sublist-help.pd (limited to 'doc') diff --git a/doc/pddp/all_about_cyclone.pd b/doc/pddp/all_about_cyclone.pd new file mode 100644 index 00000000..3f19cb47 --- /dev/null +++ b/doc/pddp/all_about_cyclone.pd @@ -0,0 +1,24 @@ +#N canvas 588 66 510 630 10; +#X obj 4 4 cnv 15 500 20 empty empty all_about_cyclone 20 10 1 18 -233017 +-66577 0; +#X obj 471 5 pddp; +#X text 293 604 updated for Pd version 0.37.1; +#X text 49 199 - hammer contains Pd versions of Max objects; +#X text 49 220 - sickle contains Pd versions of MSP objects; +#X text 50 240 - optional dummies sub-library \, which contains a large +set of dummy classes \, serving as substitutions for Max/MSP classes +not (yet) implemented in the cyclone; +#X text 51 285 - cyclone sub-library \, taking care of loading the +other three components \, and which itself contains: a small set of +operators (!- \, !/ \, ==~ \, !=~ \, <~ \, <=~ \, >~ \, >=~ \, !-~ +\, !/~ \, %~ \, +=~) and an importing mechanism provided by the cyclone +class; +#X text 41 63 Cyclone is a library of Pure Data classes \, bringing +some level of compatibility between Max/MSP and Pd environments. Although +being itself in the early stage of development \, it is meant to eventually +become part of a much larger project \, aiming at unification and standardization +of computer musician's tools. In its current form \, cyclone is mainly +for people using both Max and Pd \, and thus wanting to develop cross-platform +patches \, but it also provide many very useful objects for the Pd-only +user.; +#X text 7 462 For more info: http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html; diff --git a/doc/pddp/all_about_data_structures.pd b/doc/pddp/all_about_data_structures.pd new file mode 100644 index 00000000..1c04a733 --- /dev/null +++ b/doc/pddp/all_about_data_structures.pd @@ -0,0 +1,32 @@ +#N canvas 317 126 761 632 10; +#X text 43 164 see also:; +#X obj 84 219 template; +#X obj 161 277 append; +#X obj 54 187 getsize; +#X obj 121 187 setsize; +#X obj 149 219 element; +#X obj 216 277 sublist; +#X obj 35 277 pointer; +#X obj 99 277 get; +#X obj 37 377 drawnumber; +#X obj 38 416 plot; +#X obj 114 376 drawpolygon; +#X obj 104 414 filledpolygon; +#X obj 204 378 drawcurve; +#X obj 203 414 filledcurve; +#X text 34 339 drawing objects:; +#X text 9 34 The original idea behind the creation of Pd was to make +a Max-like environment that also had a means of graphically specifying +a score. Pd's "data structures" are the system devised for this purpose. +; +#X text 33 257 for manipulating data structures:; +#X obj 4 -3 cnv 15 750 20 empty empty all_about_data_structures 2 10 +1 18 -233017 -66577 0; +#X obj 719 -1 pddp; +#X obj 35 219 struct; +#X obj 129 277 set; +#N canvas 0 22 454 304 display 0; +#X restore 321 581 pd display; +#X text 9 98 "scalar" is the basic graphical component of Pd's data +structures. When working with data structures \, all of the objects +pertain to reading and editing "scalars".; diff --git a/doc/pddp/all_about_data_types.pd b/doc/pddp/all_about_data_types.pd new file mode 100644 index 00000000..49fbae03 --- /dev/null +++ b/doc/pddp/all_about_data_types.pd @@ -0,0 +1,126 @@ +#N canvas 290 43 848 640 10; +#X obj 434 530 route; +#X obj 213 411 symbol; +#X obj 153 432 int; +#X floatatom 91 286 5 0 0 0 - - -; +#X text 130 286 float; +#X symbolatom 182 286 10 0 0 0 - - -; +#X text 263 287 symbol; +#X obj 271 411 pointer; +#X obj 519 109 symbol; +#X symbolatom 519 156 0 0 0 0 - - -; +#X msg 528 133 word; +#X msg 519 91 test; +#X obj 42 414 bang; +#X obj 42 434 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 61 434 aka [bng]; +#X msg 502 69 symbol this; +#X text 576 111 casting as a symbol; +#X text 593 68 set type directly; +#X text 567 134 does not work (check console messages); +#X floatatom 432 131 5 0 0 0 - - -; +#X msg 437 110 12; +#X msg 420 90 float 83; +#X obj 18 556 int; +#X obj 26 536 / 5.23; +#X floatatom 26 508 5 0 0 0 - - -; +#X floatatom 59 576 5 0 0 0 - - -; +#X floatatom 18 576 5 0 0 0 - - -; +#X text 5 308 casting and storage objects:; +#X obj 153 412 float; +#X text 5 326 There a number of objects which are used for storing +messages \, or casting messages as a specific data type \, sometimes +converting from one data type to another. The right inlet on these +objects is stores that value \, which can be later output using a bang. +; +#N canvas 770 126 474 324 Related_Objects 0; +#X obj 32 54 ftos; +#X obj 68 54 list2symbol; +#X text 23 22 data type conversion; +#X obj 155 55 tosymbol; +#X obj 219 55 fromsymbol; +#X obj 36 252 lister; +#X obj 34 98 atoi; +#X obj 30 138 list2int; +#X obj 94 137 l2i; +#X obj 96 163 a2l; +#X obj 29 164 any2list; +#X obj 158 138 list2symbol; +#X obj 158 159 symbol2list; +#X obj 247 138 l2s; +#X obj 247 158 s2l; +#X restore 680 577 pd Related_Objects; +#X text 10 240 Data types are known as 'atoms' in Pd. float and symbol +atoms have 'atom boxes'for realtime display and control from within +a patch.; +#X obj 404 19 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 404 594 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 411 279 Many objects cast the data they receive when they output +it:; +#X text 530 376 Some objects do not cast the data:; +#X obj 428 347 trigger anything; +#X msg 428 322 this is a list without a cast; +#X obj 428 370 print; +#X text 414 420 Some objects need to have the data explicitly declared +in order to handle it. These are mostly symbol handling objects.; +#X text 414 487 Objects which route data generally can handle explicitly +or implicitly defined data.; +#X obj 480 530 trigger; +#X obj 538 530 niagara; +#X obj 430 463 select; +#X text 411 41 symbols need to be declared explicitly \, floats do +not \, but can be:; +#X obj 213 434 lister; +#X obj 4 -3 cnv 15 750 20 empty empty all_about_data_types 20 10 1 +18 -233017 -66577 0; +#X obj 719 -1 pddp; +#X text 17 604 by Hans-Christoph Steiner ; +#X text 12 81 the "anything" data type allows anything to pass through +unchanged.; +#X text 17 470 examples of casting:; +#X text 424 557 click on these for more info:; +#X text 629 606 updated for Pd version 0.37.1; +#X text 82 49 anything bang float list pointer scalar symbol; +#X text 6 34 data types (atoms):; +#X text 0 68 "anything"; +#X text 0 184 "list"; +#X text 0 170 "float"; +#X text 0 211 "symbol"; +#X text 0 197 "scalar"; +#X text 0 157 "bang"; +#X msg 100 105 anything 1 two three; +#X msg 251 105 one 2 3; +#X obj 156 188 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 160 162 t a b f l p s; +#X obj 190 189 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 253 139 list one 2 3; +#X msg 292 169 1 2 3; +#X obj 108 506 tosymbol; +#X obj 172 507 fromsymbol; +#X obj 255 506 list2symbol; +#X obj 259 548 ftos; +#X obj 445 577 all_about_lists_vs_anythings; +#X connect 8 0 9 0; +#X connect 10 0 9 0; +#X connect 11 0 8 0; +#X connect 15 0 9 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 26 0; +#X connect 23 0 22 0; +#X connect 23 0 25 0; +#X connect 24 0 23 0; +#X connect 32 0 33 0; +#X connect 36 0 38 0; +#X connect 37 0 36 0; +#X connect 61 0 64 0; +#X connect 62 0 64 0; +#X connect 64 0 63 0; +#X connect 64 3 65 0; +#X connect 66 0 64 0; +#X connect 67 0 64 0; diff --git a/doc/pddp/all_about_lists_vs_anythings.pd b/doc/pddp/all_about_lists_vs_anythings.pd new file mode 100644 index 00000000..72058805 --- /dev/null +++ b/doc/pddp/all_about_lists_vs_anythings.pd @@ -0,0 +1,59 @@ +#N canvas 118 146 866 595 10; +#X msg 74 245 1 2 3; +#X obj 134 276 route list; +#X obj 134 297 print list; +#X obj 209 297 print NOTlist; +#X msg 183 224 list this is a list with a cast; +#X msg 190 243 this is a list withOUT a cast; +#X msg 41 225 list 1 2 3; +#X msg 10 63 list; +#X msg 17 83 list 5; +#X msg 24 103 list pie; +#X symbolatom 32 129 10 0 0 0 - - -; +#X obj 4 2 cnv 15 850 20 empty empty all_about_lists_vs_anythings 20 +10 1 18 -233017 -66577 0; +#X obj 821 3 pddp; +#X text 20 558 by Hans-Christoph Steiner ; +#X obj 65 437 list2int; +#X obj 129 436 l2i; +#X obj 131 462 a2l; +#X obj 64 463 any2list; +#X obj 65 412 lister; +#X obj 64 489 list2symbol; +#X obj 64 510 symbol2list; +#X obj 153 489 l2s; +#X obj 153 509 s2l; +#X obj 197 490 tosymbol; +#X obj 197 509 fromsymbol; +#X text 500 259 use [prepend]!!; +#X obj 617 257 prepend; +#X obj 680 326 drip; +#X text 587 326 write about:; +#X obj 560 460 glue; +#X obj 621 487 pack; +#X obj 620 461 list2symbol; +#X obj 730 460 tosymbol; +#X text 8 175 More than one "float" in a message is considered a "list". +More than one "symbol" in a message is not implicitly considered a +"list" \, only if you cast it.; +#X text 87 104 A "list" of one "symbol" is translated into a "symbol". +; +#X text 72 83 A "list" of one "float" is translated into a "float". +; +#X text 50 63 An empty "list" is tranlated into a "bang".; +#X text 7 39 SPECIAL CASES OF "LISTS".; +#X text 496 214 working with "lists" and "anythings":; +#X text 537 434 making "lists" from untyped inputs:; +#X obj 10 148 print NOT-LISTS; +#X obj 496 460 repack; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 40 0; +#X connect 8 0 40 0; +#X connect 9 0 10 0; +#X connect 9 0 40 0; +#X connect 31 0 30 0; diff --git a/doc/pddp/all_about_looping.pd b/doc/pddp/all_about_looping.pd new file mode 100644 index 00000000..75668aaa --- /dev/null +++ b/doc/pddp/all_about_looping.pd @@ -0,0 +1,109 @@ +#N canvas 255 95 856 623 10; +#X text 460 79 looping objects:; +#X obj 462 101 until; +#X obj 572 102 loop; +#X obj 458 504 susloop~; +#X obj 527 504 loop~; +#X text 455 483 for looping samples:; +#X obj 0 2 cnv 15 850 20 empty empty all_about_looping 20 10 1 18 -233017 +-66577 0; +#X obj 816 3 pddp; +#X obj 461 127 counter; +#X obj 519 127 gem_counter; +#X obj 604 127 cxc.counter; +#X obj 463 551 pdp_loop; +#X obj 534 551 pdp_qtloop~; +#X obj 572 504 loopsampler; +#X text 480 395 examples:; +#X obj 480 424 test-loop~; +#X obj 695 126 for++; +#X obj 60 167 +; +#X floatatom 89 170 5 0 0 0 - - -; +#X msg 59 138 1; +#X obj 139 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 98 138 0; +#X obj 60 209 t f f; +#X text 214 302 X; +#X text 76 306 Y; +#X obj 60 289 t b f; +#N canvas 0 22 450 300 graph2 0; +#X array \$0-array 100 float 1; +#A 0 0 0.950467 0.973181 0.989041 0.997937 0.999806 0.994635 0.982459 +0.963366 0.937489 0.905011 0.866159 0.821209 0.770476 0.714317 0.653128 +0.587341 0.517417 0.44385 0.367158 0.28788 0.206575 0.123815 0.040184 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 +0.000796274 0.000796274 0.000796274 0.000796274; +#X coords 0 1 99 -1 300 100 1; +#X restore 82 405 graph; +#X obj 90 314 tabwrite \$0-array; +#X obj 60 186 moses 100; +#X obj 59 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1 +-1; +#X text 136 166 <-- counter; +#X text 158 186 <-- split at array size to stop; +#X text 186 199 and reset counter to 0; +#X text 57 336 ^--bang for next step; +#X obj 39 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 422 36 inf; +#X obj 60 249 expr abs(cos( min (1.57 \, ($f1 / $f2 - 0.4)) ) ); +#X obj 263 227 hsl 128 15 1 127 0 1 empty empty change_graph_shape +-130 8 1 12 -208896 -1 -1 1100 0; +#X text 7 29 Programming with Pd is a different way of thinking that +standard procedural or object-oriented programming. Looping illustrates +this. Instead of setting up a C-like [counter] or [for++] \, set up +a condition to continue the loop \, and a condition that ends the loop. +; +#X text 13 362 In this example \, the "bang" from [t b f] continues +the loop. The [moses 100] ends the loop.; +#X text 17 601 by Hans-Christoph Steiner ; +#X text 629 603 updated for Pd version 0.37.1; +#X text 125 138 <-- stop; +#X text 451 466 There are also specific loops for samples and video: +; +#X text 458 530 video looping:; +#X obj 660 504 xgroove~; +#X obj 619 353 readsf~; +#X obj 431 338 bng 15 250 50 0 empty empty play_sound 17 7 0 10 -4033 +-1 -1; +#X obj 619 328 spigot; +#X obj 656 306 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1 +-1 0 1; +#X text 429 271 For the most basic looping of samples \, you can use +[readsf~]:; +#X msg 430 307 open ../sound/voice.wav; +#X text 664 373 ^- "bang"ed when complete; +#X connect 17 0 18 0; +#X connect 17 0 28 0; +#X connect 18 0 17 1; +#X connect 19 0 17 0; +#X connect 20 0 21 0; +#X connect 21 0 18 0; +#X connect 21 0 17 1; +#X connect 22 0 36 0; +#X connect 22 1 27 1; +#X connect 25 0 34 0; +#X connect 25 1 27 0; +#X connect 28 0 22 0; +#X connect 28 1 20 0; +#X connect 29 0 19 0; +#X connect 34 0 19 0; +#X connect 36 0 25 0; +#X connect 37 0 36 1; +#X connect 46 1 48 0; +#X connect 47 0 46 0; +#X connect 48 0 46 0; +#X connect 49 0 48 1; +#X connect 51 0 46 0; diff --git a/doc/pddp/all_about_symbol_construction.pd b/doc/pddp/all_about_symbol_construction.pd new file mode 100644 index 00000000..d1144e17 --- /dev/null +++ b/doc/pddp/all_about_symbol_construction.pd @@ -0,0 +1,43 @@ +#N canvas 180 74 859 631 10; +#X obj 0 2 cnv 15 850 20 empty empty all_about_symbol_construction +20 10 1 18 -233017 -66577 0; +#X obj 816 3 pddp; +#X text 17 601 by Hans-Christoph Steiner ; +#X text 629 603 updated for Pd version 0.37.1; +#X obj 452 550 sprintf; +#X obj 751 550 makesymbol; +#X obj 659 550 makefilename; +#X obj 574 550 list2symbol; +#X symbolatom 456 177 55 0 0 0 - - -; +#X obj 456 151 list2symbol; +#X symbolatom 528 129 6 0 0 0 - - -; +#X msg 528 103 symbol -; +#X msg 456 73 make these into one symbol with no spaces; +#X text 445 35 By setting a symbol on the right inlet of [list2symbol] +\, you can create symbols without spaces:; +#X text 592 102 <- click here to use "-"; +#X text 613 115 instead of spaces; +#X text 9 85 There are many different ways of constructing symbols +from various parts. You can turn lists into symbols by replacing the +spaces with other characters or you can use objects with "format strings" +that allow you to create symbols with more flexibility; +#X obj 510 550 tosymbol; +#X text 442 211 [tosymbol] works in a very similar way:; +#X text 9 40 Many times you need to dynamically create different symbols. +For example \, if you are working with many files \, you might want +to name them with a sequential number.; +#X symbolatom 455 316 55 0 0 0 - - -; +#X msg 455 232 make these into one symbol with no spaces; +#X text 638 274 instead of spaces; +#X obj 455 292 tosymbol; +#X text 546 144 ^-- or type here and hit enter; +#X text 446 523 Related objects:; +#X msg 517 260 separator -|-; +#X text 616 261 <- click here to use "-|-"; +#X connect 9 0 8 0; +#X connect 10 0 9 1; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 21 0 23 0; +#X connect 23 0 20 0; +#X connect 26 0 23 0; diff --git a/doc/pddp/dynamic_sends.pd b/doc/pddp/dynamic_sends.pd new file mode 100644 index 00000000..847ec412 --- /dev/null +++ b/doc/pddp/dynamic_sends.pd @@ -0,0 +1,27 @@ +#N canvas 499 325 522 457 10; +#X obj 310 194 f \$0; +#X symbolatom 318 235 0 0 0 0 - - -; +#X obj 310 213 makesymbol pd-%s-controlled; +#N canvas 0 22 482 332 1024-controlled 0; +#X restore 319 61 pd \$0-controlled; +#N canvas 0 22 478 328 controlled 0; +#X restore 68 61 pd controlled; +#X msg 46 167 \; pd-controlled vis \$1; +#X obj 46 123 tgl 40 0 empty empty open_close 0 -6 1 12 -217060 -1 +-1 1 1; +#X msg 310 285 \; \$1 vis \$2; +#X obj 310 256 pack symbol float; +#X obj 310 170 t b f; +#X obj 310 125 tgl 40 0 empty empty open_close 0 -6 1 12 -217060 -1 +-1 0 1; +#X text 112 333 Since \$0 is only expanded if it starts the name \, +it is necessary to use [makesymbol] in order to put the \$0 expansion +into the middle of the name.; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 0 8 0; +#X connect 6 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X connect 9 1 8 1; +#X connect 10 0 9 0; diff --git a/doc/pddp/netreceive-help.pd b/doc/pddp/netreceive-help.pd new file mode 100644 index 00000000..76b40b04 --- /dev/null +++ b/doc/pddp/netreceive-help.pd @@ -0,0 +1,13 @@ +#N canvas 147 52 764 593 10; +#X obj 94 453 netreceive 4567 0 old; +#X obj 76 453 tgl 17 0 empty empty empty 0 -6 0 8 -4033 -1 -1 0 1; +#X text 10 415 sends everything it receives into the global message +space; +#X text 12 508 You can send and receive messages to Pd from the command +line using 'pdsend' and 'pdreceive'.; +#X obj 4 -3 cnv 15 750 20 empty empty netreceive 20 10 1 18 -233017 +-66577 0; +#X obj 719 -1 pddp; +#X obj 612 537 help-netreceive; +#X text 467 537 Miller's help patch:; +#X connect 0 0 1 0; diff --git a/doc/pddp/pddp-style-guide.pd b/doc/pddp/pddp-style-guide.pd new file mode 100644 index 00000000..fceb72e8 --- /dev/null +++ b/doc/pddp/pddp-style-guide.pd @@ -0,0 +1,12 @@ +#N canvas 323 116 596 539 10; +#X text 33 38 Here are various text conventions for discussing various +aspects of Pd in text:; +#X text 36 88 atoms:; +#X text 52 108 "anything" \, "bang" \, "float" \, "list" \, "pointer" +\, "symbol"; +#X text 33 138 objects:; +#X text 50 157 [route] \, [set] \, [float] \, [symbol] \, [trigger] +\, etc.; +#X text 34 191 messages:; +#X text 49 214 [pd dsp 1 ( \, [set 0 ( \,; +#X obj 37 450 standard_gui_elements; diff --git a/doc/pddp/pddp.pd b/doc/pddp/pddp.pd index 787921e6..3d751b58 100644 --- a/doc/pddp/pddp.pd +++ b/doc/pddp/pddp.pd @@ -1,31 +1,34 @@ -#N canvas 262 2 490 557 10; -#X text 14 17 PDDP: Pure Data Documentation Project; -#X text 25 40 The PDDP was proposed initially in early 2002 by Krzysztof -Czaja who suggested that Pure Data was in need of comprehensive documentation. -; -#X text 45 162 - Michal Seta; -#X text 45 135 - Miller Puckette; -#X text 45 148 - Dave Sabine; -#X text 25 89 The project is now managed un-officially by Dave Sabine -who acts as primary author and editor. The people involved in this -project include (alphabetically):; -#X text 25 184 PDDP will eventually be available in the main PD distribution -\, but for now is available at Dave's web site: http://www.davesabine.com/media/puredata.asp -; -#X text 25 231 All comments \, corrections \, etc. regarding the PDDP -reference files should be directed to Dave Sabine: dave@davesabine.com -; -#X text 14 282 THINGS TO NOTE:; -#X text 25 308 Authors: If you would like to participate in this project -\, simply gather together information about objects \, tutorials \, -examples \, etc. and contact Dave Sabine for info about formatting -your documents. All documents should then be forwarded to Dave to be -included in the PDDP download which is available at his web site.; -#X text 25 396 Externals and other Libraries: Each PDDP document includes -mention of "related objects from other PD libraries" as well as mention -of "related native PD objects". The objects from other libraries are -available only if you download those libraries from their respective -authors and integrate them properly into your version of PD. We do -not and cannot maintain a complete list of externals - but we try. -For more info about externals and other objects \, see http://www.pure-data.org/ -and the Pure Data Base at http://iem.kug.ac.at/pdb/; +#N canvas 262 22 459 539 10; +#X text 25 32 The PDDP was proposed initially in early 2002 by Krzysztof +Czaja who suggested that Pure Data was in need of comprehensive documentation. +; +#X text 45 154 - Michal Seta; +#X text 45 127 - Miller Puckette; +#X text 45 140 - Dave Sabine; +#X text 25 81 The project is now managed un-officially by Dave Sabine +who acts as primary author and editor. The people involved in this +project include (alphabetically):; +#X text 14 297 THINGS TO NOTE:; +#X text 25 315 Authors: If you would like to participate in this project +\, simply gather together information about objects \, tutorials \, +examples \, etc. and contact Dave Sabine for info about formatting +your documents. All documents should then be forwarded to Dave to be +included in the PDDP download which is available at his web site.; +#X text 25 403 Externals and other Libraries: Each PDDP document includes +mention of "related objects from other PD libraries" as well as mention +of "related native PD objects". The objects from other libraries are +available only if you download those libraries from their respective +authors and integrate them properly into your version of PD. We do +not and cannot maintain a complete list of externals - but we try. +For more info about externals and other objects \, see http://www.pure-data.org/ +and the Pure Data Base at http://iem.kug.ac.at/pdb/; +#X text 45 168 - Hans-Christoph Steiner; +#X text 25 238 All comments \, corrections \, etc. regarding the PDDP +reference files should be directed to the Pd Developers' list: pd-dev@iem.at +; +#X text 26 188 PDDP is now part of the CVS Pd distributions. It was +originally available at Dave's web site: http://www.davesabine.com/media/puredata.asp +; +#X obj 3 2 cnv 15 450 20 empty empty PDDP 2 12 1 18 -233017 -66577 +0; +#X text 102 5 Pure Data Documentation Project; diff --git a/doc/pddp/scalar-help.pd b/doc/pddp/scalar-help.pd new file mode 100644 index 00000000..98e1945f --- /dev/null +++ b/doc/pddp/scalar-help.pd @@ -0,0 +1,30 @@ +#N canvas 351 60 461 532 10; +#N canvas 0 22 454 304 scalar-window 0; +#X restore 164 67 pd scalar-window; +#X obj 2 2 cnv 15 450 20 empty empty "scalar" 2 11 1 18 -233017 -66577 +0; +#X obj 418 3 pddp; +#X obj 256 478 all_about_data_structures; +#X text 221 461 for more info \, click on this:; +#X text 29 307 - You can cut \, copy \, paste \, and duplicate "scalars". +; +#X text 29 212 - You can edit the contents of a "scalar" within the +Properties panel. When you select 'Properties' \, Pd will open a text +editor with the contents of that "scalar". When you are done editing +it \, hit "OK" and your changes will take effect.; +#X text 18 288 In edit mode:; +#X text 29 323 - You can move "scalars" by clicking and dragging.; +#X text 20 196 In any mode:; +#X text 18 376 In run mode:; +#X text 30 390 - You can resize breakpoints. The mouse cursor will +change when you are resizing breakpoints.; +#X text 30 417 - You can move breakpoints. Click near the breakpoint +\, but not so close that the mouse cursor changes to the resize cursor. +; +#X text 29 338 - The blue rectangle is the "handle" for grabbing and +moving the "scalar".; +#X text 20 32 "scalar" is the basic graphical component of Pd's data +structures.; +#X text 305 512 updated for Pd 0.37.1; +#X text 4 174 There are numerous ways to manually edit "scalars":; +#X text 4 501 by Hans-Christoph Steiner ; diff --git a/doc/pddp/select-help.pd b/doc/pddp/select-help.pd new file mode 100644 index 00000000..6c5af823 --- /dev/null +++ b/doc/pddp/select-help.pd @@ -0,0 +1,83 @@ +#N canvas 192 92 972 630 10; +#X floatatom 22 332 0 0 0 0 - - -; +#X msg 156 120 6; +#X msg 119 120 234; +#X floatatom 119 150 0 0 0 0 - - -; +#X msg 121 301 1; +#X msg 89 301 54; +#X obj 22 392 print x1; +#X obj 100 391 print x2; +#X msg 58 301 23; +#X msg 22 302 234; +#X msg 65 120 6; +#X obj 28 180 select 6; +#X msg 28 120 234; +#X obj 28 210 print x1; +#X obj 107 211 print x2; +#X obj 177 391 print x3; +#X obj 255 392 print x4; +#X floatatom 28 150 0 0 0 0 - - -; +#X obj 22 362 select 23 54 1; +#X text 54 31 abbreviation:; +#X obj 150 31 sel; +#X text 20 53 In its simplest form shown below \, Select checks its +input agains the constant "6". If they match \, the first outlet gives +"bang" and otherwise the input is copied to the second outlet. If Select +is used with a single argument \, a second inlet allows you to change +the test value.; +#X text 22 239 You can give several arguments. You get an outlet for +each test value and finally an outlet for values which match none of +them. In this case you don't get inlets to change the test values: +; +#X obj 32 566 print x1; +#X obj 114 567 print x2; +#X msg 34 451 symbol cort; +#X msg 46 476 symbol zack; +#X msg 178 476 symbol cort; +#X msg 184 501 symbol zack; +#X obj 34 539 select cort; +#X msg 308 462 symbol cort; +#X msg 415 462 symbol zack; +#X obj 308 551 print x1; +#X obj 385 551 print x2; +#X obj 308 521 select cort zack; +#X obj 462 551 print x3; +#X msg 413 487 symbol bill; +#X text 24 426 Select can also be used to sort symbols:; +#X text 81 601 see also:; +#X obj 173 603 route; +#X obj 32 10 select; +#X text 92 10 - compare numbers or symbols; +#X text 329 602 updated for Pd version 0.37; +#X obj 820 7 pddp; +#X text 614 589 Miller's help patch:; +#X obj 759 589 help-select; +#X connect 0 0 18 0; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 11 1; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 17 0; +#X connect 11 0 13 0; +#X connect 11 1 14 0; +#X connect 12 0 17 0; +#X connect 17 0 11 0; +#X connect 18 0 6 0; +#X connect 18 1 7 0; +#X connect 18 2 15 0; +#X connect 18 3 16 0; +#X connect 25 0 29 0; +#X connect 26 0 29 0; +#X connect 27 0 29 1; +#X connect 28 0 29 1; +#X connect 29 0 23 0; +#X connect 29 1 24 0; +#X connect 30 0 34 0; +#X connect 31 0 34 0; +#X connect 34 0 32 0; +#X connect 34 1 33 0; +#X connect 34 2 35 0; +#X connect 36 0 34 0; diff --git a/doc/pddp/set-help.pd b/doc/pddp/set-help.pd new file mode 100644 index 00000000..aa991903 --- /dev/null +++ b/doc/pddp/set-help.pd @@ -0,0 +1,40 @@ +#N struct help-set-template1 float x float y; +#N canvas 346 46 655 535 12; +#X msg 272 235 next; +#X floatatom 19 265 5 0 0 2 X_value - -; +#X floatatom 106 265 5 0 0 2 Y_value - -; +#X obj 258 260 pointer; +#X text 261 189 output first scalar in list; +#X text 318 235 output next item; +#X text 282 332 First argument selects template.; +#X text 282 347 Remaining args are names of fields.; +#X msg 258 211 traverse pd-help-set-data \, next; +#N canvas 0 22 288 134 help-set-data 1; +#X scalar help-set-template1 44 50 \;; +#X scalar help-set-template1 99 73 \;; +#X restore 377 409 pd help-set-data; +#N canvas 164 72 425 146 help-set-template1 0; +#X obj 41 87 filledpolygon 9 0 1 0 0 20 0 20 30 0 30; +#X obj 60 21 template float x float y; +#X restore 377 431 pd help-set-template1; +#X text 86 10 -- set values in a scalar; +#X obj 19 338 set help-set-template1 x y; +#X text 359 497 updated for Pd version 0.35; +#X text 6 72 [set] takes a pointer to a scalar in its rightmost inlet +\; the remaining inlets set numeric values of fields. Only the leftmost +inlet is "hot". You can't [set] "arrays" or "sublists". Instead \, +you can get pointers into them using [element] and [sublist] (probably +not working yet) and set individual items.; +#X obj 29 432 all_about_data_structures; +#X text 13 408 for more info \, open this patch:; +#X obj 106 298 t b f; +#X text 273 474 Miller's help patch:; +#X obj 474 474 help-set; +#X obj 21 10 set; +#X connect 0 0 3 0; +#X connect 1 0 12 0; +#X connect 2 0 17 0; +#X connect 3 0 12 2; +#X connect 8 0 3 0; +#X connect 17 0 1 0; +#X connect 17 1 12 1; diff --git a/doc/pddp/standard_gui_elements.pd b/doc/pddp/standard_gui_elements.pd new file mode 100644 index 00000000..ee04102c --- /dev/null +++ b/doc/pddp/standard_gui_elements.pd @@ -0,0 +1,24 @@ +#N canvas 92 31 460 548 10; +#X msg 22 148 \; pd dsp \$1; +#X obj 2 2 cnv 15 450 20 empty empty [object_name] 2 11 1 18 -233017 +-66577 0; +#X obj 22 107 tgl 35 0 empty empty Start 0 -6 1 12 -114652 -1 -1 0 +1; +#X obj 340 114 vsl 20 128 0 127 0 0 empty empty master_level 0 -8 1 +10 -237557 -1 -1 0 1; +#X obj 194 466 grouping patch; +#X obj 119 218 nbx 5 20 -1e+37 1e+37 0 0 empty empty display_number_box +0 -6 1 16 -199729 -1 -1 0 256; +#X text 17 261 The idea behind these objects is to have a color scheme +which consistently represents various ideas. Also \, having GUI objects +highlighted by color signals the user that they should play with that +object \, while plain white objects are part of the implementation. +; +#X obj 418 3 pddp; +#X text 175 447 click on these for more info:; +#X text 248 523 updated for Pd version 0.37.1; +#N canvas 0 22 454 304 related_objects 0; +#X restore 317 466 pd related_objects; +#X text 5 523 by H-C Steiner ; +#X text 14 37 [object_name] is an example patch for the PDDP style +guide.; diff --git a/doc/pddp/sublist-help.pd b/doc/pddp/sublist-help.pd new file mode 100644 index 00000000..419db0e0 --- /dev/null +++ b/doc/pddp/sublist-help.pd @@ -0,0 +1,14 @@ +#N canvas 28 72 733 292 12; +#X text 407 254 updated for Pd version 0.32; +#X obj 21 10 sublist; +#X text 99 9 -- get a list from a field of a scalar; +#X text 30 49 Don't try this yet -- it's untested.; +#X text 37 87 "sublist" will take as creation arguments a template +name and a field name \; its one input takes a pointer. If you send +a pointer (which should agree with the template name) \, "sublist" +will output the field (which should be of type "list".) The output +is in fact a pointer to the head of the sublist.; +#X text 27 226 for more info \, open this patch:; +#X text 363 226 Miller's help patch:; +#X obj 43 250 all_about_data_structures; +#X obj 564 226 help-sublist; -- cgit v1.2.1