Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jwilkes/purr-data
  • aggraef/purr-data
  • samthursfield/purr-data
  • prakhar/purr-data
  • yadu05/purr-data
  • NegiAkash890/purr-data
  • prateekpardeshi/purr-data
  • Shruti3004/purr-data
  • hidimpu/purr-data
  • Atseosi/purr-data
  • piyushjasaiwal/purr-data
  • deveshprasad/purr-data
  • skm_7/purr-data
  • sankt/purr-data
  • ashim_tom/purr-data
  • dineshsoni02/purr-data
  • chaitanya1-coder/purr-data
  • Nitish0007/purr-data
  • nitin/purr-data
  • shuvam09/purr-data
  • gabrielabittencourt/purr-data
  • sivasai/purr-data
  • flachyjoe/purr-data
  • ishankaler/purr-data
  • prateek/purr-data
  • RukshanJS/purr-data
  • rajatshrm648/purr-data
  • Srashti/purr-data
  • Paarth/purr-data
  • AniruddhaGawali/purr-data
  • brittneyjuliet/purr-data
  • prakharagarwal1/purr-data
  • Shreyanshpaliwalcmsmn/purr-data
  • k_amrut/purr-data
  • AyushAnand/purr-data
  • Va16hav07/purr-data
36 results
Show changes
Showing
with 0 additions and 2578 deletions
#N canvas 407 77 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 send 3 12 0 18 -204280
-1 0;
#X obj 0 240 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 462 331 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Dave Sabine \, September 12 \, 2003
. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 25 KEYWORDS control nonlocal;
#X text 12 65 DESCRIPTION send messages without patch cords;
#X text 12 5 ALIAS s;
#X text 12 85 INLET_0 anything;
#X text 12 105 INLET_1 symbol;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 333 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 438 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 193 354 428 315 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 [send] Related Objects;
#X obj 23 43 receive~;
#X obj 88 43 send~;
#X obj 194 43 throw~;
#X obj 249 43 catch~;
#X obj 23 74 tabreceive~;
#X obj 111 74 tabsend~;
#X obj 180 74 netsend;
#X obj 247 74 netreceive;
#X obj 304 43 value;
#X obj 134 43 receive;
#X text 20 109 Externals and other object libraries;
#X obj 20 168 pddp/helplink maxlib/remote;
#X obj 20 208 pddp/helplink maxlib/dist;
#X text 106 188 <- which library? (No help patch exists);
#X text 106 227 <- which library?;
#X text 106 247 <- which library?;
#X obj 20 268 pddp/helplink maxlib/netdist;
#X obj 20 128 pddp/helplink ggee/streamout~;
#X obj 20 148 pddp/helplink ext13/send13~;
#X obj 20 188 pddp/helplink sendlocal;
#X obj 20 228 pddp/helplink sendOSC;
#X obj 20 248 pddp/helplink shoutcast~;
#X obj 20 288 pddp/helplink motex/system;
#X restore 102 597 pd Related_objects;
#X obj 78 342 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 465 10 send;
#X text 497 10 or;
#X obj 520 10 s;
#X obj 52 124 s;
#X floatatom 52 100 5 0 0 0 - - -, f 5;
#X floatatom 284 95 5 0 0 0 - - -, f 5;
#X obj 284 66 r;
#X floatatom 339 95 5 0 0 0 - - -, f 5;
#X obj 339 66 r;
#X floatatom 390 95 5 0 0 0 - - -, f 5;
#X obj 390 66 r;
#X floatatom 52 167 5 0 0 0 - - -, f 5;
#X floatatom 277 177 5 0 0 0 - - -, f 5;
#X floatatom 348 177 5 0 0 0 - - -, f 5;
#X floatatom 423 177 5 0 0 0 - - -, f 5;
#X text 51 147 with creation argument;
#X obj 52 191 s dave;
#X obj 277 148 r dave;
#X obj 348 148 r dave;
#X floatatom 152 168 5 0 0 0 - - -, f 5;
#X obj 423 148 r hans;
#X obj 152 192 s hans;
#X obj 78 249 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 247 anything;
#X obj 78 291 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 289 symbol;
#X text 168 289 - if [send] is created without an argument \, the right
inlet can be used to dynamically change the send/receive name. (See
example above).;
#X obj 112 124 s;
#X floatatom 112 66 5 0 0 0 - - -, f 5;
#X msg 157 66 symbol dave;
#X msg 157 94 symbol hans;
#X text 98 341 (none);
#X text 168 341 - all messages are sent to a corresponding [receive]
object with the same name.;
#X obj 98 442 pddp/pddplink all_about_send_n_receive.pd -text all_about_send_n_receive
;
#N canvas 64 68 428 493 Dynamic_send_vs_messages 0;
#X text 20 42 Consider this:;
#X floatatom 115 43 5 0 0 0 - - -, f 5;
#X floatatom 171 43 5 0 0 0 - - -, f 5;
#X obj 115 69 s dave;
#X obj 171 69 s hans;
#X obj 264 43 r dave;
#X obj 320 43 r hans;
#X floatatom 264 67 5 0 0 0 - - -, f 5;
#X floatatom 320 67 5 0 0 0 - - -, f 5;
#X text 20 112 Now consider this:;
#X floatatom 139 114 5 0 0 0 - - -, f 5;
#X floatatom 208 115 5 0 0 0 - - -, f 5;
#X msg 139 142 \; dave \$1;
#X msg 208 142 \; hans \$1;
#X text 20 232 And to complicate things a little more \, and offer
some interesting functionality \, consider the following:;
#X obj 264 90 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 320 90 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 23 312 \; \$1 42;
#X text 20 184 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 obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [send] Send using [send] of message? Dynamic [send]?;
#X msg 23 274 symbol dave;
#X msg 107 274 symbol hans;
#X text 66 302 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. The two patches below do the
same thing but with the [send] object:;
#X msg 162 364 symbol dave;
#X msg 171 386 symbol hans;
#X obj 162 467 send;
#X obj 162 440 42;
#X obj 162 413 t b a;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 15 0;
#X connect 8 0 16 0;
#X connect 10 0 12 0;
#X connect 11 0 13 0;
#X connect 21 0 17 0;
#X connect 22 0 17 0;
#X connect 24 0 28 0;
#X connect 25 0 28 0;
#X connect 27 0 26 0;
#X connect 28 0 27 0;
#X connect 28 1 26 1;
#X restore 101 567 pd Dynamic_send_vs_messages;
#X text 11 23 send messages without patch cords;
#X text 168 393 - specifies the send/receive name. If no arguments
are provided \, an extra inlet is available to dynamically set the
send/receive name.;
#X text 168 247 - when [send] is created with an argument \, it has
a single inlet which accepts any message as input. The input is sent
to all [receive] objects with the same name (argument).;
#X text 80 393 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 457 pddp/pddplink all_about_scope_and_locality.pd -text all_about_scope_and_locality
;
#X text 98 493 doc/1.manual/x5.htm;
#X text 98 478 doc/1.manual/x2.htm;
#X obj 97 515 pddp/pddplink ../2.control.examples/09.send_receive.pd
-text doc/2.control.examples/09.send_receive.pd;
#X obj 97 530 pddp/pddplink ../2.control.examples/10.more.messages.pd
-text doc/2.control.examples/10.more.messages.pd;
#X obj 97 545 pddp/pddplink ../2.control.examples/13.locality.pd -text
doc/2.control.examples/13.locality.pd;
#X connect 13 0 12 0;
#X connect 15 0 14 0;
#X connect 17 0 16 0;
#X connect 19 0 18 0;
#X connect 20 0 25 0;
#X connect 26 0 21 0;
#X connect 27 0 22 0;
#X connect 28 0 30 0;
#X connect 29 0 23 0;
#X connect 37 0 36 0;
#X connect 38 0 36 1;
#X connect 39 0 36 1;
#N canvas 431 35 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 send~ 3 12 0 18
-204280 -1 0;
#X obj 0 332 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 303 494 323 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 25 KEYWORDS signal nonlocal;
#X text 12 65 DESCRIPTION one-to-many nonlocal signal connections;
#X text 12 5 ALIAS s~;
#X text 12 85 INLET_0 signal;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 374 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 467 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 516 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 522 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 obj 22 43 tabreceive~;
#X obj 102 43 throw~;
#X obj 152 43 catch~;
#X text 8 2 [send~] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 341 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 453 9 send~;
#X obj 157 236 send~ signal1;
#X obj 157 213 sig~ 50;
#X floatatom 157 189 4 0 0 0 - - -, f 4;
#X text 98 340 signal;
#X text 98 378 (none);
#X text 168 340 - a [send~] object copies its input to a local buffer
which all receive~ objects of the same name read from.;
#X text 168 378 - the incoming signal is sent to all [receive~] objects
that share the same name as the [send~] object. These objects may be
in different windows or even different patches. Any number of [receive~]'s
may be associated with one [send~] \, but it is an error to have two
[send~] objects of the same name.;
#X obj 284 147 receive~ signal1;
#X obj 284 236 snapshot~;
#X obj 304 176 loadbang;
#X obj 304 199 metro 150;
#X text 11 23 one-to-many nonlocal signal connections;
#X floatatom 284 263 5 0 0 0 - - -, f 5;
#X text 168 485 - [send~] takes a single argument which is the name
associated with this particular [send~] object.;
#X text 80 485 1) symbol atom;
#X text 98 519 [send~]/[receive~] only work for the default block size
(64).;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 57 pddp/dsp;
#X obj 96 571 pddp/pddplink ../3.audio.examples/G05.execution.order.pd
;
#X text 99 551 See also:;
#X obj 519 9 s~;
#X text 496 9 or;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 17 0 18 0;
#X connect 18 0 22 0;
#X connect 19 0 20 0;
#X connect 20 0 18 0;
#N struct set-help-template float x float y float a symbol b;
#N canvas 425 34 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 set 3 12 0 18 -204280
-1 0;
#X obj 0 230 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 285 494 344 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 Updated for Pd version 0.33. Revised
by Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 5 KEYWORDS control data_structure;
#X text 12 45 DESCRIPTION set values in a scalar;
#X text 12 65 INLET_0 float list symbol bang;
#X text 12 85 INLET_N float symbol;
#X text 12 105 INLET_R pointer;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 402 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 425 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 505 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 210 520 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 [set] Related Objects;
#X obj 23 44 get;
#X obj 55 44 append;
#X obj 105 44 getsize;
#X obj 161 44 setsize;
#X obj 221 44 element;
#X obj 23 69 sublist;
#X obj 81 69 struct;
#X obj 133 69 pointer;
#X restore 102 598 pd Related_objects;
#X obj 78 332 cnv 17 3 35 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X text 98 237 float;
#X text 98 265 list;
#X obj 78 374 cnv 17 3 17 empty \$0-pddp.cnv.let.r r 5 9 0 16 -228856
-162280 0;
#X obj 518 11 set;
#X text 11 23 set values in a scalar;
#N canvas 381 200 428 296 set-help-template 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 [set] Data Structure Template;
#X obj 23 124 drawcurve 0 1 60 50 70 50 70 60 60 60 60 50;
#X obj 23 244 drawcurve 0 1 25 85 50 a 75 85;
#X obj 23 80 drawcurve 0 1 0 20 100 20 100 120 0 120 0 20;
#X text 298 79 <- Head;
#X obj 23 102 drawcurve 0 1 30 50 40 50 40 60 30 60 30 50;
#X text 298 102 <- Left eye;
#X text 298 124 <- Right eye;
#X text 25 198 The following drawing instruction associates the field
"a" with the midpoint of a curve. Thus you can set the value of a and
change the arc/direction of the curve.;
#X text 217 244 <- Mouth;
#X text 187 152 <- Text;
#X text 187 175 <- Text;
#X obj 23 43 struct set-help-template float x float y float a symbol
b;
#X obj 25 152 drawsymbol b 25 125 0 b=;
#X obj 25 175 drawnumber a 40 a 900 a=;
#X restore 417 153 pd set-help-template;
#X scalar set-help-template 7 42 111 Comedy \;;
#X obj 359 126 pointer;
#X msg 359 73 traverse pd-set-help.pd \, next;
#X floatatom 224 127 5 0 0 0 - - -, f 5;
#X text 366 56 output first scalar in list;
#X scalar set-help-template 116 42 61 Tragedy \;;
#X msg 370 98 next;
#X text 405 97 output next item;
#X text 98 373 pointer;
#X text 168 265 - a list is distributed among the inlets.;
#X text 98 405 (none);
#X obj 78 238 cnv 17 3 85 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 332 float;
#X text 98 283 bang;
#X text 98 346 symbol;
#X text 98 310 symbol;
#X text 168 464 - all subsequent arguments are names of fields. There
is one inlet created per field (plus the rightmost inlet for the pointer).
;
#X text 167 373 - a pointer to a scalar.;
#X text 168 446 - the template of a scalar.;
#X text 168 283 - a bang to the leftmost inlet sets the field(s) of
the scalar with the last stored field value(s).;
#X text 168 237 - a float to the leftmost inlet updates the value(s)
for the field(s) specified in the creation arguments.;
#X text 168 332 - an inlet is added for each additional field specified
by the creation arguments. All fields must be the same type (i.e. \,
floats or symbols \, but not a mixture of the two).;
#X text 98 509 You can't [set] "arrays" or "sublists". Instead \, you
can get pointers into them using [element] and [sublist] (Note: [sublist]
not working yet) and set individual items.;
#X text 168 310 - see the subpatch "Setting_Symbolic_Fields" below.
;
#N canvas 98 376 428 215 Setting_Symbolic_Fields 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 [set] Setting symbolic fields;
#X obj 224 124 pointer;
#X msg 224 71 traverse pd-set-help.pd \, next;
#X msg 235 96 next;
#X msg 23 84 symbol Trauermarsch;
#X msg 48 109 symbol Scherzo;
#X text 20 37 To set symbolic fields of a scalar \, the "-symbol" flag
must be used as follows:;
#X text 20 178 You cannot set symbols and floats using the same [set]
object.;
#X obj 23 151 set -symbol set-help-template b;
#X connect 2 0 9 1;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 9 0;
#X connect 6 0 9 0;
#X restore 101 552 pd Setting_Symbolic_Fields;
#X text 80 446 1) symbol atom;
#X text 80 464 n) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 572 pddp/pddplink ../4.data.structures/03.setting.data.pd
-text doc/4.data.structures/03.setting.data.pd;
#X obj 353 552 pddp/pddplink scalar-help.pd;
#X obj 224 153 set set-help-template a;
#X obj 224 201 set -symbol set-help-template b;
#X symbolatom 224 180 10 0 0 0 - - -, f 10;
#X text 236 73 Click here first->;
#X connect 16 0 45 1;
#X connect 16 0 46 1;
#X connect 17 0 16 0;
#X connect 18 0 45 0;
#X connect 21 0 16 0;
#X connect 47 0 46 0;
#N struct string_of_dolls float x float y array dolls doll symbol label
;
#N struct doll float y;
#N canvas 431 39 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 setsize 3 12 0 18
-204280 -1 0;
#X obj 0 304 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 301 494 328 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Revised
by Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 5 KEYWORDS control data_structure array;
#X text 12 45 DESCRIPTION resize an array;
#X text 12 65 INLET_0 float list;
#X text 12 85 INLET_1 pointer;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 397 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 425 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 485 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 222 522 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 obj 23 44 get;
#X obj 83 44 append;
#X obj 133 44 getsize;
#X obj 189 44 element;
#X obj 23 69 sublist;
#X obj 81 69 struct;
#X obj 133 69 pointer;
#X text 8 2 [setsize] Related Objects;
#X obj 51 44 set;
#X restore 102 598 pd Related_objects;
#X obj 78 313 cnv 17 3 50 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 312 float;
#X text 98 337 list;
#X obj 78 369 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 11 23 resize an array;
#X obj 491 11 setsize;
#X scalar string_of_dolls 32 110 An_array_of_paper_dolls... \; -3 \;
0 \; 0 \; 0 \; 0 \; \;;
#X msg 204 171 traverse pd-setsize-help.pd \, next;
#X obj 204 196 pointer;
#X floatatom 33 237 5 0 0 0 - - -, f 5;
#N canvas 90 353 428 173 doll-template 0;
#X obj 23 43 struct doll float y;
#X obj 23 65 filledcurve 999 0 1 -10 -1 -10 -1 0 -1 0 -1 0 -4 0 -4
-5 -9 3 -14 8 -9 5 -4 5 -4 5 -1 5 -1 15 -1 15 -1 15 3 15 3 5 3 5 3
15 19 15 19 -10 19 -10 19 0 3 0 3 -10 3 -10 3;
#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 [setsize] Data Structure;
#X text 20 118 These are the drawing instructions for the paper doll.
This template is used as the element of the array "dolls" in the template
"string_of_dolls".;
#X restore 380 241 pd doll-template;
#N canvas 81 360 428 167 string_of_dolls 0;
#X obj 23 78 plot dolls 0 1 0 0 30;
#X obj 23 43 struct string_of_dolls float x float y array dolls doll
symbol label;
#X obj 23 101 drawsymbol label -15 -35 145;
#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 [setsize] Template for string_of_dolls;
#X text 20 124 Here we simply plot the array and give it a label by
using the [drawsymbol] object;
#X restore 380 263 pd string_of_dolls;
#X obj 33 263 setsize string_of_dolls dolls;
#X text 178 337 - a (float \, pointer) pair is distributed to the two
inlets. Lists with more than two elements will be truncated.;
#X text 98 368 pointer;
#X text 98 400 (none);
#X text 178 462 - the name of an array contained within the scalar.
;
#X text 178 312 - sending a float sets the number of elements of the
array specified by the 2nd creation argument.;
#X text 98 489 Sending values smaller than one to [setsize] will resize
the array to one \, which is the smallest possible size of an array.
If the array is resized downward (e.g. \, from 20 to 15 elements) the
extra data are lost. If resized upward \, the new elements are initialized
to default values.;
#X text 177 368 - a pointer to a scalar that contains an array.;
#X text 203 149 1) Click here first...;
#X text 32 211 2) ...then here.;
#X text 178 444 - the struct name of a scalar that contains an array.
;
#X text 80 444 1) symbol atom;
#X text 80 462 n) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 557 pddp/pddplink all_about_arrays.pd;
#X obj 98 572 pddp/pddplink scalar-help.pd;
#X connect 15 0 16 0;
#X connect 16 0 20 1;
#X connect 17 0 20 0;
#N canvas 427 35 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 (sigbinops) 3 12
0 18 -204280 -1 0;
#X obj -1 385 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 289 494 344 META 0;
#X text 12 85 LIBRARY internal;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 165 HELP_PATCH_AUTHORS Updated for Pd v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 25 KEYWORDS signal;
#X text 12 65 DESCRIPTION binary operators for signals;
#X text 12 5 NAME +~ -~ *~ /~ max~ min~;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj -1 465 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj -1 502 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj -1 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8
12 0 13 -228856 -1 0;
#N canvas 212 525 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 (sigbinops) Related Objects;
#X obj 22 43 log~;
#X obj 62 43 exp~;
#X obj 103 43 abs~;
#X restore 102 598 pd Related_objects;
#X obj 78 394 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 474 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 417 cnv 17 3 40 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 11 23 binary operators for signals;
#X obj 15 286 +~;
#X obj 103 284 -~;
#X obj 190 284 *~;
#X obj 275 286 /~;
#X obj 15 212 osc~ 440;
#X obj 415 212 osc~ 675;
#X obj 361 284 max~;
#X obj 447 286 min~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0a 100 float 2;
#X coords 0 1 99 -1 150 105 1;
#X restore 15 73 graph;
#X obj 344 11 +~;
#X obj 379 11 -~;
#X obj 412 11 *~;
#X obj 446 11 /~;
#X obj 479 11 max~;
#X obj 513 11 min~;
#X text 177 111 The binary signal operators can be configured to combine
two signals as above \, or \, if you give a numeric argument \, audio
signals are combined with scalars:;
#X obj 329 156 +~ 5;
#X text 177 181 The right inlet takes audio signals or numbers depending
on whether the argument is present or not.;
#X text 98 393 signal;
#X text 167 416 - an incoming signal;
#X text 168 393 - an incoming signal;
#X text 98 416 signal;
#X text 98 473 signal;
#X text 168 473 - the outgoing signal;
#X text 80 521 1) float;
#X text 168 521 - (optional) a float argument initializes the right
inlet to a value \, and allows the right inlet to receive float messages.
;
#X text 98 431 float;
#X text 167 431 - if an argument is provided \, the object's right
inlet will accept floats instead of a signal.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 52 pddp/dsp;
#X obj 15 333 tabwrite~ \$0a;
#X obj 103 333 tabwrite~ \$0a;
#X obj 190 333 tabwrite~ \$0a;
#X obj 275 333 tabwrite~ \$0a;
#X obj 361 333 tabwrite~ \$0a;
#X obj 447 333 tabwrite~ \$0a;
#X obj 21 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786 -1
-1;
#X obj 109 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786
-1 -1;
#X obj 196 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786
-1 -1;
#X obj 281 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786
-1 -1;
#X obj 367 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786
-1 -1;
#X obj 453 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786
-1 -1;
#X connect 12 0 42 0;
#X connect 13 0 43 0;
#X connect 14 0 44 0;
#X connect 15 0 45 0;
#X connect 16 0 12 0;
#X connect 16 0 13 0;
#X connect 16 0 15 0;
#X connect 16 0 14 0;
#X connect 16 0 18 0;
#X connect 16 0 19 0;
#X connect 17 0 15 1;
#X connect 17 0 14 1;
#X connect 17 0 13 1;
#X connect 17 0 12 1;
#X connect 17 0 18 1;
#X connect 17 0 19 1;
#X connect 18 0 46 0;
#X connect 19 0 47 0;
#X connect 48 0 42 0;
#X connect 49 0 43 0;
#X connect 50 0 44 0;
#X connect 51 0 45 0;
#X connect 52 0 46 0;
#X connect 53 0 47 0;
#N canvas 428 34 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 sig~ 3 12 0 18 -204280
-1 0;
#X obj 0 437 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 491 282 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal conversion;
#X text 12 45 DESCRIPTION convert numbers to audio signal;
#X text 12 65 INLET_0 float;
#X text 12 85 OUTLET_0 signal;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 502 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 539 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 543 (none);
#N canvas 213 518 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 obj 22 43 snapshot~;
#X text 8 2 [sig~] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 446 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 445 float;
#X text 98 474 list;
#X obj 78 511 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 510 10 sig~;
#X obj 245 228 snapshot~;
#X floatatom 245 253 0 0 0 0 - - -;
#X floatatom 165 106 0 0 0 0 - - -;
#X obj 245 178 loadbang;
#X obj 245 202 metro 200;
#X text 195 105 <- Scroll to set value;
#X text 168 445 - a float to the inlet of [sig~] will be converted
to an audio signal.;
#X text 98 510 signal;
#X obj 165 131 sig~;
#X text 11 23 convert numbers to audio signal;
#X text 168 474 - a list will be truncated to the first element.;
#X text 113 280 In this example \, the [sig~] object converts numbers
to an audio signal \, which the [snapshot~] converts back again.;
#X text 168 510 - the outgoing signal.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 477 51 pddp/dsp;
#X connect 14 0 15 0;
#X connect 16 0 22 0;
#X connect 17 0 18 0;
#X connect 18 0 14 0;
#X connect 22 0 14 0;
#N canvas 429 34 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 snapshot~ 3 12 0
18 -204280 -1 0;
#X obj 0 417 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 284 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.37. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal conversion;
#X text 12 45 DESCRIPTION convert a signal to a number on demand;
#X text 12 85 OUTLET_0 float;
#X text 12 65 INLET_0 bang signal set;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 500 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 542 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 569 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 546 (none);
#N canvas 218 518 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 [snapshot~] Related Objects;
#X obj 22 43 sig~;
#X obj 63 43 vsnapshot~;
#X restore 102 597 pd Related_objects;
#X obj 78 426 cnv 17 3 65 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 508 float;
#X obj 78 509 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 484 11 snapshot~;
#X obj 91 307 snapshot~;
#X floatatom 91 330 0 0 0 0 - - -;
#X msg 102 255 bang;
#X obj 91 230 osc~ 0.1;
#X text 90 209 0.1 Hz cosine;
#X msg 107 279 set 5;
#X text 98 425 signal;
#X text 11 23 convert a signal to a number on demand;
#X text 98 445 bang;
#X text 98 465 set;
#X text 168 465 - the "set" message \, followed by a value \, sets
[snapshot~] to the specified value (which is reset the next DSP block).
;
#X text 168 508 - upon receiving a bang to its inlet \, [snapshot~]
outputs a value.;
#X text 143 255 <- Click to take a "snapshot" of the signal;
#X text 168 425 - the incoming signal.;
#X text 168 445 - a bang takes one snapshot of the incoming signal.
;
#X text 18 109 In the example below \, a [snapshot~] object prints
out the values of a low frequency cosine wave every time it is sent
a bang message.;
#X text 18 152 A "set" message is provided for the (rare) situations
where you might make a known change to the signal input \, and then
read snapshot's value before any ensuing signal computation.;
#X text 18 57 The [snapshot~] object takes a signal and converts it
to a control value whenever it receives a bang in its left outlet.
This object is particularly useful for monitoring outputs.;
#X text 156 329 This output updates each time bang is clicked above.
;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 54 pddp/dsp;
#X obj 99 572 pddp/pddplink ../3.audio.examples/C06.signal.to.control.pd
-text doc/3.audio.examples/C06.signal.to.control.pd;
#X connect 13 0 14 0;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X connect 18 0 13 0;
#N canvas 429 34 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 soundfiler 3 12
0 18 -204280 -1 0;
#X obj 0 387 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 490 283 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.37. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION read and write soundfiles to arrays;
#X text 12 65 INLET_0 read write;
#X text 12 85 OUTLET_0 float;
#X text 12 5 KEYWORDS control array filesystem;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 487 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 529 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 554 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 533 (none);
#N canvas 217 519 428 106 Related_objects 0;
#X obj 0 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 2 [soundfiler] Related Objects;
#X obj 22 43 tabwrite~;
#X obj 22 69 tabread4~;
#X obj 88 43 tabplay~;
#X obj 143 69 writesf~;
#X obj 87 69 readsf~;
#X restore 102 597 pd Related_objects;
#X obj 78 396 cnv 17 3 80 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 495 float;
#X obj 78 496 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 477 10 soundfiler;
#X text 11 23 read and write soundfiles to arrays;
#X text 98 395 read;
#X text 98 412 write;
#X text 168 495 - the output specifies the total number of samples
that have been read or written.;
#X obj 20 293 soundfiler;
#X floatatom 20 317 0 0 0 0 - - -;
#X text 231 137 read a file;
#X text 287 159 ...optionally resize;
#X text 322 224 write a file;
#X text 358 268 write stereo;
#N canvas 0 0 450 300 (subpatch) 0;
#X array sf-array1 77971 float 0;
#X coords 0 1 77971 -1 130 70 1;
#X restore 135 306 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array sf-array2 77971 float 0;
#X coords 0 1 77971 -1 130 70 1;
#X restore 288 306 graph;
#N canvas 110 93 428 434 flags 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 19 37 When reading you can leave soundfiler to figure out which
of the three known soundfile formats the file belongs to or override
all header information using the "-raw" flag.;
#X text 136 79 Flags for reading:;
#X text 45 99 -skip <sample frames to skip in file>;
#X text 45 159 -raw <headersize> <channels> <bytespersample> <endianness>
;
#X text 64 177 This causes all header information to be ignored. Endianness
is "l" ("little") for Intel machines or "b" ("big") for Macintoshes
and SGIs. You can give "n" (natural) to take the byte order your machine
prefers.;
#X text 45 119 -resize;
#X text 45 139 -maxsize <maximum number of samples we can resize to>
;
#X text 19 230 Flags for writing:;
#X text 37 251 -wave \, -nextstep \, -aiff;
#X text 37 271 -big \, -little (nextstep only!);
#X text 37 291 -skip <number of sample frames to skip in array>;
#X text 37 311 -nframes <maximum number to write>;
#X text 37 351 -normalize;
#X text 37 331 -bytes <2 \, 3 \, or 4>;
#X text 17 400 The number of channels is limited to 64;
#X text 37 371 -rate <sample rate>;
#X text 7 1 [soundfiler] Flags;
#X restore 172 459 pd flags;
#X text 168 412 - write a soundfile.;
#X text 169 428 The "read" and "write" messages accept flags. See the
subpatch below for details:;
#X msg 20 138 read ../sound/bell.aiff sf-array2;
#X msg 20 161 read -resize ../sound/bell.aiff sf-array2;
#X msg 20 185 read -raw 128 2 2 b ../sound/bell.aiff sf-array1 sf-array2
;
#X msg 20 214 write -aiff /tmp/foo1 sf-array2;
#X msg 20 238 write -wave -nframes 10000 /tmp/foo2 sf-array2;
#X msg 20 268 write -nextstep -bytes 4 /tmp/foo3 sf-array1 sf-array2
;
#X text 399 197 overriding everything;
#X text 398 183 ...or even;
#X text 168 395 - read a soundfile.;
#X text 17 41 The [soundfiler] object reads and writes floating point
arrays to binary soundfiles which may contain 2 or 3 byte fixed point
or 4 byte floating point samples in wave \, aiff \, or next formats
(no floating point aiff \, though.). The number of channels of the
soundfile need not match the number of arrays given (extras are dropped
and unsupplied channels are zeroed out).;
#X text 98 558 Note: The number of channels is limited to 64 .;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 575 pddp/pddplink all_about_arrays.pd;
#X connect 17 0 18 0;
#X connect 28 0 17 0;
#X connect 29 0 17 0;
#X connect 30 0 17 0;
#X connect 31 0 17 0;
#X connect 32 0 17 0;
#X connect 33 0 17 0;
#N canvas 432 36 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 spigot 3 12 0 18
-204280 -1 0;
#X obj 0 295 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 265 494 364 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.38-4. It was edited by Dave Sabine and Hans-Christoph Steiner
as part of a project called pddp proposed by Krzysztof Czaja to build
comprehensive documentation for Pd. Revised by Jonathan Wilkes to conform
to the PDDP template for Pd version 0.42.;
#X text 12 5 KEYWORDS control;
#X text 12 45 DESCRIPTION pass or block messages;
#X text 12 65 INLET_0 anything;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 anything;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 389 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 443 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 538 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 400 428 230 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 [spigot] Related Objects;
#X text 20 38 Externals;
#X text 19 85 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 126 The best places to find information about Pd's libraries
is:;
#X text 19 146 www.puredata.org and click on "Downloads" then "Software"
;
#X text 19 161 or;
#X text 19 176 iem.kug.ac.at/pdb/;
#X obj 21 58 pddp/helplink cyclone/gate;
#X restore 102 598 pd Related_objects;
#X obj 78 304 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 398 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 345 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 344 float;
#X obj 498 10 spigot;
#X text 11 23 pass or block messages;
#X msg 101 111 0.5 1000;
#X floatatom 134 177 1 0 0 0 - - -, f 1;
#X obj 101 197 spigot;
#X obj 101 218 print;
#X msg 120 155 walk the cat;
#X msg 111 133 bang;
#X text 147 177 control: nonzero to pass messages \, zero to stop them
;
#X text 18 52 [spigot] passes messages from its left inlet to its outlet
\, as long as a nonzero number is sent to its right inlet. When its
right inlet gets zero \, incoming messages are "blocked" (i.e. ignored).
;
#X text 18 242 [spigot] works essentially like a doorway. When the
door is open \, messages can pass through. When the door is closed
\, messages are ignored. By default \, the door is always closed!;
#N canvas 96 273 428 291 using_spigot_to_create_a_gate 0;
#X text 20 38 Unlike its closest cousin MAX \, Pd does not have a native
[gate] object. There are other Pd libraries which include gates for
both audio and numerical data \, but similar routines can be built
in Pd using [spigot]. The example below shows a two-way gate using
two [spigots] and the [expr] object.;
#X floatatom 121 188 1 0 0 0 - - -, f 1;
#X text 138 187 controls: open and close the gates.;
#X floatatom 24 262 5 0 0 0 - - -, f 5;
#X floatatom 76 262 5 0 0 0 - - -, f 5;
#X obj 24 129 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 24 149 metro 200;
#X obj 24 171 f;
#X obj 51 171 + 1;
#X text 44 127 Click to start sending info through the gates.;
#X obj 24 240 spigot;
#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 [spigot] Using [spigot] to Create a Gate;
#X obj 76 240 spigot 1;
#X obj 121 218 == 0;
#X connect 1 0 10 1;
#X connect 1 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 0 10 0;
#X connect 7 0 13 0;
#X connect 8 0 7 1;
#X connect 10 0 3 0;
#X connect 13 0 4 0;
#X connect 14 0 13 1;
#X restore 102 568 pd using_spigot_to_create_a_gate;
#N canvas 61 206 428 334 spigot_for_audio_signals 0;
#X text 20 38 [spigot] does not work with audio signals. The data types
which are accepted by this object are floats \, symbols \, lists \,
bangs \, anythings and pointers. However \, audio signals require a
completely different treatment.;
#X text 21 100 Pd does not have a [spigot] for audio signals \, but
the same effect can be created using the following structure:;
#X obj 24 147 osc~ 800;
#X obj 24 217 *~;
#X floatatom 39 196 1 0 0 0 - - -, f 1;
#X obj 24 279 env~;
#X floatatom 24 300 5 0 0 0 - - -, f 5;
#X obj 69 299 dac~;
#X obj 69 279 *~ 0.05;
#X text 79 168 Here is the [spigot].;
#X text 80 183 When "0" \, audio signal;
#X text 79 198 is effectively blocked.;
#X text 80 213 When "1" \, audio signal is;
#X text 80 228 not effected in any way.;
#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 [spigot] Is There a [spigot] for Audio Signals?;
#X obj 287 145 pddp/dsp;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 3 0 8 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 8 0 7 0;
#X restore 102 547 pd spigot_for_audio_signals;
#X text 98 303 anything;
#X text 167 344 - "0" blocks all incoming messages to the left inlet.
"1" (or any nonzero number) passes the incoming message to the outlet.
;
#X text 98 397 anything;
#X text 168 397 - if the last value received at the right inlet was
nonzero \, [spigot] passes the message from the first inlet to its
outlet.;
#X text 168 457 - By default \, the left inlet of [spigot] is initially
closed. A one (or any nonzero number) as a creation argument will cause
the spigot to be open initially. See the subpatch below for an example:
;
#X text 168 303 - [spigot] takes the input to the left inlet and either
ignores it or passes it through to the outlet \, depending on the value
at the right inlet.;
#N canvas 74 291 428 213 creation_args 0;
#X obj 146 108 spigot 0;
#X text 21 38 [spigot] only accepts one numerical creation argument:
a one or a zero. At creation time the [spigot] is "closed". With a
one \, its defaults to open.;
#X obj 214 108 spigot 1;
#X obj 146 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -225271 -1
-1;
#X obj 90 108 spigot;
#X obj 90 135 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 146 135 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 214 135 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#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 [spigot] Creation Arguments;
#X text 20 158 [spigot] used to accept any symbol as a creation argument
\, but all of these are meaningless and have no effect on the operation
of the object. This was removed in Pd 0.38-3;
#X connect 0 0 6 0;
#X connect 2 0 7 0;
#X connect 3 0 0 0;
#X connect 3 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X restore 171 510 pd creation_args;
#X text 90 457 1) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 296 548 pddp/pddplink ../2.control.examples/18.conditional.pd
-text doc/2.control.examples/18.conditional.pd;
#X connect 14 0 16 0;
#X connect 15 0 16 1;
#X connect 16 0 17 0;
#X connect 18 0 16 0;
#X connect 19 0 16 0;
#N canvas 433 34 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 sqrt~ 3 12 0 18
-204280 -1 0;
#X obj 0 437 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 492 283 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal;
#X text 12 45 DESCRIPTION signal square root;
#X text 12 85 OUTLET_0 signal;
#X text 12 65 INLET_0 signal;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 502 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 539 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 543 (none);
#N canvas 220 517 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 obj 152 43 rsqrt~;
#X obj 203 43 sqrt;
#X obj 22 43 q8_sqrt~;
#X obj 82 43 q8_rsqrt~;
#X text 8 2 [sqrt~] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 446 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 511 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 511 7 sqrt~;
#X obj 232 240 metro 500;
#X floatatom 215 137 0 0 0 0 - - -;
#X floatatom 216 297 0 0 0 0 - - -;
#X obj 216 264 snapshot~;
#X floatatom 216 380 9 0 0 0 - - -, f 9;
#X obj 216 324 t f f;
#X obj 216 351 *;
#X obj 215 163 sig~;
#X text 98 445 signal;
#X obj 232 215 loadbang;
#X text 98 465 float;
#X obj 216 191 sqrt~;
#X text 168 465 - a float may be sent to the inlet as long as no signal
connections are made to [sqrt~].;
#X text 98 510 signal;
#X text 168 510 - the square root of the incoming signal is output.
;
#X text 11 23 signal square root;
#X text 168 445 - an incoming signal.;
#X text 20 72 [sqrt~] takes the approximate square root of the incoming
signal \, using a fast \, approximate algorithm which is probably accurate
to about 120 dB (20 bits).;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 55 pddp/dsp;
#X connect 12 0 15 0;
#X connect 13 0 19 0;
#X connect 14 0 17 0;
#X connect 15 0 14 0;
#X connect 17 0 18 0;
#X connect 17 1 18 1;
#X connect 18 0 16 0;
#X connect 19 0 23 0;
#X connect 21 0 12 0;
#X connect 23 0 15 0;
#N canvas 432 34 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 stripnote 3 12 0
18 -204280 -1 0;
#X obj 0 358 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 261 494 366 META 0;
#X text 12 155 LIBRARY internal;
#X text 12 195 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 215 RELEASE_DATE 2009-06-12;
#X text 12 25 LICENSE SIBSD;
#X text 12 175 AUTHOR Miller Puckette;
#X text 12 235 HELP_PATCH_AUTHORS Updated for Pd version 0.28. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control MIDI;
#X text 12 45 DESCRIPTION send note-on messages and schedule note-off
for later;
#X text 12 75 INLET_0 float list;
#X text 12 115 OUTLET_0 float;
#X text 12 95 INLET_1 float;
#X text 12 135 OUTLET_1 float;
#X restore 500 597 pd META;
#X obj 0 467 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 540 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 544 (none);
#N canvas 220 191 428 433 Related_objects 0;
#X obj 1 2 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 3 [stripnote] Related Objects;
#X obj 74 81 ctlin;
#X obj 217 81 pgmin;
#X obj 24 81 bendin;
#X obj 79 108 touchin;
#X obj 261 81 polytouchin;
#X obj 118 81 midiin;
#X obj 23 108 sysexin;
#X obj 179 168 noteout;
#X obj 76 168 ctlout;
#X obj 24 168 bendout;
#X obj 366 168 touchout;
#X obj 280 168 polytouchout;
#X obj 123 168 midiout;
#X obj 231 168 pgmout;
#X obj 24 222 makenote;
#X text 21 199 MIDI note construction:;
#X text 21 141 MIDI output:;
#X text 21 58 MIDI input:;
#X obj 184 222 stripnote;
#X obj 168 81 notein;
#X text 181 199 MIDI note deconstruction:;
#X obj 24 34 makenote;
#X text 22 275 Additional useful objects for MIDI processing (Maxlib
by Olaf Matthes);
#X text 21 354 Also \, from cyclone (alpha) by Krzysztof Czaja:;
#X text 22 256 Externals;
#X obj 22 305 pddp/helplink maxlib/pitch;
#X obj 22 320 pddp/helplink maxlib/score;
#X obj 22 335 pddp/helplink maxlib/chord;
#X obj 22 370 pddp/helplink cyclone/midiformat;
#X obj 22 385 pddp/helplink cyclone/midiparse;
#X obj 22 400 pddp/helplink cyclone/midiflush;
#X restore 102 597 pd Related_objects;
#X obj 78 367 cnv 17 3 65 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 366 float;
#X text 98 406 list;
#X text 98 476 float;
#X obj 78 477 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 439 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 438 float;
#X obj 480 10 stripnote;
#X text 130 227 Stripnote takes note-off (zero-velocity) messages out
of a stream of MIDI-style note message and passes the others through
unchanged.;
#X msg 134 127 23 0;
#X obj 134 202 print x1;
#X obj 191 202 print x2;
#X obj 134 166 stripnote;
#X text 168 366 - MIDI pitch value. The value will pass unchanged to
the left outlet if the current value of the right inlet is non-zero.
;
#X msg 174 127 34.5 67.8;
#X text 167 438 - a float to the right inlet is stored for later use.
;
#X text 168 476 - the MIDI pitch value received at the left inlet will
pass unchanged if the value of the right inlet is non-zero.;
#X text 98 506 float;
#X obj 78 507 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 168 506 - the velocity will pass unchanged if the value of
the right inlet is non-zero.;
#X text 11 23 send note-on messages and schedule note-off for later
;
#X text 168 406 - a (pitch \, velocity) pair is distributed to the
two inlets. Lists with more than two elements will be truncated.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 18 0 21 0;
#X connect 21 0 19 0;
#X connect 21 1 20 0;
#X connect 23 0 21 0;
#N struct struct-1 float x float y symbol dog array weasel struct-2
;
#N struct struct-2 float y;
#N canvas 430 33 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 struct 3 12 0 18
-204280 -1 0;
#X obj 0 189 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 484 285 494 344 META 0;
#X text 12 85 LIBRARY internal;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 165 HELP_PATCH_AUTHORS Updated for Pd version 0.35. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control data_structure;
#X text 12 45 DESCRIPTION declare the fields in a data structure;
#X text 12 65 OUTLET_0 click change select deselect displace;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 214 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 532 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 517 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 [struct] Related Objects;
#X obj 22 43 filledpolygon;
#X obj 112 43 drawpolygon;
#X obj 193 43 plot;
#X obj 232 43 set;
#X obj 262 43 get;
#X obj 293 43 element;
#X obj 22 73 getsize;
#X obj 82 73 setsize;
#X obj 142 73 pointer;
#X obj 202 73 append;
#X obj 254 73 sublist;
#X restore 102 597 pd Related_objects;
#X obj 78 296 cnv 17 3 72 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 500 10 struct;
#X text 11 23 declare the fields in a data structure;
#X text 98 193 (none);
#X text 98 295 click;
#X text 98 325 select;
#X text 98 310 change;
#X text 98 355 displace;
#X text 98 340 deselect;
#X text 149 461 float;
#X text 149 476 symbol;
#X text 149 491 array;
#N canvas 98 230 428 349 help-template1 0;
#X obj 23 43 struct struct-1 float x float y symbol dog array weasel
struct-2;
#X text 20 182 This just displays a red square to visualize the data
structure.;
#X obj 23 159 filledpolygon 900 0 1 0 0 40 0 40 40 0 40;
#X obj 23 226 plot weasel 0 1 0 0 10;
#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 [struct] Data Stucture Template;
#X text 21 247 Here we plot the array "weasel" \, which gets displayed
on top of the red square;
#X obj 23 78 print;
#X text 20 99 In this example \, the "struct-1" structure is defined
in which "x" and "y" are "floats" \, i.e. \, numbers \, but "dog" is
a symbol and "weasel" is an array of objects of the data structure
"struct-2".;
#X text 21 286 To learn about z-ordering with data structures \, open
the abstraction below:;
#X obj 21 319 pddp/pddplink ./all_about_z_order.pd -text all_about_z_order.pd
;
#X connect 0 0 7 0;
#X restore 101 96 pd help-template1;
#N canvas 99 252 428 125 help-template2 0;
#X obj 23 43 struct struct-2 float y;
#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 [struct] Data Structure Template;
#X text 21 67 Here is a data structure which specifies only the floating
point "y". It's used for the elements of the array shown in the other
template.;
#X restore 101 118 pd help-template2;
#N canvas 83 305 428 348 struct-help-data 0;
#X scalar struct-1 95 43 symbol \; 17 \; 38 \; 2 \; 39 \; 14 \; \;
;
#X scalar struct-1 164 43 symbol \; 17 \; 1 \; 40 \; 2 \; 14 \; \;
;
#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 [struct] Related Objects;
#X scalar struct-1 239 43 symbol \; 17 \; 38 \; 2 \; 39 \; 14 \; \;
;
#X text 19 279 You can also right-click on each square and choose "Properties"
in both runmode and editmode to see the values associated with each
scalar.;
#X text 20 178 In editmode \, you can click on the squares to move
them. Like other objects in Pd \, you can select multiple scalars and
move them together (notice the blue bounding box when you select them).
A [print] object is connected to the outlet of the corresponding [struct]
for these boxes \, so when you move them with the mouse messages will
print to the console.;
#X text 20 103 The three squares above are scalars that are defined
by the template "help-template1". The zigzag lines are arrays \, the
elements of which are defined by the template "help-template2". In
runmode you can click and drag each element to change its value.;
#X restore 101 168 pd struct-help-data;
#X text 98 138 To view instances of these data structures \, click
the patch below:;
#X text 98 41 The [struct] object is typically put one to a subpatch
\, and may be accompanied by drawing instructions that define how the
data will be visualized. Two data structures- "struct-1" and "struct-2"-
are defined below in subpatches:;
#X text 169 393 - the name of the struct;
#N canvas 72 401 429 220 struct_names 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 [struct] Struct Names;
#X text 20 39 You can't use "float" or "_float_array" as struct names
because Pd has hidden data structures named "float" and "_float_array"
\, which are used for [table] and "Put menu arrays".;
#X msg 23 134 \; pd-_float vis 1 \; pd-_float_array vis 1;
#X text 20 99 You can click below to reveal the canvases that contain
them:;
#X restore 102 541 pd struct_names;
#X text 188 461 - "float foo";
#X text 188 476 - "symbol foo";
#X text 188 491 - "array foo bar" \, where "bar" is the name of another
data structure to be used as a template for elements of the array.
;
#X text 169 411 - all subsequent arguments are used to declare fields.
Fields may be one of three types-- float \, symbol \, or array. To
create the field "foo" \, use the syntax below for each type:;
#X text 81 393 1) symbol atom;
#X text 81 411 n) symbol atom;
#X obj 99 560 pddp/pddplink scalar-help.pd;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 576 pddp/pddplink all_about_arrays.pd;
#X obj 257 561 pddp/pddplink ../4.data.structures/06.file.pd -text
doc/4.data.structures/06.file.pd;
#X obj 257 576 pddp/pddplink ../4.data.structures/08.selection.pd -text
doc/4.data.structures/08.selection.pd;
#X text 99 217 When a scalar is moved or edited with the mouse \, data
is sent to the outlet of the respective [struct] object. This data
consists of: a selector that describes the mouse action that was performed
\, a pointer to the scalar \, and-- optionally-- a number (usually
a y-coordinate). The selectors below correspond to the following mouse
actions:;
#X text 172 295 - (run mode) clicking the object with the mouse.;
#X text 172 310 - (run mode) changing the value of a field.;
#X text 172 325 - (edit mode) selecting the object.;
#X text 172 340 - (edit mode) deselecting an object.;
#X text 172 355 - (edit mode) moving a selected object.;
#N canvas 429 33 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 sublist 3 12 0 18
-204280 -1 0;
#X obj 0 439 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 488 280 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.32. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control data_structure;
#X text 12 45 DESCRIPTION get a list from a field of a scalar;
#X text 12 65 INLET_0 pointer;
#X text 12 85 OUTLET_0 pointer;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 476 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 512 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 569 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 216 513 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 [sublist] Related Objects;
#X obj 14 38 get;
#X obj 46 38 set;
#X obj 136 38 getsize;
#X obj 193 38 setsize;
#X obj 121 63 element;
#X obj 13 64 sublist;
#X obj 79 38 pointer;
#X obj 69 63 struct;
#X restore 102 597 pd Related_objects;
#X obj 78 448 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 485 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 492 11 sublist;
#X text 96 170 Don't try this yet -- it's untested.;
#X text 103 208 "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 98 447 pointer;
#X text 98 484 pointer;
#X text 11 23 get a list from a field of a scalar;
#X text 168 530 - template name.;
#X text 168 545 - field name.;
#X text 80 530 1) symbol;
#X text 80 545 2) symbol;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 573 pddp/pddplink scalar-help.pd;
#N canvas 429 36 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 swap 3 12 0 18 -204280
-1 0;
#X obj 0 220 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 489 275 494 357 META 0;
#X text 12 165 LIBRARY internal;
#X text 12 205 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 185 AUTHOR Miller Puckette;
#X text 12 245 HELP_PATCH_AUTHORS Dave Sabine \, November 12 \, 2002
. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 25 KEYWORDS control float list bang;
#X text 12 65 DESCRIPTION swap two numbers \, respecting right-to-left
order;
#X text 12 85 INLET_0 float list bang;
#X text 12 105 INLET_1 float;
#X text 12 125 OUTLET_0 float;
#X text 12 145 OUTLET_1 float;
#X text 12 225 RELEASE_DATE 1997;
#X text 12 5 ALIAS fswap;
#X restore 500 597 pd META;
#X obj 0 425 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 485 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 537 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 495 428 136 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 [swap] Related Objects;
#X text 20 69 Externals and other object libraries;
#X obj 23 34 pack;
#X obj 65 34 unpack;
#X obj 20 89 pddp/helplink cyclone/split;
#X restore 102 597 pd Related_objects;
#X obj 78 229 cnv 17 3 145 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 433 float;
#X obj 78 434 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 380 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 379 float;
#X obj 445 10 swap;
#X text 98 278 float;
#X text 168 283 - a float at the left inlet will send the number to
the right outlet and then send the number at the right inlet to the
left outlet.;
#X text 98 229 bang;
#X text 168 229 - a bang at the left inlet will force [swap] to send
its values to the outlets \, in reverse order. The value from the left
inlet will be sent to the right outlet then the value at the right
inlet will be sent out the left outlet.;
#X text 98 324 list;
#X text 168 324 - a list at the left inlet will update the values of
both of [swap]'s inlets and send the numbers to the outlets in reverse
order. Note that lists of 3 or more elements will be truncated.;
#X text 167 379 - a float at the right inlet is stored for later use.
It will be sent to the left outlet when a float or bang is received
in the left inlet.;
#X text 98 456 float;
#X obj 78 457 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 78 152 swap;
#X floatatom 106 79 5 0 0 0 - - -, f 5;
#X floatatom 190 119 5 0 0 0 - - -, f 5;
#X floatatom 118 179 5 0 0 0 - - -, f 5;
#X floatatom 78 179 5 0 0 0 - - -, f 5;
#X msg 149 78 42 7;
#X obj 78 77 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1
-1;
#X msg 191 78 42 7 3 4;
#X floatatom 333 143 5 0 0 0 - - -, f 5;
#X floatatom 294 142 5 0 0 0 - - -, f 5;
#X msg 294 88 bang;
#X obj 294 112 swap 12;
#X text 188 102 float;
#X text 103 60 float;
#X text 150 60 list;
#X text 286 162 creation argument;
#N canvas 90 38 428 503 More_Info 0;
#X msg 42 82 42 7;
#X obj 42 107 swap;
#X floatatom 42 133 5 0 0 0 - - -, f 5;
#X floatatom 101 133 5 0 0 0 - - -, f 5;
#X obj 42 157 pack f f;
#X obj 42 181 print;
#X floatatom 43 347 5 0 0 0 - - -, f 5;
#X floatatom 93 347 5 0 0 0 - - -, f 5;
#X floatatom 142 347 5 0 0 0 - - -, f 5;
#X floatatom 111 468 5 0 0 0 - - -, f 5;
#X floatatom 158 468 5 0 0 0 - - -, f 5;
#X floatatom 212 468 5 0 0 0 - - -, f 5;
#X msg 42 271 2 2500 9 420;
#X obj 42 317 unpack f f f f;
#X floatatom 192 347 5 0 0 0 - - -, f 5;
#X text 18 38 [swap] is most commonly used to change the order of a
list. This trick is best suited for a PAIR of numbers.;
#X obj 165 373 swap;
#X obj 138 398 swap;
#X obj 111 422 swap;
#X obj 195 406 swap;
#X obj 168 431 swap;
#X obj 227 436 swap;
#X floatatom 263 468 5 0 0 0 - - -, f 5;
#X text 199 373 This could quickly become ridiculous!;
#X msg 140 271 1 2 3 4;
#X msg 219 271 0 200 3333 1111;
#X text 19 213 Lists that are longer than two elements could be sorted
this way \, but the structure quickly becomes unmanageable. It's probably
better to find an alternative method.;
#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 [swap] More Info;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 2 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 6 0 18 0;
#X connect 7 0 17 0;
#X connect 8 0 16 0;
#X connect 12 0 13 0;
#X connect 13 0 6 0;
#X connect 13 1 7 0;
#X connect 13 2 8 0;
#X connect 13 3 14 0;
#X connect 14 0 16 1;
#X connect 16 0 17 1;
#X connect 16 1 19 1;
#X connect 17 0 18 1;
#X connect 17 1 19 0;
#X connect 18 0 9 0;
#X connect 18 1 20 0;
#X connect 19 0 20 1;
#X connect 19 1 21 1;
#X connect 20 0 10 0;
#X connect 20 1 21 0;
#X connect 21 0 11 0;
#X connect 21 1 22 0;
#X connect 24 0 13 0;
#X connect 25 0 13 0;
#X restore 102 546 pd More_Info;
#N canvas 70 19 444 592 Note-off_parser_using_swap 0;
#X obj 0 346 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X obj 21 109 notein;
#X text 77 105 [notein] is an object which receives incoming MIDI data
from a MIDI instrument. The three outlets are PITCH \, VELOCITY \,
and MIDI CHANNEL from left to right. It is important to note however
that the data is outputted from right to left. Which means that the
first piece of information to be sent out the object is the MIDI CHANNEL.
;
#X obj 21 183 swap;
#X obj 21 222 pack;
#X obj 21 266 route 0;
#X floatatom 21 294 5 0 0 0 - - -, f 5;
#X text 76 183 Here \, [swap] is used to store the VELOCITY until the
PITCH information comes from [notein]. The next step will pack the
two together...but we have to ensure that [pack] receives the two numbers
in the correct order: PITCH first \, then VELOCITY. This way \, using
[route] we can determine whether or not this incoming MIDI data is
a "note-off" signal (i.e. VELOCITY = 0).;
#X obj 21 316 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 21 386 notein;
#X obj 22 426 pack;
#X obj 22 451 route 0;
#X floatatom 22 476 5 0 0 0 - - -, f 5;
#X obj 22 497 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 45 315 This will "bang" only when velocity = 0;
#X text 18 37 In some settings \, the [swap] object is useful as a
timing mechanism to ensure that two numbers arrive at their destination
in a particular order. Miller Puckette has provided an excellent example
of [swap] used to build a 'note-off parser':;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 346 Why doesn't the alternative work?;
#X text 77 382 The goal of the Miller's example above is to retrieve
"note-off" signals from [notein]. To do that \, we have to test the
incoming data for pitches with a velocity of zero. So we swap the values
\, pack up the incoming VELOCITY and PITCH data \, and send them to
[route]...in effect we achieve the following:;
#X text 78 463 IF velocity = 0 THEN display the pitch and send a bang
;
#X text 77 485 With the [notein] object \, the VELOCITY information
is sent before the PITCH information. (Remember that in Pd data is
sent to the outlets in right-to-left order.) In the example at left
\, the VELOCITY information triggers the output of [pack] BEFORE the
PITCH information is retrieved. This is why [swap] is used-- it solves
the problem by making sure that the VELOCITY and PITCH are both received
before packing them up and sending them to the [route] object.;
#X text 7 1 [swap] Note-off Parser;
#X connect 1 0 3 0;
#X connect 1 1 3 1;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 9 0 10 1;
#X connect 9 1 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X restore 102 568 pd Note-off_parser_using_swap;
#X text 11 23 swap two numbers \, respecting right-to-left order;
#X text 168 433 - outputs the value from the right inlet.;
#X text 168 456 - outputs the value from the left inlet.;
#X text 80 503 1) float;
#X text 168 503 - initializes the value of the right inlet.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 505 10 fswap;
#X text 482 10 or;
#X connect 23 0 27 0;
#X connect 23 1 26 0;
#X connect 24 0 23 0;
#X connect 25 0 23 1;
#X connect 28 0 23 0;
#X connect 29 0 23 0;
#X connect 30 0 23 0;
#X connect 33 0 34 0;
#X connect 34 0 32 0;
#X connect 34 1 31 0;
#N canvas 431 36 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 switch~ 3 12 0 18
-204280 -1 0;
#X obj 0 225 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 287 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.4. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 65 DESCRIPTION block size and on/off control for DSP;
#X text 12 5 ALIAS block~;
#X text 12 85 INLET_0 set float bang;
#X text 12 25 KEYWORDS signal canvas_op;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 347 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 370 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 499 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 216 520 428 108 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 [switch~] Related Objects;
#X obj 22 43 fft~;
#X obj 69 43 block~;
#X restore 102 597 pd Related_objects;
#X obj 78 234 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 233 bang;
#X text 168 233 - a "bang" message causes one block of DSP to be computed.
This might be useful for pre-computing waveforms or window functions
\, or also for video processing.;
#X text 98 295 set;
#X text 98 351 (none);
#N canvas 65 117 428 374 messages-to-switch 0;
#X obj 23 238 bang~;
#X obj 23 264 t b b;
#X obj 23 290 timer;
#X floatatom 23 319 5 0 0 0 - - -, f 5;
#X obj 23 38 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X msg 52 63 set 4096 1 1;
#X msg 52 121 set 4096 2 1;
#X msg 52 92 set 8192 1 1;
#X msg 52 151 set 4096 1 0.5;
#X msg 52 178 set 4096 1 2;
#X obj 23 205 switch~ 4096 1 1;
#X obj 23 347 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 128 220 (args are blocksize \, overlap \, up/downsampling)
;
#X text 141 62 block size 4096 \, no overlap \, no resampling;
#X text 141 91 bigger block size;
#X text 140 120 double overlap;
#X text 148 150 downsampled by factor of 2;
#X text 148 179 upsampled by factor of 2;
#X text 128 205 creation arguments (if any) initialize blocking;
#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 [switch~] The "set" Message;
#X text 65 319 <- measured time (msec) between blocks;
#X text 50 37 <- switch this subpatch on and off;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 10 0;
#X connect 5 0 10 0;
#X connect 6 0 10 0;
#X connect 7 0 10 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X restore 171 325 pd messages-to-switch;
#X text 168 295 - the "set" message can be used to change the blocksize
\, overlap \, and up/downsampling.;
#N canvas 82 247 428 234 switched 0;
#X floatatom 140 95 1 0 0 0 - - -, f 1;
#X floatatom 23 159 7 0 0 0 - - -, f 7;
#X obj 23 95 noise~;
#X obj 23 127 env~ 512;
#X text 20 37 DSP in this subwindow is turned on and off by the [switch~]
object. Any subwindows of this window can also be switched off here.
If a patch and a superpatch both have switches \, both must be "on"
for DSP to run in the patch.;
#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 [switch~] A simple example;
#X obj 140 122 switch~;
#X text 20 183 [switch~] takes optional arguments the same as block~.
If you supply arguments to switch \, the patch will be switched AND
reblocked.;
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X restore 78 183 pd switched;
#X text 237 204 interactions with other objects;
#X text 75 103 The [switch~] object also allows you to set the block
size \, overlap \, and up/down-sampling ratio for the window. (The
overlap and resampling ratio are relative to the super-patch.), f
60;
#X text 76 39 The [switch~] object allows you to switch DSP on and
off for the window. All subwindows are also switched. (If a subwindow
of a switched window is also switched \, both switches must be on for
the subwindow's audio DSP to run. Pd's global DSP must also be on.)
;
#X text 75 151 You may have at most one block~/switch~ object in any
window \, so the examples are in subpatches below:;
#X text 162 183 a simple example;
#X text 99 503 BUG! [dac~] and [adc~] work only with a blocksize of
64 . If you want to reblock audio computation \, do so in a sub-patch
and keep the [adc~] and [dac~] objects in a super-patch. Only the [inlet~]
and [outlet~] objects know how to reblock signals. In this example
\, you could put a [dac~] in this \, outer window \, or in the switched
subwindow \, but not the blocked one.;
#N canvas 114 316 428 159 more_about_blocksize 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 [switch~] Block Size;
#X text 20 38 Pd's default block size is 64 samples. The [inlet~] and
[outlet~] objects reblock signals to adjust for differences between
parent and subpatch \, but only power-of-two adjustments are possible.
So for "normal" audio computations \, all blocaks should also be power-of-two
in size. HOWEVER \, if you have no [inlet~] or [outlet~] you may specify
any other block size. This is intended for later use in video processing.
;
#X restore 170 476 pd more_about_blocksize;
#X text 11 23 block size and on/off control for DSP;
#X text 168 418 - up/downsampling;
#X text 168 403 - overlap;
#X text 168 388 - blocksize;
#X text 167 434 [switch~] with no arguments does not reblock audio
computation -- in other words \, block size and sample rate are as
in the parent patch.;
#X text 298 389 (See the "messages_to_switch" subpatch;
#X text 298 404 above for more details.);
#X text 98 270 float;
#N canvas 80 270 428 229 [switch~]-interactions 0;
#X text 20 98 If using send~ or delwrite~ from a switched-off patch
\, the output of corresponding receive~ and delread~ objects in other
\, running patches will cycle old input (and sound like garbage). Throw~
may be switched with impunity \, but not catch~.;
#X text 20 38 dac~ and adc~ don't work correctly if reblocked \, nor
if a parent window is reblocked \, even if the window containing the
dac~ or adc~ is reblocked back to the default block size and sample
rate.;
#X text 20 168 Patches using send~/receive~ or throw~/catch~ to intercommunicate
must have the same blocking -- and if their parents are blocked bigger
than they are \, there might be weirdness.;
#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 [switch~] Interactions between [switch~] and other objects
;
#X restore 78 204 pd [switch~]-interactions;
#X text 168 270 - "0" turns DSP off for the window \, "1" (or any nonzero
value) turns it on.;
#X text 80 388 1) float;
#X text 80 403 2) float;
#X text 80 418 3) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 480 56 pddp/dsp;
#X obj 495 11 switch~;
#X text 459 147;
#N canvas 428 35 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 tabosc4~ 3 12 0
18 -204280 -1 0;
#X obj 0 262 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 286 494 344 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 Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal array;
#X text 12 45 DESCRIPTION 4-point interpolating oscillator;
#X text 12 65 INLET_0 signal set;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 signal;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 419 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 453 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 491 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 215 334 428 298 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 [tabosc4~] Related Objects;
#X text 21 38 Native Pd Objects;
#X obj 24 61 tabread~;
#X obj 98 61 tabread4;
#X obj 173 61 tabwrite;
#X obj 248 61 tabwrite~;
#X obj 24 89 tabsend~;
#X obj 100 89 tabreceive~;
#X obj 200 89 tabplay~;
#X obj 277 89 table;
#X text 21 140 [array];
#X obj 24 116 soundfiler;
#X text 84 140 and fft objects.;
#X obj 120 116 tabread4~;
#X obj 211 116 getsize;
#X text 22 170 Externals and other object libraries;
#X obj 22 190 pddp/helplink zexy/tabdump;
#X obj 22 210 pddp/helplink linear_path;
#X text 103 210 <-- which library is this in?;
#X text 103 230 <-- which library is this in?;
#X obj 22 230 pddp/helplink score;
#X text 103 250 <-- which library is this in?;
#X obj 22 250 pddp/helplink tabenv;
#X obj 22 270 pddp/helplink arraysize;
#X restore 102 597 pd Related_objects;
#X obj 78 271 cnv 17 3 100 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 428 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 376 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 375 float;
#X obj 485 8 tabosc4~;
#X floatatom 43 203 0 0 0 0 - - -;
#N canvas 159 26 495 270 output 0;
#X obj 414 196 t b;
#X obj 414 134 f;
#X obj 414 73 inlet;
#X text 421 36 mute;
#X obj 414 227 f;
#X msg 521 218 0;
#X msg 414 104 bang;
#X obj 414 166 moses 1;
#X obj 521 187 t b f;
#X obj 486 143 moses 1;
#X obj 102 181 dbtorms;
#X obj 486 113 r master-lvl;
#X obj 102 52 r master-lvl;
#X obj 414 257 s master-lvl;
#X obj 26 222 inlet~;
#X obj 244 50 inlet;
#X text 244 22 level;
#X obj 244 122 s master-lvl;
#X msg 118 80 set \$1;
#X obj 118 109 outlet;
#X msg 262 78 \; pd dsp 1;
#X obj 102 238 line~;
#X obj 26 259 *~;
#X obj 26 295 dac~;
#X obj 102 210 pack 0 50;
#X text 24 195 audio;
#X text 114 135 show level;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 13 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 9 1 4 1;
#X connect 10 0 24 0;
#X connect 11 0 1 1;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 12 0 18 0;
#X connect 14 0 22 0;
#X connect 15 0 17 0;
#X connect 15 0 20 0;
#X connect 18 0 19 0;
#X connect 21 0 22 1;
#X connect 22 0 23 0;
#X connect 22 0 23 1;
#X connect 24 0 21 0;
#X restore 18 224 pd output;
#X msg 69 203 MUTE;
#X floatatom 18 51 4 0 0 0 - - -, f 4;
#X obj 18 76 sig~ 100;
#X msg 32 119 set table1;
#X obj 18 158 tabosc4~ table1;
#X msg 116 119 set table2;
#X floatatom 190 121 4 0 0 0 - - -, f 4;
#X text 48 51 signal input for frequency (Hz.);
#X text 33 98 message to switch tables;
#X text 220 121 inlet to reset phase;
#X obj 319 51 table table1;
#X obj 319 73 table table2;
#X text 98 270 signal;
#X text 98 288 float;
#X text 98 327 list;
#X text 168 327 - a list will be truncated to the first item.;
#X text 98 343 set;
#X text 168 343 - the "set" message is used to switch to a different
table (e.g. \, "set table2" in the example above).;
#X text 167 375 - inlet to reset phase (range is 0 to 1).;
#X text 98 395 list;
#X text 167 395 - a list will be truncated to the first item.;
#X text 98 427 signal;
#N canvas 72 194 428 199 init_tables 0;
#X msg 23 99 \; table1 sinesum 512 0.5 0.5 0.5 0.5 \; table2 cosinesum
512 0 1;
#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 [tabosc4~] Subpatch to Initialize [table] objects;
#X obj 23 75 loadbang;
#X text 20 38 This subpatch initializes the [table] objects used by
[tabosc4~].;
#X text 20 147 Note: Don't send new "sinesum" messages to tables while
you're running. Instead \, use "set" messages to switch between tables.
;
#X connect 3 0 0 0;
#X restore 319 95 pd init_tables;
#X text 29 184 volume in dB;
#X text 11 23 4-point interpolating oscillator;
#X text 168 471 - initializes the table or array to use.;
#X text 168 288 - a float can be used to specify the frequency \, as
long as there is not also a signal connection to the left inlet of
[tabosc4~].;
#X text 168 270 - an incoming signal to specify frequency (Hz.).;
#X text 168 427 - the outgoing signal.;
#X text 98 494 For good results use 512 points for up to about 15 partials
\, or 32*npartials (rounded up to a power of 2) for more than 15 .
;
#X text 139 152 [tabosc4~] is a traditional computer music style wavetable
lookup oscillator using 4-point polynomial interpolation. The table
should have a power of two points plus three "guard points" \, one
at the beginning and two at the end \, which should be wraparound copies
of the last point and the first two points \, respectively. The "sinesum"
and "cosinesum" methods for arrays do this automatically for you if
you just want to specify partial strengths.;
#X text 80 471 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 475 55 pddp/dsp;
#X obj 98 530 pddp/pddplink all_about_arrays.pd;
#X obj 98 545 pddp/pddplink ../3.audio.examples/B01.wavetables.pd -text
doc/3.audio.examples/B01.wavetables.pd;
#X obj 98 560 pddp/pddplink ../3.audio.examples/B05.tabread.FM.pd -text
doc/3.audio.examples/B05.tabread.FM.pd;
#X obj 98 575 pddp/pddplink ../3.audio.examples/B06.table.switching.pd
-text doc/3.audio.examples/B06.table.switching.pd;
#X connect 13 0 14 1;
#X connect 14 0 13 0;
#X connect 15 0 14 2;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 18 0 19 0;
#X connect 19 0 14 0;
#X connect 20 0 19 0;
#X connect 21 0 19 1;
#N canvas 430 35 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 tabplay~ 3 12 0
18 -204280 -1 0;
#X obj 0 284 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 285 494 344 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 Updated for Pd version 0.29. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal array;
#X text 12 45 DESCRIPTION play a table as audio (non-transposing);
#X text 12 65 INLET_0 float bang list set;
#X text 12 85 OUTLET_0 signal;
#X text 12 105 OUTLET_1 bang;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 437 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 502 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 202 329 441 301 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 [tabplay~] Related Objects;
#X text 20 38 Native Pd Objects;
#X obj 23 63 tabread~;
#X obj 97 63 tabread4;
#X obj 276 89 table;
#X text 22 146 [array];
#X obj 23 116 soundfiler;
#X text 85 146 and fft objects.;
#X obj 119 116 tabread4~;
#X obj 210 116 getsize;
#X obj 281 116 setsize;
#X obj 172 63 tabread;
#X obj 247 63 tabwrite;
#X obj 23 89 tabwrite~;
#X obj 99 89 tabsend~;
#X obj 179 89 tabreceive~;
#X text 20 170 Externals and other object libraries;
#X obj 20 190 pddp/helplink zexy/tabdump;
#X obj 20 210 pddp/helplink linear_path;
#X text 101 210 <-- which library is this in?;
#X text 101 230 <-- which library is this in?;
#X obj 20 230 pddp/helplink score;
#X text 101 250 <-- which library is this in?;
#X obj 20 250 pddp/helplink tabenv;
#X obj 20 270 pddp/helplink arraysize;
#X restore 102 597 pd Related_objects;
#X obj 78 293 cnv 17 3 135 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 446 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 489 10 tabplay~;
#X text 98 292 bang;
#X text 98 310 float;
#X text 98 347 list;
#X text 98 375 set;
#X obj 78 469 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 445 signal;
#X text 98 468 bang;
#X text 168 468 - the right inlet sends a bang when [tabplay~] has
finished playing through the table.;
#X text 168 310 - sending a float n will cause [tabplay~] to start
playing from the nth sample. (Sending 0 will play the entire sample.)
;
#X text 168 347 - a two-element list (x \, y) will cause [tabplay~]
to begin at sample number x \, and continue for y samples.;
#X floatatom 13 256 0 0 0 0 - - -;
#X msg 13 52 set array99;
#X obj 13 230 env~ 16384;
#X obj 179 257 dac~ 1;
#X obj 179 213 *~;
#X obj 193 191 line~;
#X msg 193 150 0.1 100;
#X msg 209 171 0 100;
#X text 255 151 on;
#X text 255 171 off;
#X text 231 191 envelope;
#X text 231 202 generator;
#X text 223 259 audio output;
#X obj 179 235 hip~ 5;
#X msg 42 137 0 44100;
#X msg 38 116 44100;
#X msg 28 76 bang;
#X msg 48 157 44100 1000;
#X text 168 520 - the name of the array or table to which [tabwrite~]
will write data. The array or table must exist in an open Pd patch/canvas
or an error message will appear in the console.;
#X text 174 128 amplitude controls:;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 155948 float 0;
#X coords 0 1 155948 -1 160 100 1;
#X restore 345 145 graph;
#N canvas 0 0 428 391 init 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 23 283 soundfiler;
#X floatatom 23 305 0 0 0 0 - - -;
#X obj 23 204 loadbang;
#X text 20 38 The objects below load a short soundfile into the array
named "tabplay~-help-array.";
#X text 20 68 If you right-click on the array and choose "Properties
\, " you'll see the "save contents" checkbox is unmarked \, so that
the array data is not saved as part of the patch.;
#X text 20 110 You can always check this box to save the contents of
the array in the patch \, but with large amounts of array data- even
a few seconds of audio- this can create rather large Pd files.;
#X text 20 162 Thus it is better just to load the content of the array
when the patch opens \, as follows:;
#X text 20 333 See the [soundfiler] help patch for more information.
;
#X text 8 2 [tabplay~] Initialisation Subpatch;
#X obj 23 231 f \$0;
#X msg 23 258 read -resize ../sound/bell.aiff \$1-array;
#X connect 1 0 2 0;
#X connect 3 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X restore 345 250 pd init;
#X text 11 23 play a table as audio (non-transposing);
#X text 95 75 The tabplay~ object plays through a table \, or part
of one \, with no transposition or interpolation. It is cheaper than
tabread4~ and there are none of tabread4~'s interpolation artifacts.
;
#X text 168 292 - play through the whole table.;
#X text 168 375 - the "set" message \, followed by the name of an array
\, permits you to switch between arrays (e.g. \, "set another_array").
;
#X text 168 445 - the outgoing audio signal.;
#X text 80 520 1) symbol;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 480 56 pddp/dsp;
#X obj 98 570 pddp/pddplink all_about_arrays.pd;
#X obj 13 180 tabplay~ \$0-array;
#X msg 33 96 stop;
#X text 98 417 stop;
#X text 168 417 - stop playback;
#X connect 22 0 52 0;
#X connect 23 0 21 0;
#X connect 25 0 34 0;
#X connect 26 0 25 1;
#X connect 27 0 26 0;
#X connect 28 0 26 0;
#X connect 34 0 24 0;
#X connect 35 0 52 0;
#X connect 36 0 52 0;
#X connect 37 0 52 0;
#X connect 38 0 52 0;
#X connect 52 0 23 0;
#X connect 52 0 25 0;
#X connect 53 0 52 0;
#N canvas 430 33 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 tabread 3 12 0 18
-204280 -1 0;
#X obj 0 277 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 279 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Dave Sabine \, April 25 \, 2003 .
Jonathan Wilkes revised the patch to conform to the PDDP template for
Pd version 0.42.;
#X text 12 5 KEYWORDS control array;
#X text 12 45 DESCRIPTION read numbers from a table;
#X text 12 65 INLET_0 float set;
#X text 12 85 OUTLET_0 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 444 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 482 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 541 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 215 327 428 299 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 [tabread] Related Objects;
#X text 21 38 Native Pd Objects;
#X obj 24 61 tabread~;
#X obj 98 61 tabread4;
#X obj 173 61 tabwrite;
#X obj 248 61 tabwrite~;
#X obj 24 89 tabsend~;
#X obj 100 89 tabreceive~;
#X obj 200 89 tabplay~;
#X obj 277 89 table;
#X text 21 140 [array];
#X obj 24 116 soundfiler;
#X text 84 140 and fft objects.;
#X obj 120 116 tabread4~;
#X obj 211 116 getsize;
#X obj 282 116 setsize;
#X text 22 164 Externals and other object libraries;
#X obj 22 184 pddp/helplink zexy/tabdump;
#X obj 22 204 pddp/helplink linear_path;
#X text 103 204 <-- which library is this in?;
#X text 103 224 <-- which library is this in?;
#X obj 22 224 pddp/helplink score;
#X text 103 244 <-- which library is this in?;
#X obj 22 244 pddp/helplink tabenv;
#X obj 22 264 pddp/helplink arraysize;
#X restore 102 597 pd Related_objects;
#X obj 78 286 cnv 17 3 145 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 285 float;
#X text 98 452 float;
#X obj 78 453 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 492 11 tabread;
#X text 168 285 - a float at the left inlet will move to the corresponding
index in the table's array. The index ranges from 0 to the size of
the array minus one (numbers outside this range are ignored). By default
\, the size of an array in a table is 100 - or 0 to 99 . The actual
size of the array can be altered using the array's dialog box or the
resize command. More about arrays can be found below.;
#X text 98 402 set;
#X text 168 500 - the argument informs [tabread] which array to read.
The array must exist in an open Pd patch/canvas or an error message
will appear in the terminal window.;
#X text 168 452 - outputs a floating point number which corresponds
to the index you query using the inlet.;
#X floatatom 74 251 0 0 0 0 value - -;
#X floatatom 74 93 0 0 99 0 index - -;
#X text 18 55 Open the tables and use your mouse to draw new values
in the arrays - otherwise [tabread] will always output "0".;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array1 100 float 3;
#A 0 -0.900001 -0.900001 -0.900001 -0.900001 -0.900001 -0.866667 -0.833334
-0.833334 -0.833334 -0.833334 -0.800001 -0.800001 -0.766667 -0.766667
-0.766667 -0.766667 -0.766667 -0.766667 -0.766667 -0.766667 -0.766667
-0.766667 -0.766667 -0.766667 -0.766667 -0.766667 -0.766667 -0.766667
-0.766667 -0.766667 -0.733334 -0.733334 -0.733334 -0.7 -0.666667 -0.633334
-0.633334 -0.633334 -0.633334 -0.633334 -0.633334 -0.633334 -0.633334
-0.6 -0.6 -0.566667 -0.566667 -0.566667 -0.566667 -0.566667 -0.566667
-0.566667 -0.566667 -0.566667 -0.566667 -0.566667 -0.533334 -0.533334
-0.5 -0.5 -0.466667 -0.466667 -0.433334 -0.4 -0.366667 -0.333333 -0.3
-0.283333 -0.266667 -0.233333 -0.2 -0.133333 -0.133333 -0.133333 -0.0666667
-0.0666667 -0.0666667 1.49012e-08 0.1 0.1 0.233333 0.3 0.333334 0.4
0.433334 0.566667 0.633334 0.733334 0.733334 0.766667 0.766667 0.800001
0.800001 0.800001 0.800001 0.800001 0.800001 0.800001 0.800001 0.900001
;
#X coords 0 1 99 -1 100 60 1;
#X restore 383 83 graph;
#X text 346 217 mouse to draw new values.;
#X text 346 204 Open the table and use your;
#X text 168 402 - the "set" message allows you to read from dynamic
sources (e.g. \, "set tabread-help-array"). You can change the source
at any time using the "set" message.;
#X text 98 380 list;
#X text 168 380 - a list will be truncated to the first item.;
#X text 11 24 read numbers from a table;
#X obj 98 577 pddp/pddplink all_about_arrays.pd -text all_about_arrays
;
#X text 80 500 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 107 93 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 107 113 f \$0;
#X obj 110 162 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 110 182 f \$0;
#X msg 107 135 set \$1-array1;
#X obj 74 227 tabread \$0-array1;
#X msg 110 204 set \$1-array2;
#X obj 353 184 table \$0-array2;
#X obj 98 547 pddp/pddplink ../2.control.examples/15.arrays.pd;
#X obj 97 562 pddp/pddplink ../2.control.examples/16.more.arrays.pd
;
#X connect 18 0 35 0;
#X connect 30 0 31 0;
#X connect 31 0 34 0;
#X connect 32 0 33 0;
#X connect 33 0 36 0;
#X connect 34 0 35 0;
#X connect 35 0 17 0;
#X connect 36 0 35 0;
#N canvas 429 34 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 tabread4~ 3 12 0
18 -204280 -1 0;
#X obj 0 305 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 283 494 344 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 Updated for Pd version 0.29. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal array;
#X text 12 45 DESCRIPTION 4-point-interpolating table lookup;
#X text 12 65 INLET_0 signal set;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 signal;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 417 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 449 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 510 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 218 331 428 294 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 21 38 Native Pd Objects;
#X obj 24 61 tabread~;
#X obj 98 61 tabread4;
#X obj 173 61 tabwrite;
#X obj 248 61 tabwrite~;
#X obj 24 89 tabsend~;
#X obj 100 89 tabreceive~;
#X obj 200 89 tabplay~;
#X obj 277 89 table;
#X text 21 140 [array];
#X obj 24 116 soundfiler;
#X text 84 140 and fft objects.;
#X obj 120 116 tabread4~;
#X obj 211 116 getsize;
#X obj 282 116 setsize;
#X text 8 2 [tabread4~] Related Objects;
#X text 21 170 Externals and other object libraries;
#X obj 21 190 pddp/helplink zexy/tabdump;
#X obj 21 210 pddp/helplink linear_path;
#X text 102 210 <-- which library is this in?;
#X text 102 230 <-- which library is this in?;
#X obj 21 230 pddp/helplink score;
#X text 102 250 <-- which library is this in?;
#X obj 21 250 pddp/helplink tabenv;
#X obj 21 270 pddp/helplink arraysize;
#X restore 102 597 pd Related_objects;
#X obj 78 314 cnv 17 3 75 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 426 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 479 12 tabread4~;
#X text 11 23 4-point-interpolating table lookup;
#X text 68 174 signal input x(n);
#X obj 21 261 snapshot~;
#X obj 40 239 metro 200;
#X obj 21 115 sig~;
#X floatatom 21 89 0 0 0 0 - - -;
#X floatatom 21 284 0 0 0 0 - - -;
#X text 98 313 signal;
#X text 168 313 - the incoming signal is the index. Indices should
range from 1 to the size of the array minus two \, so that the 4-point
interpolation is meaningful.;
#X text 53 83 Shift-drag the number box to see the effect of interpolation.
;
#X text 98 353 set;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 10 float 0;
#X coords 0 1 9 -1 160 100 1;
#X restore 289 141 graph;
#X text 98 425 signal;
#X obj 40 217 loadbang;
#X obj 100 515 pddp/pddplink all_about_arrays.pd -text all_about_arrays
;
#X text 168 467 - the name of the array or table from which [tabread4~]
will read data. The array or table must exist in an open Pd patch/canvas
or an error message will appear in the console.;
#N canvas 117 345 428 159 init 0;
#X msg 23 103 0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 23 81 loadbang;
#X text 8 2 [tabread4~] [table] initialization;
#X text 20 38 This subpatch just initializes a [table] to some values.
(Values in a [table] are not saved in the patch.);
#X obj 23 125 s \$0-array;
#X connect 0 0 5 0;
#X connect 2 0 0 0;
#X restore 288 270 pd init;
#X text 168 353 - the "set" message \, followed by the name of an array
\, permits you to switch between arrays (e.g. \, "set another_array").
;
#X text 80 467 1) symbol;
#X text 18 44 [tabread4~] is used to build samplers and other table
lookup algorithms. The interpolation scheme is 4-point polynomial.
;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 475 53 pddp/dsp;
#X obj 100 530 pddp/pddplink ../3.audio.examples/B03.tabread4.pd -text
doc/3.audio.examples/B03.tabread4.pd;
#X obj 100 545 pddp/pddplink ../3.audio.examples/B04.tabread4.interpolation.pd
-text doc/3.audio.examples/B04.tabread4.interpolation.pd;
#X obj 78 396 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 395 float;
#X obj 247 395 pddp/pddplink ../3.audio.examples/B15.tabread4~-onset.pd
-text doc/3.audio.examples/B15.tabread4~-onset.pd;
#X text 168 395 - onset. See:;
#X obj 100 560 pddp/pddplink ../3.audio.examples/B06.table.switching.pd
-text doc/3.audio.examples/B06.table.switching.pd;
#X obj 100 575 pddp/pddplink ../3.audio.examples/B07.sampler.pd -text
doc/3.audio.examples/B07.sampler.pd;
#X obj 21 194 tabread4~ \$0-array;
#X obj 289 247 table \$0-array2;
#X obj 66 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 66 133 f \$0;
#X msg 66 155 set \$1-array2;
#X obj 170 280 s \$0-array2;
#X msg 170 253 sinesum 256 1;
#X connect 13 0 17 0;
#X connect 14 0 13 0;
#X connect 15 0 41 0;
#X connect 16 0 15 0;
#X connect 24 0 14 0;
#X connect 41 0 13 0;
#X connect 43 0 44 0;
#X connect 44 0 45 0;
#X connect 45 0 41 0;
#X connect 47 0 46 0;
#N canvas 429 35 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 tabreceive~ 3 12
0 18 -204280 -1 0;
#X obj 0 450 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 288 494 344 META 0;
#X text 12 115 LIBRARY internal;
#X text 12 155 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 135 AUTHOR Miller Puckette;
#X text 12 195 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION read a block of a signal from an array continuously
;
#X text 12 75 INLET_0;
#X text 12 95 OUTLET_0 signal;
#X text 12 175 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS signal array block_oriented;
#X restore 500 597 pd META;
#X obj 0 487 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 524 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 214 527 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 obj 103 43 fft~;
#X obj 23 43 tabsend~;
#X text 8 2 [tabreceive~] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 459 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 496 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 466 10 tabreceive~;
#X text 11 23 read a block of a signal from an array continuously;
#X obj 95 226 tabreceive~;
#X text 90 291 By default a block is 64 samples \; this can be reset
using the block~ object.;
#X text 203 226 - read a block of a signal from an array continuously
;
#X text 168 542 - the name of an array to read from.;
#X text 98 495 signal;
#X text 98 458 unknown;
#X text 80 542 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 474 55 pddp/dsp;
#X obj 98 570 pddp/pddplink all_about_arrays.pd;