diff options
Diffstat (limited to 'doc/pddp/help-pack.pd')
-rw-r--r-- | doc/pddp/help-pack.pd | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/doc/pddp/help-pack.pd b/doc/pddp/help-pack.pd new file mode 100644 index 00000000..0349f3d2 --- /dev/null +++ b/doc/pddp/help-pack.pd @@ -0,0 +1,128 @@ +#N canvas 13 -7 937 656 10;
+#X obj 25 11 pack;
+#X text 60 11 - combine several atoms into one message;
+#X msg 24 190 bang;
+#X obj 24 210 pack 100 0 s 42;
+#X text 24 249 In the same example \, this [pack] object will recognize
+floats in the first \, second \, and fourth inlet \; it will recognize
+symbols in the third inlet. If it receives anything else \, then you'll
+see the "no method for ___" error message in the terminal window.;
+#X obj 25 366 pack 100 0 s 42;
+#X msg 25 328 400 1 cat 38;
+#X text 110 328 This works.;
+#X msg 37 347 cat dog 42 earth;
+#X obj 30 534 pack cat;
+#X text 24 419 So \, if [pack] understands that "100" is a float and
+can therefore understand all incoming numbers to that inlet...then
+you might assume that the word "cat" could be written as a creation
+argument and [pack] should understand all incoming symbols. But that's
+NOT the case. If you try to define a [pack] symbol with the word "cat"
+in a creation argument \, you'll get a "bad type" error.;
+#X text 38 516 WRONG;
+#X obj 142 538 pack symbol;
+#X text 222 528 CORRECT;
+#X obj 142 559 print this_package;
+#X msg 142 517 cat;
+#X text 40 382 Note that the "s" above is an abbreviation for "symbol".
+;
+#X obj 30 611 pack bang;
+#X text 29 578 Same problem with bangs! This [pack] object creates
+an error.;
+#X obj 416 14 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 416 604 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 448 106 [pack] can be created with any number of creation arguments.
+There will be one inlet created for each argument and the values of
+each [pack]ed element can be updated at any time using the separate
+inlets \; or they can be updated simoultaneously with a LIST of messages
+to its first inlet.;
+#X text 609 75 is the same as;
+#X obj 24 231 print package_1;
+#X obj 25 399 print package_2;
+#X obj 444 489 print my_package;
+#X msg 467 271 1 2 dog;
+#X text 518 266 This list doesn't contain enough elements \; so it
+resets only the first three elements and then outputs the entire package
+- the undefined elements will simply output their previous values.
+;
+#X obj 444 197 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 476 376 5 0 0;
+#X floatatom 474 329 5 0 0;
+#X msg 537 423 100 earth me 42;
+#X text 548 441 Lists can only be sent to the first inlet -- this list
+will cause an error.;
+#X text 520 326 A new value for the first element will reset the first
+element and force [pack] to output the entire package of stored values.
+;
+#X text 451 16 Perhaps the best way to build creation arguments is
+to define the data types that [pack] should expect at each inlet: (i.e.
+floats \, symbols \, or pointers -- or their abbreviations f \, s \,
+or p);
+#X obj 450 75 pack float symbol pointer;
+#X obj 704 76 pack f s p;
+#X msg 457 247 42 24 dog cat 1 2;
+#X obj 444 469 pack f f s s f f;
+#X text 572 247 This list contains new values for each element.;
+#X text 19 127 In the example below \, the creation arguments are "100
+\, 0 \, a symbol \, 42". Hence \, when [pack] receives a bang \, it
+will send that information to its outlet as a list - or 'package' -
+which will be printed in your terminal window.;
+#X text 144 348 This doesn't work - the data types;
+#X text 143 362 don't correspond with the arguments.;
+#X text 17 33 The pack object takes a series of inputs and then outputs
+a concatenated list. The number of creation arguments determines the
+number of inlets while the type of creation arguments determines the
+types of messages that [pack] should expect to receive at each inlet
+- although with some peculiarities described below.;
+#X text 463 191 Any message to the first inlet will force [pack] to
+output its package - its list of values. A bang to the first inlet
+will force [pack] to output the current values without resetting any
+of them.;
+#X text 522 366 This number box will update each of the 'float' values
+and will NOT output the package - because the first inlet is not receiving
+a message - to change this behavior \, you should explore the [trigger]
+object.;
+#X text 443 523 RELATED OBJECTS;
+#X obj 442 546 trigger;
+#X obj 495 546 unpack;
+#N canvas 0 0 452 302 related_objects_from_other_libraries 0;
+#X obj 21 16 pack~;
+#X obj 61 16 unpack~;
+#X obj 113 16 tabdump;
+#X obj 169 16 niagara;
+#X obj 224 16 packel;
+#X obj 21 42 repack;
+#X obj 70 42 drip;
+#X obj 107 42 sort;
+#X text 18 86 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 17 135 The best places to find information about PD's libraries
+is:;
+#X text 14 157 www.pure-data.org and click on "Downloads" then "Software"
+;
+#X text 15 173 or;
+#X text 16 187 iem.kug.ac.at/pdb/;
+#X restore 440 571 pd related_objects_from_other_libraries;
+#X text 443 601 This document was updated for PD version 0.35 test
+26 by Dave Sabine as part of a project called pddp proposed by Krzysztof
+Czaja to build comprehensive documentation for PD.;
+#X connect 2 0 3 0;
+#X connect 3 0 23 0;
+#X connect 5 0 24 0;
+#X connect 6 0 5 0;
+#X connect 8 0 5 0;
+#X connect 12 0 14 0;
+#X connect 15 0 12 0;
+#X connect 19 0 20 0;
+#X connect 26 0 38 0;
+#X connect 28 0 38 0;
+#X connect 29 0 38 1;
+#X connect 29 0 38 4;
+#X connect 29 0 38 5;
+#X connect 30 0 38 0;
+#X connect 31 0 38 1;
+#X connect 37 0 38 0;
+#X connect 38 0 25 0;
|