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 3938 deletions
#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 432 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 (math_functions)
3 12 0 18 -204280 -1 0;
#X obj 0 325 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 448 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 484 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 532 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 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 334 cnv 17 3 60 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 333 float;
#X text 98 352 list;
#X text 98 456 float;
#X obj 78 457 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 text 123 139 For individual help patches \, follow the links below:
;
#X obj 252 87 sin;
#X floatatom 252 61 5 0 0 0 - - -, f 5;
#X floatatom 252 114 5 0 0 0 - - -, f 5;
#X text 168 333 - the incoming value;
#X text 168 352 - a list will be truncated.;
#X obj 124 171 sin;
#X obj 124 201 cos;
#X obj 124 231 tan;
#X obj 124 261 atan;
#X obj 124 291 atan2;
#X obj 314 171 exp;
#X obj 314 201 log;
#X obj 314 231 abs;
#X obj 314 261 sqrt;
#X obj 314 291 pow;
#X obj 169 171 pddp/pddplink sin-help.pd;
#X obj 169 201 pddp/pddplink cos-help.pd;
#X obj 169 231 pddp/pddplink tan-help.pd;
#X obj 169 261 pddp/pddplink atan-help.pd;
#X obj 169 291 pddp/pddplink atan2-help.pd;
#X obj 359 171 pddp/pddplink exp-help.pd;
#X obj 359 201 pddp/pddplink log-help.pd;
#X obj 359 231 pddp/pddplink abs-help.pd;
#X obj 359 261 pddp/pddplink sqrt-help.pd;
#X obj 359 291 pddp/pddplink pow-help.pd;
#X text 168 456 - the outgoing value.;
#X text 98 488 The [pow] object accepts one float argument to initialize
the right inlet. All other math functions listed here take no arguments.
;
#X text 217 551 - binary arithmetic operators;
#X obj 98 551 pddp/pddplink operators-help.pd;
#X text 217 571 - relational and logical operators;
#X obj 98 571 pddp/pddplink otherbinops-help.pd;
#X text 98 369 (The [pow] object takes a bang \, which will output
the previous value.);
#X text 97 403 (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 connect 25 0 27 0;
#X connect 26 0 25 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;
#N canvas 433 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 nbx 3 12 0 18 -204280
-1 0;
#X obj 0 260 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 490 290 494 344 META 0;
#X text 12 155 LIBRARY internal;
#X text 12 65 LICENSE SIBSD;
#X text 12 175 AUTHOR Thomas Musil;
#X text 12 195 WEBSITE;
#X text 12 235 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
to conform to the PDDP template for Pd version 0.42.;
#X text 12 45 KEYWORDS control storage GUI nonlocal;
#X text 12 85 DESCRIPTION gui-number box;
#X text 12 5 NAME nbx;
#X text 12 25 ALIAS my_numbox;
#X text 12 135 OUTLET_0 float;
#X text 12 105 INLET_0 float bang set size range log init log_height
send receive label label_pos label_font color pos delta;
#X text 12 215 RELEASE_DATE 2002;
#X restore 500 597 pd META;
#X obj 0 425 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 462 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 547 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 219 507 428 128 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 [nbx] Related Objects;
#X floatatom 22 43 5 0 0 0 - - -, f 5;
#X obj 62 43 float;
#X obj 106 43 int;
#X obj 20 90 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
#X text 18 66 All iem-gui objects:;
#X restore 102 597 pd Related_objects;
#X obj 78 269 cnv 17 3 140 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 268 float;
#X text 98 338 list;
#X text 98 433 float;
#X obj 78 434 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X floatatom 28 175 6 0 0 0 - - -, f 6;
#X msg 57 94 set \$1;
#X floatatom 48 49 6 0 0 0 - - -, f 6;
#X obj 28 199 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
#X obj 28 49 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
#X floatatom 57 71 4 0 0 0 - - -, f 4;
#X floatatom 108 49 6 0 0 0 - - -, f 6;
#X floatatom 366 48 7 0 0 0 - - -, f 7;
#X obj 241 159 ftom;
#X floatatom 241 183 4 0 0 0 - - -, f 4;
#X floatatom 287 159 9 0 0 0 - - -, f 9;
#X floatatom 366 120 9 0 0 0 - - -, f 9;
#X floatatom 241 63 4 0 0 0 - - -, f 4;
#X obj 241 85 mtof;
#X text 104 151 (0.01 pixels);
#X msg 108 71 set \$1;
#X text 106 120 shift-click & drag;
#X text 107 135 for fine-tuning;
#X obj 77 199 print;
#N canvas 133 180 290 126 once 0;
#X obj 38 24 inlet;
#X obj 38 80 outlet;
#X obj 38 53 spigot 1;
#X msg 102 53 0;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X restore 77 175 pd once;
#X obj 108 93 s foo13_rcv;
#X obj 366 71 s goo14_rcv;
#X obj 366 96 r goo14_snd;
#X obj 28 135 nbx 6 15 -1e+37 1e+37 0 0 foo13_snd foo13_rcv empty 45
7 0 10 -225280 -1109 -1 0 256 0;
#X obj 241 128 nbx 5 18 55 3520 1 0 goo14_snd goo14_rcv log.freq. 10
-10 0 14 -261234 -159808 -90881 55 72 0;
#X text 363 157 and receive names. Right-;
#X text 363 172 click and choose;
#X text 362 141 [nbx] has settable send;
#X obj 466 48 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256 0;
#X text 168 268 - a float to the left inlet will be displayed \, stored
\, and sent to the outlet.;
#X text 168 338 - a list will be truncated to the first item.;
#X text 98 311 set;
#X text 168 311 - sending a set message followed by a value (e.g. \,
"set 14") will display and store the value without outputting it.;
#X text 97 360 see the following subpatch for messages that change
the gui-properties of [nbx]:;
#N canvas 49 27 446 599 Changing_GUI_Properties 0;
#X text 17 152 log height;
#X text 340 24 no init;
#X msg 350 94 init 1;
#X msg 340 43 init 0;
#X msg 242 64 lin;
#X msg 252 94 log;
#X text 238 24 linear/;
#X text 238 39 logarithmical;
#X text 349 58 init value;
#X text 350 73 on loadbang;
#X obj 242 119 s nbx_rcv;
#X obj 340 119 s nbx_rcv;
#X msg 17 175 log_height 256;
#X obj 17 245 s nbx_rcv;
#X text 346 152 label;
#X msg 346 172 label blabla;
#X text 115 153 change send name;
#X text 220 152 change receive name;
#X obj 117 245 s nbx_rcv;
#X obj 223 245 s nbx_rcv;
#X obj 346 245 s nbx_rcv;
#X msg 117 175 send nbx1_snd;
#X msg 127 200 send nbx_snd;
#X obj 231 222 s z_rcv;
#X msg 223 174 receive z_rcv;
#X msg 231 199 receive nbx_rcv;
#N canvas 372 228 161 250 init 0;
#X obj 16 11 loadbang;
#X obj 16 42 f \$0;
#X msg 16 73 \; \$1-xpos 320 \; \$1-ypos 330 \; \$1-xlabel 0 \; \$1-ylabel
-8 \; \$1-font-size 10 \; \$1-width 5 \; \$1-height 14 \; \$1-bg 0
\; \$1-front 12 \; \$1-label 12;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 360 400 pd init;
#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-bottom 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-top 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 124 44 pd flash-time;
#X text 121 23 output-range;
#X text 173 46 1.bottom;
#X text 173 66 2.top;
#X msg 124 94 range \$1 \$2;
#X obj 124 118 s nbx_rcv;
#X text 15 280 label position;
#X text 137 280 font properties;
#X msg 17 387 label_pos \$1 \$2;
#X msg 139 387 label_font \$1 \$2;
#X text 188 304 1.font(0-2);
#X text 188 325 2.height;
#X text 66 303 1.x-offset;
#X text 66 324 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 0 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 -8 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 17 302 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 10 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 139 302 pd flash-time;
#X text 18 445 preset-colors;
#X text 119 445 RGB-colors;
#X msg 18 552 color \$1 \$2 \$3;
#N canvas 364 205 306 317 flash-time 0;
#X obj 69 196 t b a;
#X obj 33 262 outlet;
#X obj 33 237 pack 0 0 0;
#X obj 120 197 t b a;
#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
-1 -1 0 256 0;
#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-front empty 0 -8 0 12
-262144 -1 -1 12 256 0;
#X obj 103 144 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
-262144 -1 -1 12 256 0;
#X connect 0 0 2 0;
#X connect 0 1 2 1;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 1 2 2;
#X connect 4 0 2 0;
#X connect 5 0 0 0;
#X connect 6 0 3 0;
#X coords 0 -1 1 1 48 62 2 100 100;
#X restore 18 467 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 96 410 route 0 1 2;
#X obj 96 497 pack 0 0 0;
#X obj 115 456 t b a;
#X obj 168 455 t b a;
#X obj 104 124 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
#X text 120 120 1.bg;
#X text 120 137 2.front;
#X text 120 153 3.label;
#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 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 10 0;
#X connect 10 0 11 0;
#X connect 10 1 12 0;
#X connect 10 2 13 0;
#X connect 11 0 0 0;
#X connect 12 0 11 0;
#X connect 12 1 11 1;
#X connect 13 0 11 0;
#X connect 13 1 11 2;
#X connect 14 0 9 1;
#X connect 18 0 5 0;
#X connect 19 0 6 0;
#X connect 20 0 7 0;
#X coords 0 -1 1 1 102 74 2 100 100;
#X restore 120 467 pd flash-time;
#X text 67 469 1.bg;
#X text 67 489 2.front;
#X text 67 510 3.label;
#X text 348 445 delta;
#X text 236 445 position;
#X msg 237 540 pos \$1 \$2;
#X msg 349 540 delta \$1 \$2;
#X obj 349 516 list;
#X obj 349 467 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#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 320 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 330 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 237 467 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 378 467 pd flash-time;
#X obj 304 291 cnv 15 92 92 empty empty empty 20 12 0 14 -1 -66577
0;
#X obj 305 292 cnv 15 90 90 empty empty empty 20 12 0 14 -261682 -66577
0;
#X obj 320 330 nbx 5 14 -1e+37 1e+37 0 0 nbx_snd nbx_rcv my_nbx 0 -8
0 10 -262144 -33289 -33289 0 256 0;
#X obj 17 412 s nbx_rcv;
#X obj 139 412 s nbx_rcv;
#X obj 18 577 s nbx_rcv;
#X obj 349 577 s nbx_rcv;
#X obj 237 577 s nbx_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 5 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 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 17 44 pd flash-time;
#X obj 17 118 s nbx_rcv;
#X text 66 46 1.width;
#X text 66 66 2.height;
#X text 14 23 dimensions;
#X msg 17 94 size \$1 \$2;
#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 [nbx] Changing GUI Properties through Messages;
#X msg 356 197 label my_nbx;
#X text 285 466 1.x-pos;
#X text 285 488 2.y-pos;
#X connect 2 0 11 0;
#X connect 3 0 11 0;
#X connect 4 0 10 0;
#X connect 5 0 10 0;
#X connect 12 0 13 0;
#X connect 15 0 20 0;
#X connect 21 0 18 0;
#X connect 22 0 18 0;
#X connect 24 0 19 0;
#X connect 25 0 23 0;
#X connect 27 0 31 0;
#X connect 31 0 32 0;
#X connect 35 0 62 0;
#X connect 36 0 63 0;
#X connect 41 0 35 0;
#X connect 42 0 36 0;
#X connect 45 0 64 0;
#X connect 46 0 45 0;
#X connect 47 0 45 0;
#X connect 53 0 66 0;
#X connect 54 0 65 0;
#X connect 55 0 54 0;
#X connect 56 0 55 0;
#X connect 57 0 53 0;
#X connect 58 0 55 1;
#X connect 67 0 72 0;
#X connect 72 0 68 0;
#X connect 75 0 20 0;
#X restore 170 394 pd Changing_GUI_Properties;
#N canvas 73 200 428 314 nbx-creation-arguments 0;
#X text 21 37 "nbx" can be called with 18 creation arguments. These
are not "optional" - all parameters must be filled or the gui-bng will
not instantiate correctly.;
#X text 21 171 For example \, click the msg-box to dynamically create
an nbx:;
#X obj 22 235 s pd-nbx-creation-arguments;
#X text 22 97 nbx creation arguments: xSize ySize rangeBtm rangeTop
Logarithmic Init sendName receiveName Label labelXOff labelYOff Font#
fontsize bgColor foregroundColor lblColor initValue logHeight;
#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 [nbx] Creation Arguments;
#X msg 22 193 obj 150 280 nbx 5 14 0 127 0 1 send receive Maia 15 -8
0 13 14 12 23 63 256;
#X connect 6 0 2 0;
#X restore 170 524 pd nbx-creation-arguments;
#X text 168 465 - if you create an [nbx] object without arguments \,
default values are chosen for the GUI-properties. See the subpatch
below to learn how to dynamically instantiate a [nbx] with custom properties:
;
#X text 115 208 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move
a selected gui-object. Right-click and choose "Properties" to modify
its appearance.;
#X text 362 188 "Properties" to set them.;
#X text 11 23 gui-number box;
#X text 97 466 18;
#X text 215 551 (c) musil@iem.kug.ac.at;
#X text 257 564 IEM KUG;
#X text 232 576 graz \, austria 2002;
#X text 426 9 [my_numbox] or [nbx];
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 98 295 bang;
#X text 168 295 - output the current value;
#X connect 13 0 16 0;
#X connect 14 0 36 0;
#X connect 15 0 36 0;
#X connect 17 0 36 0;
#X connect 18 0 14 0;
#X connect 19 0 28 0;
#X connect 20 0 34 0;
#X connect 21 0 22 0;
#X connect 25 0 26 0;
#X connect 26 0 37 0;
#X connect 28 0 33 0;
#X connect 32 0 31 0;
#X connect 35 0 24 0;
#X connect 36 0 32 0;
#X connect 36 0 13 0;
#X connect 37 0 21 0;
#X connect 37 0 23 0;
#N canvas 431 36 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header openpanel 3 12 0
18 -204280 -1 0;
#X obj 0 310 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 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.40. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control GUI;
#X text 12 45 DESCRIPTION query the user for a filename;
#X text 12 65 INLET_0 bang symbol;
#X text 12 85 OUTLET_0 symbol;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 432 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 475 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 503 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 479 (none);
#N canvas 216 520 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 43 savepanel;
#X obj 92 43 soundfiler;
#X text 8 2 [openpanel] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 319 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 441 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 484 11 openpanel;
#X msg 171 104 bang;
#X obj 171 217 print;
#X text 211 104 Starts open panel in current directory;
#X msg 187 130 symbol /tmp;
#X msg 187 159 symbol C:/;
#X text 265 130 Starts in a specified directory;
#X text 98 318 bang;
#X text 98 364 symbol;
#X text 98 398 list;
#X text 168 318 - a "bang" to the inlet causes an "Open file" browser
to appear on the screen. If you select a file \, the filename appears
at the outet.;
#X text 168 364 - sending a symbol will start the "Open file" browser
in the specified directory.;
#X text 98 440 symbol;
#X obj 171 192 openpanel;
#X text 167 440 - the filename of the selected file is output from
the outlet.;
#X text 99 507 Unlike other symbol-handling objects in Pd \, [openpanel]
can output a symbol that contains spaces \, which will get handled
propertly by an object like [soundfiler]. However \, if you set this
filename to a message box and save the patch \, the symbol will be
converted to a list the next time you open the patch.;
#X text 11 23 query the user for a filename;
#X text 168 398 - a list starting with a symbol will be truncated to
the first element.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 12 0 24 0;
#X connect 15 0 24 0;
#X connect 16 0 24 0;
#X connect 24 0 13 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 (binops1) 3 12 0
18 -204280 -1 0;
#X obj 0 324 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 468 268 507 358 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS 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 85 DATATYPE_IN bang float list;
#X text 12 105 DATATYPE_OUT float;
#X text 12 65 DESCRIPTION binary arithmetic operators;
#X text 12 5 NAME + - * / pow max min;
#X text 12 25 KEYWORDS control trigonometry;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 442 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 479 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 523 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 215 519 428 109 Related_objects 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#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 obj 181 42 exp;
#X obj 208 42 log;
#X obj 236 42 abs;
#X obj 265 42 sqrt;
#X text 7 1 (arithmetic_operators) Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 333 cnv 17 3 70 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 386 list;
#X text 98 450 float;
#X obj 78 451 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 414 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 413 float;
#X text 78 499 1) float;
#X obj 364 12 +;
#X obj 389 12 -;
#X obj 415 12 *;
#X obj 441 12 /;
#X obj 467 12 pow;
#X obj 492 12 max;
#X obj 518 12 min;
#X obj 128 166 +;
#X msg 94 124 3 4;
#X floatatom 128 124 5 0 0 0 - - -, f 5;
#X floatatom 169 124 5 0 0 0 - - -, f 5;
#X floatatom 128 193 5 0 0 0 - - -, f 5;
#X msg 54 124 bang;
#X text 98 332 bang;
#X text 98 357 float;
#X text 168 413 - a float to the right inlet is stored.;
#X text 168 332 - perform the operation using the last values stored
at the inlets.;
#X text 168 357 - store the incoming value at the left inlet and perform
the operation.;
#X text 168 384 - a pair of floats will be distributed to the two inlets.
;
#X floatatom 259 124 5 0 0 0 - - -, f 5;
#X floatatom 259 193 5 0 0 0 - - -, f 5;
#X obj 259 168 * 2;
#X text 118 239 All of these objects share the same behavior.;
#X obj 364 170 pow 4;
#X floatatom 364 193 0 0 0 0 - - -;
#X floatatom 403 126 5 0 0 0 - - -, f 5;
#X floatatom 364 126 5 0 0 0 - - -, f 5;
#X obj 98 542 pddp/pddplink pow-help.pd;
#X text 168 499 - initializes the value of the right inlet.;
#X text 98 527 Click below for individual help patches:;
#X obj 98 557 pddp/pddplink min-help.pd;
#X obj 98 572 pddp/pddplink max-help.pd;
#X text 11 23 binary arithmetic operators;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 22 0 26 0;
#X connect 23 0 22 0;
#X connect 24 0 22 0;
#X connect 25 0 22 1;
#X connect 27 0 22 0;
#X connect 34 0 36 0;
#X connect 36 0 35 0;
#X connect 38 0 39 0;
#X connect 40 0 38 1;
#X connect 41 0 38 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 osc~ 3 12 0 18 -204280
-1 0;
#X obj 0 358 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 285 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal trigonometry;
#X text 12 45 DESCRIPTION cosine wave oscillator;
#X text 12 65 INLET_0 signal float;
#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 456 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 493 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 214 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 [osc~] Related Objects;
#X obj 83 42 cos~;
#X obj 127 42 tabread4~;
#X obj 23 42 phasor~;
#X restore 102 597 pd Related_objects;
#X obj 78 367 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 366 float;
#X obj 78 465 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 410 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 409 float;
#X obj 511 9 osc~;
#X obj 229 253 dac~ 1;
#X obj 229 223 *~;
#X floatatom 65 126 0 0 0 0 - - -;
#X obj 243 195 line~;
#X msg 243 139 0.1 100;
#X msg 262 164 0 100;
#X text 314 134 on;
#X text 311 163 off;
#X text 280 188 envelope;
#X text 280 201 generator;
#X text 227 114 amplitude controls:;
#X text 226 270 audio output;
#X obj 83 228 metro 500;
#X text 65 270 graph the output;
#X text 89 132 change frequency;
#X text 91 120 incoming numbers;
#X obj 65 155 osc~ 1000;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 100 float 0;
#X coords 0 -1 100 1 150 100 1;
#X restore 374 172 graph;
#X text 98 386 signal;
#X text 98 464 signal;
#X obj 83 203 loadbang;
#X text 98 429 list;
#X text 11 23 cosine wave oscillator;
#X text 168 511 - sets the initial frequency. If the argument is supplied
\, [osc~] takes floating-point messages to change frequency. If no
argument is supplied \, the input is taken to be an audio signal.;
#X text 168 366 - an incoming float changes the frequency.;
#X text 168 386 - an incoming signal changes the frequency.;
#X text 167 409 - a float to the right inlet resets the phase.;
#X text 167 429 - a list will be truncated to the first element.;
#X text 80 511 1) float;
#X text 167 464 - the outgoing cosine wave.;
#X text 22 60 The [osc~] object outputs a cosine wave. With a floating-point
argument \, [osc~] takes floating-point messages to change frequency.
;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 54 pddp/dsp;
#X obj 66 253 tabwrite~ \$0-array;
#X connect 15 0 14 0;
#X connect 16 0 30 0;
#X connect 17 0 15 1;
#X connect 18 0 17 0;
#X connect 19 0 17 0;
#X connect 26 0 47 0;
#X connect 30 0 15 0;
#X connect 30 0 47 0;
#X connect 34 0 26 0;
#N canvas 432 42 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 (binops2-3) 3 12
0 18 -204280 -1 0;
#X obj 0 178 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 492 291 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 29 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 25 KEYWORDS control;
#X text 12 65 DESCRIPTION relational and logical operators;
#X text 12 5 NAME > >= == != <= < mod div & | << >> && || %;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 301 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 338 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 381 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 221 481 428 156 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 (binops2-3) Related Objects;
#X text 138 57 - binary arithmetic operators;
#X obj 19 57 pddp/pddplink operators-help.pd;
#X obj 19 77 pddp/pddplink math-help.pd;
#X text 138 77 - higher math in Pd;
#X text 19 37 Links to other control operators;
#X text 19 107 Links to signal operators;
#X obj 19 127 pddp/pddplink sigbinops-help.pd;
#X restore 102 598 pd Related_objects;
#X obj 79 187 cnv 17 3 75 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 309 float;
#X obj 79 310 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 79 273 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 272 float;
#X text 11 23 relational and logical operators;
#X obj 127 4 >;
#X obj 154 4 >=;
#X obj 182 4 ==;
#X obj 236 4 <=;
#X obj 264 4 <;
#X obj 209 4 !=;
#X obj 290 4 mod;
#X obj 317 4 div;
#X obj 366 4 &;
#X obj 394 4 |;
#X obj 474 4 &&;
#X obj 501 4 ||;
#X obj 421 4 <<;
#X obj 448 4 >>;
#X obj 527 4 %;
#X text 341 4 and;
#X floatatom 254 51 5 0 0 0 - - -, f 5;
#X floatatom 296 51 5 0 0 0 - - -, f 5;
#X obj 254 88 >;
#X floatatom 254 125 5 0 0 0 - - -, f 5;
#X msg 219 51 bang;
#X text 98 186 bang;
#X text 168 186 - a bang outputs the last value computed by the object.
;
#X text 98 206 list;
#X text 168 206 - a pair of floats is distributed to the two inlets.
Lists with more than two elements will be truncated.;
#X text 98 236 float;
#X text 168 236 - a float will be stored at the left inlet and used
to evaluate and output a value.;
#X text 167 272 - a float to the right inlet will be stored.;
#X text 168 309 - all relational and logical operators output a float
value.;
#X text 80 358 1) float;
#X text 167 358 - (optional) initial value for the right inlet.;
#X text 142 154 All these objects share similar behavior.;
#X msg 183 51 2 1;
#N canvas 49 53 428 611 understanding_MOD_and_DIV 0;
#X text 24 35 [mod] and [div] are helpful objects to determine whether
or not a fraction produces a remainder \, or to determine the value
of the remainder.;
#X floatatom 28 195 0 0 0 0 - - -;
#X floatatom 28 237 0 0 0 0 - - -;
#X floatatom 140 197 0 0 0 0 - - -;
#X text 60 196 divided by;
#X text 175 198 has a remainder of;
#X floatatom 302 198 0 0 0 0 - - -;
#X obj 28 216 mod;
#X text 25 108 [mod] takes a number in its left inlet and will divide
that number by either the creation argument or the number given at
its left inlet and will produce the value of the remainder at its outlet.
If no creation argument is given \, then the default value is 1;
#X obj 80 178 loadbang;
#X msg 140 178 1;
#X text 25 260 [div] takes a number in its left inlet and will divide
that number by either the creation argument or the number given at
its left inlet and will produce the result without a remainder. If
no creation argument is given \, then the default value is 1;
#X floatatom 28 341 0 0 0 0 - - -;
#X floatatom 28 383 0 0 0 0 - - -;
#X floatatom 140 343 0 0 0 0 - - -;
#X text 60 342 divided by;
#X floatatom 256 344 0 0 0 0 - - -;
#X obj 80 324 loadbang;
#X msg 140 324 1;
#X obj 28 362 div;
#X text 176 343 is equal to;
#X text 294 343 with no remainder.;
#X obj 257 371 /;
#X floatatom 257 391 0 0 0 0 - - -;
#X text 227 389 or;
#X text 297 392 with a remainder.;
#X text 25 413 In the following example \, I've built a metronome which
counts bar numbers and beat numbers: default time signature is 4/4
(Common Time).;
#X obj 28 474 metro 500;
#X obj 28 455 tgl 15 0 empty empty Start-Stop 20 8 0 8 -262144 -1 -1
0 1;
#X obj 53 495 + 1;
#X floatatom 28 515 0 0 0 0 - - -;
#X text 57 513 Total Beat Count;
#X obj 28 539 div 4;
#X obj 139 540 mod 4;
#X floatatom 224 581 0 0 0 0 - - -;
#X floatatom 113 580 0 0 0 0 - - -;
#X obj 28 495 f 1;
#X msg 112 453 1;
#X obj 28 559 + 1;
#X obj 139 559 + 1;
#X text 136 453 Reset;
#X text 39 579 Bar number;
#X text 152 581 Beat Count;
#X floatatom 344 491 0 0 0 0 - - -;
#X text 181 491 How many beats per bar?;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) [mod] and [div];
#X text 25 76 For example \, 3 / 3 = 1 with a remainder of zero (i.e.
no remainder) \, while \, 4 / 3 = 1 with a remainder of one.;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 3 0 7 1;
#X connect 7 0 2 0;
#X connect 9 0 10 0;
#X connect 10 0 3 0;
#X connect 12 0 19 0;
#X connect 12 0 22 0;
#X connect 13 0 16 0;
#X connect 14 0 19 1;
#X connect 14 0 22 1;
#X connect 17 0 18 0;
#X connect 18 0 14 0;
#X connect 19 0 13 0;
#X connect 22 0 23 0;
#X connect 27 0 36 0;
#X connect 28 0 27 0;
#X connect 29 0 36 1;
#X connect 30 0 32 0;
#X connect 30 0 33 0;
#X connect 32 0 38 0;
#X connect 33 0 39 0;
#X connect 36 0 29 0;
#X connect 36 0 30 0;
#X connect 37 0 36 1;
#X connect 38 0 35 0;
#X connect 39 0 34 0;
#X connect 43 0 33 1;
#X connect 43 0 32 1;
#X restore 101 430 pd understanding_MOD_and_DIV;
#N canvas 61 337 428 254 understanding_%_modulus 0;
#X floatatom 21 184 0 0 0 0 - - -;
#X text 18 36 - this object has nothing to do with percentage!;
#X text 18 56 - a modulus is a number by which two given numbers can
be divided and produce the same remainder.;
#X text 18 86 - in the example below: 9 / 2 = 4.5 \, and 7 / 2 = 3.5.
Hence if 7 and 9 are divided by 2 \, then the remainder of both equations
is .5. Therefore \, the modulus of 7 and 9 is "2".;
#X msg 21 135 9;
#X obj 21 163 % 7;
#X floatatom 55 135 5 0 0 0 - - -, f 5;
#X text 18 214 Note that the modulus operator is not a "bitwise" operator
\, but a math function.;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Modulus [%];
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X restore 281 562 pd understanding_%_modulus;
#N canvas 87 181 428 280 understanding_&_AND 0;
#X obj 174 221 &;
#X floatatom 228 187 5 0 0 0 - - -, f 5;
#X floatatom 270 188 5 0 0 0 - - -, f 5;
#X msg 174 164 13;
#X msg 203 165 9;
#X text 26 119 13 = "1101";
#X text 32 131 9 = "1001";
#X text 19 144 Hence:"1001";
#X obj 174 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 174 142 t b b;
#X floatatom 174 243 0 0 0 0 - - -;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 18 35 [&] -- This is the bitwise AND operator which returns
a "1" for each bit position where the corresponding bits of both its
operands are "1".;
#X text 19 77 When comparing the binary codes for 13 and 9 (below)
\, we can see that the first and fourth digits of both codes are "1".
Hence the result will be "1001" -- in other words "9".;
#X text 7 1 (binops2-3) The [&] Object;
#X connect 0 0 10 0;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 3 0 0 0;
#X connect 4 0 0 1;
#X connect 8 0 9 0;
#X connect 9 0 3 0;
#X connect 9 1 4 0;
#X restore 281 430 pd understanding_&_AND;
#N canvas 92 219 428 293 understanding_|_OR 0;
#X floatatom 137 261 0 0 0 0 - - -;
#X floatatom 191 205 5 0 0 0 - - -, f 5;
#X floatatom 233 206 5 0 0 0 - - -, f 5;
#X msg 137 177 13;
#X msg 166 178 9;
#X text 26 131 13 = "1101";
#X text 32 143 9 = "1001";
#X obj 137 137 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 137 155 t b b;
#X text 19 156 Hence:"1101";
#X obj 137 239 |;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Related Objects;
#X text 17 35 [|] -- This is the bitwise OR operator which returns
a "1" for each bit position where one OR both of the corresponding
bits of both its operands is a "1".;
#X text 18 77 When comparing the binary codes for 13 and 9 (below)
\, we can see that the first and fourth digits of both codes are both
1 and the second position of 13 is a one. Hence the result will be
"1101" -- in other words "13".;
#X connect 1 0 10 0;
#X connect 2 0 10 1;
#X connect 3 0 10 0;
#X connect 4 0 10 1;
#X connect 7 0 8 0;
#X connect 8 0 3 0;
#X connect 8 1 4 0;
#X connect 10 0 0 0;
#X restore 281 452 pd understanding_|_OR;
#N canvas 94 256 428 294 understanding_<<_LEFT-SHIFT 0;
#X obj 21 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 21 167 t b b;
#X msg 21 188 13;
#X obj 21 229 <<;
#X floatatom 21 251 5 0 0 0 - - -, f 5;
#X msg 49 188 2;
#X floatatom 87 200 5 0 0 0 - - -, f 5;
#X floatatom 135 200 5 0 0 0 - - -, f 5;
#X text 18 35 [<<] -- This is the left shift operator and it works
by shifting the digits of the binary representation of the first operand
(left inlet) to the left by the number of places specified by the second
operand (right inlet). The spaces created to the right are filled by
zeros \, and any digits falling off the left are discarded. The following
code returns 52 as the binary of 13 ("1101") is shifted two places
to the left giving "110100":;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Left-shift;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 5 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 3 1;
#X connect 6 0 3 0;
#X connect 7 0 3 1;
#X restore 281 474 pd understanding_<<_LEFT-SHIFT;
#N canvas 82 206 428 348 understanding_>>_RIGHT-SHIFT 0;
#X obj 21 162 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 21 180 t b b;
#X floatatom 21 264 5 0 0 0 - - -, f 5;
#X floatatom 87 213 5 0 0 0 - - -, f 5;
#X floatatom 135 213 5 0 0 0 - - -, f 5;
#X msg 21 201 13;
#X obj 21 242 >>;
#X msg 49 201 2;
#X text 18 35 [>>] -- This is the sign-propagating right shift operator
which shifts the digits of the binary representation of the first operand
(left inlet) to the right by the number of places specified by the
second operand (right inlet) \, discarding any shifted off to the right.
The copies of the leftmost bit are added on from the left \, thereby
preserving the sign of the number. This next examples returns 3 ("11")
as the two right-most bits of 13 ("1101") are shifted off to the right
and discarded.;
#X text 13 291 Note that this object preserves negative values for
negative operands. ("sign-propagating").;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Right-shift;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 7 0;
#X connect 3 0 6 0;
#X connect 4 0 6 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 6 1;
#X restore 281 496 pd understanding_>>_RIGHT-SHIFT;
#N canvas 94 222 428 418 understanding_&&_LOGICAL-AND 0;
#X msg 52 259 5;
#X obj 21 309 &&;
#X floatatom 21 329 5 0 0 0 - - -, f 5;
#X floatatom 190 267 5 0 0 0 - - -, f 5;
#X text 18 36 [&&] - This is the logical AND operator \, which returns
a Boolean true (a one) if both operands are true. Logically it follows
that if the first operand is false \, then the whole expression is
false \, and this is how the objects works: It first evaluates the
left hand operand (left inlet) and if this returns false (zero) then
\, without going any further \, it returns a false (a zero). Otherwise
it returns the value of the second operand (right inlet).;
#X floatatom 233 267 5 0 0 0 - - -, f 5;
#X text 18 354 Note that this is not a bitwise operator. It compares
floats.;
#X obj 21 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 21 235 t b b;
#X msg 21 259 17;
#X text 18 145 In other words \, IF the left inlet is zero \, THEN
output zero. ELSEIF the left inlet is non-zero AND the right inlet
is zero \, then output zero. ELSEIF the left inlet is non-zero AND
the right inlet is non-zero \, THEN output non-zero!;
#X obj 87 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 87 235 t b b;
#X msg 87 259 17;
#X msg 118 259 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Logical-and;
#X connect 0 0 1 1;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 5 0 1 1;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 1 0 0;
#X connect 9 0 1 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 13 0 1 0;
#X connect 14 0 1 1;
#X restore 281 518 pd understanding_&&_LOGICAL-AND;
#N canvas 105 196 428 400 understanding_||_LOGICAL-OR 0;
#X msg 52 250 5;
#X floatatom 21 320 5 0 0 0 - - -, f 5;
#X floatatom 192 251 5 0 0 0 - - -, f 5;
#X floatatom 235 251 5 0 0 0 - - -, f 5;
#X text 18 345 Note that this is not a bitwise operator. It compares
floats.;
#X obj 21 208 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 21 226 t b b;
#X msg 21 250 17;
#X text 18 35 [||] -- This is the logical OR operator and it returns
a value of true (non-zero) if one or both of the operands is true.
It works by first evaluating the left-hand operand (left inlet) and
\, if this is true \, diregarding the right-hand operand (right inlet)
and returning a non-zero. If \, however \, the left-hand operand (left
inlet) is false \, then it returns the value of the right-hand operand
(right inlet).;
#X text 18 146 In other words \, IF the left inlet is non-zero \, THEN
output non-zero. ELSEIF the left inlet is zero AND the right inlet
is zero \, then output zero. ELSEIF the left inlet is zero AND the
right inlet is non-zero \, THEN output non-zero!;
#X obj 21 300 ||;
#X obj 92 207 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 92 225 t b b;
#X msg 92 249 0;
#X msg 123 249 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 (binops2-3) Logical-or;
#X connect 0 0 10 1;
#X connect 2 0 10 0;
#X connect 3 0 10 1;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 0 0;
#X connect 7 0 10 0;
#X connect 10 0 1 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 13 0 10 0;
#X connect 14 0 10 1;
#X restore 281 540 pd understanding_||_LOGICAL-OR;
#X text 98 385 Relational Operators;
#X text 278 385 Logical Operators;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#N canvas 76 63 428 577 Relational_Operators 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X floatatom 227 354 0 0 0 0 - - -;
#X floatatom 277 433 0 0 0 0 - - -;
#X obj 227 333 >;
#X obj 277 412 ==;
#X obj 64 130 == 42;
#X floatatom 64 109 5 0 0 0 - - -, f 5;
#X floatatom 38 156 2 0 0 0 - - -, f 2;
#X obj 63 155 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 34 105 42;
#X text 19 87 For example: IF 42 is equal to x \, then "1" (True);
#X text 83 147 Note that the object outputs 1 or 0 with every incoming
message.;
#X text 20 179 All of these objects operate the same way. The right
inlet or creation argument sets the "condition" to which the incoming
messages are compared. The left inlet accepts numbers or a "bang" --
a number will reset the value and output a true or false (1 or 0) depending
on whether or not the incoming value meets the necessary condition.
A "bang" will force the object to output a true or false (1 or 0) based
on the value that is already stored in the left inlet.;
#X floatatom 35 280 5 0 0 0 - - -, f 5;
#X floatatom 73 280 5 0 0 0 - - -, f 5;
#X text 20 278 a;
#X text 113 279 b;
#X text 98 355 Is a greater than b?;
#X floatatom 252 394 0 0 0 0 - - -;
#X text 52 394 Is a greater than or equal to b?;
#X obj 252 373 >=;
#X text 171 433 Is a equal to b?;
#X obj 305 450 !=;
#X floatatom 305 470 0 0 0 0 - - -;
#X obj 335 283 r a_b;
#X obj 335 302 unpack f f;
#X obj 35 334 pack f f;
#X obj 35 354 s a_b;
#X text 177 471 Is a NOT equal to b?;
#X floatatom 331 508 0 0 0 0 - - -;
#X text 220 508 Is a less than b?;
#X obj 331 488 <;
#X floatatom 356 547 0 0 0 0 - - -;
#X obj 356 527 <;
#X text 173 547 Is a less than or equal to b?;
#X text 18 36 Most relational operators output a boolean value: true
or false (1 or 0) depending on the relation between the input (left
inlet) and the condition (right inlet or creation argument).;
#X obj 73 306 t b a;
#X text 7 1 (binops2-3) Relational Operators;
#X connect 3 0 1 0;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 5 0 8 0;
#X connect 6 0 5 0;
#X connect 9 0 5 0;
#X connect 13 0 26 0;
#X connect 14 0 36 0;
#X connect 20 0 18 0;
#X connect 22 0 23 0;
#X connect 24 0 25 0;
#X connect 25 0 3 0;
#X connect 25 0 20 0;
#X connect 25 0 4 0;
#X connect 25 0 22 0;
#X connect 25 0 31 0;
#X connect 25 0 33 0;
#X connect 25 1 3 1;
#X connect 25 1 20 1;
#X connect 25 1 4 1;
#X connect 25 1 22 1;
#X connect 25 1 31 1;
#X connect 25 1 33 1;
#X connect 26 0 27 0;
#X connect 31 0 29 0;
#X connect 33 0 32 0;
#X connect 36 0 26 0;
#X connect 36 1 26 1;
#X restore 101 408 pd Relational_Operators;
#N canvas 79 189 428 247 Logical_Operators 0;
#X obj -1 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 1 (binops2-3) Logical Operators-- a.k.a. "Bit Twiddling"
;
#X text 24 26 These objects are adopted from the mother of all object
oriented languages: C. They are "bitwise" operators which perform logical
and shift operations on 32-bit numbers.;
#X text 17 194 Hence \, performing "bitwise" relational tests means
that Pd can compare "1101" to "1001" instead of operating with the
integers that are represented by those binary codes.;
#X text 17 116 Well \, these objects perform "relational" tests on
the binary forms of 32-bit numbers. For example \, the number 13 is
represented in your computer's operating system in binary code by "1101"
and the number 9 is "1001". Each of those binary digits is an 8-bit
word: 8 bits * 4 digits = 32-bits!;
#X obj -1 80 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 81 What does "bitwise" mean?;
#X restore 281 408 pd Logical_Operators;
#X connect 30 0 32 0;
#X connect 31 0 32 1;
#X connect 32 0 33 0;
#X connect 34 0 32 0;
#X connect 46 0 32 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 output~ 3 12 0 18
-204280 -1 0;
#X obj 0 307 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 261 494 368 META 0;
#X text 12 225 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 265 HELP_PATCH_AUTHORS Jonathan Wilkes;
#X text 12 205 AUTHOR Hans Christoph Steiner;
#X text 12 5 KEYWORDS signal abstraction;
#X text 12 25 LICENSE GPL;
#X text 12 45 DESCRIPTION gui volume and DSP control;
#X text 12 65 INLET_0 signal;
#X text 12 85 INLET_1 signal;
#X text 12 105 INLET_2 float;
#X text 12 125 OUTLET_0 signal;
#X text 12 145 OUTLET_1 signal;
#X text 12 165 OUTLET_2 float;
#X text 12 245 RELEASE_DATE 2009;
#X text 12 185 LIBRARY PDDP;
#X restore 500 597 pd META;
#X obj 0 401 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 526 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 502 (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 obj 29 38 dac~;
#X text 8 2 [output~] Related Objects;
#X obj 26 61 pddp/helplink pddp/dsp;
#X restore 102 597 pd Related_objects;
#X obj 78 316 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 410 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 342 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 107 167 osc~ 200;
#X obj 377 170 noise~;
#X obj 106 205 output~;
#X obj 376 205 output~;
#X text 174 227 <- mute;
#X text 176 208 <- dsp toggle (green = on );
#X text 98 315 signal;
#X text 98 341 signal;
#X obj 78 367 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 366 float;
#X text 167 366 - the right inlet can be used to set the volume (range
is 0-1).;
#X text 98 409 signal;
#X obj 78 440 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 439 signal;
#X obj 78 470 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 469 float;
#X text 90 101 The [output~] abstraction is a user-friendly GUI substitute
for [dac~] \, with controls for "compute audio" \, volume \, and a
mute button.;
#X text 99 530 This object is used in the audio tutorials \, and can
be used in any patch to quickly hear and control the level of an audio
signal.;
#X text 11 23 GUI- volume and DSP control;
#X text 168 315 - incoming signal which will be routed to the left
channel.;
#X text 167 341 - incoming signal which will be routed to the right
channel.;
#X text 168 469 - current volume level (range is from 0-1).;
#X text 168 439 - the incoming signal from the middle inlet filtered
and passed unchanged to this outlet.;
#X text 168 409 - the incoming signal from the leftmost inlet is filtered
and passed to this outlet.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 99 572 pddp/pddplink ../3.audio.examples/A05.output.subpatch.pd
-text doc/3.audio.examples/A05.output.subpatch.pd;
#X obj 479 0 output~;
#X connect 12 0 14 0;
#X connect 12 0 14 1;
#X connect 13 0 15 1;
#X connect 13 0 15 0;
#N canvas 429 37 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header pack 3 12 0 18 -204280
-1 0;
#X obj 0 113 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 482 257 494 370 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 26 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 45 DESCRIPTION combine several atoms into one message;
#X text 12 65 INLET_0 anything;
#X text 12 85 INLET_N float symbol pointer;
#X text 12 105 OUTLET_0 list symbol pointer float;
#X text 12 5 KEYWORDS control needs_work list_op;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 394 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 565 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 217 333 428 296 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [pack] Related Objects;
#X text 20 163 These objects are offered in Pd only if you have downloaded
and properly installed the appropriate library. These objects may or
may not exist in a single library.;
#X text 19 212 The best places to find information about Pd's libraries
is:;
#X text 16 234 www.puredata.org and click on "Downloads" then "Software"
;
#X text 17 250 or;
#X text 18 264 iem.kug.ac.at/pdb/;
#X obj 20 36 pddp/helplink zexy/pack~;
#X obj 20 51 pddp/helplink zexy/unpack~;
#X obj 20 66 pddp/helplink zexy/tabdump;
#X obj 20 81 pddp/helplink zexy/niagara;
#X obj 20 96 pddp/helplink zexy/packel;
#X obj 20 111 pddp/helplink zexy/repack;
#X obj 20 126 pddp/helplink zexy/drip;
#X obj 20 141 pddp/helplink zexy/sort;
#X restore 102 597 pd Related_objects;
#X obj 78 120 cnv 17 3 225 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 266 list;
#X obj 78 401 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 350 cnv 17 3 37 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 511 10 pack;
#X text 98 186 symbol;
#X text 98 119 bang;
#X text 98 147 float;
#X text 98 226 pointer;
#X text 98 400 list;
#N canvas 82 45 428 551 pack_peculiarities 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X msg 25 103 bang;
#X obj 25 123 pack 100 0 s 42;
#X text 25 162 In the same example \, this [pack] object will recognize
floats in the first \, second \, and fourth inlet \; it will recognize
symbols in the third inlet. If it receives anything else \, then you'll
see the "no method for ___" error message in the terminal window.;
#X obj 26 282 pack 100 0 s 42;
#X msg 26 238 400 1 cat 38;
#X text 111 238 This works.;
#X msg 38 260 cat dog 42 earth;
#X obj 31 448 pack cat;
#X text 25 333 So \, if [pack] understands that "100" is a float and
can therefore understand all incoming numbers to that inlet...then
you might assume that the word "cat" could be written as a creation
argument and [pack] should understand all incoming symbols. But that's
NOT the case. If you try to define a [pack] symbol with the word "cat"
in a creation argument \, you'll get a "bad type" error.;
#X text 39 430 WRONG;
#X obj 143 452 pack symbol;
#X text 223 442 CORRECT;
#X obj 143 473 print this_package;
#X msg 143 431 cat;
#X text 41 298 Note that the "s" above is an abbreviation for "symbol".
;
#X obj 31 525 pack bang;
#X text 30 492 Same problem with bangs! This [pack] object creates
an error.;
#X obj 25 144 print package_1;
#X obj 26 315 print package_2;
#X text 145 261 This doesn't work - the data types;
#X text 144 278 don't correspond with the arguments.;
#X text 20 32 In the example below \, the creation arguments are "100"
\, "0" \, a "symbol" \, and "42". Hence \, when [pack] receives a bang
\, it will send that information to its outlet as a list - or 'package'
- which will be printed in your terminal window.;
#X text 8 2 [pack] Peculiarities;
#X connect 1 0 2 0;
#X connect 2 0 18 0;
#X connect 4 0 19 0;
#X connect 5 0 4 0;
#X connect 7 0 4 0;
#X connect 11 0 13 0;
#X connect 14 0 11 0;
#X restore 171 545 pd pack_peculiarities;
#X text 168 400 - [pack] will output its package (i.e. \, the list
of values) when it receives a message to its left inlet.;
#N canvas 72 44 466 546 Another_example_using_pack 0;
#X text 181 97 is the same as;
#X obj 23 517 print my_package;
#X msg 46 285 1 2 dog;
#X obj 23 211 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 55 390 5 0 0 0 - - -, f 5;
#X floatatom 53 343 5 0 0 0 - - -, f 5;
#X msg 129 450 100 earth me 42;
#X text 19 38 Perhaps the best way to build creation arguments is to
define the data types that [pack] should expect at each inlet: (i.e.
floats \, symbols \, or pointers -- or their abbreviations f \, s \,
or p);
#X obj 22 97 pack float symbol pointer;
#X obj 276 98 pack f s p;
#X msg 36 261 42 24 dog cat 1 2;
#X obj 23 497 pack f f s s f f;
#X text 42 205 Any message to the first inlet will force [pack] to
output its package - its list of values. A bang to the first inlet
will force [pack] to output the current values without resetting any
of them.;
#X text 101 380 This number box will update each of the 'float' values
and will NOT output the package - because the first inlet is not receiving
a message - to change this behavior \, you should explore the [trigger]
object.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [pack] Another Example;
#X text 20 124 [pack] can be created with any number of creation arguments.
There will be one inlet created for each argument and the values of
each [pack]ed element can be updated at any time using the separate
inlets \; or they can be updated simoultaneously with a list of messages
to its first inlet.;
#X text 151 261 This list contains new values for each item.;
#X text 97 280 This list doesn't contain enough items \; so it resets
only the first three items \, uses the previous values for the other
three items \, and then outputs the entire package.;
#X text 99 340 A new value for the first item will reset the it and
force [pack] to output the entire package of stored values.;
#X text 129 481 this list will cause an error.;
#X text 128 467 Lists can only be sent to the first inlet --;
#X connect 2 0 11 0;
#X connect 3 0 11 0;
#X connect 4 0 11 1;
#X connect 4 0 11 4;
#X connect 4 0 11 5;
#X connect 5 0 11 0;
#X connect 6 0 11 1;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X restore 101 573 pd Another_example_using_pack;
#X obj 394 69 pack;
#X obj 394 91 print;
#X msg 432 46 2;
#X floatatom 394 46 5 0 0 0 - - -, f 5;
#X text 98 427 Note: [pack] may output a float \, symbol \, or pointer
if only one argument is specified.;
#X text 11 23 combine several atoms into one message;
#X text 23 46 The [pack] object takes a series of inputs and then outputs
a concatenated list. By default \, [pack] has two inlets \, each of
which will accept a float.;
#X text 168 147 - if the first argument is "float" \, "f" \, or a numeric
value (e.g. \, "12" \, "3.4") the first element in the list will be
set to the incoming value \, and [pack] will output its list.;
#X text 168 266 - a list is distributed to among the inlets of [pack].
Each element must match the atom-type specified by the creation arguments.
Lists with more items than the total number of inlets will be truncated.
;
#X text 168 226 - if the first argument is "pointer" or "p" \, an incoming
pointer will be set to the first item in the list \, and [pack] will
output its list.;
#X text 98 491 float;
#X text 168 476 - the number of arguments determines the number of
inlets (default is two). The symbols described under the "inlets" heading
specify the atom-type of each inlet. You can also use a float to specify
float-type while also initializing that inlet's value. Some peculiarities
described below:;
#X text 80 476 n) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 168 186 - if the first argument is "symbol" or "s" \, an incoming
symbol will be set to the first item in the list \, and [pack] will
output its list.;
#X text 98 319 anything;
#X text 168 119 - a "bang" to the first inlet will force [pack] to
output the current package (i.e. \, the list of values).;
#X text 168 319 - an anything will be converted to a list and distributed
in the same manner as a list.;
#X text 98 348 An inlet is created for each argument given. Each may
store a float \, symbol \, or pointer \, depending on the argument
given. These inlets will not accept lists/anythings.;
#X connect 21 0 22 0;
#X connect 23 0 21 1;
#X connect 24 0 21 0;
#N canvas 430 32 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 pd 3 12 0 18 -204280
-1 0;
#X obj 0 175 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 484 282 494 344 META 0;
#X text 12 105 PLATFORM windows macosx gnulinux;
#X text 12 165 LIBRARY internal;
#X text 12 205 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 225 RELEASE_DATE 2009-06-12;
#X text 12 65 LICENSE SIBSD;
#X text 12 185 AUTHOR Miller Puckette;
#X text 12 245 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 NAME pd;
#X text 12 25 ALIAS page;
#X text 12 125 INLET_N anything signal;
#X text 12 145 OUTLET_N anything signal;
#X text 12 85 DESCRIPTION subwindow (subpatch);
#X text 12 45 KEYWORDS signal canvas_op;
#X restore 500 597 pd META;
#X obj 0 302 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 432 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 269 428 356 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 [pd] Related Objects;
#X obj 22 43 inlet;
#X obj 22 73 outlet;
#X obj 68 43 inlet~;
#X obj 68 73 outlet;
#X obj 128 43 table;
#N canvas 0 0 450 300 (subpatch) 0;
#X coords 0 1 100 -1 200 140 1 0 0;
#X restore 182 44 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 100 float 3;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 100 -1 200 140 1;
#X restore 23 203 graph;
#X restore 102 598 pd Related_objects;
#X obj 78 184 cnv 17 3 110 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X restore 395 11 pd;
#X text 11 23 subwindow (subpatch);
#X text 98 183 anything;
#X text 98 242 signal;
#X text 80 451 1) symbol atom;
#X obj 78 311 cnv 17 3 110 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X text 98 310 anything;
#X text 98 369 signal;
#X obj 101 543 pddp/pddplink all_about_canvas_properties.pd -text all_about_canvas_properties
;
#X text 97 130 You can also change the graphical properties of the
object so that part of the subwindow is visible on the parent (referred
to as "graph on parent" or "gop").;
#N canvas 0 0 450 300 (subpatch) 0;
#X restore 514 11 page;
#X text 420 11 or (deprecated);
#X floatatom 242 86 5 0 0 0 - - -, f 5;
#X text 309 80 For help on inlets/outlets \, see:;
#X obj 308 95 pddp/pddplink inlet-help.pd -text inlet-help;
#X obj 308 110 pddp/pddplink inlet~-help.pd -text inlet~-help;
#X obj 398 95 pddp/pddplink outlet-help.pd -text outlet-help;
#X obj 398 110 pddp/pddplink outlet~-help.pd -text outlet~-help;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 100 560 pddp/pddplink ../2.control.examples/12.PART2.subpatch.pd
-text doc/2.control.examples/12.PART2.subpatch.pd;
#X obj 100 575 pddp/pddplink ../3.audio.examples/G05.execution.order.pd
-text doc/3.audio.examples/G05.execution.order.pd;
#N canvas 559 53 296 107 window_position 1;
#X text 19 8 If you leave open a [pd] subwindow like;
#X text 19 53 patch.;
#X text 19 38 visible the next time you load the;
#X text 19 23 this one and save the patch \, it will be;
#X restore 382 550 pd window_position;
#X text 97 42 The [pd] object provides a way to nest canvases. You
can click on the object to open the subwindow and see the objects inside.
;
#N canvas 1 53 450 300 click_me 0;
#X obj 26 50 inlet;
#X obj 26 209 outlet;
#X text 47 109 Use the [inlet] and [outlet] objects to add inlets and
outlets to your subpatch.;
#X obj 341 52 inlet;
#X floatatom 341 79 5 0 0 0 - - -, f 5;
#X text 46 147 The horizontal order of the [inlet]/[outlet] objects
corresponds to the placement of the inlets/outlets on the [pd] object
itself. I.e. \, the leftmost inlet -> leftmost [inlet] \, rightmost
inlet -> rightmost [inlet] \, and so on.;
#X obj 342 205 outlet;
#X connect 0 0 1 0;
#X connect 3 0 4 0;
#X restore 179 107 pd click_me;
#X text 168 242 - you can create a signal inlet by placing an [inlet~]
object inside the subpatch. If there are multiple [inlet~] objects
\, their horizontal order corresponds to the inlets drawn on the [pd]
object.;
#X text 168 183 - for sending control messages \, you can create an
inlet by placing an [inlet] object inside the subpatch. If there are
multiple [inlet] objects \, their horizontal order corresponds to the
inlets drawn on the [pd] object.;
#X text 168 369 - you can create a signal outlet by placing an [outlet~]
object inside the subpatch. If there are multiple [outlet~] objects
\, their horizontal order corresponds to the outlets drawn on the [pd]
object.;
#X text 168 310 - for sending control messages you can create one by
placing an [outlet] object inside the subpatch. If there are multiple
[outlet] objects \, their horizontal order corresponds to the outlets
drawn on the [pd] object.;
#X text 167 451 - (optional) specify a name for the subwindow \, which
you can use with the prefix "pd-" to send messages to the subpatch
itself. Duplicate names are allowed (named messages will be passed
to both subpatches). For ease of use \, Pd allows you to edit and change
this argument without destroying the data inside the subpatch.;
#N canvas 250 475 296 200 nesting 0;
#N canvas 258 420 264 105 (subpatch) 0;
#N canvas 252 328 240 113 (subpatch) 0;
#N canvas 203 263 309 126 (subpatch) 0;
#N canvas 240 228 264 118 thats-enough 0;
#X text 84 38 Ok \, that's it.;
#X text 70 53 For real this time.;
#N canvas 264 187 272 64 Really? 0;
#X text 2 27 Seriously \,;
#N canvas 227 161 266 81 What? 0;
#X text 3 58 You're being obsessive.;
#N canvas 89 146 450 72 Who? 0;
#N canvas 160 252 341 101 I 0;
#X text 16 16 Third base!;
#X restore 5 5 pd I don't know.;
#X text 2 39 Who's on first.;
#X restore 7 4 pd Who?;
#X restore 7 0 pd What?;
#X text 2 41 Stop.;
#X restore 197 98 pd Really?;
#X restore 2 102 pd thats-enough;
#X text 44 24 Ok that's enough. These;
#X text 44 39 windows will all go away when;
#X text 44 53 you close the main patch.;
#X restore 138 46 pd;
#X text 70 46 Or this:;
#X restore 105 60 pd;
#X text 91 33 Or this:;
#X restore 130 97 pd;
#X text 19 23 You can of course nest [pd] objects;
#X text 19 38 inside other [pd] objects \, like this:;
#X restore 382 572 pd nesting;
#X connect 21 0 32 1;