#N canvas 429 37 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 pack 3 12 0 18 -204280
-1 0;
#X obj 0 113 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 482 257 494 370 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS This help patch 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. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 45 DESCRIPTION combine several atoms into one message;
#X text 12 65 INLET_0 anything;
#X text 12 85 INLET_N float symbol pointer;
#X text 12 105 OUTLET_0 list symbol pointer float;
#X text 12 5 KEYWORDS control needs_work list_op;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 394 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 565 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 333 428 296 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 [pack] Related Objects;
#X text 20 163 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 19 212 The best places to find information about Pd's libraries
is:;
#X text 16 234 www.puredata.org and click on "Downloads" then "Software"
;
#X text 17 250 or;
#X text 18 264 iem.kug.ac.at/pdb/;
#X obj 20 36 pddp/helplink zexy/pack~;
#X obj 20 51 pddp/helplink zexy/unpack~;
#X obj 20 66 pddp/helplink zexy/tabdump;
#X obj 20 81 pddp/helplink zexy/niagara;
#X obj 20 96 pddp/helplink zexy/packel;
#X obj 20 111 pddp/helplink zexy/repack;
#X obj 20 126 pddp/helplink zexy/drip;
#X obj 20 141 pddp/helplink zexy/sort;
#X restore 102 597 pd Related_objects;
#X obj 78 120 cnv 17 3 225 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 266 list;
#X obj 78 401 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 350 cnv 17 3 37 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 511 10 pack;
#X text 98 186 symbol;
#X text 98 119 bang;
#X text 98 147 float;
#X text 98 226 pointer;
#X text 98 400 list;
#N canvas 82 45 428 551 pack_peculiarities 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 25 103 bang;
#X obj 25 123 pack 100 0 s 42;
#X text 25 162 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 26 282 pack 100 0 s 42;
#X msg 26 238 400 1 cat 38;
#X text 111 238 This works.;
#X msg 38 260 cat dog 42 earth;
#X obj 31 448 pack cat;
#X text 25 333 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 39 430 WRONG;
#X obj 143 452 pack symbol;
#X text 223 442 CORRECT;
#X obj 143 473 print this_package;
#X msg 143 431 cat;
#X text 41 298 Note that the "s" above is an abbreviation for "symbol".
;
#X obj 31 525 pack bang;
#X text 30 492 Same problem with bangs! This [pack] object creates
an error.;
#X obj 25 144 print package_1;
#X obj 26 315 print package_2;
#X text 145 261 This doesn't work - the data types;
#X text 144 278 don't correspond with the arguments.;
#X text 20 32 In the example below \, the creation arguments are "100"
\, "0" \, a "symbol" \, and "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 8 2 [pack] Peculiarities;
#X connect 1 0 2 0;
#X connect 2 0 18 0;
#X connect 4 0 19 0;
#X connect 5 0 4 0;
#X connect 7 0 4 0;
#X connect 11 0 13 0;
#X connect 14 0 11 0;
#X restore 171 545 pd pack_peculiarities;
#X text 168 400 - [pack] will output its package (i.e. \, the list
of values) when it receives a message to its left inlet.;
#N canvas 72 44 466 546 Another_example_using_pack 0;
#X text 181 97 is the same as;
#X obj 23 517 print my_package;
#X msg 46 285 1 2 dog;
#X obj 23 211 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 55 390 5 0 0 0 - - -, f 5;
#X floatatom 53 343 5 0 0 0 - - -, f 5;
#X msg 129 450 100 earth me 42;
#X text 19 38 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 22 97 pack float symbol pointer;
#X obj 276 98 pack f s p;
#X msg 36 261 42 24 dog cat 1 2;
#X obj 23 497 pack f f s s f f;
#X text 42 205 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 101 380 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 obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [pack] Another Example;
#X text 20 124 [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 151 261 This list contains new values for each item.;
#X text 97 280 This list doesn't contain enough items \; so it resets
only the first three items \, uses the previous values for the other
three items \, and then outputs the entire package.;
#X text 99 340 A new value for the first item will reset the it and
force [pack] to output the entire package of stored values.;
#X text 129 481 this list will cause an error.;
#X text 128 467 Lists can only be sent to the first inlet --;
#X connect 2 0 11 0;
#X connect 3 0 11 0;
#X connect 4 0 11 1;
#X connect 4 0 11 4;
#X connect 4 0 11 5;
#X connect 5 0 11 0;
#X connect 6 0 11 1;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X restore 101 573 pd Another_example_using_pack;
#X obj 394 69 pack;
#X obj 394 91 print;
#X msg 432 46 2;
#X floatatom 394 46 5 0 0 0 - - -, f 5;
#X text 98 427 Note: [pack] may output a float \, symbol \, or pointer
if only one argument is specified.;
#X text 11 23 combine several atoms into one message;
#X text 23 46 The [pack] object takes a series of inputs and then outputs
a concatenated list. By default \, [pack] has two inlets \, each of
which will accept a float.;
#X text 168 147 - if the first argument is "float" \, "f" \, or a numeric
value (e.g. \, "12" \, "3.4") the first element in the list will be
set to the incoming value \, and [pack] will output its list.;
#X text 168 266 - a list is distributed to among the inlets of [pack].
Each element must match the atom-type specified by the creation arguments.
Lists with more items than the total number of inlets will be truncated.
;
#X text 168 226 - if the first argument is "pointer" or "p" \, an incoming
pointer will be set to the first item in the list \, and [pack] will
output its list.;
#X text 98 491 float;
#X text 168 476 - the number of arguments determines the number of
inlets (default is two). The symbols described under the "inlets" heading
specify the atom-type of each inlet. You can also use a float to specify
float-type while also initializing that inlet's value. Some peculiarities
described below:;
#X text 80 476 n) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 168 186 - if the first argument is "symbol" or "s" \, an incoming
symbol will be set to the first item in the list \, and [pack] will
output its list.;
#X text 98 319 anything;
#X text 168 119 - a "bang" to the first inlet will force [pack] to
output the current package (i.e. \, the list of values).;
#X text 168 319 - an anything will be converted to a list and distributed
in the same manner as a list.;
#X text 98 348 An inlet is created for each argument given. Each may
store a float \, symbol \, or pointer \, depending on the argument
given. These inlets will not accept lists/anythings.;
#X connect 21 0 22 0;
#X connect 23 0 21 1;
#X connect 24 0 21 0;
