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 2392 deletions
#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;
#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 tabsend~ 3 12 0
18 -204280 -1 0;
#X obj 0 464 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 287 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 5 KEYWORDS signal array block_oriented;
#X text 12 45 DESCRIPTION write one block of a signal continuously
to an array;
#X text 12 75 DATATYPE_IN signal;
#X text 12 95 DATATYPE_OUT;
#X text 12 175 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 501 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 525 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 215 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 103 43 fft~;
#X text 8 2 [tabsend~] Related Objects;
#X obj 23 43 tabreceive~;
#X restore 102 597 pd Related_objects;
#X obj 78 473 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 492 9 tabsend~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 64 float 2;
#X coords 0 1 64 -1 100 70 1;
#X restore 291 205 graph;
#X obj 83 169 loadbang;
#X text 98 505 (none);
#X text 98 472 signal;
#N canvas 68 141 428 387 Using_tabsend~_with_block~ 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array2 128 float 0;
#X coords 0 1 127 -1 128 100 1;
#X restore 193 117 graph;
#X msg 24 305 set 128;
#X msg 24 257 set 64;
#X obj 194 117 cnv 15 64 20 empty empty 64_samples 0 10 0 10 -257985
-66577 0;
#X obj 193 197 cnv 15 128 20 empty empty 128_samples 60 10 0 10 -4034
-66577 0;
#X obj 23 117 osc~ 512;
#X text 73 256 default size;
#X text 78 303 double size;
#X obj 24 353 block~;
#X text 8 2 [tabsend~] Using [tabsend~] with [block~];
#X text 21 230 Try changing the block size:;
#X text 20 38 You can use [block~] to change the blocksize and \, consequently
\, how many samples are send to the specified array by [tabsend~].
;
#X obj 24 148 tabsend~ \$0-array2;
#X connect 2 0 9 0;
#X connect 3 0 9 0;
#X connect 6 0 13 0;
#X restore 83 368 pd Using_tabsend~_with_block~;
#X text 80 320 By default a block is 64 samples. This can be reset
using the [block~] object \, as in the subpatch below:;
#X obj 83 228 osc~;
#X msg 83 198 512;
#X text 168 472 - the incoming signal to be sent to the table/array.
;
#X text 81 121 The [tabsend~] object writes an audio signal continuously
to an array.;
#X text 11 23 write one block of a signal continuously to an array
;
#X text 168 543 - the name of an array to write to.;
#X text 80 543 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 484 54 pddp/dsp;
#X obj 108 570 pddp/pddplink all_about_arrays.pd;
#X obj 83 258 tabsend~ \$0-array;
#X connect 11 0 17 0;
#X connect 16 0 26 0;
#X connect 17 0 16 0;
#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 tabwrite 3 12 0
18 -204280 -1 0;
#X obj 0 300 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 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 Dave Sabine \, April 29 \, 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 write numbers to a table;
#X text 12 65 INLET_0 float list;
#X text 12 85 INLET_1 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 456 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 481 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 540 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 218 329 428 300 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 [tabwrite] Related Objects;
#X text 20 38 Native Pd Objects;
#X obj 23 63 tabread~;
#X obj 97 63 tabread4;
#X obj 247 63 tabwrite~;
#X obj 23 89 tabsend~;
#X obj 99 89 tabreceive~;
#X obj 199 89 tabplay~;
#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 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 309 cnv 17 3 115 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 308 float;
#X text 98 348 list;
#X obj 78 435 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 434 float;
#X obj 487 10 tabwrite;
#X floatatom 174 251 0 0 99 1 index - -;
#X obj 51 276 tabwrite davids_array;
#X floatatom 51 84 0 0 0 0 value - -;
#X text 168 308 - a float at the left inlet will become the new value
of the chosen index (whichever index is currently selected at the right
inlet).;
#X text 168 348 - the left inlet also accepts pairs of floats (longer
lists will be truncated). A number pair represents "value" and "index"
- corresponding to "left" and "right" inlets.;
#X text 98 388 set;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-davids_array 100 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 99 -1 100 70 1;
#X restore 278 94 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-another_array 100 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -0.67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0;
#X coords 0 1 99 -1 100 70 1;
#X restore 408 94 graph;
#X text 11 23 write numbers to a table;
#X text 167 434 - selects index in which to write the new value.;
#X text 98 460 (none);
#X obj 98 543 pddp/pddplink all_about_arrays.pd -text all_about_arrays
;
#X text 276 181 Click below to view the table:;
#X text 168 498 - the name of the array or table to which [tabwrite]
will write data. The array must exist in an open Pd patch/canvas or
an error message will appear in the console.;
#X text 168 388 - the "set" message \, followed by the name of an array
\, permits you to switch between arrays (e.g. \, "set another_array")
;
#X text 80 498 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 90 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 90 137 f \$0;
#X obj 95 186 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 95 206 f \$0;
#X obj 84 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1
;
#X obj 84 67 f \$0;
#X msg 84 89 set \$1-davids_array;
#X obj 278 202 table \$0-tabwrite_table;
#X msg 90 159 set \$1-another_array;
#X msg 95 228 set \$1-tabwrite_table;
#X obj 96 558 pddp/pddplink ../2.control.examples/15.arrays.pd;
#X obj 95 573 pddp/pddplink ../2.control.examples/16.more.arrays.pd
;
#X connect 14 0 15 1;
#X connect 16 0 15 0;
#X connect 31 0 32 0;
#X connect 32 0 39 0;
#X connect 33 0 34 0;
#X connect 34 0 40 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 37 0 15 0;
#X connect 39 0 15 0;
#X connect 40 0 15 0;
#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 tabwrite~ 3 12 0
18 -204280 -1 0;
#X obj 0 324 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 288 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.40. 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 write a signal in an array;
#X text 12 65 INLET_0 bang signal start stop set;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 475 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 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 214 319 428 313 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 20 38 Native Pd Objects;
#X obj 23 63 tabread~;
#X obj 97 63 tabread4;
#X obj 23 89 tabsend~;
#X obj 99 89 tabreceive~;
#X obj 199 89 tabplay~;
#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 text 8 2 [tabwrite~] Related Objects;
#X obj 247 63 tabwrite;
#X text 20 180 Externals and other object libraries;
#X obj 20 200 pddp/helplink zexy/tabdump;
#X obj 20 220 pddp/helplink linear_path;
#X text 101 220 <-- which library is this in?;
#X text 101 240 <-- which library is this in?;
#X obj 20 240 pddp/helplink score;
#X text 101 260 <-- which library is this in?;
#X obj 20 260 pddp/helplink tabenv;
#X obj 20 280 pddp/helplink arraysize;
#X restore 102 597 pd Related_objects;
#X obj 78 333 cnv 17 3 135 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 484 9 tabwrite~;
#X text 11 23 write a signal in an array;
#X msg 95 194 bang;
#X msg 111 239 stop;
#X obj 78 170 phasor~ 200;
#X text 98 332 bang;
#X text 98 351 start;
#X text 98 390 stop;
#X text 98 410 set;
#X text 98 479 (none);
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 1000 float 0;
#X coords 0 1 999 -1 160 100 1 0 0;
#X restore 329 183 graph;
#X msg 98 216 start 500;
#X text 168 521 - 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 98 451 signal;
#X text 75 55 [tabwrite~] records an audio signal sequentially into
an array. Sending it "bang" writes from beginning to end of the array.
To avoid writing all the way to the end \, you can send a "stop message
at an appropriate later time. The "start" message allows skipping a
number of samples at the nbeginning. (Starting and stopping occur on
block boundaries \, typically multiples of 64 samples \, in the input
signal.);
#X text 80 521 1) symbol atom;
#X text 168 351 - the "start" message will start recording at the specified
element (e.g. \, "start 500" will start recording at the 500th element).
;
#X text 168 332 - start recording.;
#X text 168 390 - stop recording.;
#X text 168 410 - the "set" message \, followed by the name of an array
\, permits you to switch between arrays (e.g. \, "set another_array").
;
#X text 166 452 - the signal to be written to the array.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 480 55 pddp/dsp;
#X obj 98 570 pddp/pddplink all_about_arrays.pd;
#X obj 171 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 171 239 f \$0;
#X obj 78 291 tabwrite~ \$0-array;
#X obj 329 293 table \$0-array2;
#X msg 171 261 set \$1-array2;
#X connect 11 0 35 0;
#X connect 12 0 35 0;
#X connect 13 0 35 0;
#X connect 20 0 35 0;
#X connect 33 0 34 0;
#X connect 34 0 37 0;
#X connect 37 0 35 0;
#N canvas 680 22 442 95 10;
#N canvas 48 162 589 578 guts 0;
#X obj 251 124 mapping/tolist;
#X obj 150 289 list;
#X obj 251 175 list-abs/list-len;
#X obj 190 19 loadbang;
#X obj 156 400 makefilename pd-%s;
#X obj 60 10 bng 50 450 50 0 empty empty --> 12 25 1 24 -141952 -1
-1;
#X obj 10 10 bng 50 450 50 0 empty empty <-- 10 25 1 24 -87656 -1 -1
;
#X text 70 65 next;
#X text 4 65 previous;
#X obj 15 132 trigger bang float;
#X text 94 99 up;
#X obj 150 260 trigger bang float bang bang float;
#X obj 324 286 list;
#X obj 324 393 pack symbol symbol;
#X msg 324 423 \; pd open \$2 \$1;
#X obj 453 393 send \$0-filename;
#X msg 453 372 label \$1;
#X msg 64 98 0;
#X msg 16 97 1;
#X obj 151 236 cyclone/counter;
#X obj 220 300 float 2;
#X obj 220 323 select 0;
#X msg 156 424 \; \$1 menuclose 1;
#X obj 157 356 list-abs/list-idx;
#X obj 324 306 list-abs/list-idx;
#X obj 190 42 trigger bang bang bang;
#X msg 336 497 label \$1;
#X obj 336 517 send \$0-folder_name;
#X msg 18 503 label \$1;
#X obj 18 523 send \$0-current_page;
#X obj 18 457 pack float float;
#X obj 18 483 zexy/makesymbol (%s/%s);
#X obj 63 242 float;
#X obj 324 332 hcs/split_path;
#X obj 157 378 hcs/split_path;
#X obj 271 458 hcs/split_path;
#N canvas 760 129 484 296 generate 0;
#X obj 70 70 ggee/getdir;
#X obj 70 167 hcs/folder_list;
#X obj 68 209 select +pager.pd;
#X obj 70 101 trigger symbol symbol;
#X obj 247 143 makefilename %s/+pager.pd;
#X text 167 209 (filter out this file to prevent endless loops);
#N canvas 121 53 458 308 glob 0;
#X obj 198 6 inlet;
#X obj 167 265 outlet;
#X obj 82 212 makefilename %s/*.pd;
#X obj 213 212 makefilename %s/[0-9]*.pd;
#X obj 25 48 zexy/operating_system;
#X obj 25 72 select windows;
#X obj 25 25 loadbang;
#X obj 106 94 bang;
#X obj 117 160 cyclone/gate 2;
#X msg 25 116 1;
#X msg 106 116 2;
#X text 255 230 glob;
#X text 116 229 windows;
#X connect 0 0 8 1;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 9 0;
#X connect 5 1 7 0;
#X connect 6 0 4 0;
#X connect 7 0 10 0;
#X connect 8 0 2 0;
#X connect 8 1 3 0;
#X connect 9 0 8 0;
#X connect 10 0 8 0;
#X restore 70 143 pd glob or windows pattern;
#X obj 161 254 outlet;
#X obj 70 17 inlet;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 1 7 0;
#X connect 3 0 6 0;
#X connect 3 1 4 0;
#X connect 4 0 2 1;
#X connect 6 0 1 0;
#X connect 8 0 0 0;
#X restore 319 72 pd generate file list;
#X msg 172 139 min 0;
#X obj 18 434 + 1;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 0 0 12 1;
#X connect 1 0 23 0;
#X connect 2 0 19 4;
#X connect 2 0 32 0;
#X connect 3 0 25 0;
#X connect 4 0 22 0;
#X connect 5 0 17 0;
#X connect 6 0 18 0;
#X connect 9 0 19 0;
#X connect 9 1 19 1;
#X connect 11 0 1 0;
#X connect 11 1 20 1;
#X connect 11 2 20 0;
#X connect 11 3 12 0;
#X connect 11 4 24 1;
#X connect 12 0 24 0;
#X connect 13 0 14 0;
#X connect 16 0 15 0;
#X connect 17 0 9 0;
#X connect 18 0 9 0;
#X connect 19 0 11 0;
#X connect 19 0 38 0;
#X connect 20 0 21 0;
#X connect 21 1 23 1;
#X connect 23 0 34 0;
#X connect 24 0 33 0;
#X connect 25 0 37 0;
#X connect 25 1 0 1;
#X connect 25 2 36 0;
#X connect 26 0 27 0;
#X connect 28 0 29 0;
#X connect 30 0 31 0;
#X connect 31 0 28 0;
#X connect 32 0 30 1;
#X connect 33 0 13 0;
#X connect 33 0 35 0;
#X connect 33 1 16 0;
#X connect 33 1 13 1;
#X connect 34 1 4 0;
#X connect 35 1 26 0;
#X connect 36 0 0 0;
#X connect 37 0 19 0;
#X connect 38 0 30 0;
#X coords 0 -1 1 1 100 50 1 10 10;
#X restore 6 8 pd guts;
#X obj 167 8 cnv 15 240 25 empty \$0-folder_name intro 5 12 1 14 -262131
-28 0;
#X obj 107 33 cnv 15 300 25 empty \$0-filename 02.basic_elements.pd
5 12 1 14 -262131 -28 0;
#X obj 107 8 cnv 15 60 25 empty \$0-current_page (48/48) 5 12 1 14
-262131 -28 0;
#X coords 0 0 1 1 85 60 0;
#N canvas 232 93 772 532 10;
#X text 330 82 The [send] and [receive] objects are useful for linking
objects and subroutines together in a single canvas or throughout multiple
patches. Understanding these objects will help 'clean up' your patches
and allow you to communicate messages between various modules that
you build or between objects where patch cords are not possible.;
#X text 328 167 In the [send] and [receive] help files \, you will
see message sent within a single patch - from a [send] object to a
[receive] object in the same patch. But the functionality of these
objects goes far beyond the scope of a single patch.;
#X obj 20 292 r one_send;
#X obj 23 224 hsl 67 15 0 127 0 0 empty empty empty -2 -6 0 8 -228989
-1 -1 0 0;
#X obj 97 242 s one_send;
#X obj 178 224 hsl 67 15 0 127 0 0 empty empty empty -2 -6 0 8 -228989
-1 -1 0 0;
#X obj 23 313 hsl 67 15 0 127 0 0 empty empty empty -2 -6 0 8 -228989
-1 -1 0 1;
#X obj 97 292 r one_send;
#X obj 178 313 hsl 67 15 0 127 0 0 empty empty empty -2 -6 0 8 -228989
-1 -1 0 1;
#X text 327 300 A [send] object is a little like a radio station...it
broadcasts information throughout Pd \, for all the [receives] to hear!
A [receive] object is a little like your own AM/FM tuner...it will
receive messages from all the [send] objects that it is 'tuned' to.
Hence \, naming your [send] and [receive] objects becomes very important.
A [receive] object named "dave" (as in [receive dave]) will pick up
all messages from [send dave] \, regardless of which patch it is in.
In this manner \, you can get messages across multiple patches \, or
into abstractions or subpatches -- without patch cords.;
#X obj 20 243 s one_send;
#X obj 175 242 send one_send;
#X obj 175 292 receive one_send;
#X msg 38 437 \; one_send \$1;
#X obj 57 414 hsl 67 15 0 127 0 0 empty empty empty -2 -6 0 8 -228989
-1 -1 0 1;
#X msg 151 433 \; aSymbol symbol \$1;
#X msg 151 412 symbol down_below;
#X floatatom 14 414 5 0 0 0 - - -;
#X floatatom 98 314 5 0 0 0 - - -;
#X floatatom 97 224 5 0 0 0 - - -;
#X text 8 381 (look above at previous examples):;
#X text 10 368 You can make message boxes into sends;
#X text 13 272 received by [receive]s of the same name.;
#X text 8 203 Multiple [send]s with the same name;
#X obj 8 6 cnv 15 750 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 318 47 cnv 15 440 15 empty empty Getting_Your_Message_Across
3 7 0 13 -261104 -1 0;
#X text 656 18 LINK:Glossary;
#X text 656 6 LINK:Contents;
#X text 12 8 DESCRIPTION: All about communicating without connections
;
#X obj 318 277 cnv 15 440 15 empty empty Broadcasting_With_Sends_And_Receives
3 7 0 13 -261104 -1 0;
#X obj 8 496 cnv 15 750 20 empty empty empty 20 12 0 14 -261104 -66577
0;
#X text 13 499 PDDP Project 2005;
#X obj 660 499 bng 15 250 50 0 pddpNextPage \$0- < 4 8 0 12 -262144
-1 -1;
#X obj 678 499 bng 15 250 50 0 pddpNextPage \$0- > 4 8 0 12 -262144
-1 -1;
#X text 561 499 Previous/Next;
#N canvas 0 22 466 316 META 0;
#X text 12 5 CATEGORY: about;
#X text 12 15 KEYWORDS: send receive patch cord wireless connection
canvas;
#X restore 160 499 pd META;
#N canvas 696 168 488 368 PAGES 0;
#X text 19 9 Put your pages here: (They must be named [pd PAGE1] [pd
PAGE2]... (PAGE0 is the main patch).;
#X text 9 109 Don't forget to set the number of pages \, including
the main page.;
#N canvas 25 25 775 545 PAGE2 0;
#X obj 8 6 cnv 15 750 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 318 47 cnv 15 440 15 empty empty Getting_Your_Message_Across
3 7 0 13 -261104 -1 0;
#X text 656 18 LINK:Glossary;
#X text 656 6 LINK:Contents;
#X text 12 8 DESCRIPTION: All about communicating without connections
;
#X obj 318 277 cnv 15 440 15 empty empty Broadcasting_With_Sends_And_Receives
3 7 0 13 -261104 -1 0;
#X obj 8 496 cnv 15 750 20 empty empty empty 20 12 0 14 -261104 -66577
0;
#X text 13 499 PDDP Project 2005;
#X obj 660 499 bng 15 250 50 0 pddpNextPage \$0- < 4 8 0 12 -262144
-1 -1;
#X obj 678 499 bng 15 250 50 0 pddpNextPage \$0- > 4 8 0 12 -262144
-1 -1;
#X text 561 499 Previous/Next;
#X obj 701 499 cnv 15 15 15 empty empty 1 0 8 0 12 -261104 -1 0;
#X obj 717 499 cnv 15 15 15 empty empty of 0 8 0 12 -261104 -1 0;
#X obj 733 499 cnv 15 25 15 empty pddpNumPages 3 4 8 0 12 -261104 -1
0;
#X obj 305 36 cnv 5 5 460 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 327 300;
#X text 330 82;
#X text 328 167;
#X restore 14 54 pd PAGE2;
#X text 24 179 BUG: these page-turns need to be local! Add logic for
back button;
#X obj 13 146 pddp_page 2;
#X coords 0 0 1.01598e-05 1.58148e-05 96 15 0;
#X restore 217 499 pd PAGES;
#X obj 701 499 cnv 15 15 15 empty empty 1 0 8 0 12 -261104 -1 0;
#X obj 717 499 cnv 15 15 15 empty empty of 0 8 0 12 -261104 -1 0;
#X obj 733 499 cnv 15 25 15 empty pddpNumPages 2 4 8 0 12 -261104 -1
0;
#X obj 176 55 cnv 10 86 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X floatatom 176 76 5 0 0 0 - - -;
#X obj 176 55 receive aNum;
#X obj 44 155 cnv 10 87 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 45 155 send aSymbol;
#X msg 45 107 symbol hello;
#X msg 54 130 symbol world!;
#X obj 179 129 cnv 10 105 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X symbolatom 178 157 0 0 0 0 - - -;
#X obj 178 129 receive aSymbol;
#X obj 61 71 cnv 10 65 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X floatatom 62 54 5 0 0 0 - - -;
#X obj 62 71 send aNum;
#X obj 305 36 cnv 5 5 460 empty empty empty 20 12 0 14 -233017 -66577
0;
#X connect 2 0 6 0;
#X connect 3 0 10 0;
#X connect 5 0 11 0;
#X connect 7 0 18 0;
#X connect 12 0 8 0;
#X connect 14 0 13 0;
#X connect 16 0 15 0;
#X connect 17 0 13 0;
#X connect 19 0 4 0;
#X connect 42 0 41 0;
#X connect 45 0 44 0;
#X connect 46 0 44 0;
#X connect 49 0 48 0;
#X connect 51 0 52 0;
#N canvas 51 65 568 623 10;
#X obj 5 574 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 5 -12 cnv 15 550 40 empty \$0-pddp.cnv.header float 3 12 0 18
-204280 -1 0;
#X obj 4 244 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13
-228856 -1 0;
#N canvas 407 510 490 340 META 0;
#X text 12 45 LICENSE GPL;
#X text 12 65 TEMPLATE template-help.pd v0.1;
#X text 12 85 PLATFORM windows macosx gnulinux;
#X text 12 105 DATATYPE float list;
#X text 12 125 LIBRARY internal;
#X text 12 165 RELEASE_DATE 2007-08-24;
#X text 12 185 RELEASE_VERSION 0.40-test05;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 KEYWORDS control number float storage;
#X restore 505 576 pd META;
#X obj 83 156 cnv 10 50 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 346 163 cnv 10 23 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X floatatom 384 135 5 0 0 0 - - -, f 5;
#X floatatom 345 187 5 0 0 0 - - -, f 5;
#X obj 364 135 bng 15 250 50 0 empty empty empty 20 7 0 12 -4034 -1
-1;
#X floatatom 85 181 5 0 0 0 - - -, f 5;
#X msg 85 73 bang;
#X msg 325 79 7 3 4;
#X obj 345 162 f;
#X obj 85 156 float 7;
#X obj 4 394 cnv 3 550 3 empty empty outlet 15 12 0 13 -228856 -1 0
;
#X obj 4 444 cnv 3 550 3 empty empty argument 15 12 0 13 -228856 -1
0;
#X obj 4 494 cnv 3 550 3 empty empty more_info 15 12 0 13 -228856 -1
0;
#X obj 73 350 cnv 17 3 40 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X obj 73 264 cnv 17 3 80 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 103 263 BANG - output the currently stored value;
#X text 103 350 FLOAT - a float received on the right inlet is stored
;
#X obj 465 9 pddp/pddplink http://wiki.puredata.info/en/float -text
pdpedia: float;
#X text 103 283 FLOAT - outputs the incoming number and stores it;
#X text 103 303 LIST - truncates to the first element \, outputs that
element \, and stores it;
#X obj 467 -9 float;
#X obj 527 -9 f;
#X text 506 -8 or;
#X msg 105 126 12;
#X msg 138 126 -0.02;
#X msg 53 102 555;
#X msg 344 102 list one 2 3;
#X text 428 101 does not work!;
#X text 104 412 FLOAT - outputs the stored value as a float message
;
#X obj 105 532 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s3.1
-text Pd manual 2.3.1: anatomy of a message;
#N canvas 0 22 458 308 float/list 0;
#X msg 75 133 float 1 2 3;
#X text 34 22 FLOAT CONVERSION;
#X msg 95 187 list 1 2 3;
#X text 92 164 A list with multiple elements remains a list.;
#X text 43 59 A float with one element remains a float.;
#X text 72 106 A float with multiple elements remains a float but is
cut to one element.;
#X text 99 218 A list with one float element is converted to a float.
;
#X obj 58 308 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
#X obj 105 308 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
-1;
#X obj 152 308 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
-1 -1;
#X obj 200 308 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
-1;
#X obj 248 308 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
-1 -1;
#X obj 57 286 route bang float symbol list;
#X obj 92 349 print FLOAT;
#X msg 50 81 float 3;
#X msg 106 239 list 2;
#X obj 188 349 print LIST;
#X connect 0 0 12 0;
#X connect 2 0 12 0;
#X connect 12 0 7 0;
#X connect 12 1 8 0;
#X connect 12 1 13 0;
#X connect 12 2 9 0;
#X connect 12 3 10 0;
#X connect 12 3 16 0;
#X connect 12 4 11 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X restore 391 541 pd float/list conversion;
#N canvas 57 22 649 630 More_Info 0;
#X text 43 24 All numbers in Pd are kept in 32-bit floating point and
can represent real numbers between -8 \, 388608 and 8.388.608.00;
#X text 11 78 WHAT IS A FLOATING POINT NUMBER?;
#X text 41 267 The following are examples of floating point numbers:
;
#X text 61 293 3;
#X text 62 334 -111.5;
#X text 61 313 0.5;
#X text 40 387 3e-05 : This example is a computer shorthand for scientific
notation. It means 3*10-5 (or 10 to the negative 5th power multiplied
by 3).;
#X text 41 108 According to Webopedia.com \, "computers are integer
machines and are capable of representing real numbers only by using
complex codes." Hence \, real numbers must be 'approximated' by computers
using the "floating point standard". In such a number \, the decimal
point can "float" meaning that there is no fixed number of digits preceding
or following the decimal. A floating point number is therefore a computer's
approximation of a real number.;
#X text 43 453 Interesting side-note: In the early 1990's \, the Intel
80486 was shipped with a math coprocessor to help accelerate the process
of computing floating point numbers (which previously required a considerable
amount of CPU power.) Math coprocessors have since found there way
into nearly every graphics card and CPU available today.;
#X text 62 358 10000 to 1e-16;
#X restore 390 517 pd More_Info;
#X obj 105 549 pddp/pddplink http://en.wikipedia.org/wiki/Floating_point
;
#X text 120 72 outputs argument;
#X text 91 101 overrides argument;
#X text 103 462 [float] accepts a single number as a creation argument
which sets value that is stored.;
#N canvas 309 454 609 478 guts 0;
#X obj 117 95 textfile;
#X msg 116 24 symbol template-HCS.pd;
#X msg 116 54 read \$1 \, rewind \, bang;
#X obj 117 141 trigger bang anything;
#X obj 58 117 bang;
#X obj 240 162 route #X;
#X obj 240 183 route text;
#X obj 240 250 route DESCRIPTION;
#X obj 239 276 print;
#X obj 140 277 print TEXT;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X restore 454 576 pd guts;
#X text 16 8 description: stores a number;
#X text 106 516 all_about_data-types.pd;
#X connect 6 0 12 1;
#X connect 8 0 12 0;
#X connect 10 0 13 0;
#X connect 11 0 12 0;
#X connect 12 0 7 0;
#X connect 13 0 9 0;
#X connect 27 0 13 1;
#X connect 28 0 13 1;
#X connect 29 0 13 0;
#X connect 30 0 12 0;
#N canvas 167 112 772 532 10;
#X obj 8 6 cnv 15 750 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 318 47 cnv 15 440 15 empty empty Getting_Your_Message_Across
3 7 0 13 -261104 -1 0;
#X text 656 18 LINK:Glossary;
#X text 656 6 LINK:Contents;
#X obj 318 277 cnv 15 440 15 empty empty Broadcasting_With_Sends_And_Receives
3 7 0 13 -261104 -1 0;
#X obj 8 496 cnv 15 750 20 empty empty empty 20 12 0 14 -261104 -66577
0;
#X text 13 499 PDDP Project 2005;
#X obj 660 499 bng 15 250 50 0 pddpNextPage \$0- < 4 8 0 12 -262144
-1 -1;
#X obj 678 499 bng 15 250 50 0 pddpNextPage \$0- > 4 8 0 12 -262144
-1 -1;
#X text 561 499 Previous/Next;
#N canvas 0 22 470 320 META 0;
#X text 12 5 CATEGORY: about;
#X text 12 15 KEYWORDS:;
#X restore 160 499 pd META;
#N canvas 696 168 488 368 PAGES 0;
#X text 19 9 Put your pages here: (They must be named [pd PAGE1] [pd
PAGE2]... (PAGE0 is the main patch).;
#X text 9 109 Don't forget to set the number of pages \, including
the main page.;
#N canvas 168 111 769 538 PAGE2 0;
#X obj 8 6 cnv 15 750 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 318 47 cnv 15 440 15 empty empty Getting_Your_Message_Across
3 7 0 13 -261104 -1 0;
#X text 656 18 LINK:Glossary;
#X text 656 6 LINK:Contents;
#X obj 318 277 cnv 15 440 15 empty empty Broadcasting_With_Sends_And_Receives
3 7 0 13 -261104 -1 0;
#X obj 8 496 cnv 15 750 20 empty empty empty 20 12 0 14 -261104 -66577
0;
#X text 13 499 PDDP Project 2005;
#X obj 660 499 bng 15 250 50 0 pddpNextPage \$0- < 4 8 0 12 -262144
-1 -1;
#X obj 678 499 bng 15 250 50 0 pddpNextPage \$0- > 4 8 0 12 -262144
-1 -1;
#X text 561 499 Previous/Next;
#X obj 701 499 cnv 15 15 15 empty empty 1 0 8 0 12 -261104 -1 0;
#X obj 717 499 cnv 15 15 15 empty empty of 0 8 0 12 -261104 -1 0;
#X obj 733 499 cnv 15 25 15 empty pddpNumPages 2 4 8 0 12 -261104 -1
0;
#X obj 305 36 cnv 5 5 460 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 12 8 DESCRIPTION:;
#X restore 14 54 pd PAGE2;
#X text 24 179 BUG: these page-turns need to be local! Add logic for
back button;
#X obj 12 143 pddp_page 2;
#X coords 0 0 1.01598e-05 1.58148e-05 96 15 0;
#X restore 217 499 pd PAGES;
#X obj 701 499 cnv 15 15 15 empty empty 1 0 8 0 12 -261104 -1 0;
#X obj 717 499 cnv 15 15 15 empty empty of 0 8 0 12 -261104 -1 0;
#X obj 733 499 cnv 15 25 15 empty pddpNumPages 2 4 8 0 12 -261104 -1
0;
#X obj 305 36 cnv 5 5 460 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 12 8 DESCRIPTION:;
#N canvas 42 47 564 619 10;
#X obj 4 569 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header myobjectclass
3 12 0 18 -204280 -1 0;
#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13
-228856 -1 0;
#N canvas 779 22 494 344 META 0;
#X text 12 25 KEYWORDS control number float store;
#X text 12 45 LICENSE GPL;
#X text 12 65 TEMPLATE template-help.pd v0.1;
#X text 12 85 PLATFORM windows macosx gnulinux;
#X text 12 105 DATATYPE float list;
#X text 12 125 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 165 RELEASE_DATE 2007-08-24;
#X text 12 185 RELEASE_VERSION 0.40-test05;
#X restore 504 571 pd META;
#X obj 3 389 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0
13 -228856 -1 0;
#X obj 3 439 cnv 3 550 3 empty \$0-pddp.cnv.argument argument 15 12
0 13 -228856 -1 0;
#X obj 3 489 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15
12 0 13 -228856 -1 0;
#X obj 72 345 cnv 17 3 40 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 72 259 cnv 17 3 80 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 102 457 [float] accepts a single number as a creation argument
which sets value that is stored.;
#N canvas 309 454 609 478 guts 0;
#X obj 117 95 textfile;
#X msg 116 24 symbol template-HCS.pd;
#X msg 116 54 read \$1 \, rewind \, bang;
#X obj 117 141 trigger bang anything;
#X obj 58 117 bang;
#X obj 240 162 route #X;
#X obj 240 183 route text;
#X obj 240 250 route DESCRIPTION;
#X obj 239 276 print;
#X obj 140 277 print TEXT;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X restore 453 571 pd guts;
#X obj 470 -14 myobjectclass;
#X obj 419 6 pddp/pddplink http://wiki.puredata.info/en/myobjectclass
-text pdpedia: myobjectclass;
#X text 203 118 (put working examples here);
#X text 15 6 description: short desription of what this objectclass
does;
#X text 102 258 BANG - bang means do it!;
#X text 102 278 FLOAT - what does a number do?;
#X text 102 298 LIST - what does a list do?;
#X text 102 345 FLOAT - how about a float on the cold inlet?;
#X text 102 318 POINTER - does this object handle pointers;
#X text 103 407 FLOAT - what kind of output comes out of here?;
#X text 58 524 (put links to other help patches \, about patches \,
links to the HTML manual \, and/or external links);
#X text 146 363 (if you want longer lines \, you can use [cyclone/comment])
;
#N canvas 299 251 572 554 10;
#X obj 4 202 cnv 3 550 3 empty empty inlets 15 12 0 13 -228856 -1 0
;
#X obj 4 234 cnv 3 550 3 empty empty outlet 15 12 0 13 -228856 -1 0
;
#X obj 4 294 cnv 3 550 3 empty empty argument 15 12 0 13 -228856 -1
0;
#X obj 4 354 cnv 3 550 3 empty empty more_info 15 12 0 13 -228856 -1
0;
#X obj 420 384 cnv 17 3 40 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X obj 369 384 cnv 17 3 80 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 447 384 cnv 17 3 25 empty empty 2 5 9 0 16 -228856 -162280 0
;
#X text 101 10 This is a collection of graphic elements for the PDDP
template-help.pd. These are meant to be copied-n-pasted into new help
patches.;
#X obj 4 174 cnv 3 550 3 empty empty inlet 15 12 0 13 -228856 -1 0
;
#X obj 4 264 cnv 3 550 3 empty empty outlets 15 12 0 13 -228856 -1
0;
#X obj 396 384 cnv 17 3 60 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 339 384 cnv 17 3 100 empty empty 0 5 9 0 16 -228856 -162280
0;
#X obj 4 324 cnv 3 550 3 empty empty arguments 15 12 0 13 -228856 -1
0;
#X obj 140 88 cnv 10 23 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 140 114 cnv 10 27 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X text 22 66 highlights by character width:;
#X text 57 88 1-3 chars;
#X text 67 114 4 chars;
#X obj 140 139 cnv 10 34 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 280 89 cnv 10 38 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 280 114 cnv 10 46 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 280 139 cnv 10 52 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 430 88 cnv 10 57 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 430 114 cnv 10 63 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 430 139 cnv 10 69 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X text 67 139 5 chars;
#X text 207 88 6 chars;
#X text 207 114 7 chars;
#X text 207 139 8 chars;
#X text 358 87 9 chars;
#X text 357 115 10 chars;
#X text 357 139 11 chars;
#X obj 309 384 cnv 17 3 120 empty empty 0 5 9 0 16 -228856 -162280
0;
#X obj 279 384 cnv 17 3 140 empty empty 0 5 9 0 16 -228856 -162280
0;
#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 text 3 12 0 18 -204280
-1 0;
#X obj 0 458 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 489 286 494 344 META 0;
#X text 12 65 LIBRARY internal;
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 85 AUTHOR Miller Puckette;
#X text 12 145 HELP_PATCH_AUTHORS Updated for Pd version 0.26. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control;
#X text 12 125 RELEASE_DATE 1997;
#X text 12 45 DESCRIPTION box with text for an object or comment;
#X restore 500 597 pd META;
#X obj 0 486 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 514 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 542 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 518 (none);
#N canvas 217 509 428 119 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 comment Related Objects;
#X obj 21 28 pddp/pddplink all_about_externals.pd -text _________;
#X obj 21 28 pddp/pddplink all_about_externals.pd -text Externals;
#X obj 21 48 pddp/helplink cyclone/comment;
#X obj 21 68 pddp/helplink pddp/pddplink;
#X obj 21 88 pddp/helplink pddp/helplink;
#X restore 102 597 pd Related_objects;
#X text 104 387 Phone number with hyphens: 555-555-5555;
#X text 104 407 Same phone number without hyphens: 5.55556e+09;
#X text 98 462 (none);
#X text 98 491 (none);
#N canvas 100 383 428 181 Some_Comments_On_Comments 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 20 29 semicolons in comments cause the text \; following them
to \; start \; on a \; new \; line;
#X text 19 110 Try adding a period at the end of this sentence \, which
ends with the number 1;
#X text 19 140 If you close this subwindow \, then open it again \,
the period you added will be gone.;
#X text 8 2 comment Commentary: Additional Comments About Comments
;
#X restore 102 551 pd Some_Comments_On_Comments;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 99 571 pddp/pddplink all_about_ascii_art.pd;
#X text 378 11 To create \, click <Control-5>;
#X text 11 23 box with text for an object or comment;
#X text 85 144 Comments don't actually "do" anything \, but you can
use them to annotate your patch \, explain how something works \, add
a copyright notice \, or anything else.;
#X text 85 74 All text in Pure Data is just a series of symbol and/or
float atoms. You create Pd objects by typing text into an object box
\, but you can also write text as a comment for your patch (like this
one).;
#X text 85 224 To create a comment \, use the "Put" menu or click <Control-5>.
;
#X text 55 267 ***;
#X text 85 347 Otherwise your phone number will interpreted as a float
atom and you will lose some rather important precision!;
#X text 85 267 Remember: text inside a comment is just a series of
atoms \, and will be formatted accordingly. For example: if you want
to jot down a large value like a phone number in pd \, use hyphens
or multiple dots so that pd will interpret it as a symbol atom.;
#N canvas 431 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 textfile 3 12 0
18 -204280 -1 0;
#X obj 0 429 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.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION read and write text files;
#X text 12 65 INLET_0 bang rewind clear add add2 set read write print
;
#X text 12 85 OUTLET_0 list;
#X text 12 105 OUTLET_1 bang;
#X text 12 5 KEYWORDS control storage filesystem list_op anything_op
;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 465 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 531 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 558 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 535 (none);
#N canvas 216 519 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 [textfile] Related Objects;
#X obj 22 43 qlist;
#X restore 102 597 pd Related_objects;
#X obj 78 438 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 498 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 11 23 read and write text files;
#X obj 485 11 textfile;
#X obj 85 347 print done;
#X text 98 497 bang;
#X text 167 497 - this outlet gets a bang when you hit the end of the
sequence.;
#X text 98 473 list;
#X text 168 473 - this outlet gets the lines in sequence.;
#X text 168 437 (see the example above for messages accepted by [textfile])
;
#X msg 101 76 rewind;
#X text 214 207 read a file;
#X msg 101 208 read textfile.txt;
#X text 152 75 go to beginning;
#X msg 101 98 bang;
#X text 152 97 output one line as a list;
#X msg 101 230 write /tmp/textfile.txt;
#X msg 101 252 write /tmp/textfile2.txt cr;
#X msg 101 274 read textfile.txt cr;
#X msg 101 120 clear;
#X text 152 119 empty the object;
#X text 208 142 add a message;
#X msg 101 186 set 2 4 6 8;
#X text 208 186 clear and then add one message;
#X msg 101 142 add cis boom bah;
#X msg 101 164 add2 bang;
#X text 208 164 add an unterminated message;
#X msg 101 296 print;
#X text 145 296 debugging printout;
#X text 248 229 write a file;
#X obj 40 322 textfile;
#X text 272 251 write a file \, terminating lines with a;
#X text 273 266 carriage return (omitting semicolons).;
#X text 272 281 You can read files this way \, too \, in;
#X text 273 296 which case carriage returns are mapped;
#N canvas 94 361 428 199 About_textfile 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 [textfile] Related Objects;
#X text 21 38 The textfile object reads and writes text files to and
from memory. You can read a file and output sequential lines as messages
\, or collect lines and write them out. You can use this object to
generate "models" for Gem \, for instance.;
#X text 20 91 To record textual messages and save them to a file \,
first send "clear" to empty the sequence and "add" to add messages
(terminated with semicolons.) The message \, "add2" adds a list of
atoms without finishing with a semicolon in case you want to make variable-length
messages.;
#X text 20 155 You can also use this object simply for storing heterogeneous
sequences of messages.;
#X restore 101 567 pd About_textfile;
#X obj 40 369 print message;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 274 311 to semicolons.;
#X connect 20 0 40 0;
#X connect 22 0 40 0;
#X connect 24 0 40 0;
#X connect 26 0 40 0;
#X connect 27 0 40 0;
#X connect 28 0 40 0;
#X connect 29 0 40 0;
#X connect 32 0 40 0;
#X connect 34 0 40 0;
#X connect 35 0 40 0;
#X connect 37 0 40 0;
#X connect 40 0 46 0;
#X connect 40 1 14 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 threshold~ 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 261 494 365 META 0;
#X text 12 145 LIBRARY internal;
#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 165 AUTHOR Miller Puckette;
#X text 12 225 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 signal;
#X text 12 45 DESCRIPTION trigger from audio signal;
#X text 12 65 INLET_0 set signal;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 bang;
#X text 12 125 OUTLET_1 bang;
#X text 12 205 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 396 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 468 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 217 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 [threshold~] Related Objects;
#X obj 22 43 env~;
#X restore 102 597 pd Related_objects;
#X obj 78 304 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 405 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 352 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 351 float;
#X obj 478 10 threshold~;
#X text 11 23 trigger from audio signal;
#X obj 140 168 sig~;
#X obj 140 226 threshold~ 10 100 0 100;
#X floatatom 140 141 5 0 0 0 - - -, f 5;
#X obj 140 254 print trigger;
#X obj 275 254 print rest;
#X msg 296 196 1;
#X msg 327 196 0;
#X msg 222 146 set 0 2000 1 2000;
#X msg 222 169 set 10 100 0 100;
#X text 98 303 signal;
#X text 98 324 set;
#X text 167 351 - a zero to the right inlet sets the object's state
to "high." A nonzero value sets it to "low." There is no debounce period
after this.;
#X text 98 404 bang;
#X obj 78 435 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 434 bang;
#X text 168 404 - a bang is sent to the left outlet when the incoming
signal is greater than or equal to the "trigger" value.;
#X text 168 434 - a bang is sent to the right outlet when the incoming
signal is less than or equal to the "rest" value.;
#X text 168 324 - the "set" message can be used to change the parameters
(i.e. \, the values set by the creation arguments).;
#X text 168 303 - the incoming signal.;
#X text 80 486 1) float;
#X text 79 506 2) float;
#X text 168 486 - (optional) trigger threshold.;
#X text 167 526 - (optional) rest threshold.;
#X text 167 506 - (optional) trigger debounce time (ms).;
#X text 167 546 - (optional) rest debounce time (ms).;
#X text 88 56 [threshold~] monitors its input signal and outputs bangs
when the signal equals or exceeds a specified "trigger" value \, and
also when the signal equals or recedes below a "rest" value. You can
specify debounce times in milliseconds \, for the [threshold~] to wait
after the two event types before triggering again.;
#X text 79 526 3) float;
#X text 79 546 4) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 57 pddp/dsp;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 15 1 18 0;
#X connect 16 0 14 0;
#X connect 19 0 15 1;
#X connect 20 0 15 1;
#X connect 21 0 15 0;
#X connect 22 0 15 0;