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 3953 deletions
#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 inlet~ 3 12 0 18
-204280 -1 0;
#X obj 0 350 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 283 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 v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 45 DESCRIPTION signal inlet for a subpatch;
#X text 12 65 OUTLET_0 signal;
#X text 12 5 KEYWORDS signal nonlocal canvas_op;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 377 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 220 515 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 inlet;
#X obj 67 43 outlet;
#X obj 118 43 inlet~;
#X obj 168 43 outlet;
#X obj 225 43 block~;
#X text 8 2 [inlet~] Related Objects;
#X obj 277 43 switch~;
#X restore 102 598 pd Related_objects;
#X obj 78 386 cnv 17 3 60 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 369 259 print~;
#X obj 369 199 sig~ 12;
#X floatatom 126 203 0 0 0 0 - - -;
#X floatatom 126 255 0 0 0 0 - - -;
#X text 96 182 messages in and out;
#X text 339 176 audio in and out;
#X obj 369 237 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 50 247 428 293 subpatch-with-inlets-and-outlets 0;
#X obj 68 68 inlet;
#X text 20 38 control inlet for receiving messages;
#X floatatom 68 96 0 0 0 0 - - -;
#X floatatom 68 218 0 0 0 0 - - -;
#X obj 68 250 outlet;
#X text 20 188 control outlet for sending message;
#X obj 340 84 inlet~;
#X obj 340 135 print~;
#X msg 355 109 bang;
#X obj 340 243 outlet~;
#X obj 340 217 sig~ 34;
#X text 333 38 same for;
#X text 334 57 signals.;
#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 [inlet~] Creating Inlets/Outlets on Subpatches;
#X connect 0 0 2 0;
#X connect 3 0 4 0;
#X connect 6 0 7 0;
#X connect 8 0 7 0;
#X connect 10 0 9 0;
#X restore 126 229 pd subpatch-with-inlets-and-outlets;
#X text 98 353 (none);
#X text 11 23 signal inlet for a subpatch;
#X obj 497 10 inlet~;
#X text 98 385 signal;
#N canvas 61 152 428 466 up/downsampling 0;
#X obj 30 396 print~;
#X obj 48 370 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 112 396 print~;
#X obj 130 372 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 195 396 print~;
#X obj 213 370 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 64 float 3;
#A 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;
#X coords 0 1 64 -1 200 140 1;
#X restore 216 181 graph;
#X obj 274 368 s \$0-tab;
#X msg 274 341 const 0 \, 0 0 1;
#X obj 145 233 print~;
#X obj 145 208 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 23 181 tabreceive~ \$0-tab;
#N canvas 81 269 585 267 test-subpatch-upsampled 0;
#X obj 40 17 block~ 128 1 2;
#X obj 209 149 inlet~ hold;
#X obj 367 153 inlet~ lin;
#X obj 23 202 print~;
#X obj 41 176 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 209 209 print~;
#X obj 227 183 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 366 213 print~;
#X obj 383 187 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 42 49 Upsampling methods:;
#X text 206 114 sample/hold;
#X text 337 111 linear interpolation;
#X text 16 114 interleaved zeros;
#X obj 23 146 inlet~;
#X connect 1 0 5 0;
#X connect 2 0 7 0;
#X connect 4 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 13 0 3 0;
#X restore 23 285 pd test-subpatch-upsampled;
#N canvas 46 43 585 267 test-subpatch-downsampled 0;
#X obj 23 146 outlet~;
#X obj 209 149 outlet~ hold;
#X obj 367 153 outlet~ lin;
#X text 206 173 sample/hold;
#X text 364 177 linear interpolation;
#X text 197 19 upsampling methods:;
#X obj 40 17 block~ 32 1 0.5;
#X text 18 169 interleaved zeros;
#X obj 21 83 tabreceive~ \$0-tab;
#X connect 8 0 0 0;
#X connect 8 0 1 0;
#X connect 8 0 2 0;
#X restore 29 340 pd test-subpatch-downsampled;
#X text 20 38 When a subpatch is reblocked to a higher or lower sample
rate \, the inlet~ and outlet~ objects offer a choice of three upsampling
methods. (The inlet~ upsamples when entering a subpatch with a higher
sample rate \; the outlet~ upsamples when leaving a subpatch of _lower_
sample rate \, as demonstrated below.) There is no corresponding choice
of downsampling method - downsampling is done simply by dropping the
extra samples.;
#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 [inlet~] Up/downsampling;
#X connect 1 0 0 0;
#X connect 3 0 2 0;
#X connect 5 0 4 0;
#X connect 8 0 7 0;
#X connect 10 0 9 0;
#X connect 11 0 12 1;
#X connect 11 0 12 2;
#X connect 11 0 9 0;
#X connect 11 0 12 0;
#X connect 13 0 0 0;
#X connect 13 1 2 0;
#X connect 13 2 4 0;
#X restore 171 538 pd up/downsampling;
#X text 80 477 1) symbol atom;
#X text 98 127 The subpatch below shows how to use [inlet] \, [inlet~]
\, [outlet] \, and [outlet~] objects to get data into and out of a
subpatch:;
#X text 168 477 - (optional) The word "hold" will cause sample/hold
upsampling/downsampling \, and the word "lin" will cause linear upsampling/downsampling.
See the subpatch below for more details:;
#X text 98 77 The [inlet~] object allows signals to be sent to a subpatch
from objects on the parent canvas.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 168 385 - the [inlet~] object outputs the signal sent to the
inlet of the subpatch in which it is found. When multiple [inlet~]
or [inlet] objects are in one subpatch \, their horizontal order corresponds
with the inlets drawn on the containing object in the parent patch.
;
#X connect 10 0 16 1;
#X connect 11 0 16 0;
#X connect 15 0 9 0;
#X connect 16 0 12 0;
#X connect 16 1 9 0;
#N canvas 425 35 555 619 10;
#X obj 0 595 cnv 15 550 21 empty empty empty 20 12 0 14 -228856 -66577
0;
#X obj 0 0 cnv 15 550 40 empty empty int 3 12 0 18 -204280 -1 0;
#X obj 0 234 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#N canvas 492 233 482 395 META 0;
#X text 12 145 LIBRARY internal;
#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 165 AUTHOR Miller Puckette;
#X text 12 225 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 24 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 25 KEYWORDS control storage;
#X text 12 65 DESCRIPTION store an integer;
#X text 12 5 ALIAS i;
#X text 12 85 INLET_0 bang float;
#X text 12 105 INLET_1 float;
#X text 12 125 OUTLET_0 float;
#X text 12 205 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 375 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 412 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 0 475 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1
0;
#X obj 78 334 cnv 17 3 30 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 78 243 cnv 17 3 82 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 495 12 or;
#X obj 100 524 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 107 165 428 375 More_Info 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 19 36 Integers are "whole" numbers - numbers which do not contain
fractions. The following are examples of whole numbers:;
#X text 20 66 1;
#X text 20 81 -544;
#X text 20 110 10024;
#X text 19 95 420;
#X obj 1 161 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 1 [int] What is an integer;
#X text 7 161 [int] Note;
#X text 21 231 -8 \,;
#X text 39 231 388 \,;
#X text 63 231 608;
#X text 22 248 and:;
#X text 33 267 388 \,;
#X text 57 267 608;
#X text 22 267 8 \,;
#X text 21 290 Hence \, the [int] object takes about as much CPU as
the [float] object \; but is useful when numbers need to be truncated
and/or when patches are being designed to be compatible with Pd and
MAX/MSP.;
#X text 21 206 All numbers in Pd are kept in 32-bit floating point
and can represent real numbers between:;
#X restore 102 545 pd More_Info;
#X text 101 508 all_about_data-types.pd;
#X text 98 242 bang;
#X text 98 262 float;
#X text 98 302 list;
#X text 98 334 float;
#N canvas 212 521 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 obj 64 36 value;
#X obj 111 36 list;
#X floatatom 152 37 5 0 0 0 - - -, f 5;
#X msg 195 36;
#X obj 22 36 float;
#X obj 22 66 symbol;
#X obj 71 66 random;
#X text 7 1 [int] Related Objects;
#X restore 101 597 pd Related_objects;
#X text 99 382 float;
#X obj 468 11 int;
#X obj 516 11 i;
#X msg 115 122 bang;
#X floatatom 105 205 0 0 0 0 - - -;
#X floatatom 105 100 0 0 0 0 - - -;
#X floatatom 144 153 0 0 0 0 - - -;
#X text 153 122 You can force the object to output the stored number.
;
#X text 150 100 You can set and output the value simoultaneously.;
#X text 172 153 You can store the number \, without outputting it.
;
#X text 100 52 Tip: Press and hold SHIFT while click-n-dragging these
number boxes to see how the [int] object truncates the number - drops
decimal places.;
#X obj 105 179 int 6.5;
#X text 100 479 Note: [int] does not 'rounded off' floats. It discards
everything to the right of the decimal point.;
#X obj 78 384 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#N canvas 108 391 428 173 Building_a_counter 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 19 37 The [int] object can be used as a basis for building
simple counter mechanisms in Pd. In the example below \, the [int]
object's stored value is incremented by 1 with each "bang".;
#X msg 164 84 bang;
#X obj 164 113 int;
#X obj 192 113 + 1;
#X floatatom 164 139 5 0 0 0 - - -, f 5;
#X text 7 1 [int] Example: Building a Counter;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X restore 102 567 pd Building_a_counter;
#X text 11 20 store an integer;
#X text 169 430 - initializes the object and stores the number until
the value is reset. The creation argument is optional. If no creation
argument is provided \, the object defaults to zero.;
#X text 169 382 - outputs the stored value as a float message.;
#X text 168 242 - output the currently stored integer.;
#X text 168 262 - [int] will convert an incoming float to an integer--
all numerals to the right of the decimal place are truncated (dropped).
This value is then sent to the outlet.;
#X text 168 302 - a list is truncated to the first element \, which
is then output and stored.;
#X text 168 334 - a float received at the right inlet is converted
to an integer and stored for later use.;
#X text 81 430 1) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 21 0 29 0;
#X connect 23 0 29 0;
#X connect 24 0 29 1;
#X connect 29 0 22 0;
#N canvas 424 37 555 619 10;
#X obj 0 635 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 key 3 12 0 18 -204280
-1 0;
#X obj 0 257 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 278 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 Dave Sabine \, July 11 \, 2003 Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION get input from the keyboard;
#X text 12 65 OUTLET_0 float;
#X text 12 5 KEYWORDS control user_input;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 637 pd META;
#X obj 0 285 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 445 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 513 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 222 479 428 145 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 21 42 keyup;
#X obj 61 42 keyname;
#X text 19 72 Externals and other object libraries;
#X text 7 1 [key] Related Objects;
#X obj 18 94 pddp/helplink Gem/gemkeyboard;
#X obj 18 114 pddp/helplink Gem/gemkeyname;
#X restore 102 638 pd Related_objects;
#X text 98 293 float;
#X obj 78 294 cnv 17 3 140 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 517 9 key;
#X text 98 261 (none);
#X text 98 411 Also note that key combinations \, such as SHIFT+7 produce
a different result than SHIFT or 7 alone.;
#X text 168 346 Some keys \, such as SHIFT or the F1-F12 series all
produce a zero \, but we can see by the [bng] that the event is not
ignored completely...but the numeric "ID" of the key is not captured
successfully. (This may produce different results on different systems.)
;
#X text 168 293 - the number received at the outlet represents the
numeric "ID" of a key on the computer's keyboard. This event occurs
when the key is pressed down. Only one event is captured at a time.
;
#X obj 46 113 key;
#X obj 26 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 46 150 5 0 0 0 - - -, f 5;
#X text 75 113 Type something on the keyboard to send input to Pd;
#X text 23 64 [key] reports the (system dependent) numbers of "printing"
keys of the keyboard.;
#X text 99 517 Caveat - this only works if Pd actually gets the key
events which can depend on the stacking order of windows and/or the
pointer location. This is dependent on the system.;
#N canvas 105 161 428 356 reacting_to_user_input 0;
#X text 19 37 Most \, if not all \, programming environments provide
us with tools to capture 'user initiated' events from the operating
system. Keyboard input \, mouse clicks \, and mouse movements are the
most common events in this 'user event' category.;
#X text 19 103 Pd's [key] \, [keyup] \, and [keyname] are complimented
by the externals such as [gemmouse] and [nimouse] to provide us with
a full range of tools to gleen a user's activities at the computer.
;
#X text 33 240 onKeyUp;
#X text 33 221 onKeyDown;
#X text 33 259 onKeyPress;
#X text 20 290 hmmm...wouldn't it be great if Pd also gave us onChange
\, onBlur \, onFocus \, onClick \, onDblClick \, onDragDrop \, onLoad
\, onMouseDown \, onMouseOver \, onMouseOut \, onMouseMove \, onUnload...?
;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [key] Reacing to User Input;
#X text 20 169 It's interesting to note that with these tools \, PD
can mimic some of the functions in other languages - Javascript for
example has:;
#X restore 102 564 pd reacting_to_user_input;
#N canvas 105 31 345 511 some_keyboard_fun 0;
#X obj 52 75 loadbang;
#X msg 23 16 bang;
#X obj 33 158 qlist;
#X floatatom 33 185 5 0 0 0 - - -, f 5;
#X obj 228 30 r keyboard_fun;
#X msg 52 105 read keyboard_fun.txt;
#X msg 45 51 rewind;
#X obj 228 112 symbol add2;
#X obj 228 83 t b s;
#X obj 228 138 pack s s;
#X obj 228 164 route list;
#X msg 47 245 set;
#X msg 47 278;
#X obj 228 57 symbol;
#X text 71 17 Click here to start...;
#X msg 62 131 tempo 0.8;
#X obj 47 217 loadbang;
#X connect 0 0 5 0;
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 13 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 9 1;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 13 0 8 0;
#X connect 15 0 2 0;
#X connect 16 0 11 0;
#X restore 102 588 pd some_keyboard_fun;
#X obj 245 611 pddp/pddplink all_about_hid.pd -text all_about_hid;
#X text 100 612 for more on HIDs:;
#X text 11 23 get input from the keyboard;
#X text 168 261 - [key] gets input directly from the keyboard.;
#X obj 4 637 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 153 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 173 190 5 0 0 0 - - -, f 5;
#X obj 173 153 key 1;
#X text 210 153 Legacy version which also includes autorepeat can be
invoked by passing an optional argument 1 at creation. Notice how
this version reports multiple presses when holding a key down.;
#X text 98 449 1) float;
#X text 168 449 - optional argument to enable legacy autorepeat detection.
0 or no argument will disable autorepeat reporting \, 1 will enable
legacy behavior and repeat press-and-hold as multiple pressess in succession.
;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 30 0 28 0;
#X connect 30 0 29 0;
#N canvas 515 143 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 line 3 12 0 18 -204280
-1 0;
#X obj 0 267 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 565 371 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.35 test 28 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 45 DESCRIPTION ramp generator;
#X text 12 65 INLET_0 float list stop;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 float;
#X text 12 185 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS control time;
#X restore 500 598 pd META;
#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 439 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 498 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 297 500 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 obj 22 43 line~;
#X obj 62 43 vline~;
#X text 8 2 [line] Related Objects;
#X text 19 102 Externals;
#X obj 19 142 pddp/helplink markex/tripleLine;
#X obj 19 162 pddp/helplink iemlib/t3_line~;
#X obj 19 182 pddp/helplink iemlib/fade~;
#X obj 19 122 pddp/helplink maxlib/step;
#X restore 101 598 pd Related_objects;
#X obj 78 276 cnv 17 3 63 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 275 float;
#X text 98 301 list;
#X text 98 383 float;
#X obj 78 384 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 347 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 346 float;
#X obj 509 10 line;
#X obj 137 180 line;
#X msg 137 87 1000 1000;
#X floatatom 137 201 5 0 0 0 - - -, f 5;
#X text 203 86 ramp up.;
#X msg 146 110 0 1000;
#X text 193 110 ramp down.;
#X msg 158 154 stop;
#X msg 154 133 42;
#X text 180 134 jumps to this value immediately.;
#X text 195 154 stops the current ramp.;
#N canvas 106 115 428 446 continuous_ramps 0;
#X text 19 98 In other words \, if [line] receives a message specifying
some new target and time before reaching the previous target \, it
takes off from its current value.;
#X obj 26 247 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 56 205 stop;
#X msg 49 185 42;
#X obj 23 226 line;
#X msg 23 144 127 5000;
#X msg 41 165 0 5000;
#X text 16 271 Due to this unique behavior \, a common construct found
in Pd patches includes the [pack] object as follows:;
#X obj 30 392 line;
#X floatatom 30 413 10 0 0 0 - - -, f 10;
#X floatatom 30 306 5 0 0 0 - - -, f 5;
#X obj 30 372 pack f 500;
#X msg 41 325 50;
#X msg 49 346 2000;
#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 [line] Continuous Ramps;
#X text 21 37 [line] does not schedule its incoming messages. What
this means is that if you send [line] a new target value mid-way through
a ramp \, a new ramp is immediately created to the new target value
starting from the "current" value.;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 8 0 9 0;
#X connect 10 0 11 0;
#X connect 11 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X restore 101 551 pd continuous_ramps;
#N canvas 107 25 428 516 grain_rate_and_creation_arguments 0;
#X text 21 39 The "grain rate" of [line] is the rate at which it will
output its values. The faster the grain is \, the smoother the ramp
will appear. While slower grain rates will produce a more disjunct
ramp. Of course this setting will alter the amount of CPU that the
[line] object will require. Higher rates require more computation.
;
#X text 22 145 This means simply that [line] will output a new value
between its current value and your new value once every 20 milliseconds.
;
#X text 22 126 The default grain rate is 20 milliseconds.;
#X text 19 193 [line]'s optional creation arguments can be used to
reset the grain rate. However \, the grain rate cannot be reset dynamically.
;
#X text 21 248 First creation argument is the initial value: the starting
point of the first ramp.;
#X text 20 287 The second creation argument sets the grain rate. Observe
the following two examples to see how the grain rate effects the output.
;
#X obj 33 403 line 0 5;
#X obj 36 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 136 332 127;
#X msg 168 340 0;
#X obj 135 368 pack f 5000;
#X obj 203 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 200 403 line 0 500;
#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 [line] Grain Rate;
#X text 31 469 You can check the default grain rate in the subpatch
below:;
#N canvas 398 136 429 326 default_grain_rate 0;
#X obj 22 87 line;
#X obj 22 226 timer;
#X obj 22 111 t b b;
#X obj 49 137 spigot;
#X obj 101 169 0;
#X obj 22 193 spigot;
#X obj 22 64 t a b;
#X obj 65 87 1;
#X obj 71 226 1;
#X obj 22 251 print Pd's_default_grain_rate;
#X msg 22 42 0 200;
#X text 19 274 Here we assume the grain rate is less than 200 ms. For
a more comprehensive test we could start with a time value of 1 ms
and step up until the output ceases to increase.;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X text 7 1 [line] Pd's Default Grain Rate;
#X text 60 42 Click here to output pd's default grain rate to the console
;
#X connect 0 0 2 0;
#X connect 1 0 9 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 4 0;
#X connect 3 0 1 1;
#X connect 4 0 3 1;
#X connect 4 0 5 1;
#X connect 5 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 0 0;
#X connect 6 1 7 0;
#X connect 7 0 5 1;
#X connect 8 0 3 1;
#X connect 10 0 6 0;
#X restore 34 491 pd default_grain_rate;
#X connect 6 0 7 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X connect 10 0 12 0;
#X connect 12 0 11 0;
#X restore 101 529 pd grain_rate_and_creation_arguments;
#X text 11 23 ramp generator;
#X text 98 325 stop;
#X text 168 325 - stop the current ramp.;
#X text 167 346 - time to reach the target value (in milliseconds).
;
#X text 168 275 - target value. This value is stored and used as the
starting value for the next ramp.;
#X text 168 301 - a (target \, time) pair is distributed between the
two inlets.;
#X text 168 474 - grain rate in milliseconds (default: 20 ms).;
#X text 168 383 - [line] outputs a linear ramp \, reaching the target
value within the time value specified by the right inlet and at a grain
rate specified by the second creation argument (default 20 ms).;
#N canvas 106 32 428 493 tips_on_using_line 0;
#X text 20 39 [line]'s left inlet defines the "target" value. The right
inlet defines the "time" value. The "target \, time" pair of numbers
inform [line] to produce a numeric "ramp" from its current value (whatever
that might be at any given moment) to the new value within the alloted
time which is defined at the right inlet.;
#X obj 25 242 line;
#X msg 59 218 1000;
#X msg 25 218 1000;
#X obj 25 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 25 195 t b b;
#X floatatom 25 264 5 0 0 0 - - -, f 5;
#X obj 150 260 line;
#X msg 150 236 1000;
#X obj 150 216 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 150 282 5 0 0 0 - - -, f 5;
#X text 20 309 If [line] receives a new target value without an accompanying
"time" \, it simply jumps to the new value...as in the example above
on the right. In the example above on the left \, you'll see that [line]
will create a numeric ramp from 0 to 1000 over 1000 milliseconds. You
should also note that if you click that [bng] again a second time \,
nothing happens. This is because [line] is already at 1000 \, so sending
it new instructions to ramp to 1000 is meaningless and has no effect.
;
#X text 20 425 Having said all of that \, let's just reiterate that
it's important to send a "time" value to [line] before sending it a
new "target" value...unless of course you WANT it to jump immediately
to the new target.;
#X text 149 182 While this does NOT work unless;
#X text 149 196 you click "500" first.;
#X msg 184 236 500;
#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 [line] Tips;
#X text 20 118 It is important to realize that [line] stores only the
current value...it does not remember the defined "time" (duration of
the ramp). Hence \, the example to the left works:;
#X connect 1 0 6 0;
#X connect 2 0 1 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 5 1 2 0;
#X connect 7 0 10 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 15 0 7 1;
#X restore 101 507 pd tips_on_using_line;
#X text 80 459 1) float;
#X text 80 474 2) float;
#X text 168 459 - initial value \, i.e. \, the starting point of the
first ramp.;
#X obj 3 598 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 571 pddp/pddplink ../3.audio.examples/C03.zipper.noise.pd
-text doc/3.audio.examples/C03.zipper.noise.pd;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 20 0 16 0;
#X connect 22 0 16 0;
#X connect 23 0 16 0;
#N canvas 426 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 line~ 3 12 0 18
-204280 -1 0;
#X obj 0 271 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 284 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 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 time conversion;
#X text 12 45 DESCRIPTION audio ramp generator;
#X text 12 85 INLET_1 list;
#X text 12 105 OUTLET_0 signal;
#X text 12 65 INLET_0 float list stop;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 452 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 489 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;
#X text 98 493 (none);
#N canvas 213 398 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 obj 22 43 vline~;
#X obj 82 43 line;
#X text 8 2 [line~] Related Objects;
#X text 20 100 Externals;
#X obj 20 180 pddp/helplink markex/tripleLine;
#X obj 20 120 pddp/helplink iemlib/t3_line~;
#X obj 20 140 pddp/helplink iemlib/fade~;
#X obj 20 160 pddp/helplink maxlib/step;
#X restore 101 597 pd Related_objects;
#X obj 78 280 cnv 17 3 90 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 279 float;
#X text 98 305 list;
#X obj 78 461 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 381 cnv 17 3 65 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 380 float;
#X obj 509 9 line~;
#X obj 66 210 snapshot~;
#X obj 66 164 line~;
#X floatatom 66 233 0 0 0 0 - - -;
#X obj 108 187 metro 100;
#X msg 66 66 1 1000;
#X text 121 65 a pair of numbers starts a ramp;
#X msg 126 113 2;
#X text 158 113 a single number jumps to value;
#X msg 124 138 stop;
#X text 167 137 "stop" message freezes line~ at its current value;
#X msg 93 113 0;
#X msg 76 88 0 5000;
#X obj 108 164 loadbang;
#X text 98 359 stop;
#X text 98 460 signal;
#X text 167 380 - stores a duration in milliseconds until the next
target value is sent to the left inlet. Unlike most other objects in
Pd \, the value is only stored until it is used with this target value
to start the ramp-- after that point the right inlet is reset (to zero).
;
#X text 11 23 audio ramp generator;
#X text 168 305 - [line~] takes a two-element list to start a new ramp.
The first element specifies the target value \, and the second one
sets the duration in milliseconds. (Lists with more than two elements
will be truncated.);
#X text 168 279 - a float to the left inlet of [line~] will cause the
output to jump immediately to the target value.;
#X text 168 359 - the stop message freezes [line~] at its current value.
;
#X text 168 460 - the outgoing signal is the linear ramp.;
#X text 179 191 The [line~] object generates linear ramps whose levels
and timing are determined by messages you send it. The messages may
be a single target value (causing the output to jump to the target)
or a target and a time in milliseconds (to start a new ramp).;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 486 51 pddp/dsp;
#X obj 98 547 pddp/pddplink ../3.audio.examples/A03.line.pd/ -text
doc/3.audio.examples/A03.line.pd;
#X obj 98 562 pddp/pddplink ../3.audio.examples/A04.line2.pd/ -text
doc/3.audio.examples/A04.line2.pd;
#X text 98 521 More information about [line] can be found in the Pure
Documentation folder doc/3.audio.examples:;
#X obj 98 577 pddp/pddplink ../3.audio.examples/C05.sampler.oneshot.pd
-text doc/3.audio.examples/C05.sampler.oneshot.pd;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 19 0 16 0;
#X connect 20 0 17 0;
#X connect 22 0 17 0;
#X connect 24 0 17 0;
#X connect 26 0 17 0;
#X connect 27 0 17 0;
#X connect 28 0 19 0;
#N canvas 398 77 555 619 10;
#X obj 0 635 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 list 3 12 0 18 -204280
-1 0;
#X obj 0 144 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 450 328 494 344 META 0;
#X text 12 90 LIBRARY internal;
#X text 12 130 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 50 LICENSE SIBSD;
#X text 12 110 AUTHOR Miller Puckette;
#X text 12 170 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 70 DESCRIPTION building and using variable-length messages
;
#X text 12 5 NAME list append list prepend list trim list split list
length;
#X text 12 30 KEYWORDS control storage needs_work list_op symbol_op
;
#X text 12 150 RELEASE_DATE 2005;
#X restore 500 638 pd META;
#X obj 0 237 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 288 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 179 562 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 7 1 [list] Related Objects;
#X obj 21 42 float;
#X obj 61 42 symbol;
#X obj 112 42 pack;
#X obj 152 42 unpack;
#X restore 102 639 pd Related_objects;
#X obj 78 246 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 78 153 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 510 11 list;
#N canvas 1 112 555 502 append 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 13 3 list append;
#X text 18 24 append (concatenate) the second list to the first;
#X obj 0 294 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 303 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 353 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 304 anything;
#X text 98 354 anything;
#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 456 n);
#X text 98 471 float;
#X text 80 440 1);
#X text 170 440 - the symbol "append".;
#X text 170 456 - an arbitrary number of additional floats or symbols
may be specified to initialize the list stored at the right inlet.
;
#X obj 158 219 list append 1 2;
#X floatatom 168 165 5 0 0 0 - - -, f 5;
#X msg 158 140 1 2 3;
#X msg 178 190 bang;
#X msg 285 189 bang;
#X obj 158 241 print append;
#X msg 285 163 4 5 6 and 7;
#X msg 285 80 4 5 6;
#X msg 285 139 four 5 6;
#X msg 285 110 list four 5 6;
#X text 178 354 - all input is converted to a list and stored.;
#X text 178 304 - all input is converted to a list. The list stored
at the right inlet is appended to it \, and the resulting list is sent
to the outlet.;
#X text 98 387 list;
#X text 168 387 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 440 symbol atom;
#X text 98 456 symbol atom;
#X connect 16 0 21 0;
#X connect 17 0 16 0;
#X connect 18 0 16 0;
#X connect 19 0 16 0;
#X connect 20 0 16 1;
#X connect 22 0 16 1;
#X connect 23 0 16 1;
#X connect 24 0 16 1;
#X connect 25 0 16 1;
#X restore 102 365 pd append;
#N canvas 89 83 428 592 about-lists 0;
#X obj 22 567 print message;
#X msg 22 380 list x.wav 44100;
#X msg 22 538 read \$1 \$2;
#X msg 22 409 set x.wav 44100;
#X msg 39 509 set \, add2 read \, adddollar 1 \, adddollar 2;
#X msg 22 439 x.wav 44100;
#X obj 39 483 loadbang;
#X text 127 486 reset message as it was;
#X text 139 380 good;
#X text 128 411 bad;
#X text 94 439 ugly;
#X msg 223 403 list 44100 x.wav;
#X msg 236 428 44100 x.wav;
#X obj 223 454 print number-first;
#X text 217 375 these two are equivalent:;
#X text 19 266 In the example below \, the top message sets \$1 to
"x.wav" and \$2 to 44100 in the "read" message. The lower message box
outputs the message "read x.wav 44100". The "set" message changes the
content of the message box itself (click on the longer message box
below to repair the damage.) The "ugly" message \, since it is neither
"list" nor "set" \, gets interpreted in an arbitrary (and probably
inappropriate!) way.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [list] About lists in Pd;
#X text 19 37 Messages in Pd are somewhat artificially divided into
two classes. First are data-holding messages (bang \, float \, symbol
\, list) which are the primary way of communicating between objects.
Second is "everything else" (you could call them out-of-band messages
or metamessages) that describe changes in configuration \, read and
write files \, quit Pd \, etc. These are provided so that complex objects
don't need to have 100 separate inlets for every possible functionality.
It's not clear whether this was a good design choice \, but it's entrenched.
;
#X text 19 170 The distinction becomes visible \, and ugly \, when
the leading item in a data-holding message is a symbol. In this case
\, to disambiguate it from the other sort \, the printed form of the
message has a selector \, "list" or "symbol" prepended to it. Underneath
\, there is always a selector in front of data messages \, but it is
implied if the first data item is a number.;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 4 0;
#X connect 11 0 13 0;
#X connect 12 0 13 0;
#X restore 101 586 pd about-lists;
#X text 11 23 building and using variable-length messages;
#X text 80 307 1);
#X text 80 514 n);
#X text 180 365 append - append the second list to the first;
#X text 180 409 split - split a list in two;
#X text 180 387 prepend - prepend the second list to the first;
#X text 180 453 length - output the number of items in a list;
#X text 180 431 trim - trim the "list" selector off;
#X obj 212 98 list;
#X msg 233 68 rice;
#X msg 212 46 beans;
#X obj 212 120 print groceries;
#X msg 276 68 cornbread;
#X text 98 550 Here are some examples showing how to use these objects
to compose and/or use variable length messages:;
#N canvas 20 53 525 646 simple_sequencer 0;
#X obj 23 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 232 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 227 154 clear;
#X text 20 153 send;
#X msg 71 175 250;
#X msg 103 175 500;
#X msg 136 175 750;
#X msg 169 175 1000;
#X obj 23 258 list append;
#X obj 188 220 t l;
#X obj 71 214 list prepend;
#X obj 23 426 t l l;
#X obj 74 426 print start;
#X obj 129 257 print stored;
#X obj 23 451 list split 1;
#X obj 23 575 del;
#X obj 23 607 print bang;
#X obj 55 542 list append;
#X msg 35 403 0 250 250 500;
#X text 98 150 -- add --;
#X text 37 20 example 1: simple rhythmic sequencer;
#X text 29 53 The top part of this patch demonstrates building up a
message from a variable number of elements provided sequentially. The
"list prepend" object stores the list and \, each time a number arrives
\, prepends the previous list to it.;
#X text 216 237 "list prepend" to its own inlet.;
#X text 213 220 "trigger list" is needed only to connect outlet of
;
#X text 254 258 printout shows the growing message.;
#X text 47 279 "list append" stores the growing message which is output
by the "send" button above. "list prepend" would have been equivalent.
;
#X text 165 403 <-- test message;
#X text 39 354 The bottom part of the patch takes numbers off the beginning
of the list \, one by one \, to use as delays.;
#X text 190 426 printout shows the sequence as it starts.;
#X text 169 543 The rest of the list is stored for next time.;
#X obj 141 505 print done;
#X text 150 450 Split off the first item. If there is none \, nothing
comes out the first or second outlet \, but instead we get a "bang"
from the third one.;
#X text 64 575 After delay \, output a bang and recall the rest of
the list.;
#X connect 0 0 8 0;
#X connect 1 0 10 1;
#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 11 0;
#X connect 9 0 10 1;
#X connect 10 0 9 0;
#X connect 10 0 8 1;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 11 1 12 0;
#X connect 14 0 15 0;
#X connect 14 1 17 1;
#X connect 14 2 30 0;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 17 0 14 0;
#X connect 18 0 11 0;
#X restore 401 586 pd simple_sequencer;
#N canvas 127 68 397 569 another_sequencer 0;
#X obj 66 263 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 292 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 287 244 clear;
#X text 63 243 send;
#X obj 66 342 list append;
#X obj 213 317 t l;
#X obj 94 303 list prepend;
#X obj 66 410 t l l;
#X obj 121 410 print start;
#X obj 171 340 print stored;
#X obj 66 486 del;
#X obj 105 486 list append;
#X msg 94 264 250 57;
#X msg 154 264 500 52;
#X msg 215 264 750 55;
#X obj 66 461 unpack;
#X obj 66 435 list split 2;
#X text 80 38 example 2: sequencer with pitch;
#X text 147 242 -- add --;
#X obj 185 438 print done;
#X obj 115 517 print pitch;
#X text 13 69 This example is a slight modification of example 1 showing
how to build up lists with more than one item per iteration. We regard
pairs of numbers as specifying a delay time and a pitch. Unlike the
previous example \, the delay here is interpreted as teh delay until
the next event \, not the delay since the previous one. This is done
by taking the "pitch" output before the delay object (previously the
"output" was taken from the delay object's output.);
#X connect 0 0 4 0;
#X connect 1 0 6 1;
#X connect 4 0 7 0;
#X connect 5 0 6 1;
#X connect 6 0 5 0;
#X connect 6 0 4 1;
#X connect 6 0 9 0;
#X connect 7 0 16 0;
#X connect 7 1 8 0;
#X connect 10 0 11 0;
#X connect 11 0 16 0;
#X connect 12 0 6 0;
#X connect 13 0 6 0;
#X connect 14 0 6 0;
#X connect 15 0 10 0;
#X connect 15 1 20 0;
#X connect 16 0 15 0;
#X connect 16 1 11 1;
#X connect 16 2 19 0;
#X restore 401 608 pd another_sequencer;
#N canvas 48 176 447 426 serializer 0;
#X obj 19 287 list split 1;
#X obj 19 378 print;
#X obj 19 204 until;
#X obj 19 242 list append;
#X obj 45 171 t b l;
#X obj 149 287 bang;
#X msg 45 148 1 2 3 4 a b c;
#X text 34 21 example 3: serializing a message without delays;
#X text 17 55 The "until" object can be used as shown to iterate through
all the items of a list.;
#X text 178 147 <- click to test;
#X text 101 171 First store list \, then start the loop;
#X text 88 199 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 107 241 Store the remaining list.;
#X text 184 286 third outlet of "split" tells us to stop.;
#X text 37 318 Second outlet of "split" becomes the new list for "list
append" above.;
#X text 75 377 First outlet is the output.;
#X connect 0 0 1 0;
#X connect 0 1 3 1;
#X connect 0 2 5 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 2 0;
#X connect 4 1 3 1;
#X connect 5 0 2 1;
#X connect 6 0 4 0;
#X restore 241 608 pd serializer;
#N canvas 101 244 428 350 lists_vs_non-lists 0;
#X obj 23 290 list append 1 2;
#X floatatom 23 120 5 0 0 0 - - -, f 5;
#X msg 23 95 1 2 3;
#X msg 23 68 list cis boom bah;
#X msg 23 145 bang;
#X msg 162 260 bang;
#X obj 23 319 print append;
#X msg 23 43 walk the dog;
#X msg 162 210 list x y z;
#X msg 161 184 go dog go;
#X msg 160 234 4 5 6 and 7;
#X text 119 43 non-list message converted to list;
#X text 144 68 list starting with symbol;
#X text 75 118 number is one-element list;
#X text 75 95 numeric list;
#X text 75 145 bang is zero-element list;
#X text 226 184 same for right inlet...;
#X text 235 233 (note: only the first item;
#X text 238 252 need be a number to make this;
#X text 238 270 a list.);
#X text 121 290 <- creation args initialize the list to append;
#X obj 2 2 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [list] Lists vs. Non-lists;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 1;
#X connect 7 0 0 0;
#X connect 8 0 0 1;
#X connect 9 0 0 1;
#X connect 10 0 0 1;
#X restore 101 608 pd lists_vs_non-lists;
#N canvas 0 82 555 506 prepend 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 299 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 308 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 354 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 309 anything;
#X text 98 355 anything;
#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 456 n);
#X text 98 471 float;
#X text 80 440 1);
#X text 170 456 - an arbitrary number of additional floats or symbols
may be specified to initialize the list stored at the right inlet.
;
#X floatatom 198 160 5 0 0 0 - - -, f 5;
#X msg 188 135 1 2 3;
#X msg 208 185 bang;
#X msg 315 184 bang;
#X msg 315 158 4 5 6 and 7;
#X msg 315 75 4 5 6;
#X msg 315 134 four 5 6;
#X msg 315 105 list four 5 6;
#X text 178 355 - all input is converted to a list and stored.;
#X text 18 24 prepend the second list to the first;
#X obj 13 3 list prepend;
#X obj 188 214 list prepend 1 2;
#X obj 188 236 print prepend;
#X text 178 309 - all input is converted to a list. The list stored
at the right inlet is prepended to it \, and the resulting list is
sent to the outlet.;
#X text 170 440 - the symbol "prepend".;
#X text 98 387 list;
#X text 168 387 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 440 symbol atom;
#X text 98 456 symbol atom;
#X connect 13 0 24 0;
#X connect 14 0 24 0;
#X connect 15 0 24 0;
#X connect 16 0 24 1;
#X connect 17 0 24 1;
#X connect 18 0 24 1;
#X connect 19 0 24 1;
#X connect 20 0 24 1;
#X connect 24 0 25 0;
#X restore 102 387 pd prepend;
#N canvas 1 82 555 530 split 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 277 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 371 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 380 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 286 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 314 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 287 anything;
#X obj 0 458 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 477 1);
#X msg 200 145 bang;
#X obj 159 173 list split 2;
#X floatatom 262 148 3 0 5 0 - - -, f 3;
#X msg 159 57 1 2;
#X msg 124 57 1;
#X text 156 228 first n;
#X text 245 228 rest of list;
#X text 337 228 shorter than n;
#X text 18 24 cut a list into smaller ones;
#X obj 13 3 list split;
#X msg 173 79 one 2 3;
#X msg 183 101 list one 2 3;
#X msg 193 123 1 2 three;
#X obj 159 211 print split0;
#X obj 248 211 print split1;
#X obj 340 211 print split2;
#X text 178 287 - all input is converted to a list.;
#X text 98 315 float;
#X text 98 381 list;
#X obj 78 403 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 404 list;
#X obj 78 425 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 426 list;
#X text 178 315 - split point. A value of n will send the first n elements
to the left outlet \, and the rest of the list to the middle outlet.
Incoming lists shorter than n are sent to the rightmost outlet.;
#X text 168 381 - the first n elements of the incoming list.;
#X text 168 404 - the remaining elements of the incoming list.;
#X text 168 426 - if the incoming list has fewer than n elements \,
it is sent in its entirety to the rightmost outlet.;
#X text 170 477 - the symbol "split".;
#X text 98 493 float;
#X text 80 493 2);
#X text 98 477 symbol atom;
#X text 170 493 - (optional) an integer to initialize the split point.
;
#X connect 9 0 10 0;
#X connect 10 0 22 0;
#X connect 10 1 23 0;
#X connect 10 2 24 0;
#X connect 11 0 10 1;
#X connect 12 0 10 0;
#X connect 13 0 10 0;
#X connect 19 0 10 0;
#X connect 20 0 10 0;
#X connect 21 0 10 0;
#X restore 102 409 pd split;
#N canvas 1 82 555 481 trim 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 330 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 385 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#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 339 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 340 anything;
#X obj 0 429 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 448 1);
#X msg 49 139 1 2 3;
#X msg 49 90 list cis boom bah;
#X msg 49 195 bang;
#X msg 49 63 walk the dog;
#X obj 49 276 list trim;
#X obj 49 298 print trim;
#X msg 49 222 1 x y;
#X msg 49 248 x 1 y;
#X msg 49 113 55;
#X text 98 395 anything;
#X text 170 448 - the symbol "trim".;
#X obj 13 3 list trim;
#X text 18 24 remove the list selector;
#X text 128 230 The [list trim] object inputs lists (or makes lists
out of incoming non-list messages) and outputs a message whose selector
is the first item of the list \, and whose arguments \, if any \, are
the remainder of the list. If the list has no items \, or if its first
item is numeric \, the selector is "list" (which might print out as
list \, float \, or bang.);
#X text 98 448 symbol atom;
#X text 178 340 - all input is converted to a list. A bang message
is converted to an empty list. A symbol message like "symbol blah"
is converted to "list blah".;
#X text 134 63 non-list messages remain non-list messages;
#X text 97 139 implicit list remains a list;
#X msg 49 167 symbol x;
#X text 86 195 becomes message "list" (interpreted by most objects
as bang);
#X text 166 90 "list" selector gets trimmed off;
#X text 79 113 becomes "list 55" (interpreted by most objects as float)
;
#X text 112 167 "symbol" selector gets trimmed off.;
#X text 168 395 - after the incoming message is converted to a list
\, the "list" selector is removed and the message is output.;
#X connect 8 0 12 0;
#X connect 9 0 12 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X connect 16 0 12 0;
#X connect 26 0 12 0;
#X restore 102 431 pd trim;
#N canvas 2 128 555 490 length 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 374 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 411 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 420 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 383 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 384 anything;
#X obj 0 448 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 467 1);
#X obj 13 3 list length;
#X msg 226 161 1 2 3;
#X msg 226 112 list cis boom bah;
#X msg 227 187 bang;
#X msg 226 85 walk the dog;
#X msg 227 209 1 x y;
#X msg 226 235 x 1 y;
#X msg 226 135 55;
#X obj 201 263 list length;
#X floatatom 201 289 5 0 0 0 - - -, f 5;
#X text 18 24 number of elements in a list;
#X text 98 421 float;
#X text 170 467 - the symbol "length".;
#X text 98 467 symbol atom;
#X text 168 384 - any message type is accepted and converted to a list.
;
#X text 168 421 - [list length] outputs the number of elements in the
list.;
#X connect 9 0 16 0;
#X connect 10 0 16 0;
#X connect 11 0 16 0;
#X connect 12 0 16 0;
#X connect 13 0 16 0;
#X connect 14 0 16 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 102 453 pd length;
#X text 98 307 symbol atom;
#X text 98 322 float;
#N canvas 51 146 428 419 list_conversion_in_Pd 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [list] Conversion;
#X text 19 168 In brief:;
#X text 19 188 "list" -> bang;
#X text 19 208 "list 1" -> "float 1";
#X text 19 228 "list hello" -> "symbol hello";
#X text 19 37 Most objects in Pd handle zero- and one-element lists
in the following way:;
#X text 19 67 * an incoming zero-element list (i.e. \, a message consisting
onf the selector "list") is treated as a bang.;
#X text 19 97 * an incoming one-element list that contains a float
is treated as a float.;
#X obj 22 331 route list float;
#X obj 22 304 list;
#X obj 22 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 68 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 22 277 12;
#X text 55 277 implicit float-- same as "float 12";
#X text 55 304 output as "list 12";
#X floatatom 68 387 5 0 0 0 - - -, f 5;
#X text 130 331 [route] converts "list 12" to "float 12";
#X text 19 127 * an incoming one-element list that contains a symbol
atom is treated as a symbol.;
#X connect 9 0 11 0;
#X connect 9 1 12 0;
#X connect 9 1 16 0;
#X connect 10 0 9 0;
#X connect 13 0 10 0;
#X restore 241 586 pd list_conversion_in_Pd;
#X text 170 307 - (optional) if no creation argument is given \, or
if the first creation argument is a number \, [list] will behave like
[list append]. Otherwise \, one of the following symbols may be given
as arguments (see subpatches for more info):;
#X text 98 245 [list] family objects always output a list. See the
"list_conversion_in_Pd" subpatch below for how lists are interpreted
by other objects.;
#X text 98 514 depending on what the first creation argument is \,
other creation arguments may be specified.;
#X text 98 154 See subpatches under the heading "arguments" for more
details. With the exception of the right inlet of [list split] \, All
[list] objects will convert incoming non-list messages to lists (e.g.
\, "set 5" will become "list set 5"). A bang message is converted to
an empty list (i.e. \, "list") \, and "symbol foo" is converted to
"list foo".;
#X obj 4 638 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 180 475 cat - build a list by accumulating elements;
#N canvas 1 112 555 488 cat 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 304 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 387 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 396 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 313 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 363 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 314 anything;
#X obj 0 431 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 450 1);
#X floatatom 189 166 5 0 0 0 - - -, f 5;
#X msg 179 143 1 2 3;
#X msg 196 189 bang;
#X msg 170 120 4 5 6 and 7;
#X msg 128 51 4 5 6;
#X msg 158 98 four 5 6;
#X msg 144 74 list four 5 6;
#X text 98 397 list;
#X text 168 397 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 450 symbol atom;
#X obj 13 3 list cat;
#X text 18 24 append (concatenate) list to the previously entered list(s)
;
#X msg 203 225 clear;
#X obj 158 271 print cat;
#X obj 158 249 list cat;
#X text 98 364 clear;
#X text 178 364 - empties the stored list.;
#X text 178 314 - all input is converted to a list. The list is appended
to the list(s) previously entered in the left inlet \, and the resulting
list is sent to the outlet.;
#X text 170 450 - the symbol "cat".;
#X connect 9 0 23 0;
#X connect 10 0 23 0;
#X connect 11 0 23 0;
#X connect 12 0 23 0;
#X connect 13 0 23 0;
#X connect 14 0 23 0;
#X connect 15 0 23 0;
#X connect 21 0 23 1;
#X connect 23 0 22 0;
#X restore 102 475 pd cat;
#X connect 21 0 24 0;
#X connect 22 0 21 1;
#X connect 23 0 21 0;
#X connect 25 0 21 1;
#N canvas 428 60 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 log 3 12 0 18 -204280
-1 0;
#X obj 0 389 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 285 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 This help patch was updated for Pd
version 0.35 test 28 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 5 KEYWORDS control;
#X text 12 45 DESCRIPTION natural logarithm of a number;
#X text 12 65 INLET_0 float;
#X text 12 85 OUTLET_0 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 454 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 491 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 518 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 495 (none);
#N canvas 215 516 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 208 42 abs;
#X obj 236 42 sqrt;
#X obj 271 42 pow;
#X obj 56 75 cos~;
#X obj 88 75 osc~;
#X obj 22 75 expr;
#X obj 22 42 sin;
#X obj 48 42 cos;
#X obj 75 42 tan;
#X obj 108 42 atan;
#X obj 143 42 atan2;
#X text 7 1 [log] Related Objects;
#X obj 181 42 exp;
#X restore 101 597 pd Related_objects;
#X obj 78 398 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 397 float;
#X text 98 417 list;
#X text 98 462 float;
#X obj 78 463 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X floatatom 239 217 0 0 0 0 - - -;
#X floatatom 239 160 0 0 0 0 - - -;
#X text 94 274 [log] will output the natural logarithm (base E) of
a number. The value of zero will produce "-1000" which represents "negative
infinity".;
#X obj 239 190 log;
#X obj 515 9 log;
#X text 11 23 natural logarithm of a number;
#X text 168 417 - a list will be truncated \, and the first element
will be used as input.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 217 528 - binary arithmetic operators;
#X obj 98 528 pddp/pddplink operators-help.pd;
#X text 217 548 - relational and logical operators;
#X obj 98 548 pddp/pddplink otherbinops-help.pd;
#X obj 98 568 pddp/pddplink math-help.pd;
#X text 217 568 - higher math objects;
#X connect 15 0 17 0;
#X connect 17 0 14 0;
#N canvas 428 38 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 lop~ 3 12 0 18 -204280
-1 0;
#X obj 0 381 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 290 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.38. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal filter;
#X text 12 45 DESCRIPTION one-pole low pass filter;
#X text 12 65 INLET_0 signal clear;
#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 488 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 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X obj 78 390 cnv 17 3 37 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#N canvas 220 463 428 166 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 69 43 bp~;
#X obj 117 43 vcf~;
#X text 22 81 Raw Filters;
#X obj 73 108 rzero~;
#X obj 195 108 cpole~;
#X obj 24 108 rpole~;
#X obj 122 108 rzero_rev~;
#X obj 244 108 czero~;
#X obj 293 108 czero_rev~;
#X obj 22 43 hip~;
#X text 8 2 [lop~] Related Objects;
#X restore 101 597 pd Related_objects;
#X text 98 389 signal;
#X obj 78 497 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 497 signal;
#X obj 147 240 env~;
#X floatatom 147 263 0 0 0 0 - - -;
#X floatatom 180 185 0 0 0 0 - - -;
#X obj 88 240 env~;
#X floatatom 88 262 0 0 0 0 - - -;
#X floatatom 88 114 0 0 0 0 - - -;
#X obj 88 137 osc~ 100;
#X msg 147 161 clear;
#X text 168 389 - incoming audio signal.;
#X obj 78 432 cnv 17 3 45 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 431 float;
#X text 98 449 list;
#X text 98 409 clear;
#X obj 514 10 lop~;
#X text 133 112 <- scroll to change input frequency;
#X obj 147 213 lop~ 5;
#X text 84 291 Compare the strength of the original signal on the left
with that of the filtered signal on the right.;
#X text 11 23 one-pole low pass filter;
#X text 168 544 - initial rolloff frequency.;
#X text 168 409 - reinitialize internal state.;
#X text 168 431 - cutoff frequency in Hz.;
#X text 168 449 - a list to the right inlet is truncated \, and the
first element is used as the cutoff frequency.;
#X text 168 497 - output is the filtered audio signal.;
#X text 80 544 1) float;
#X text 191 240 [env~] gives the amplitude of the signal envelop in
dB.;
#X text 88 68 [lop~] is a one-pole low pass filter with a specified
rolloff frequency.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 479 51 pddp/dsp;
#X connect 12 0 13 0;
#X connect 14 0 27 1;
#X connect 15 0 16 0;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 18 0 27 0;
#X connect 19 0 27 0;
#X connect 27 0 12 0;
#N canvas 426 37 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header makefilename 3 12
0 18 -204280 -1 0;
#X obj 0 179 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 287 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 \, Hans-Christoph Steiner.
Jonathan Wilkes revised the patch to conform to the PDDP template for
Pd version 0.42.;
#X text 12 45 DESCRIPTION format a string with a variable field;
#X text 12 65 INLET_0 float symbol;
#X text 12 85 OUTLET_0 symbol;
#X text 12 165 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS control conversion symbol_op;
#X restore 500 597 pd META;
#X obj 0 319 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 356 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 479 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 212 443 428 187 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 7 1 [makefilename] Related Objects;
#X obj 21 42 symbol;
#X obj 71 42 int;
#X obj 102 42 float;
#X obj 152 42 openpanel;
#X obj 19 96 pddp/helplink zexy/makesymbol;
#X obj 19 116 pddp/helplink cyclone/sprintf;
#X obj 19 136 pddp/helplink cxc/ascseq;
#X text 19 74 Externals;
#X restore 101 597 pd Related_objects;
#X obj 78 188 cnv 17 3 120 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 187 float;
#X obj 78 328 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 468 11 makefilename;
#X floatatom 49 64 0 0 0 0 - - -;
#X text 81 143 numbered filenames;
#X symbolatom 49 122 0 0 0 0 - - -;
#X obj 49 91 makefilename soundfile%d.aif;
#X obj 304 102 symbol;
#X msg 304 54 dave;
#X msg 343 54 drums;
#X msg 400 54 Pd;
#X msg 437 55 cool;
#X obj 304 126 makefilename %s_PD.aif;
#X symbolatom 304 150 0 0 0 0 - - -;
#X text 168 187 - if a number (integer) is sent to the inlet \, the
argument should be written with a "%c" \, "%d" \, or "%X" which represents
the location of the incoming variable number in the outgoing symbol.
Floats will be converted to integers.;
#X text 98 237 symbol;
#X text 98 278 list;
#X text 98 327 symbol;
#X text 169 374 - this object generates symbols according to a format
string (the argument) \, for use as a series of filenames \, table
names \, etc. Variables for numbers can be specified by using "%s"
\, "%c" \, "%d" \, or "%X" in the string (see subpatch below). For
variable symbols \, use "%s". No checking is done. Each [makefilename]
object can have only one variable.;
#X text 168 237 - if a symbol is sent to the inlet \, the argument
should be written with a "%s" which represents the location of the
incoming variable symbol in the outgoing symbol.;
#N canvas 74 23 428 594 More_Info 0;
#X text 20 33 I believe that this object was developed first to allow
PD to generate sequential file names - perhaps to be used in conjunction
with [soundfiler] or [openpanel]. For example \, an audio loop recorder
might generate a continuous series of sound files to be saved on a
hard drive...like below:;
#X obj 23 127 f;
#X symbolatom 23 168 0 0 0 0 - - -;
#X obj 52 127 + 1;
#X obj 23 147 makefilename file-%d.aif;
#X obj 23 104 bng 18 250 50 0 empty empty start 22 9 1 12 -90049 -1
-1;
#X symbolatom 61 358 0 0 0 0 - - -;
#X obj 64 309 hsl 150 18 0 122 0 1 empty empty ASCII_range 2 9 1 12
-262131 -1 -1 6800 0;
#X floatatom 30 360 3 0 0 0 - - -, f 3;
#X text 19 514 - only one printf pattern can be used at once;
#X text 19 476 - This object does not provide advanced formatting and
parsing abilities. For example \, you cannot use spaces or odd characters
in the argument.;
#X text 19 567 - non-printable ASCII characters show up as a little
box.;
#X symbolatom 264 358 0 0 0 0 - - -;
#X obj 267 309 hsl 150 18 0 255 0 1 empty empty 0_to_FF 2 9 1 12 -262131
-1 -1 5100 0;
#X obj 264 338 makefilename hex=%X;
#X floatatom 233 360 3 0 0 0 - - -, f 3;
#X obj 61 338 makefilename ASCII=%c;
#X text 29 381 Watch out! ASCII characters 123 and 125 (curly braces)
lock up Pd. Also \, reserved characters that Pd uses show up with a
backslash in front of them (comma \, semi-colon \, and backslash).
;
#X text 19 530 - currently \, floats are not supported via the printf
%f pattern. You can only display the integer part of the float using
%d or %X.;
#X text 20 189 This file name could be used when saving the audio to
disk.;
#X text 20 251 The %c pattern allows you to convert ASCII numbers to
the respective character. The %X converts the decimal number to hexadecimal.
Both %c and %X only use integers. For floats \, everything to the right
of the decimal is discarded.;
#X obj 2 2 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [makefilename] Common Uses;
#X obj 2 216 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 8 216 Conversions;
#X obj 2 442 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 8 442 Limitations;
#X connect 1 0 3 0;
#X connect 1 0 4 0;
#X connect 3 0 1 1;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 7 0 16 0;
#X connect 7 0 8 0;
#X connect 13 0 14 0;
#X connect 13 0 15 0;
#X connect 14 0 12 0;
#X connect 16 0 6 0;
#X restore 100 488 pd More_Info;
#N canvas 105 144 428 318 all_possible_patterns 0;
#X text 33 86 %c;
#X text 110 86 character;
#X text 33 106 %d or %i;
#X text 110 106 signed decimal integer;
#X text 33 126 %e;
#X text 110 126 scientific notation using "e" character;
#X text 33 146 %E;
#X text 110 146 scientific notation using "e" character;
#X text 33 166 %f;
#X text 33 186 %o;
#X text 110 186 signed octal;
#X text 33 206 %s;
#X text 110 206 symbol;
#X text 33 226 %u;
#X text 110 226 unsigned integer;
#X text 33 246 %x;
#X text 110 246 unsigned hexadecimal in lowercase;
#X text 33 266 %X;
#X text 110 266 unsigned hexadecimal in CAPS;
#X text 33 286 %p;
#X text 110 286 unsigned hexadecimal in lowercase preceeded by "0x"
;
#X text 20 37 This is a listing of all possible printf patterns used
in Pd's [makefilename]:;
#X text 110 166 decimal floating point (currently broken);
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [makefilename] All Possible Patterns;
#X restore 100 456 pd all_possible_patterns;
#N canvas 80 12 428 594 spaces_and_multiple_variables 0;
#X obj 223 71 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 223 90 f;
#X symbolatom 223 135 0 0 0 0 - - -;
#X obj 256 90 + 1;
#X obj 223 112 makefilename I_am_%d_years_old.;
#X text 20 197 With careful planning \, multiple variables can be incorporated
using a stack of [makefilename]s. In the example below \, let's assume
that this tool is used to generate file names for an audio loop recorder
which operates 24 hours per day \, every day.;
#X obj 25 265 loadbang;
#X obj 25 305 metro 200;
#X obj 25 286 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 58 330 + 1;
#X obj 153 369 route 0 1 2 3 4 5 6;
#X obj 25 379 mod 24;
#X floatatom 25 404 5 0 0 0 - - -, f 5;
#X floatatom 25 354 0 0 0 0 - - -;
#X obj 25 330 f;
#X obj 47 430 sel 0;
#X obj 162 289 f;
#X obj 194 289 + 1;
#X obj 162 314 mod 7;
#X obj 162 342 pack f f;
#X obj 168 518 makefilename Monday_%d.wav;
#X symbolatom 29 568 0 0 0 0 - - -;
#X obj 248 394 makefilename Saturday_%d.wav;
#X obj 232 419 makefilename Friday_%d.wav;
#X obj 234 346 t b f;
#X obj 216 444 makefilename Thursday_%d.wav;
#X obj 200 469 makefilename Wednesday_%d.wav;
#X obj 184 494 makefilename Tuesday_%d.wav;
#X obj 153 542 makefilename Sunday_%d.wav;
#X text 65 402 hour of day;
#X text 63 355 total hours;
#X text 153 569 Crude...but effective.;
#X obj 25 480 s dayHour;
#X obj 47 455 s weekDay;
#X obj 162 266 r weekDay;
#X obj 234 320 r dayHour;
#X text 228 291 loop through weekdays;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [makefilename] Spaces and Multiple Variables;
#X symbolatom 22 115 0 0 0 0 - - -;
#X obj 22 93 makefilename one%ctwo;
#X msg 22 71 32;
#X text 51 70 ascii character 32 (space);
#X text 19 37 A symbol that includes a space will not be saved. An
underscore will often produce a tolerable compromise.;
#X obj 22 151 route symbol;
#X obj 22 172 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 72 115 this symbol won't load;
#X text 72 130 properly if saved.;
#X text 41 171 but it's a valid symbol;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 0 4 0;
#X connect 3 0 1 1;
#X connect 4 0 2 0;
#X connect 6 0 8 0;
#X connect 7 0 14 0;
#X connect 8 0 7 0;
#X connect 9 0 14 1;
#X connect 10 0 28 0;
#X connect 10 1 20 0;
#X connect 10 2 27 0;
#X connect 10 3 26 0;
#X connect 10 4 25 0;
#X connect 10 5 23 0;
#X connect 10 6 22 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 12 0 32 0;
#X connect 13 0 11 0;
#X connect 14 0 9 0;
#X connect 14 0 13 0;
#X connect 15 0 33 0;
#X connect 16 0 17 0;
#X connect 16 0 18 0;
#X connect 17 0 16 1;
#X connect 18 0 19 0;
#X connect 19 0 10 0;
#X connect 20 0 21 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 24 0 19 0;
#X connect 24 1 19 1;
#X connect 25 0 21 0;
#X connect 26 0 21 0;
#X connect 27 0 21 0;
#X connect 28 0 21 0;
#X connect 34 0 16 0;
#X connect 35 0 24 0;
#X connect 39 0 44 0;
#X connect 40 0 39 0;
#X connect 41 0 40 0;
#X connect 44 0 45 0;
#X restore 100 511 pd spaces_and_multiple_variables;
#N canvas 58 29 463 530 help_with_interfaces 0;
#X text 21 32 Building user interfaces in Pd is a difficult balance
between usability and performance. Pd is not winning any awards for
usability - let's face it: it's powerful \, it's cool \, and that's
the way we like it. You're not here because you want a colourful \,
bevelled interface...you want the raw power that object oriented languages
provide mixed with a few of the conveniences that a graphic environment
affords.;
#X obj 6 221 cnv 15 450 300 empty empty empty 20 12 0 14 -261681 -66577
0;
#X obj 34 331 tgl 15 0 s_dsp empty DSP 18 7 0 8 -262144 -1 -1 0 1;
#X obj 34 376 vsl 15 128 0 127 0 0 v_slider empty Volume 18 7 0 8 -262144
-1 -1 0 1;
#X obj 34 353 bng 15 250 50 0 b_panel empty Open_File 18 7 0 8 -262144
-1 -1;
#X obj 29 232 cnv 15 400 20 empty d_canvas DSP:OFF 20 12 0 8 -233017
-66577 0;
#X obj 29 254 cnv 15 400 20 empty f_canvas FILE_OPEN:/Users/hans/cvs/pure-data/doc/pddp/all_about_lists_vs_anythings.pd
20 12 0 8 -233017 -66577 0;
#X obj 29 276 cnv 15 400 20 empty v_canvas VOLUME:42/100 20 12 0 8
-233017 -66577 0;
#X text 176 313 The grey canvases above could;
#X text 178 335 be used like "status bars" to;
#X text 178 356 write relevant information to;
#X text 175 412 [makefilename] helps to format;
#X text 177 436 the information in a meaningful;
#X text 178 457 way.;
#X text 176 378 the screen.;
#N canvas 57 187 430 328 look_inside 0;
#X obj 199 14 r b_panel;
#X obj 235 166 r v_slider;
#X obj 36 236 s d_canvas;
#X obj 199 114 s f_canvas;
#X obj 235 263 s v_canvas;
#X obj 36 80 sel 0;
#X obj 71 152 symbol ON;
#X obj 36 128 symbol OFF;
#X obj 71 103 bang;
#X msg 36 210 label \$1;
#X obj 36 184 makefilename DSP:%s;
#X obj 36 13 r s_dsp;
#X msg 45 38 \; pd dsp \$1;
#X obj 199 40 openpanel;
#X obj 199 65 makefilename FILE_OPEN:%s;
#X msg 199 90 label \$1;
#X msg 235 240 label \$1;
#X obj 235 192 expr ($f1/128)*100;
#X obj 235 217 makefilename VOLUME:%d/100;
#X connect 0 0 13 0;
#X connect 1 0 17 0;
#X connect 5 0 7 0;
#X connect 5 1 8 0;
#X connect 6 0 10 0;
#X connect 7 0 10 0;
#X connect 8 0 6 0;
#X connect 9 0 2 0;
#X connect 10 0 9 0;
#X connect 11 0 5 0;
#X connect 11 0 12 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 3 0;
#X connect 16 0 4 0;
#X connect 17 0 18 0;
#X connect 18 0 16 0;
#X restore 29 302 pd look_inside;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [makefilename] Help with Interfaces;
#X text 21 137 However \, there are times when sacrifices must be made
in the area of performance to provide users with on-screen reporting
\, record keeping \, and sometimes even a few 'pleasantries'. Consider
the following examples - but always weigh the pros and cons when incorporating
these types of interfaces. Performance vs. Usability.;
#X restore 100 534 pd help_with_interfaces;
#X text 11 23 format a string with a variable field;
#X text 168 278 - if the first element of the list matches the variable
type used \, then the list will be truncated.;
#X text 168 327 - the output of [makefilename] is always a symbol.
;
#X text 80 374 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 572 pddp/pddplink all_about_symbol_construction.pd;
#X obj 98 554 pddp/pddplink ../1.manual/x3.htm -text Pd Manual Chapter
3.6 - doc/1.manual/x3.htm;
#X connect 12 0 15 0;
#X connect 15 0 14 0;
#X connect 16 0 21 0;
#X connect 17 0 16 0;
#X connect 18 0 16 0;
#X connect 19 0 16 0;
#X connect 20 0 16 0;
#X connect 21 0 22 0;
#N canvas 428 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 makenote 3 12 0
18 -204280 -1 0;
#X obj 0 281 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 265 494 367 META 0;
#X text 12 175 LIBRARY internal;
#X text 12 215 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 235 RELEASE_DATE 2009-06-12;
#X text 12 25 LICENSE SIBSD;
#X text 12 195 AUTHOR Miller Puckette;
#X text 12 255 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 control MIDI;
#X text 12 75 INLET_0 float list;
#X text 12 95 INLET_1 float;
#X text 12 115 INLET_2 float;
#X text 12 135 OUTLET_0 float;
#X text 12 155 OUTLET_1 float;
#X text 12 45 DESCRIPTION send note-on messages and schedule note-off
for later;
#X restore 500 597 pd META;
#X obj 0 443 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 508 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;
#N canvas 218 222 428 410 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 [makenote] Related Objects;
#X obj 74 80 ctlin;
#X obj 217 80 pgmin;
#X obj 24 80 bendin;
#X obj 79 107 touchin;
#X obj 261 80 polytouchin;
#X obj 118 80 midiin;
#X obj 23 107 sysexin;
#X obj 179 167 noteout;
#X obj 76 167 ctlout;
#X obj 24 167 bendout;
#X obj 366 167 touchout;
#X obj 280 167 polytouchout;
#X obj 123 167 midiout;
#X obj 231 167 pgmout;
#X obj 24 221 makenote;
#X text 21 198 MIDI note construction:;
#X text 21 140 MIDI output:;
#X text 21 57 MIDI input:;
#X obj 184 221 stripnote;
#X obj 168 80 notein;
#X text 181 198 MIDI note deconstruction:;
#X obj 24 33 stripnote;
#X text 21 265 Additional useful objects for MIDI processing (Maxlib
by Olaf Matthes);
#X text 20 344 Also \, from cyclone (alpha) by Krzysztof Czaja:;
#X text 21 246 Externals;
#X obj 21 295 pddp/helplink maxlib/pitch;
#X obj 21 310 pddp/helplink maxlib/score;
#X obj 21 325 pddp/helplink maxlib/chord;
#X obj 21 360 pddp/helplink cyclone/midiformat;
#X obj 21 375 pddp/helplink cyclone/midiparse;
#X obj 21 390 pddp/helplink cyclone/midiflush;
#X restore 101 597 pd Related_objects;
#X obj 78 290 cnv 17 3 95 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 289 float;
#X text 98 329 list;
#X text 98 451 float;
#X obj 78 452 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 391 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 390 float;
#X obj 486 11 makenote;
#X text 80 59 Makenote makes MIDI-style note-on/note-off pairs \, which
you can use for MIDI output or to drive note-like processes within
Pd.;
#X floatatom 276 163 0 0 0 0 - - -;
#X floatatom 276 142 0 0 0 0 - - -;
#X msg 194 119 60;
#X obj 183 218 print x1;
#X obj 276 218 print x2;
#X floatatom 183 97 0 0 0 0 - - -;
#X msg 234 123 60.5;
#X text 302 142 "velocity";
#X text 311 166 duration in milliseconds;
#X obj 183 191 makenote 3.2 500;
#X text 168 289 - numbers to the left inlet are "pitches" (MIDI pitch
numbers) which may be integers or floating point numbers (for microtonal
pitches).;
#X msg 130 121 12 2;
#X text 11 23 send note-on messages and schedule note-off for later
;
#X text 168 329 - a list with three elements (pitch \, velocity \,
duration) will be distributed to the three inlets. You can also send
a two-element list to use the last duration supplied to [makenote].
Lists with more than three elements are truncated.;
#X obj 78 415 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 414 float;
#X text 158 544 - (optional) initial duration.;
#X text 158 529 - (optional) initial velocity.;
#X text 98 474 float;
#X obj 78 475 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 168 474 - velocity (in milliseconds). After the specified duration
\, a zero is output.;
#X text 167 390 - velocity.;
#X text 167 414 - duration (in milliseconds).;
#X text 80 529 1) float;
#X text 80 544 2) float;
#X text 168 451 - pitch. (It is output again after the specified duration.)
;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 17 0 26 2;
#X connect 18 0 26 1;
#X connect 19 0 26 0;
#X connect 22 0 26 0;
#X connect 23 0 26 0;
#X connect 26 0 20 0;
#X connect 26 1 21 0;
#X connect 28 0 26 0;
#N canvas 406 25 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 (math_functions)
3 12 0 18 -204280 -1 0;
#X obj 0 315 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 488 281 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 This document was updated for Pd
version 0.35 test 28 by Dave Sabine 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.;
#X text 12 65 DESCRIPTION higher math in Pd;
#X text 12 5 NAME sin cos tan atan atan2 exp log abs sqrt pow;
#X text 12 145 RELEASE_DATE 1997;
#X text 12 25 KEYWORDS control trigonometry;
#X restore 500 597 pd META;
#X obj 0 438 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 474 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 522 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 219 515 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 (math) Related Objects;
#X obj 22 42 osc~;
#X obj 58 42 cos~;
#X obj 96 42 exp~;
#X obj 134 42 log~;
#X obj 172 42 abs~;
#X obj 210 42 sqrt~;
#X obj 254 42 pow~;
#X restore 102 598 pd Related_objects;
#X obj 78 324 cnv 17 3 60 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 323 float;
#X text 98 342 list;
#X text 98 446 float;
#X obj 78 447 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 11 23 higher math in Pd;
#X obj 249 12 sin;
#X obj 275 12 cos;
#X obj 301 12 tan;
#X obj 328 12 atan;
#X obj 361 12 atan2;
#X obj 401 12 exp;
#X obj 429 12 log;
#X obj 456 12 abs;
#X obj 484 12 sqrt;
#X obj 519 12 pow;
#X obj 72 117 sin;
#X floatatom 72 91 5 0 0 0 - - -, f 5;
#X floatatom 72 144 5 0 0 0 - - -, f 5;
#X text 168 323 - the incoming value;
#X text 168 342 - a list will be truncated.;
#X text 168 446 - the outgoing value.;
#X text 98 478 The [pow] object accepts one float argument to initialize
the right inlet. All other math functions listed here take no arguments.
;
#X text 217 541 - binary arithmetic operators;
#X obj 98 541 pddp/pddplink operators-help.pd;
#X text 217 561 - relational and logical operators;
#X obj 98 561 pddp/pddplink otherbinops-help.pd;
#X text 98 359 (The [pow] object takes a bang \, which will output
the previous value.);
#X text 97 393 (Note: The [atan2] and [pow] objects have a right inlet.
See their respective help patches (links above) for more info.);
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X floatatom 142 91 5 0 0 0 - - -, f 5;
#X floatatom 142 144 5 0 0 0 - - -, f 5;
#X floatatom 212 91 5 0 0 0 - - -, f 5;
#X floatatom 212 144 5 0 0 0 - - -, f 5;
#X floatatom 282 91 5 0 0 0 - - -, f 5;
#X floatatom 282 144 5 0 0 0 - - -, f 5;
#X floatatom 352 91 5 0 0 0 - - -, f 5;
#X floatatom 352 144 5 0 0 0 - - -, f 5;
#X floatatom 72 201 5 0 0 0 - - -, f 5;
#X floatatom 72 254 5 0 0 0 - - -, f 5;
#X floatatom 142 201 5 0 0 0 - - -, f 5;
#X floatatom 142 254 5 0 0 0 - - -, f 5;
#X floatatom 212 201 5 0 0 0 - - -, f 5;
#X floatatom 212 254 5 0 0 0 - - -, f 5;
#X floatatom 282 201 5 0 0 0 - - -, f 5;
#X floatatom 282 254 5 0 0 0 - - -, f 5;
#X floatatom 352 201 5 0 0 0 - - -, f 5;
#X floatatom 352 254 5 0 0 0 - - -, f 5;
#X obj 142 117 cos;
#X obj 212 117 tan;
#X obj 282 117 atan;
#X obj 352 117 atan2;
#X obj 72 227 exp;
#X obj 142 227 log;
#X obj 212 227 abs;
#X obj 282 227 sqrt;
#X obj 352 227 pow;
#X floatatom 392 201 5 0 0 0 - - -, f 5;
#X floatatom 392 91 5 0 0 0 - - -, f 5;
#X floatatom 442 201 5 0 0 0 - - -, f 5;
#X floatatom 442 254 5 0 0 0 - - -, f 5;
#X obj 442 227 wrap;
#X connect 24 0 26 0;
#X connect 25 0 24 0;
#X connect 38 0 56 0;
#X connect 40 0 57 0;
#X connect 42 0 58 0;
#X connect 44 0 59 0;
#X connect 46 0 60 0;
#X connect 48 0 61 0;
#X connect 50 0 62 0;
#X connect 52 0 63 0;
#X connect 54 0 64 0;
#X connect 56 0 39 0;
#X connect 57 0 41 0;
#X connect 58 0 43 0;
#X connect 59 0 45 0;
#X connect 60 0 47 0;
#X connect 61 0 49 0;
#X connect 62 0 51 0;
#X connect 63 0 53 0;
#X connect 64 0 55 0;
#X connect 65 0 64 1;
#X connect 66 0 59 1;
#X connect 67 0 69 0;
#X connect 69 0 68 0;
#N canvas 420 26 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 message 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 485 287 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 35 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd version 0.39. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 75 INLET_0 anything set add add2 addcomma addsemi adddollar
adddollsym;
#X text 12 105 OUTLET_0 anything;
#X text 12 55 DESCRIPTION clickable message box;
#X text 12 5 KEYWORDS control GUI nonlocal symbol_op list_op anything_op
bang_op;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 334 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 385 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 555 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 219 520 428 109 Related_objects 0;
#X obj 116 43 list;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 12 3;
#X text 40 2 Related Objects;
#X obj 22 43 symbol;
#X obj 72 43 float;
#X restore 102 597 pd Related_objects;
#X obj 78 198 cnv 17 3 127 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 343 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X msg 514 11;
#X msg 101 141 walk the dog;
#X obj 101 164 print;
#N canvas 75 14 431 608 dollarsign_variables 0;
#X obj 23 156 print;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 12 2;
#X text 40 2 Dollarsign Variables in Message Boxes;
#X msg 23 131 pitch \$3;
#X text 115 106 a list with three numbers;
#X msg 23 106 list 24 48 72;
#X text 83 131 replace "\$3" with the third element;
#X text 84 145 of the incoming message ("72");
#X msg 23 236 24 48 72;
#X text 83 236 implicit list with three numbers;
#X msg 23 259 pitch \$3;
#X obj 23 281 print;
#X text 83 259 third element is still "72";
#X text 20 303 It's important to note that you can't access the selector
of the message using the dollarsign variables. (In the patch above
\, "list" is the selector \, "24" is the first element \, and so on.)
Keep this in mind when using custom selectors \, as in the following:
;
#X msg 23 373 melody 67 67 67 63;
#X text 153 374 In this message \, "melody" is the selector \,;
#X text 153 389 and there are four elements (not five).;
#X msg 23 407 pitch \$4;
#X obj 23 490 print;
#X text 85 407 replace "\$4" with the fourth element ("63");
#X msg 41 459 pitch \$5;
#X msg 41 433 melody 65 65 65 62;
#X text 163 438 this will output an error--;
#X text 163 452 there is no 5th element!;
#X text 20 180 Remember that the selectors "list" and "float" can be
omitted when the first atom in a message is a float. For example \,
the following still works exactly as the patch above:;
#X text 21 514 Multiple dollarsign variables may be used together:
;
#X obj 25 576 print;
#X msg 25 533 22 8 1791;
#X msg 25 555 \$1-\$2-\$3.wav;
#X text 20 38 You can use "dollarsign variables" to make variable messages.
Just use a dollarsign followed by a number-- "\$1" \, "\$2" \, etc.
The numbers (starting from one) specify which element of the incoming
message should replace the variable in the outgoing message.;
#X connect 4 0 0 0;
#X connect 6 0 4 0;
#X connect 9 0 11 0;
#X connect 11 0 12 0;
#X connect 15 0 18 0;
#X connect 18 0 19 0;
#X connect 21 0 19 0;
#X connect 22 0 21 0;
#X connect 28 0 29 0;
#X connect 29 0 27 0;
#X restore 171 457 pd dollarsign_variables;
#X text 11 23 clickable message box;
#X text 98 197 bang;
#X text 98 211 float;
#X text 98 225 symbol;
#X text 98 239 pointer;
#X text 98 254 anything;
#X text 168 197 - these message types will cause the message box to
send its message as output.;
#N canvas 50 89 428 405 messages_for_changing_the_content_of_a_message_box
0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 12 3;
#X text 40 2 Changing Messages;
#X msg 23 76 set dog;
#X msg 43 150 add monkey;
#X msg 48 195 add2 bird;
#X msg 37 124 set;
#X msg 31 99 set 1 2 3 skidoo;
#X text 71 124 "set" with no arguments clears it;
#X text 85 77 "set" to set contents (numbers and/or symbols);
#X msg 52 229 addcomma;
#X msg 56 255 addsemi;
#X msg 60 312 adddollsym 4-foo;
#X msg 59 282 adddollar 3;
#X text 118 229 add a comma;
#X text 118 254 add a semicolon;
#X text 137 282 add a dollar-sign argument;
#X text 167 312 add a dollar-sign-plus-symbol argument;
#X text 20 37 The following messages may be used to change contents
of messages boxes:;
#X text 118 165 plus a terminating semicolon;
#X text 117 151 "add" to add numbers and/or symbols \,;
#X text 118 209 the terminating semicolon;
#X text 117 195 "add2" to add contents without;
#X msg 23 357;
#X connect 3 0 23 0;
#X connect 4 0 23 0;
#X connect 5 0 23 0;
#X connect 6 0 23 0;
#X connect 7 0 23 0;
#X connect 10 0 23 0;
#X connect 11 0 23 0;
#X connect 12 0 23 0;
#X connect 13 0 23 0;
#X restore 101 308 pd messages_for_changing_the_content_of_a_message_box
;
#X text 98 342 anything;
#X text 168 342 - a message box will output its message (replacing
any dollar-sign variables with the relevant elements of the incoming
message).;
#X text 100 476 comma;
#X text 100 513 semicolon;
#N canvas 88 49 428 453 Using_Commas_in_Message_Boxes 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 12 3;
#X text 40 2 About Commas and Semicolons;
#X obj 23 136 list length;
#X floatatom 23 164 5 0 0 3 No_of_atoms - -, f 5;
#X obj 23 94 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 23 114 list append one \, 3;
#X text 141 115 This list actually contains three atoms:;
#X text 141 135 1) The symbol "one";
#X text 141 165 3) The float "3";
#X text 20 37 Even though they are not be separated by whitespace \,
semicolons and commas are actually atoms in Pd-- just like float- and
symbol-atoms. You can see this clearly in the example below:;
#X text 43 92 <- Click to test;
#X msg 22 281 Because I do not hope to turn again \, Because I do not
hope;
#X obj 22 303 print from_Ash_Wednesday;
#X text 20 210 In message boxes \, commas and semicolons are used to
separate one message from another. For example \, there are two messages
in the message box below. Each is sent separately to the [print] object
(in the order they were written):;
#X msg 23 376 1 \, 2 \, 3;
#X obj 23 398 + 10;
#X obj 23 422 print sum;
#X text 20 329 Notice that the comma itself is not included as part
of the message-- it simply tells Pd where one message ends \, and the
next begins.;
#X text 141 150 2) A comma;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 12 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 172 495 pd Using_Commas_in_Message_Boxes;
#N canvas 82 29 428 495 Using_Semicolons_In_Message_Boxes 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 12 3;
#X obj 24 362 print;
#X obj 228 291 receive my-receiver-name;
#X floatatom 228 315 0 0 0 0 - - -;
#X floatatom 227 362 0 0 0 0 - - -;
#X obj 227 338 receive another-receiver;
#X obj 23 191 receive msg2r;
#X obj 23 217 print after_semi;
#X obj 23 159 print before_semi;
#X msg 24 291 \; my-receiver-name 858 \; another-receiver -45;
#X text 40 2 About Semicolons and Nonlocal Sends;
#X msg 23 118 this msg comes out the outlet \; msg2r this msg comes
out of [receive msg2r];
#X msg 201 441 \; pd dsp 1;
#X msg 25 441 dsp 1;
#X obj 25 468 s dsp;
#X text 85 451 is the same as;
#X text 22 396 For messages to a single named-object \, however \,
it is probably clearer to use a message box and a [send] object \,
but you can judge for yourself:;
#X text 20 37 Like commas \, semicolons may be used to send multiple
messages from a single message box. When using a semicolon \, however
\, the message following the semicolon is re-routed to a named object
\, such as [receive] \, an array \, or a canvas. The named object is
specified by the selector of the message ("msg2r" in this example):
;
#X text 22 246 To send messages to named objects without first sending
a message to the outlet \, put an initial semicolon in the message
box:;
#X connect 3 0 4 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 10 0 2 0;
#X connect 12 0 9 0;
#X connect 14 0 15 0;
#X restore 172 532 pd Using_Semicolons_In_Message_Boxes;
#X text 168 254 - other messages will cause the message box to send
its message as output \, except for the "special messages" that are
used to change the content of a message box. Click the subpatch below
to view these "special messages":;
#X text 168 476 - a comma may be used to separate multiple messages:
;
#X text 178 513 - a semicolon may be used to send messages nonlocally:
;
#X text 168 402 - message boxes can contain any number of float and/or
symbol arguments. Message boxes may also contain special "dollar-sign
variables" \, used to grab data from an incoming message. Click the
subpatch below for more info:;
#X text 98 97 Clicking on a message also sends it \, so you can use
messsage boxes as push buttons. For instance \, click here while watching
the printout window:;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 100 559 pddp/pddplink all_about_messages.pd -text all_about_messages
;
#X obj 100 574 pddp/pddplink all_about_symbol_construction.pd -text
all_about_symbol_construction;
#X obj 286 559 pddp/pddplink ../2.control.examples/04.messages.pd -text
doc/2.control.examples/04.messages.pd;
#X obj 286 574 pddp/pddplink ../2.control.examples/10.more.messages.pd
-text doc/2.control.examples/10.more.messages.pd;
#X text 331 10 To create \, click <Control-2>;
#X text 98 57 Message boxes hold one or more messages. Anytime the
message box receives any message at all \, the messages in the box
are all sent to their destinations.;
#X text 188 141 <- message box;
#X text 141 164 <- object box (notice the different border);
#X text 81 402 n) symbol atom;
#X text 100 417 float;
#N canvas 423 174 432 262 \$0_variable 0;
#X obj 24 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X msg 35 2;
#X text 63 2 \$0 Variable in Message Boxes;
#X msg 40 92 \$0;
#X text 39 38 Special case available in pd-l2ork is the \$0 variable
which resolves into canvas instance number \, just like placing such
a variable inside a regular object.;
#X floatatom 40 114 5 0 0 0 - - -, f 5;
#X text 68 92 <--click on this message;
#X obj 242 92 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 242 112 \$0;
#X floatatom 242 134 5 0 0 0 - - -, f 5;
#X text 261 92 <--compare to this;
#X floatatom 40 178 5 0 0 0 - - -, f 5;
#X msg 40 199 \$1 \$0;
#X obj 40 221 print;
#X text 80 199 <--works in any order;
#X connect 3 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X restore 318 457 pd \$0_variable;
#X connect 11 0 12 0;
#N canvas 426 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 metro 3 12 0 18
-204280 -1 0;
#X obj 0 327 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 465 262 507 361 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 28 by Dave Sabine as part of a project called pddp
proposed to build comprehensive documentation for Pd. Jonathan Wilkes
revised the patch to conform to the PDDP template for Pd version 0.42.
;
#X text 12 45 DESCRIPTION send a bang periodically ala metronome;
#X text 12 105 OUTLET_0 bang;
#X text 12 85 INLET_1 float;
#X text 12 65 INLET_0 float bang list stop;
#X text 12 5 KEYWORDS control time bang_op;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 483 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 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 208 379 428 249 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 [metro] Related Objects;
#X text 20 101 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 150 The best places to find information about Pd's libraries
is:;
#X text 19 172 www.puredata.org and click on "Downloads" then "Software"
;
#X text 20 188 or;
#X text 21 202 iem.kug.ac.at/pdb/;
#X obj 24 35 pddp/helplink mjlib/metroplus;
#X obj 24 55 pddp/helplink iemlib/t3_metro;
#X obj 24 75 pddp/helplink maxlib/pulse;
#X restore 102 597 pd Related_objects;
#X obj 78 336 cnv 17 3 75 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 335 float;
#X text 98 395 list;
#X obj 78 492 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 55 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 416 float;
#X obj 503 11 metro;
#X obj 109 224 metro 500;
#X floatatom 160 201 4 0 0 0 - - -, f 4;
#X msg 109 125 1;
#X text 177 124 nonzero number or "bang" to start;
#X msg 150 158 0;
#X msg 141 125 bang;
#X msg 182 158 stop;
#X obj 109 247 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 219 158 zero or "stop" to stop;
#X text 168 335 - sending a nonzero number to the left inlet starts
the metronome. Sending a zero stops it.;
#X text 98 361 bang;
#X text 98 378 stop;
#X text 98 446 list;
#X text 167 446 - a list to the right inlet will be truncated to the
first item.;
#X text 143 247 The metro object sends a series of bangs at a constant
rate.;
#X text 98 491 bang;
#X text 168 544 - (optional) sets the initial rate in milliseconds.
;
#X text 168 361 - start the metronome.;
#X text 168 378 - the "stop" message turns off the metronome.;
#X text 167 416 - the right inlet sets the interval in milliseconds
between each "bang" that is sent to the outlet of [metro].;
#X text 168 491 - [metro] outputs a bang at a constant rate \, defined
by the creation argument or a value sent to its right inlet.;
#X text 80 544 1) float;
#X text 11 23 send a bang periodically ala metronome;
#X text 168 395 - a list will be distributed to the inlets of [metro].
;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 15 0 22 0;
#X connect 16 0 15 1;
#X connect 17 0 15 0;
#X connect 19 0 15 0;
#X connect 20 0 15 0;
#X connect 21 0 15 0;
#N canvas 430 38 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 (MIDI) 3 12 0 18
-204280 -1 0;
#X obj 0 288 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 489 291 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 65 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 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 45 KEYWORDS control MIDI;
#X text 12 85 DESCRIPTION MIDI input/output objects;
#X text 12 5 NAME bendin ctlin midiin notein pgmin polytouchin sysexin
touchin bendout ctlout midiout noteout pgmout polytouchout touchout
;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 495 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 538 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;
#X text 98 542 (none);
#N canvas 217 519 428 109 Related_objects 0;
#X obj 62 43 makenote;
#X obj 22 43 poly;
#X obj 123 43 list;
#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 (MIDI) Related Objects;
#X restore 102 598 pd Related_objects;
#X obj 79 297 cnv 17 3 130 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 296 float;
#X text 98 353 list;
#X text 98 503 float;
#X obj 79 504 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 79 440 cnv 17 3 45 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 439 float;
#X text 98 383 flush;
#X text 98 413 clear;
#X text 168 383 - output all values one by one \, in the order they
were received \, and clear the collection.;
#X text 168 503 - upon sending the "flush" message to the left inlet
\, [bag] will output each value in the order it was received.;
#X text 168 353 - a (value \, flag) pair is distributed to the two
inlets. Lists with more than two elements will be truncated.;
#X text 168 413 - clear the collection.;
#X text 167 439 - a float to the right inlet sets the "flag": if zero
\, values to the left inlet will not be added to the collection. If
nonzero \, values to the right inlet will be added to the collection.
;
#X text 168 296 - a float to the left inlet will be added to the collection
if the last value the right inlet received was nonzero. If the last
value the right inlet received was zero \, the float sent to the right
inlet will be removed from the collection.;
#X text 11 23 MIDI input/output objects;
#X obj 86 86 bendin;
#X obj 86 123 bendout;
#X obj 131 86 ctlin;
#X obj 137 123 ctlout;
#X obj 215 86 notein;
#X obj 233 123 noteout;
#X obj 260 86 pgmin;
#X obj 284 123 pgmout;
#X obj 425 86 touchin;
#X obj 299 86 polytouchin;
#X obj 170 86 midiin;
#X obj 374 86 sysexin;
#X obj 182 123 midiout;
#X obj 329 123 polytouchout;
#X obj 410 123 touchout;
#X text 10 86 MIDI input:;
#X text 10 123 MIDI output:;
#X obj 320 185 pddp/pddplink touchin-help.pd;
#X obj 243 185 touchin;
#X obj 243 210 polytouchin;
#X obj 320 210 pddp/pddplink polytouchin-help.pd;
#X obj 243 235 touchout;
#X obj 320 235 pddp/pddplink touchout-help.pd;
#X obj 243 260 polytouchout;
#X obj 320 260 pddp/pddplink polytouchout-help.pd;
#X obj 80 185 midiin;
#X obj 80 235 sysexin;
#X obj 80 210 midiout;
#X obj 135 185 pddp/pddplink midiin-help.pd;
#X obj 135 235 pddp/pddplink sysexin-help.pd;
#X obj 135 210 pddp/pddplink midiout-help.pd;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 77 151 Right-click the objects above and choose "Help" \, or
follow the links below for help on these objects:;
#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 moses 3 12 0 18
-204280 -1 0;
#X obj 0 302 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 245 494 384 META 0;
#X text 12 145 LIBRARY internal;
#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 205 RELEASE_DATE 2009-06-12;
#X text 12 25 LICENSE SIBSD;
#X text 12 165 AUTHOR Miller Puckette;
#X text 12 225 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 26 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 5 KEYWORDS control filter;
#X text 12 45 DESCRIPTION part a stream of numbers;
#X text 12 65 INLET_0 float list;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 float;
#X text 12 125 OUTLET_1 float;
#X restore 500 597 pd META;
#X obj 0 410 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 498 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 539 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 220 367 428 256 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 [moses] Related Objects;
#X text 19 168 The best places to find information about Pd's libraries
is:;
#X text 19 190 www.puredata.org and click on "Downloads" then "Software"
;
#X text 20 206 or;
#X text 19 221 iem.kug.ac.at/pdb/;
#X text 20 119 Externals 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 obj 22 42 list split;
#X text 20 80 Externals;
#X obj 20 98 pddp/helplink cyclone/split;
#X restore 102 597 pd Related_objects;
#X obj 78 311 cnv 17 3 65 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 310 float;
#X text 98 350 list;
#X text 98 418 float;
#X obj 78 419 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 382 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 381 float;
#X obj 506 11 moses;
#X floatatom 68 143 4 0 0 0 - - -, f 4;
#X floatatom 124 142 4 0 0 0 - - -, f 4;
#X floatatom 68 196 4 0 0 0 - - -, f 4;
#X floatatom 121 196 4 0 0 0 - - -, f 4;
#X text 65 66 Moses takes numbers and outputs them at left if they're
less than a control value \, and at right if they're greater or equal
to it. The creation argument initializes the control value (10 in this
example) and the right inlet changes it.;
#N canvas 103 360 428 202 More_info 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 146 moses 0;
#X floatatom 22 170 5 0 0 0 - - -, f 5;
#X floatatom 65 170 5 0 0 0 - - -, f 5;
#X floatatom 22 124 5 0 0 0 - - -, f 5;
#X text 20 38 One way to think of [moses] is as a filter. For the following
example \, imagine that [moses] works as a low pass and high pass filter
simoultaneously -- for non-audio signals. Below you will see that negative
numbers will pass through the left outlet while positive numbers will
pass through the right outlet.;
#X text 8 2 [moses] More Info;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 4 0 1 0;
#X restore 102 548 pd More_info;
#X text 167 381 - a float to the right inlet sets the control value.
;
#X text 98 453 float;
#X obj 78 454 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 168 453 - incoming values (to the left inlet) will pass at
the right outlet if they are greater than or equal to the control value.
;
#X obj 68 169 moses 10;
#X text 224 179 The control value may be a float or integer. Try shift-scrolling:
;
#X floatatom 327 221 5 0 0 0 - - -, f 5;
#X floatatom 327 267 5 0 0 0 - - -, f 5;
#X obj 327 244 moses 1.5;
#X floatatom 378 267 5 0 0 0 - - -, f 5;
#X text 11 23 part a stream of numbers;
#X text 168 350 - a two element list is distributed to the two inlets.
Lists with more than two elements will be truncated.;
#X text 168 516 - (optional) initializes the control value.;
#X text 168 418 - incoming values (to the left inlet) will pass at
the left outlet if they are less than the control value.;
#X text 81 516 1) float;
#X text 168 310 - if the float the left inlet is less than the control
value \, it passes at the left inlet. If it is greater than or equal
to the control value it passes at the right inlet.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 100 568 pddp/pddplink ../2.control.examples/18.conditional.pd
-text doc/2.control.examples/18.conditional.pd;
#X connect 16 0 26 0;
#X connect 17 0 26 1;
#X connect 26 0 18 0;
#X connect 26 1 19 0;
#X connect 28 0 30 0;
#X connect 30 0 29 0;
#X connect 30 1 31 0;
#N canvas 432 34 555 662 10;
#N canvas 93 78 450 511 let's-play-pong! 0;
#X obj 148 128 cnv 15 100 25 empty \$0-score Score:0 5 12 0 14 -233017
-66577 0;
#X obj 14 29 cnv 5 5 60 \$0-ps \$0-pr empty 20 12 0 14 -1 -66577 0
;
#X msg 257 112 delta 0 \$1;
#X msg 257 87 -5;
#X obj 68 48 tgl 16 0 empty empty Go! 19 8 0 10 -4034 -1 -1 0 1;
#X obj 337 158 r \$0-ps;
#X obj 337 180 unpack;
#X obj 370 202 v py;
#X obj 68 117 t b b b;
#X msg 107 164 \; \$1-br get_pos \; \$1-pr get_pos \;;
#X obj 425 6 cnv 5 5 500 empty empty empty 20 12 0 14 -1 -66577 0;
#X obj 257 158 r \$0-bs;
#X obj 290 202 v by;
#X obj 68 447 pack;
#X msg 145 340 1;
#X msg 178 340 -1;
#X obj 68 491 s \$0-br;
#X obj 87 297 sel 0 1 2 3 4 5;
#X msg 101 361 1;
#N canvas 574 158 450 300 drift 0;
#X obj 55 40 inlet;
#X obj 136 40 inlet;
#X obj 205 45 inlet;
#X obj 55 117 f;
#X obj 93 142 mod;
#X obj 55 164 sel 1;
#X obj 55 231 f 1;
#X obj 55 266 outlet;
#X msg 90 231 0;
#X obj 136 61 b;
#X obj 136 88 random 8;
#X obj 136 115 sel 0;
#X msg 130 137 1e+37;
#X obj 205 155 t a;
#X floatatom 13 147 5 0 0 0 - - -, f 5;
#X obj 93 118 + 1;
#X connect 0 0 3 0;
#X connect 1 0 9 0;
#X connect 2 0 13 0;
#X connect 3 0 5 0;
#X connect 3 0 14 0;
#X connect 3 0 15 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 1 8 0;
#X connect 6 0 7 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 1 4 1;
#X connect 12 0 4 1;
#X connect 13 0 6 1;
#X connect 15 0 4 0;
#X restore 95 427 pd drift;
#X obj 68 405 t a b;
#X obj 68 383 f 1;
#X msg 134 18 10 SLOW;
#X msg 134 35 7 MEDIUM;
#X obj 257 43 spigot;
#X obj 77 71 s \$0-k;
#X obj 310 10 r \$0-k;
#N canvas 0 0 450 300 score 0;
#X obj 84 59 inlet;
#X obj 84 113 f;
#X obj 120 113 + 1;
#X obj 84 86 b;
#X msg 84 152 label Score:\$1;
#X obj 84 179 s \$0-score;
#X obj 165 51 sel 0;
#X obj 165 78 0;
#X obj 210 92 loadbang;
#X msg 210 114 0;
#X obj 165 24 r play;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 6 0 7 0;
#X connect 7 0 1 1;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 10 0 6 0;
#X restore 101 386 pd score;
#X obj 68 95 metro 10;
#N canvas 0 0 450 300 once 0;
#X obj 26 21 inlet;
#X obj 26 102 outlet;
#X obj 26 75 t a b;
#X msg 89 48 0;
#X obj 26 48 spigot 1;
#X connect 0 0 4 0;
#X connect 2 0 1 0;
#X connect 2 1 3 0;
#X connect 3 0 4 1;
#X connect 4 0 2 0;
#X restore 310 32 pd once;
#X obj 257 65 select 97 122 32;
#X msg 336 89 1;
#X obj 87 277 t a;
#X obj 256 442 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 256 439 a = up \; z = down \; <space> = replay;
#X text 216 318 0 - die at left wall \; 1 - richochet off left wall
\; 2 - die at right wall (not yet) \; 3 - richochet off right wall
\; 4 - richochet off top \; 5 - richochet of bottom \;;
#X obj 68 18 r play;
#X obj 336 111 s play;
#X msg 87 319 0;
#X obj 257 202 v bx;
#X obj 337 202 v px;
#X obj 257 180 unpack;
#X obj 257 134 s \$0-pr;
#X msg 294 87 5;
#X msg 134 52 4 FAST;
#X obj 107 139 f \$0;
#X msg 130 361 -1;
#X msg 68 469 delta \$1 \$2;
#X obj 87 341 s play;
#N canvas 528 152 450 386 sfx 0;
#X obj 21 169 noise~;
#X obj 22 201 *~;
#X obj 102 176 vline~;
#X obj 23 249 +~;
#X obj 174 146 delread~ \$0-b;
#X obj 36 278 delwrite~ \$0-b 500;
#X obj 22 302 *~ 0.1;
#X obj 23 330 dac~;
#X obj 135 120 del;
#X msg 102 120 1;
#X msg 135 145 0;
#X obj 174 120 * 10;
#X obj 175 176 *~ 0.8;
#X msg 174 81 2;
#X obj 117 9 inlet;
#X obj 174 54 change;
#X obj 117 31 sel -1 0 2;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 3 0 5 0;
#X connect 3 0 6 0;
#X connect 4 0 12 0;
#X connect 6 0 7 0;
#X connect 6 0 7 1;
#X connect 8 0 10 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
#X connect 11 0 4 0;
#X connect 12 0 3 1;
#X connect 13 0 9 0;
#X connect 13 0 8 0;
#X connect 13 0 11 0;
#X connect 14 0 16 0;
#X connect 15 0 13 0;
#X connect 16 3 15 0;
#X restore 211 294 pd sfx;
#X obj 257 19 key 1;
#X msg 134 69 1.5 ???;
#X obj 87 225 expr if(bx<=20 \, py-10<=by && py+60>=by \, -1) \; if
(bx>=415 \, 3 \, -1) \; if (by<=0 \, 4 \, if (by>=500 \, 5 \, -1))
;
#X obj 71 51 cnv 10 10 10 \$0-bs \$0-br empty 20 12 0 14 -1 -66577
0;
#X connect 2 0 42 0;
#X connect 3 0 2 0;
#X connect 4 0 25 0;
#X connect 4 0 28 0;
#X connect 5 0 6 0;
#X connect 6 0 40 0;
#X connect 6 1 7 0;
#X connect 8 0 21 0;
#X connect 8 1 52 0;
#X connect 8 2 45 0;
#X connect 11 0 41 0;
#X connect 13 0 47 0;
#X connect 14 0 19 2;
#X connect 15 0 19 2;
#X connect 17 0 38 0;
#X connect 17 1 18 0;
#X connect 17 2 38 0;
#X connect 17 3 46 0;
#X connect 17 4 14 0;
#X connect 17 5 15 0;
#X connect 18 0 19 1;
#X connect 18 0 21 1;
#X connect 18 0 27 0;
#X connect 19 0 13 1;
#X connect 20 0 13 0;
#X connect 20 1 19 0;
#X connect 21 0 20 0;
#X connect 22 0 28 1;
#X connect 23 0 28 1;
#X connect 24 0 30 0;
#X connect 26 0 29 0;
#X connect 28 0 8 0;
#X connect 29 0 24 1;
#X connect 30 0 3 0;
#X connect 30 1 43 0;
#X connect 30 2 31 0;
#X connect 31 0 37 0;
#X connect 32 0 17 0;
#X connect 32 0 49 0;
#X connect 36 0 4 0;
#X connect 38 0 48 0;
#X connect 41 0 39 0;
#X connect 41 1 12 0;
#X connect 43 0 2 0;
#X connect 44 0 28 1;
#X connect 45 0 9 0;
#X connect 46 0 19 1;
#X connect 46 0 21 1;
#X connect 47 0 16 0;
#X connect 50 0 24 0;
#X connect 51 0 28 1;
#X connect 52 0 32 0;
#X connect 52 1 32 0;
#X connect 52 2 32 0;
#X restore 136 312 pd let's-play-pong!;
#X obj 0 639 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 my_canvas 3 12 0
18 -204280 -1 0;
#X obj 0 352 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 284 494 344 META 0;
#X text 12 85 LIBRARY internal;
#X text 12 45 LICENSE SIBSD;
#X text 12 105 AUTHOR Thomas Musil;
#X text 12 125 WEBSITE;
#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
to conform to the PDDP template for Pd version 0.42.;
#X text 12 65 DESCRIPTION gui-rectangle;
#X text 12 5 ALIAS cnv;
#X text 12 145 RELEASE_DATE 2002;
#X text 12 25 KEYWORDS control GUI nonlocal;
#X restore 500 641 pd META;
#X obj 0 430 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 219 521 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 [cnv] Related Objects;
#X obj 22 43 drawpolygon;
#X obj 112 43 filledpolygon;
#X obj 22 73 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
#X restore 102 641 pd Related_objects;
#X text 11 23 gui-rectangle;
#X text 420 10 [my_canvas] or [cnv];
#X text 98 356 (none);
#X text 98 435 (none);
#X text 98 374 See the following subpatch for messages that change
the gui-properties of [cnv]:;
#N canvas 80 25 428 604 Changing_GUI_Properties 0;
#X obj 27 393 unpack 0 0;
#X text 12 301 get position on canvas;
#X msg 13 109 size \$1;
#X obj 13 72 nbx 3 14 8 200 0 0 empty \$0-dim empty 0 -8 0 12 -262144
-1 -1 15 256 0;
#X obj 13 133 s cnv_rcv;
#N canvas 366 206 174 259 flash-time 0;
#X obj 68 180 pack;
#X obj 103 149 t b a;
#X obj 68 205 outlet;
#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty
0 -8 0 12 -262144 -1 -1 100 256 0;
#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty
0 -8 0 12 -262144 -1 -1 60 256 0;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 89 59 pd flash-time;
#X text 86 38 visible size;
#X text 138 61 1.width;
#X text 138 81 2.height;
#X msg 89 109 vis_size \$1 \$2;
#X obj 89 133 s cnv_rcv;
#X text 195 38 change send name;
#X text 310 38 change receive name;
#X obj 196 134 s cnv_rcv;
#X obj 310 134 s cnv_rcv;
#X msg 196 59 send cnv5a_snd;
#X msg 310 59 receive cnv1a_rcv;
#X obj 320 109 s cnv1a_rcv;
#X msg 320 85 receive cnv_rcv;
#X text 132 173 label position;
#X text 274 173 font properties;
#X text 13 173 label;
#X msg 13 194 label new-label;
#X msg 134 245 label_pos \$1 \$2;
#X msg 276 245 label_font \$1 \$2;
#X text 325 197 1.font(0-2);
#X text 325 218 2.height;
#X text 183 196 1.x-offset;
#X text 183 217 2.y-offset;
#N canvas 366 206 174 259 flash-time 0;
#X obj 68 180 pack;
#X obj 103 149 t b a;
#X obj 68 205 outlet;
#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
0 -8 0 12 -262144 -1 -1 20 256 0;
#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
0 -8 0 12 -262144 -1 -1 12 256 0;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 134 195 pd flash-time;
#N canvas 366 206 174 259 flash-time 0;
#X obj 68 180 pack;
#X obj 103 149 t b a;
#X obj 68 205 outlet;
#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
-262144 -1 -1 0 256 0;
#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
0 -8 0 12 -262144 -1 -1 14 256 0;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 276 195 pd flash-time;
#X text 164 461 delta;
#X text 12 461 position;
#X msg 13 558 pos \$1 \$2;
#X msg 165 558 delta \$1 \$2;
#X text 165 301 preset-colors;
#X text 264 301 RGB-colors;
#N canvas 364 205 169 292 flash-time 0;
#X obj 69 196 t b a;
#X obj 33 262 outlet;
#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
-1 -1 10 256 0;
#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
-262144 -1 -1 12 256 0;
#X obj 33 237 pack 0 0;
#X connect 0 0 4 0;
#X connect 0 1 4 1;
#X connect 2 0 4 0;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 165 323 pd flash-time;
#N canvas 0 0 306 317 flash-time 0;
#X obj 96 521 outlet;
#X obj 162 230 t b f;
#X obj 96 268 +;
#X obj 96 293 t b f;
#X obj 96 324 +;
#X obj 19 208 * -65536;
#X obj 96 208 * -256;
#X obj 162 208 * -1;
#X obj 96 355 - 1;
#X obj 96 385 list prepend 0;
#X obj 115 456 t b a;
#X obj 104 124 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
#X text 120 120 1.bg;
#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
-258113 -1 0 256 0;
#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
-13381 -1 0 256 0;
#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
-4160 -1 0 256 0;
#X text 120 137 2.label;
#X obj 96 410 route 0 1;
#X obj 96 497 pack 0 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X connect 7 0 1 0;
#X connect 8 0 9 0;
#X connect 9 0 17 0;
#X connect 10 0 18 0;
#X connect 10 1 18 1;
#X connect 11 0 9 1;
#X connect 13 0 5 0;
#X connect 14 0 6 0;
#X connect 15 0 7 0;
#X connect 17 0 18 0;
#X connect 17 1 10 0;
#X connect 18 0 0 0;
#X coords 0 -1 1 1 102 58 2 100 100;
#X restore 265 323 pd flash-time;
#X obj 165 534 list;
#X obj 165 483 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 214 325 1.bg;
#X text 61 482 1.x-position;
#X text 61 504 2.y-position;
#X text 244 482 1.x-delta;
#X text 244 504 2.y-delta;
#N canvas 366 206 174 259 flash-time 0;
#X obj 68 180 pack;
#X obj 103 149 t b a;
#X obj 68 205 outlet;
#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
-8 0 12 -262144 -1 -1 310 256 0;
#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
-8 0 12 -262144 -1 -1 500 256 0;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 13 483 pd flash-time;
#N canvas 366 206 174 259 flash-time 0;
#X obj 68 180 pack;
#X obj 103 149 t b a;
#X obj 68 205 outlet;
#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
0 12 -262144 -1 -1 0 256 0;
#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
0 12 -262144 -1 -1 0 256 0;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X coords 0 -1 1 1 48 42 2 100 100;
#X restore 194 483 pd flash-time;
#X msg 27 322 get_pos;
#X obj 27 347 s cnv_rcv;
#X obj 165 433 s cnv_rcv;
#X obj 13 583 s cnv_rcv;
#X obj 165 583 s cnv_rcv;
#X obj 276 270 s cnv_rcv;
#X obj 134 270 s cnv_rcv;
#X obj 13 270 s cnv_rcv;
#X text 214 345 2.label;
#N canvas 375 166 157 260 init 0;
#X obj 16 11 loadbang;
#X obj 16 42 f \$0;
#X msg 16 72 \; \$1-width 100 \; \$1-height 60 \; \$1-xpos 310 \; \$1-ypos
500 \; \$1-xlabel 20 \; \$1-ylabel 12 \; \$1-dim 15 \; \$1-font 0 \;
\$1-font-size 14 \; \$1-bg 10 \; \$1-label 12;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 265 408 pd init;
#X obj 310 500 cnv 15 100 60 cnv_snd cnv_rcv my_canvas 20 12 0 14 -233017
-33289 0;
#X obj 27 370 r cnv_snd;
#X msg 165 408 color \$1 \$2;
#X obj 27 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12
-262144 -1 -1 0 256 0;
#X obj 90 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12
-262144 -1 -1 0 256 0;
#X msg 25 245 label my_canvas;
#X msg 204 109 send cnv_snd;
#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 [cnv] Changing Properties through Messages;
#X text 12 51 size;
#X text 12 38 selectable;
#X text 14 417 x;
#X text 76 418 y;
#X connect 0 0 61 0;
#X connect 0 1 62 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 5 0 9 0;
#X connect 9 0 10 0;
#X connect 15 0 13 0;
#X connect 16 0 14 0;
#X connect 18 0 17 0;
#X connect 22 0 55 0;
#X connect 23 0 54 0;
#X connect 24 0 53 0;
#X connect 29 0 23 0;
#X connect 30 0 24 0;
#X connect 33 0 51 0;
#X connect 34 0 52 0;
#X connect 37 0 60 0;
#X connect 38 0 60 0;
#X connect 39 0 34 0;
#X connect 40 0 39 0;
#X connect 46 0 33 0;
#X connect 47 0 39 1;
#X connect 48 0 49 0;
#X connect 59 0 0 0;
#X connect 60 0 50 0;
#X connect 63 0 55 0;
#X connect 64 0 13 0;
#X restore 170 407 pd Changing_GUI_Properties;
#N canvas 103 143 428 369 canvas-creation-arguments 0;
#X msg 23 43 canvas: cnv selectableSize xSize ySize sendName recieveName
Label labelXOff labelYOff Font# fontSize bgColor lblColor 0;
#X text 20 80 Canvas can be called with 13 creation arguments. These
are not "optional" - all parameters must be filled or the canvas will
not instantiate correctly.;
#X text 20 125 The function of the final "0" is unknown to me (it is
found in the textual entry for a canvas object in a .pd file) but can
be safely left off without ill effects.;
#X text 20 167 For example \, click the msg-box to dynamically create
a cnv:;
#X obj 23 237 s pd-canvas-creation-arguments;
#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 [cnv] Creation Arguments and Dynamic Patching;
#X msg 23 195 obj 110 260 cnv 15 200 100 myCanvas myCanvasR Alcyone
75 12 2 14 -261441 12;
#X connect 7 0 4 0;
#X restore 171 518 pd canvas-creation-arguments;
#X text 168 463 - creating a [cnv] without any arguments will set default
values for all gui-properties. See the subpatch below to learn how
to dynamically instantiate a [cnv] object with custom properties:;
#X floatatom 338 318 4 0 0 0 - - -, f 4;
#X floatatom 382 318 4 0 0 0 - - -, f 4;
#X text 349 334 x;
#X text 393 334 y;
#X obj 435 170 metro 100;
#X obj 435 150 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1
1;
#X obj 338 270 r from_K1;
#X floatatom 435 318 4 0 0 0 - - -, f 4;
#X floatatom 479 318 4 0 0 0 - - -, f 4;
#X text 445 334 x;
#X text 490 334 y;
#X obj 435 270 r from_K2;
#N canvas 8 328 313 315 room 0;
#X obj 6 7 cnv 15 300 300 empty empty type...ctrl+e 100 140 2 17 -33289
-24198 0;
#X obj 26 27 cnv 1 1 264 empty empty move_K1_and_K2 65 160 2 17 -166441
-24198 0;
#X obj 287 30 cnv 1 1 261 empty empty empty 20 12 2 20 -99865 -66577
0;
#X obj 27 27 cnv 1 260 1 empty empty empty 20 12 2 20 -166441 -66577
0;
#X obj 28 291 cnv 1 260 1 empty empty empty 20 12 2 20 -99865 -66577
0;
#X obj 38 40 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526
0;
#X obj 251 255 cnv 25 25 25 from_K2 to_K K2 1 13 2 14 -225280 -1109
0;
#X restore 128 171 pd room;
#X obj 338 294 unpack;
#X obj 435 294 unpack;
#X text 17 147 Click the subwindow below to use a cnv as a control
surface:;
#X obj 20 61 cnv 15 100 60 empty empty label 20 12 0 14 -233017 -66577
0;
#X text 128 58 Colored rectangle with a label. Right-click in the top-left
corner of the gray rectangle to the left and click "properties" to
change the object's appearance.;
#X text 127 110 The blue rectangle at the top of each help patch is
a [cnv] \, as are the horizontal dividers below.;
#X text 98 463 13;
#X text 207 564 IEM KUG;
#X text 182 576 graz \, austria 2002;
#X msg 435 192 get_pos;
#X obj 435 214 send to_K;
#X obj 4 641 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#N canvas 405 89 483 507 (subpatch) 0;
#X msg 144 296 bang;
#X msg 144 321 1 30;
#X obj 144 409 line~;
#X obj 202 301 del 30;
#X obj 61 433 *~;
#X obj 62 485 dac~;
#X obj 62 359 osc~ 880;
#X obj 62 403 clip~ -1 1;
#X obj 35 220 list split 1;
#X obj 15 311 list;
#X obj 35 244 t b a;
#X obj 62 334 mtof;
#X obj 62 457 *~ 0.07;
#X obj 207 128 metro 50;
#X obj 207 202 s \$0-cnv;
#X obj 207 106 0;
#X obj 207 84 del 3000;
#X obj 310 170 f;
#X obj 342 170 + 1;
#X obj 35 12 r \$0-bng;
#X obj 106 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 310 197 div 13;
#X msg 310 314 color \$1 0;
#X obj 242 105 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 279 86 sel 0;
#X obj 279 107 -1;
#X obj 279 130 t a;
#X obj 207 155 f -1;
#X msg 207 180 delta 0 \$1;
#X obj 35 44 spigot 1;
#X obj 35 76 t a b;
#X obj 96 55 0;
#X obj 130 55 1;
#X obj 310 220 sel 3 4;
#X msg 371 246 5 \$1;
#X obj 371 268 -;
#X msg 310 246 1;
#X obj 340 245 f 2;
#X obj 383 170 sel 1;
#X msg 377 198 0;
#X msg 411 199 2;
#X obj 62 311 + 68;
#X obj 15 284 del 170;
#X text 167 14 IT'S A SECRET TO EVERYBODY.;
#X obj 56 106 loadbang;
#X obj 35 174 list;
#X obj 114 217 s \$0-randomize;
#X obj 71 149 r \$0-new-secret;
#X msg 56 128 7 1 0 8 12 16;
#X obj 35 197 list prepend 11 10;
#X obj 62 381 *~ 1.4;
#X msg 202 323 0 400;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 4 1;
#X connect 3 0 51 0;
#X connect 4 0 12 0;
#X connect 6 0 50 0;
#X connect 7 0 4 0;
#X connect 8 0 10 0;
#X connect 8 1 9 1;
#X connect 9 0 8 0;
#X connect 10 0 42 0;
#X connect 10 1 0 0;
#X connect 10 1 41 0;
#X connect 11 0 6 0;
#X connect 12 0 5 0;
#X connect 12 0 5 1;
#X connect 13 0 17 0;
#X connect 13 0 27 0;
#X connect 15 0 13 0;
#X connect 15 0 17 1;
#X connect 16 0 15 0;
#X connect 16 0 23 0;
#X connect 16 0 32 0;
#X connect 17 0 18 0;
#X connect 17 0 21 0;
#X connect 18 0 17 1;
#X connect 19 0 29 0;
#X connect 20 0 29 0;
#X connect 21 0 33 0;
#X connect 22 0 14 0;
#X connect 23 0 24 0;
#X connect 23 0 38 0;
#X connect 24 0 25 0;
#X connect 24 1 26 0;
#X connect 25 0 26 0;
#X connect 26 0 27 1;
#X connect 27 0 28 0;
#X connect 28 0 14 0;
#X connect 29 0 30 0;
#X connect 30 0 13 0;
#X connect 30 0 16 0;
#X connect 30 0 45 0;
#X connect 30 1 31 0;
#X connect 31 0 29 1;
#X connect 32 0 29 1;
#X connect 33 0 36 0;
#X connect 33 1 37 0;
#X connect 33 2 34 0;
#X connect 34 0 35 0;
#X connect 35 0 22 0;
#X connect 36 0 22 0;
#X connect 37 0 22 0;
#X connect 38 0 39 0;
#X connect 38 1 40 0;
#X connect 39 0 37 1;
#X connect 40 0 37 1;
#X connect 41 0 11 0;
#X connect 42 0 9 0;
#X connect 44 0 48 0;
#X connect 45 0 46 0;
#X connect 45 0 49 0;
#X connect 47 0 45 1;
#X connect 48 0 45 1;
#X connect 49 0 8 0;
#X connect 50 0 7 0;
#X connect 51 0 2 0;
#X coords 0 -1 1 1 15 15 2 100 100;
#X restore 71 330 pd;
#X obj 169 553 bng 14 250 50 0 \$0-bng empty empty 4 7 0 12 -262144
-262144 -1;
#X text 66 275 You can also use a white [cnv] to;
#X text 66 290 conceal parts of a patch (use;
#X text 66 305 with care);
#X text 185 551 musil@iem.kug.ac.at;
#X text 171 550 c;
#X obj 63 267 cnv 15 210 70 empty \$0-cnv empty 20 12 0 14 -262144
-262144 0;
#X obj 69 329 cnv 15 17 17 empty empty empty 20 12 0 14 -262144 -66577
0;
#X text 244 191 send it a "get_pos" message ->;
#X text 244 176 To get a cnv position \,;
#X text 325 551 Note: [cnv] is not to be confused;
#X text 325 564 with the Pd canvas \, or [pd] \,;
#X text 325 577 [table] \, etc.;
#X text 66 233 enable the edit mode and select the area below to see
how you can use cnv to hide things;
#N canvas 597 433 432 210 using_canvas_to_hide_objects_that_capture_mouse_clicks
0;
#X obj 100 47 tgl 43 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 81 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 88 2 Using [cnv] to hide objects that capture mouse clicks
;
#X obj 100 47 cnv 15 43 43 empty empty CLICK 6 22 0 10 -247832 -66577
0;
#X obj 100 109 tgl 21 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 167 46 Try clicking on the [cnv] object to the left. Notice
how the [cnv] on the left seemingly exhibits toggle-like behavior.
In fact \, it is not the [cnv] that is responsible for toggle changing
its state. Rather \, it is another toggle button that is hidden under
the [cnv] object that does this. This is possible bacause unlike any
other iemgui objects \, [cnv] does not capture runtime clicks and
instead passes them to objects below it.;
#X connect 0 0 4 0;
#X restore 169 608 pd using_canvas_to_hide_objects_that_capture_mouse_clicks
;
#X connect 21 0 39 0;
#X connect 22 0 21 0;
#X connect 23 0 30 0;
#X connect 28 0 31 0;
#X connect 30 0 17 0;
#X connect 30 1 18 0;
#X connect 31 0 24 0;
#X connect 31 1 25 0;
#X connect 39 0 40 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 namecanvas 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 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.40. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION attach a canvas to a name;
#X text 12 5 KEYWORDS control canvas_op;
#X text 12 125 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 478 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 505 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 568 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 219 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 [namecanvas] Related Objects;
#X obj 19 43 pddp/helplink iemguts/sendcanvas;
#X restore 102 597 pd Related_objects;
#X obj 477 11 namecanvas;
#X obj 120 153 namecanvas \$0-bonzo;
#X obj 120 210 s \$0-bonzo;
#X text 98 454 (none);
#X text 98 482 (none);
#X obj 120 366 s pd-namecanvas-help.pd;
#X text 11 23 attach a canvas to a name;
#X text 168 523 - sets the name to associate with this canvas. Any
messages sent to this name will be forwarded to the canvas containing
this [namecanvas] object.;
#X msg 120 186 msg 50 50 Hi there. This works locally.;
#X msg 120 338 msg 50 70 This works globally.;
#X text 78 523 1) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 120 240 If you open another instance of this help patch \,
you'll see that clicking the message box above will create an object
on the canvas where you click.;
#X text 119 294 The following is similar \, but it will create an object
in each "namecanvas-help.pd" patch that you have open:;
#X connect 16 0 10 0;
#X connect 17 0 13 0;
#N canvas 428 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 netreceive 3 12
0 18 -204280 -1 0;
#X obj 0 311 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 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 v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 5 KEYWORDS control network;
#X text 12 45 DESCRIPTION listen for incoming messages from a network
;
#X text 12 65 OUTLET_0 anything;
#X text 12 85 OUTLET_1 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 338 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 419 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;
#N canvas 216 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 [netreceive] Related Objects;
#X obj 16 35 netsend;
#X obj 70 35 disis_netsend;
#X obj 160 35 disis_netreceive;
#X restore 102 598 pd Related_objects;
#X obj 78 347 cnv 17 3 25 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 80 439 1) float;
#X obj 476 10 netreceive;
#X floatatom 226 82 0 0 0 0 - - -;
#X obj 139 145 netreceive 3001 1;
#X obj 139 82 print tcp;
#X obj 139 166 print udp;
#N canvas 57 331 428 261 About_netreceive 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 [netreceive] More Info;
#X text 21 38 The [netreceive] object opens a socket for TCP ("stream")
or UDP ("datagram") network reception on a specified port. If using
TCP \, an outlet gives you the number of [netsend] objects (or other
compatible clients) have opened connections here.;
#X text 20 170 There are some possibilities for intercommunication
with other programs... see the help for [netsend].;
#X text 19 104 Incoming network messages appear at the left inlet of
the [netreceive] object. (They used to be received by [receive] objects
\, in which case it was up to the sender to select which one). To test
the object you can send messages from the [netsend] help window.;
#X text 18 208 SECURITY ALERT: the port that netreceive opens has no
access restrictions \, so anyone can connect to it and send messages.
;
#X restore 102 567 pd About_netreceive;
#X text 11 23 listen for incoming messages from a network;
#X text 168 454 - (optional) 0 for TCP \, nonzero for UDP. (Default
is TCP.);
#X text 168 439 - (optional) port number.;
#X text 80 454 2) float;
#X text 168 469 - if you set the third argument to the word "old" \,
everything sent to the specified port is received into the global message
space. This is the original behavior of [netreceive]. This can be VERY
INSECURE since it gives someone full access to your computer \, allowing
them to do anything that Pd can via the network.;
#X text 98 270 Old behavior: [netreceive 4567 0 old] (see argument
3 below);
#X text 80 469 3) symbol atom;
#X text 98 346 anything;
#X obj 78 383 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 382 float;
#X text 264 60 <- TCP \, port 3000;
#X text 261 144 <- UDP \, port 3001;
#X text 98 205 You can send messages from the [netsend] objects in
the help patch for [netsend].;
#X text 168 346 - any message received by this [netreceive] object
will be sent to the left outlet.;
#X text 98 314 (none);
#X obj 139 61 netreceive 3000;
#X text 168 382 - when using TCP \, the [netreceive] object has a right
inlet which shows the number of open connections.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 12 0 14 0;
#X connect 31 0 13 0;
#X connect 31 1 11 0;
#N canvas 398 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 netsend 3 12 0 18
-204280 -1 0;
#X obj 0 348 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 46 242 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 v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 5 KEYWORDS control network;
#X text 12 45 DESCRIPTION send Pd messages over a network;
#X text 12 65 INLET_0 connect disconnect send;
#X text 12 85 OUTLET_0 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 478 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 515 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;
#N canvas 54 478 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 [netsend] Related Objects;
#X obj 11 34 netreceive;
#X obj 83 34 disis_netsend;
#X obj 173 34 disis_netreceive;
#X restore 102 598 pd Related_objects;
#X obj 78 357 cnv 17 3 110 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 486 float;
#X obj 78 487 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 11 23 send Pd messages over a network;
#X obj 445 20 pddp/pddplink http://wiki.puredata.info/en/netsend -text
pdpedia: netsend;
#X obj 473 3 netsend;
#X obj 15 238 netsend;
#X msg 15 79 connect localhost 3000;
#X msg 23 213 send foo \$1;
#X floatatom 23 186 0 0 0 0 - - -;
#X msg 15 160 disconnect;
#X msg 186 213 send foo \$1;
#X floatatom 186 186 0 0 0 0 - - -;
#X msg 178 160 disconnect;
#X obj 178 238 netsend 1;
#X msg 178 79 connect localhost 3001;
#X floatatom 15 265 0 0 0 0 - - -;
#X floatatom 178 265 0 0 0 0 - - -;
#X text 66 58 TCP;
#X text 253 55 UDP;
#X text 325 79 Connect to "localhost" port 3000/3001;
#X text 253 161 Close the connection;
#X text 215 188 Send messages to "foo" on remote machine;
#X text 12 294 Outlet is nonzero if connection is open \, zero otherwise.
;
#X msg 15 106 connect molloy 3000;
#X msg 178 106 connect molloy 3001;
#X msg 15 133 connect bug 3000;
#X msg 178 133 connect bug 3000;
#X text 98 356 connect;
#X text 98 413 disconnect;
#X text 98 443 send;
#X text 168 486 - nonzero if the connection is open \, zero otherwise.
;
#N canvas 55 339 428 233 About_netsend 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 [netsend] More Info;
#X text 20 39 The [netsend] object connects to another machine over
the network for sending TCP ("stream") or UDP ("datagram") messages.
An outlet reports whether the connection is open or not. A connection
request should specify the name or IP address of the other host and
the port number. There should be a [netreceive] object on the remote
host with a matching port number.;
#X text 20 148 The Linux version of Pd comes with "pdsend" and "pdreceive"
standalone programs. These haven't been tested in Windows yet (but
the source is included in the Pd distribution).;
#X restore 102 567 pd About_netsend;
#X text 80 535 1) float;
#X text 168 535 - (optional) 0 for TCP \, nonzero for UDP. (Default
is TCP.);
#X text 168 413 - disconnect from the remote machine. When it is disconnected
\, a "0" is sent to the outlet.;
#X text 168 443 - after successfully connecting \, use the "send" message
to forward data to the remote machine.;
#X text 168 356 - use the "connect" message to connect to the specified
remote machine-- providing its name or IP address-- on the specified
port (e.g. \, "connect localhost 3000"). A "1" is output if the connection
is successful.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 14 0 24 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 16 0;
#X connect 18 0 14 0;
#X connect 19 0 22 0;
#X connect 20 0 19 0;
#X connect 21 0 22 0;
#X connect 22 0 25 0;
#X connect 23 0 22 0;
#X connect 32 0 14 0;
#X connect 33 0 22 0;
#X connect 34 0 14 0;
#X connect 35 0 22 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 noise~ 3 12 0 18
-204280 -1 0;
#X obj 0 466 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 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 45 DESCRIPTION uniformly distributed white noise;
#X text 12 65 INLET_0;
#X text 12 85 OUTLET_0 signal;
#X text 12 165 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS signal random;
#X restore 500 597 pd META;
#X obj 0 503 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 216 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 [noise~] Related Objects;
#X obj 22 43 random;
#X restore 102 597 pd Related_objects;
#X obj 78 475 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 512 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 500 10 noise~;
#X floatatom 218 284 4 0 0 0 - - -, f 4;
#X obj 218 217 noise~;
#X obj 284 256 print~;
#X obj 218 256 env~ 4096;
#X text 216 192 the output range is -1 to 1...;
#X obj 152 256 snapshot~;
#X floatatom 152 283 0 0 0 0 - - -;
#X msg 152 229 bang;
#X msg 284 229 bang;
#X text 168 474 - the inlet to [noise~] is not used.;
#X text 98 511 signal;
#X text 11 23 uniformly distributed white noise;
#X text 98 474 (inactive);
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 480 53 pddp/dsp;
#X connect 13 0 14 0;
#X connect 13 0 15 0;
#X connect 13 0 17 0;
#X connect 15 0 12 0;
#X connect 17 0 18 0;
#X connect 19 0 17 0;
#X connect 20 0 14 0;