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 3514 deletions
#N struct element-help-template float x float y array array1 array1-element-help-template
;
#N struct array1-element-help-template float y;
#N canvas 428 35 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header element 3 12 0 18
-204280 -1 0;
#X obj 0 333 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 482 282 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.4. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control data_structure array;
#X text 12 65 INLET_0 float list;
#X text 12 85 INLET_1 pointer;
#X text 12 105 INLET_2 pointer;
#X text 12 45 DESCRIPTION get pointer to an element of an array;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 449 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 553 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 211 492 428 134 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 92 72 struct;
#X obj 142 72 drawpolygon;
#X obj 223 72 plot;
#X obj 17 72 drawsymbol;
#X obj 262 72 drawcurve;
#X obj 71 37 get;
#X obj 102 37 set;
#X obj 131 37 getsize;
#X obj 185 37 setsize;
#X obj 17 37 pointer;
#X obj 240 37 drawnumber;
#X text 7 1 [element] Related Objects;
#X restore 101 597 pd Related_objects;
#X obj 78 342 cnv 17 3 70 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 99 343 float;
#X text 98 398 list;
#X text 228 255 <- subpatch to display the data structures;
#X obj 497 10 element;
#N canvas 80 372 428 228 element-help-data 0;
#X scalar element-help-template 40 40 \; 19 \; 0 \; 11 \; 9 \; 41 \;
14 \; 31 \; 38 \; 33 \; \;;
#X obj 0 0 cnv 15 425 20 empty empty empty 20 12 2 14 -204280 -195568
0;
#X text 5 0 Window to Display Data Structure Instances;
#X text 20 155 You can also click and drag each element vertically
to change its value. When there is no "x" field specified (as in the
template array1-element-help-template) you can click and drag horizontally
to change multiple elements in one mouse swoop.;
#X text 20 110 Each purple square above represents one element of the
array. Using the [element] object in the parent window you can get
the y-value of each element.;
#X restore 77 257 pd element-help-data;
#N canvas 73 89 428 189 element-help-template 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 6 1 [element] subpatch;
#X obj 21 76 struct element-help-template float x float y array array1
array1-element-help-template;
#X obj 21 158 filledpolygon 777 666 1 -10 -10 210 -10 210 65 -10 65
;
#X obj 21 120 plot -y y(0:41)(41:0) array1 500 1 0 15 25;
#X text 18 37 This [struct] contains an array "array1." The elements
of this array are defined by array1-element-help-template;
#X restore 77 279 pd element-help-template;
#N canvas 80 82 428 218 array1-element-help-template 0;
#X obj 0 0 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 6 1 [element] subpatch;
#X obj 21 73 struct array1-element-help-template float y;
#X obj 21 131 drawnumber y -5 -20 0;
#X obj 21 102 filledpolygon 509 0 1 -5 0 0 5 5 0 0 -5;
#X text 19 37 This [struct] is used in element-help-template to define
the elements of the array "array1.";
#X text 20 158 When "array1" is plotted \, each element will be represented
by a purple box and a number \, as specified here by the [filledpolygon]
and [drawnumber] objects.;
#X restore 77 301 pd array1-element-help-template;
#X obj 78 421 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 420 pointer;
#X text 169 343 - [element] takes a float to its left inlet \, which
specifies the element of an array. Indices range from zero to the number
of elements minus one. Indices out of range are quietly replaced by
the nearest endpoint.;
#X obj 78 458 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 459 pointer;
#X text 168 459 - when [element] receives a float to its left inlet
\, it outputs a pointer to the specified element of the array.;
#X obj 297 107 pointer;
#X floatatom 125 209 5 0 0 0 - - -, f 5;
#X text 130 156 outlet is pointer to single element;
#X text 176 207 here we just get the value of y.;
#X msg 297 83 traverse pd-element-help-data \, next;
#X obj 125 135 element element-help-template array1;
#X obj 125 182 get array1-element-help-template y;
#X obj 125 112 hradio 15 1 0 9 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
#X text 155 93 index (0-8);
#X floatatom 81 135 5 0 0 0 - - -, f 5;
#X text 11 23 get pointer to an element of an array;
#X text 168 527 - field name. The field name must be an array.;
#X text 168 398 - a list will be truncated to the first element.;
#X text 168 512 - name of the template.;
#X text 168 420 - the right inlet of [element] takes a pointer to a
scalar.;
#X text 80 512 1) symbol atom;
#X text 80 527 2) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 557 pddp/pddplink all_about_arrays.pd;
#X obj 98 572 pddp/pddplink scalar-help.pd;
#X text 125 75 2 ... then here;
#X text 299 63 1 Click here first...;
#X connect 22 0 27 1;
#X connect 26 0 22 0;
#X connect 27 0 28 0;
#X connect 28 0 23 0;
#X connect 29 0 27 0;
#X connect 29 0 31 0;
#N canvas 428 34 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header env~ 3 12 0 18 -204280
-1 0;
#X obj 0 343 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 284 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.40. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal conversion;
#X text 12 65 INLET_0 signal;
#X text 12 85 INLET_1 float;
#X text 12 45 DESCRIPTION envelope follower;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 380 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 434 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 535 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X obj 78 352 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 389 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 351 signal;
#X obj 513 10 env~;
#X text 98 539 The analysis is "Hanning" (raised cosine) windowed.
;
#X text 98 389 float;
#X floatatom 74 263 0 0 0 0 - - -;
#X obj 74 140 osc~ 400;
#X obj 74 167 *~;
#X floatatom 166 116 3 -99 300 0 - - -, f 3;
#X obj 166 140 dbtorms;
#X text 194 114 <- set peak-to-peak amplitude here in dB.;
#X text 110 264 <- the output is RMS amplitude which (for a sinusoid)
is about 3 dB below peak-to-peak amplitude.;
#X obj 74 200 env~ 16384 8192;
#N canvas 213 524 428 101 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 9 38 threshold~;
#X text 7 1 [env~] Related Objects;
#X restore 101 597 pd Related_objects;
#X text 11 23 envelope follower;
#X text 168 452 - (optional) the analysis window size in samples (the
default is 1024).;
#X text 80 452 1) float;
#X text 80 479 2) float;
#X text 168 479 - (optional) the period (the number of samples per
analysis-- window/2 by default). This should normally be a multiple
of the DSP block size \, although this isn't enforced.;
#X text 168 389 - the [env~] object takes a signal and outputs its
RMS amplitude in dB (with 1 normalized to 100 dB.) Output is bounded
below by zero.;
#X text 168 351 - the incoming signal;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 480 56 pddp/dsp;
#X obj 98 557 pddp/pddplink ../3.audio.examples/C07.envelope.follower.pd
-text doc.3.audio.examples/C07.envelope.follower.pd;
#X obj 98 572 pddp/pddplink ../3.audio.examples/H06.envelope.follower.pd
-text doc.3.audio.examples/H06.envelope.follower.pd;
#X connect 14 0 15 0;
#X connect 15 0 20 0;
#X connect 16 0 17 0;
#X connect 17 0 15 1;
#X connect 20 0 13 0;
#N canvas 428 35 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header fft~ 3 12 0 18 -204280
-1 0;
#X obj 0 399 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 468 274 507 361 META 0;
#X text 12 150 LIBRARY internal;
#X text 12 190 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 210 RELEASE_DATE 2009-06-12;
#X text 12 30 LICENSE SIBSD;
#X text 12 170 AUTHOR Miller Puckette;
#X text 12 230 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 70 INLET_0 signal;
#X text 12 90 INLET_1 signal;
#X text 12 110 OUTLET_0 signal;
#X text 12 130 OUTLET_1 signal;
#X text 12 50 DESCRIPTION Fourier analyses;
#X text 12 5 KEYWORDS signal block_oriented analysis;
#X restore 500 597 pd META;
#X obj 0 460 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 523 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 551 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 527 (none);
#N canvas 214 524 428 107 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 [fft~] Related Objects;
#X obj 22 42 ifft~;
#X obj 68 42 rfft~;
#X obj 114 42 rifft~;
#X obj 163 42 block~;
#X obj 210 42 switch~;
#X restore 101 597 pd Related_objects;
#X obj 78 408 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 469 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 433 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 512 10 fft~;
#X floatatom 15 124 0 0 0 0 - - -;
#X obj 15 75 * 44100;
#X floatatom 15 53 0 0 0 0 - - -;
#X obj 15 180 osc~;
#X obj 15 205 rfft~;
#X obj 15 99 / 64;
#X obj 15 261 rifft~;
#X obj 60 261 print~ real;
#X obj 74 236 print~ imaginary;
#X obj 15 298 /~ 64;
#X obj 15 364 print~ resynthesized;
#X msg 25 337 bang;
#X msg 60 192 bang;
#X msg 36 150 0.25;
#X msg 77 150 0;
#X text 42 125 frequency in Hz.;
#X text 43 52 frequency in bins;
#X text 55 298 <- renormalize;
#X text 61 337 <- print resynthesis;
#X text 98 407 signal;
#X text 98 432 signal;
#X obj 78 496 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 495 signal;
#X text 98 468 signal;
#X text 11 23 Fourier analyses;
#X text 183 313 There is no normalization \, so that an FFT followed
by an IFFT has a gain of N.;
#X text 182 352 See the FFT examples to see how to use these in practice.
;
#X text 184 243 The real FFT outputs N/2+1 real parts and N/2-1 imaginary
parts. The other outputs are zero. At DC and at the Nyquist there is
no imaginary part \, but the second through Nth output is as a real
and imaginary pair \, which can be thought of as the cosine and sin
component strengths.;
#X text 104 151 <- bash phase;
#X text 92 193 <- print analysis;
#X text 184 118 The FFT objects do Fourier analyses and resyntheses
of incoming real or complex signals. Complex signals are handled as
pairs of signals (real and imaginary part.) The analysis size is one
block (you can use the [block~] or [switch~] objects to control block
size).;
#X obj 5 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 481 55 pddp/dsp;
#X obj 98 555 pddp/pddplink ../3.audio.examples/I01.Fourier.analysis.pd
-text doc/3.audio.examples/I01.Fourier.analysis.pd;
#X text 98 573 also see examples I02-I10 in doc/3.audio.examples;
#X connect 13 0 16 0;
#X connect 14 0 18 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 17 0 20 0;
#X connect 17 0 19 0;
#X connect 17 1 21 0;
#X connect 17 1 19 1;
#X connect 18 0 13 0;
#X connect 19 0 22 0;
#X connect 22 0 23 0;
#X connect 24 0 23 0;
#X connect 25 0 20 0;
#X connect 25 0 21 0;
#X connect 26 0 16 1;
#X connect 27 0 16 1;
#N canvas 427 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 float 3 12 0 18
-204280 -1 0;
#X obj 0 339 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 494 296 482 332 META 0;
#X text 12 145 LIBRARY internal;
#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 165 AUTHOR Miller Puckette;
#X text 12 225 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
to conform to the PDDP template for Pd version 0.42.;
#X text 12 25 KEYWORDS control storage;
#X text 12 5 ALIAS f;
#X text 12 85 INLET_0 float bang;
#X text 12 105 INLET_1 float;
#X text 12 125 OUTLET_0 float;
#X text 12 65 DESCRIPTION store a number;
#X text 12 205 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 78 144 cnv 10 50 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X obj 341 145 cnv 10 23 16 empty empty empty 20 12 0 14 -262126 -66577
0;
#X floatatom 379 117 5 0 0 0 - - -, f 5;
#X floatatom 340 169 5 0 0 0 - - -, f 5;
#X obj 359 117 bng 15 250 50 0 empty empty empty 20 7 0 12 -4034 -1
-1;
#X floatatom 80 169 5 0 0 0 - - -, f 5;
#X msg 80 61 bang;
#X msg 320 61 7 3 4;
#X obj 340 144 f;
#X obj 80 144 float 7;
#X obj 0 436 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 473 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;
#X obj 78 408 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 78 347 cnv 17 3 55 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 462 12 float;
#X obj 522 12 f;
#X text 501 13 or;
#X msg 119 115 12;
#X msg 152 115 -0.02;
#X msg 94 90 555;
#X msg 340 84 list one 2 3;
#X text 424 83 does not work!;
#X obj 100 543 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s3.1
-text Pd manual 2.3.1: anatomy of a message;
#N canvas 106 185 428 374 float/list 0;
#X msg 51 111 float 1 2 3;
#X msg 71 165 list 1 2 3;
#X text 68 142 A list with multiple elements remains a list.;
#X text 19 37 A float with one element remains a float.;
#X text 75 196 A list with one float element is converted to a float.
;
#X obj 27 286 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
#X obj 76 286 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
-1;
#X obj 118 286 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
-1 -1;
#X obj 166 286 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
-1;
#X obj 211 286 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
-1 -1;
#X obj 26 264 route bang float symbol list;
#X obj 67 327 print FLOAT;
#X msg 26 59 float 3;
#X msg 82 217 list 2;
#X obj 149 327 print LIST;
#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 [float] Conversion To/From a List;
#X text 48 81 A float with multiple elements remains a float but is
truncated to one element.;
#X connect 0 0 10 0;
#X connect 1 0 10 0;
#X connect 10 0 5 0;
#X connect 10 1 6 0;
#X connect 10 1 11 0;
#X connect 10 2 7 0;
#X connect 10 3 8 0;
#X connect 10 3 14 0;
#X connect 10 4 9 0;
#X connect 12 0 10 0;
#X connect 13 0 10 0;
#X restore 386 556 pd float/list conversion;
#N canvas 111 59 428 526 More_Info 0;
#X text 19 37 All numbers in Pd are kept in 32-bit floating point and
can represent real numbers between -8 \, 388608 and 8.388.608.00;
#X text 19 233 The following are examples of floating point numbers:
;
#X text 49 253 3;
#X text 50 294 -111.5;
#X text 49 273 0.5;
#X text 20 126 According to Webopedia.com \, "computers are integer
machines and are capable of representing real numbers only by using
complex codes." Hence \, real numbers must be 'approximated' by computers
using the "floating point standard". In such a number \, the decimal
point can "float" meaning that there is no fixed number of digits preceding
or following the decimal. A floating point number is therefore a computer's
approximation of a real number.;
#X text 50 318 10000 to 1e-16;
#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 [float] More Info;
#X obj 1 91 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 91 What is a floating point number?;
#X obj 1 411 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 411 An Interesting Side-Note;
#X text 19 443 In the early 1990's \, the Intel 80486 was shipped with
a math coprocessor to help accelerate the process of computing floating
point numbers (which previously required a considerable amount of CPU
power). Math coprocessors have since found there way into nearly every
graphics card and CPU available today.;
#X text 49 343 3e-05 : This example is a computer shorthand for scientific
notation. It means 3*10^-5 (or 10 to the negative 5th power multiplied
by 3).;
#X restore 385 532 pd More_Info;
#X text 115 60 outputs argument;
#X text 123 89 overrides argument;
#X text 133 145 stores value;
#X text 98 346 bang;
#X text 98 366 float;
#X text 98 386 list;
#X text 98 408 float;
#N canvas 212 516 428 108 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [float] Related Objects;
#X obj 22 36 int;
#X obj 54 36 value;
#X obj 101 36 list;
#X floatatom 142 37 5 0 0 0 - - -, f 5;
#X msg 185 36;
#X restore 101 597 pd Related_objects;
#X text 99 445 float;
#X text 11 20 store a number;
#X obj 78 445 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 168 386 - truncates to the first element \, outputs it \, and
stores it.;
#X text 168 408 - a float received on the right inlet is stored.;
#X text 169 445 - outputs the stored value as a float message.;
#X text 81 490 1) float;
#X text 168 346 - outputs the currently stored value.;
#X text 168 366 - outputs the incoming number and stores it.;
#X text 171 490 - [float] accepts a single number as a creation argument
which sets the value that is stored.;
#X obj 80 226 21;
#X obj 80 206 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X floatatom 80 248 5 0 0 0 - - -, f 5;
#X text 122 204 As an additional shortcut \, you can leave off the
class name "float" altogether and just use a single number in an object
box to create a [float] object (with the value initialized to that
number).;
#X text 20 225 [float];
#X text 21 239 object;
#X text 21 210 implicit;
#X obj 441 280 1 2 3;
#X obj 441 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 441 302 print;
#X text 483 264 implicit;
#X text 482 293 object;
#X text 482 279 [list];
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 100 575 pddp/pddplink http://en.wikipedia.org/wiki/Floating_point
;
#X obj 99 527 pddp/pddplink all_about_messages.pd;
#X obj 100 560 pddp/pddplink ../2.control.examples/05.counter.pd -text
doc/2.control.examples/05.counter.pd;
#X text 77 277 (If you add additional arguments after this number you
will create an implicit [list] object.);
#X connect 6 0 12 1;
#X connect 8 0 12 0;
#X connect 10 0 13 0;
#X connect 11 0 12 0;
#X connect 12 0 7 0;
#X connect 13 0 9 0;
#X connect 22 0 13 1;
#X connect 23 0 13 1;
#X connect 24 0 13 0;
#X connect 25 0 12 0;
#X connect 48 0 50 0;
#X connect 49 0 48 0;
#X connect 55 0 57 0;
#X connect 56 0 55 0;
#N canvas 431 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 framp~ 3 12 0 18
-204280 -1 0;
#X obj 0 417 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 474 272 507 362 META 0;
#X text 12 155 LIBRARY internal;
#X text 12 195 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 175 AUTHOR Miller Puckette;
#X text 12 235 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 75 INLET_0 signal;
#X text 12 95 INLET_1 signal;
#X text 12 115 OUTLET_0 signal;
#X text 12 135 OUTLET_1 signal;
#X text 12 45 DESCRIPTION estimate frequency and amplitude of FFT components
;
#X text 12 215 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS signal block_oriented;
#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 539 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 543 (none);
#N canvas 222 513 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 43 fft~;
#X text 8 2 [framp~] Related Objects;
#X restore 101 597 pd Related_objects;
#X obj 78 426 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 486 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 451 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 497 10 framp~;
#X text 147 127 frequency;
#X floatatom 78 142 0 0 0 0 - - -;
#X obj 78 92 * 44100;
#X floatatom 78 67 0 0 0 0 - - -;
#X text 150 65 frequency;
#X text 153 83 in bins;
#X text 147 144 in Hz.;
#X obj 79 193 rfft~;
#X obj 78 117 / 64;
#X msg 165 214 bang;
#X obj 78 220 framp~;
#X obj 165 269 print~ frequency;
#X obj 180 244 print~ amplitude;
#X obj 78 168 osc~;
#X text 201 214 <- print analysis;
#X text 98 425 signal;
#X text 98 450 signal;
#X text 98 485 signal;
#X obj 78 511 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 510 signal;
#X text 11 23 estimate frequency and amplitude of FFT components;
#X text 75 309 [framp~] takes as input a rectangular-windowed FFT and
outputs \, for each FFT channel \, the estimated amplitude and frequency
of any component feedinf that channel. A sinusoidal component should
appear in four components (or three in the special case of a sinusoid
exactly tuned to a bin.) Frequency output is in bins \, i.e. \, units
of SR/N.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 478 56 pddp/dsp;
#X connect 14 0 26 0;
#X connect 15 0 21 0;
#X connect 16 0 15 0;
#X connect 20 0 23 0;
#X connect 20 1 23 1;
#X connect 21 0 14 0;
#X connect 22 0 24 0;
#X connect 22 0 25 0;
#X connect 23 0 24 0;
#X connect 23 1 25 0;
#X connect 26 0 20 0;
#N canvas 428 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 gatom 3 12 0 18
-204280 -1 0;
#X obj 0 231 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 289 494 344 META 0;
#X text 12 115 LIBRARY internal;
#X text 12 155 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 35 LICENSE SIBSD;
#X text 12 135 AUTHOR Miller Puckette;
#X text 12 195 HELP_PATCH_AUTHORS Updated for Pd version 0.34. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 75 INLET_0 float bang symbol set;
#X text 12 95 OUTLET_0 float;
#X text 12 175 RELEASE_DATE 1997;
#X text 12 55 DESCRIPTION atom (number box and symbol box);
#X text 12 5 KEYWORDS control storage GUI nonlocal symbol_op;
#X restore 500 597 pd META;
#X obj 0 396 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 470 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 499 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 474 (none);
#N canvas 214 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 47 1 Related Objects;
#X floatatom 9 3 5 0 0 0 - - -, f 5;
#X obj 21 42 float;
#X obj 61 42 list;
#X obj 102 45 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256 0;
#X obj 169 42 drawnumber;
#X restore 102 597 pd Related_objects;
#X obj 78 240 cnv 17 3 145 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 404 float;
#X obj 78 405 cnv 17 3 52 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X floatatom 401 9 5 0 0 0 - - -, f 5;
#X floatatom 25 58 0 0 0 0 - - -;
#X floatatom 25 96 0 0 0 0 - - -;
#X msg 469 76 set 45;
#X floatatom 469 104 0 0 0 0 - - -;
#X text 98 239 bang;
#X text 98 259 float;
#X text 98 289 list;
#X text 98 309 symbol;
#X text 98 339 set;
#N canvas 98 96 430 514 Number_box_properties 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X floatatom 70 102 12 0 0 0 - - -, f 12;
#X floatatom 71 223 1 0 0 0 - - -, f 1;
#X text 50 2 Properties for gatom;
#X text 20 38 Right click on a number box and choose "Properties" to
change the following:;
#X text 19 69 width;
#X text 69 69 - width of the number box (in characters). By default
the width is 5 characters.;
#X text 148 102 width = 12 characters;
#X floatatom 70 123 2 0 0 0 - - -, f 2;
#X text 148 123 width = 2 characters;
#X text 69 164 If you select a width of 0 \, the number box will grow
as needed to hold the number--BUT BEWARE \, THIS IS EXPENSIVE IN CPU
TIME. In a production patch \, you'll want to set a specific width.
;
#X floatatom 70 143 0 0 0 0 - - -;
#X text 148 143 width = 0 characters (read below);
#X text 69 240 A width of one gives a clickable toggle switch ala Max.
;
#X text 88 223 width = 1 character: toggle between 0 and 1;
#X text 19 260 limits;
#X floatatom 71 282 5 0 127 0 - - -, f 5;
#X text 109 281 numbers between 0 and 127;
#X text 69 260 - set lower and upper limits for scrolling the number
box;
#X text 68 300 This only affects scrolling- you can still send values
to the number box that are outside these limits.;
#X floatatom 71 353 5 0 127 1 my_number_box - -, f 5;
#X text 19 331 label;
#X text 69 331 - give the number box a visible name;
#X text 68 371 Use the radio buttons to reposition the label to the
left \, right \, top \, or bottom of the number box. Spaces in the
label will automatically be converted to underscores.;
#X text 19 413 messages;
#X text 69 413 - nonlocal send and receive;
#X floatatom 193 532 5 0 0 2 Number_box_7 gatom-help-rcv gatom-help-snd
, f 5;
#X obj 276 540 r gatom-help-snd;
#X obj 71 516 s gatom-help-rcv;
#X msg 71 490 28;
#X text 68 433 As an alternative to using wires \, you can set send
and receive names to send messages through the number box. "Number-box-7"
below is set to receive messages to "gatom-help-rcv" \, and send messages
to "gatom-help-snd";
#X floatatom 276 563 5 0 0 0 - - -, f 5;
#X text 68 583 Notice that you cannot make local connections with wires
to "Number_box_7" when using non-local send and receive names. If you
want to use both \, see the [nbx] object:;
#X obj 71 626 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256 0;
#X floatatom 13 3 5 0 0 0 - - -, f 5;
#X connect 27 0 31 0;
#X connect 29 0 28 0;
#X restore 102 571 pd Number_box_properties;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X symbolatom 25 138 10 0 0 0 - - -, f 10;
#X text 11 23 atom (number box and symbol box);
#X symbolatom 481 9 10 0 0 0 - - -, f 10;
#X text 445 9 and;
#X symbolatom 25 174 10 0 0 0 - - -, f 10;
#X text 61 52 A number box allows you to display a number or enter
a number using the mouse and keyboard. When a number arrives at the
number box's inlet \, it is displayed and sent to the outlet. You can
click on a number box and drag upward or downward to change the value
continuously.;
#X text 97 134 A symbol box allows you to display a single symbol-atom
or enter one using the mouse and keyboard. Unlike a number box you
cannot change the value by clicking and dragging.;
#X text 96 174 The symbol box is called "Symbol" in the "Put" menu.
;
#X text 168 239 - sends the current value to the outlet.;
#X msg 469 156 set foo;
#X symbolatom 469 180 10 0 0 0 - - -, f 10;
#X text 168 309 - symbol box only: an incoming symbol is displayed
and output. (Number box will display and output zero.);
#X text 168 259 - number box only: sets the current value and outputs
it. (Symbol box will display 'float' and output 'symbol float'.);
#X text 168 289 - a list will be truncated to the first item.;
#X text 168 339 - displays the incoming value without outputting it
(e.g. \, "set 23" will cause a number box to display 23). Sending a
set message without a value does not change the current value of a
number box or symbol box.;
#X text 168 404 - number box only: outputs a float for each message
it receives (except set).;
#X text 98 434 symbol;
#X text 168 434 - symbol box only: outputs a symbol message for each
message it receives (except set).;
#X text 100 537 Control-clicking (or command-clicking on a mac) toggles
the value between 0 and the last nonzero value.;
#X floatatom 59 545 5 0 0 0 - - -, f 5;
#X text 100 503 You can shift-click a number box and drag to change
the number by hundredths instead of ones.;
#X text 61 118 The number box is called "Number" in the "Put" menu.
;
#X text 67 197 To enter data simply click a number box or symbol box
and begin typing. Then click "Enter" to finish and output it.;
#X connect 13 0 14 0;
#X connect 15 0 16 0;
#X connect 24 0 28 0;
#X connect 33 0 34 0;
#N struct get-help-template float x float y symbol s;
#N canvas 430 33 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header get 3 12 0 18 -204280
-1 0;
#X obj 0 338 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 482 279 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS 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 5 KEYWORDS control data_structure;
#X text 12 45 DESCRIPTION get values from a scalar;
#X text 12 65 INLET_0 pointer;
#X text 12 85 OUTLET_N float symbol;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 438 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 506 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 216 515 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 72 34 set;
#X obj 104 34 append;
#X obj 163 34 getsize;
#X obj 14 59 setsize;
#X obj 72 59 element;
#X obj 184 59 sublist;
#X obj 14 34 pointer;
#X obj 132 59 struct;
#X text 7 1 [get] Related Objects;
#X restore 102 597 pd Related_objects;
#X obj 78 347 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 383 float;
#X obj 78 384 cnv 17 3 48 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 518 11 get;
#X msg 121 139 next;
#X floatatom 106 234 5 0 0 0 - - -, f 5;
#X floatatom 185 234 5 0 0 0 - - -, f 5;
#X obj 106 162 pointer;
#X text 302 115 output first scalar in list;
#X text 164 138 output next item;
#X text 102 250 x output;
#X text 183 250 y output;
#X text 261 251 s output;
#X symbolatom 265 234 18 0 0 0 - - -, f 18;
#X obj 145 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 98 346 pointer;
#X text 168 346 - [get] takes a pointer to a scalar.;
#X text 98 398 symbol;
#X text 166 183 bang when there are no more items;
#X text 11 23 get values from a scalar;
#X text 221 283 <- Click here to see the data;
#N canvas 111 75 428 272 get-help-data 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 [get] Data Window;
#X scalar get-help-template 22 43 guten_tag \;;
#X scalar get-help-template 79 87 jo_napot_kivanok \;;
#X text 62 42 Each blue rectangle is a scalar. Their appearance and
data structure are defined by the template "get-help-template".;
#X text 27 187 In addition to using the [get] object \, you can right-click
on a rectangle and choose "Properties" to view the field values of
the scalar. (You can also change them-- once you are finished \, click
"Ok" to update the values.);
#X text 27 124 The "x" and "y" fields in a [struct] are special: they
always specify the screen coordinates for the top left corner of each
rectangle. In editmode you can click and drag each rectangle to change
these values.;
#X restore 106 283 pd get-help-data;
#X msg 106 116 traverse pd-get-help-data \, next;
#X obj 106 208 get get-help-template x y s;
#N canvas 105 219 428 175 get-help-template 0;
#X obj 23 118 filledpolygon 9 0 1 0 0 20 0 20 30 0 30;
#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 [get] Template subpatch;
#X text 19 69 This [struct] just defines a simple data structure. The
values for the fields were set when this help patch was created.;
#X obj 21 42 struct get-help-template float x float y symbol s;
#X text 21 137 Draw a blue rectangle with a black border.;
#X restore 106 305 pd get-help-template;
#X text 168 383 - one outlet is created for each field specified in
the creation arguments. When [get] receives a pointer at its inlet
\, the value of each field is output to the corresponding outlet.;
#X text 168 472 - the name of a field or fields in that template. An
outlet is created for each field specified.;
#X text 103 56 [get] \, when sent a pointer to a scalar \, retrieves
fields from it by name. The fields can be a float or symbol. (In the
future this will also allow access to sublists of scalars.);
#X text 168 457 - a struct name to specify the template of a scalar.
;
#X text 97 510 If you have data whose templates vary (from a heterogeneous
list \, for example) you can use [pointer] to select according to template
before sending to [get]. (See pointer-help.pd for more information.)
;
#X text 80 457 1) symbol atom;
#X text 80 472 n) symbol atom;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 97 563 pddp/pddplink ../04.data.structures/02.getting.data.pd
-text doc/04.data.structures/02.getting.data.pd;
#X obj 97 578 pddp/pddplink scalar-help.pd;
#X connect 12 0 15 0;
#X connect 15 0 31 0;
#X connect 15 1 22 0;
#X connect 30 0 15 0;
#X connect 31 0 13 0;
#X connect 31 1 14 0;
#X connect 31 2 21 0;
#N struct help-getsize-template float x float y array array1 help-getsize-array1-template
;
#N struct help-getsize-array1-template float y float x;
#N canvas 426 32 555 619 10;
#X scalar help-getsize-template 89 279 \; 7 -6 \; 7 35 \; 26 57 \;
45 85 \; 74 90 \; 79 137 \; 48 150 \; \;;
#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 getsize 3 12 0 18
-204280 -1 0;
#X obj 0 406 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 478 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.4. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS control data_structure array;
#X text 12 45 DESCRIPTION get the number of elements in an array;
#X text 12 65 INLET_0 pointer;
#X text 12 85 OUTLET_0 float;
#X text 12 165 RELEASE_DATE 1997;
#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 485 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 553 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 obj 71 34 pointer;
#X obj 205 34 setsize;
#X obj 138 34 element;
#X obj 14 34 struct;
#X text 7 1 [getsize] Related Objects;
#X obj 14 70 get;
#X obj 51 70 set;
#X obj 84 70 append;
#X obj 138 70 sublist;
#X restore 102 597 pd Related_objects;
#X obj 78 415 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#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 492 11 getsize;
#X obj 78 135 pointer;
#X floatatom 78 190 5 0 0 0 - - -, f 5;
#X obj 78 161 getsize help-getsize-template array1;
#N canvas 83 204 428 227 help-getsize-template 0;
#X obj 21 42 struct help-getsize-template float x float y array array1
help-getsize-array1-template;
#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 [getsize] Data Structure;
#X obj 21 138 filledpolygon 11 527 1 -10 0 175 0 175 110 -10 110;
#X obj 21 85 plot array1 770 2 10 15 20;
#X text 18 107 An array plotted with a yellow trace 2 pixels wide.
;
#X text 18 157 A black rectangle for the background.;
#X restore 78 223 pd help-getsize-template;
#N canvas 76 167 428 138 help-getsize-array1-template 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [getsize] Data Structure;
#X obj 21 42 struct help-getsize-array1-template float y float x;
#X obj 21 69 filledpolygon 999 5 1 -5 0 0 5 5 0 0 -5;
#X text 18 91 This is the template for the elements of the array "array1"
\, which is defined in [pd help-getsize-template].;
#X restore 78 244 pd help-getsize-array1-template;
#X text 98 414 pointer;
#X text 11 23 get the number of elements in an array;
#X text 168 414 - a pointer to a scalar that contains an array.;
#X text 168 451 - the output of [getsize] is the number of elements
in the array. The smallest possible size is one.;
#X text 81 504 1) symbol;
#X text 81 520 2) symbol;
#X text 77 55 When sent a pointer \, [getsize] looks up a field \,
which should be an array \, and outputs the number of elements of the
array.;
#X text 168 504 - a struct name to specify the the template of a scalar.
;
#X text 119 190 here we just get the size of the array "array1".;
#X text 168 519 - the name of a field within that template. (The field
must be an array.);
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 557 pddp/pddplink all_about_arrays.pd;
#X obj 98 572 pddp/pddplink scalar-help.pd;
#X msg 78 109 traverse pd-getsize-help.pd \, next;
#X text 278 303 To the left is a scalar that contains;
#X text 278 333 diamond represents one element. (The;
#X text 278 318 an array of 7 elements. Each white;
#X text 278 348 black background is just a reference.);
#X connect 13 0 15 0;
#X connect 15 0 14 0;
#X connect 31 0 13 0;
#N canvas 430 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 (graph) 3 12 0 18
-204280 -1 0;
#X obj 0 453 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 291 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 v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 5 KEYWORDS signal GUI;
#X text 12 45 DESCRIPTION container canvas for a garray;
#X text 12 125 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 513 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 218 526 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 23 43 table;
#N canvas 0 0 450 300 (subpatch) 0;
#X restore 70 43 pd;
#X text 8 2 (graph) Related Objects;
#X restore 102 598 pd Related_objects;
#X text 80 532 1) symbol atom;
#X text 98 461 (none);
#X text 98 491 (none);
#N canvas 0 0 450 300 (subpatch) 0;
#X coords 0 1 100 -1 40 20 1;
#X restore 496 9 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X coords 0 1 100 -1 200 140 1;
#X restore 165 188 graph;
#X text 100 56 A graph in Pd is a rectangular subregion of the window
in which you can store numeric arrays.;
#X text 99 133 You can change the array values by redrawing it in the
graph. See also "11.arrays" and passim in the "control examples".;
#X text 99 88 If you create a new array Pd will usually make a new
graph to put it in (you can change this using the "array" dialog that
pops up.);
#X text 99 345 You can put a garray in the graph above by choosing
"Array" from the "Put" menu. Just choose "in last graph" from the dialog
window. For more help on garrays \, see below under the heading "more_info".
;
#X text 167 532 - (optional) the name of the graph. When using the
"Put" menu \, the name is created automatically.;
#X text 11 23 container canvas for a garray;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 572 pddp/pddplink array-help.pd -text array-help;
#N canvas 433 45 612 281 10;
#X obj 1 1 cnv 8 100 60 empty empty hdial=hdl 20 20 1 18 -262144 -1109
0;
#X text 16 213 (c) musil@iem.kug.ac.at;
#X text 58 226 IEM KUG;
#X text 289 52 click properties to;
#X text 277 63 modify geometry \, colors \, etc.;
#X obj 356 172 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
-1 -1;
#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
#X obj 355 124 s foo8_rcv;
#X obj 356 150 r foo8_snd;
#X obj 44 100 hdl 25 1 1 10 foo8_snd foo8_rcv hdial_0_9 156 -8 192
10 -99865 -262144 -260818 2;
#X msg 44 142 \$1;
#X floatatom 44 164 4 0 0 0 - - -, f 4;
#X obj 44 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
#X obj 89 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 89 140 route 0 1 2 3 4 5 6 7 8 9;
#X msg 176 64 set \$1;
#X floatatom 176 43 4 0 9 0 - - -, f 4;
#X floatatom 44 54 4 0 9 0 - - -, f 4;
#X msg 91 41 7 0 -5.44;
#X msg 95 63 3 3 4.55;
#X obj 106 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 123 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
1;
#X obj 140 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 157 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 174 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 191 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 208 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 225 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 242 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
#X obj 82 178 print;
#X floatatom 380 198 4 0 0 0 - - -, f 4;
#X msg 380 172 \$1;
#X msg 355 103 set \$1;
#X floatatom 355 82 4 0 9 0 - - -, f 4;
#X text 128 178 UP- \, DOWN- \, LEFT- or RIGHT-key;
#X text 127 189 for moving selected gui-objects;
#N canvas 226 227 699 530 edit 0;
#X obj 42 198 f;
#X msg 20 177 bang;
#X floatatom 58 176 3 63 156 0 - - -, f 3;
#X floatatom 93 198 3 -20 37 0 - - -, f 3;
#X obj 42 221 pack 0 0;
#X text 120 198 y-label;
#X text 86 176 x-label;
#X floatatom 270 187 3 8 50 0 - - -, f 3;
#X text 297 187 size;
#X obj 286 293 f;
#X msg 264 272 bang;
#X floatatom 302 271 3 -10 10 0 - - -, f 3;
#X floatatom 337 293 3 -10 10 0 - - -, f 3;
#X obj 286 316 pack 0 0;
#X obj 300 412 f;
#X msg 278 391 bang;
#X floatatom 316 390 3 20 60 0 - - -, f 3;
#X floatatom 351 412 3 100 200 0 - - -, f 3;
#X obj 300 435 pack 0 0;
#X text 330 271 x-delta;
#X text 364 293 y-delta;
#X text 344 390 x-position;
#X text 378 412 y-position;
#X obj 62 313 f;
#X msg 40 292 bang;
#X floatatom 78 291 3 0 2 0 - - -, f 3;
#X floatatom 113 313 3 4 36 0 - - -, f 3;
#X obj 62 336 pack 0 0;
#X text 106 291 font;
#X text 142 313 height;
#X text 504 293 no init;
#X text 475 348 init value on loadbang;
#X floatatom 482 228 5 2 20 0 - - -, f 5;
#X msg 47 125 \; foo8_rcv color \$1 \$2 \$3;
#X msg 42 246 \; foo8_rcv label_pos \$1 \$2;
#X msg 62 361 \; foo8_rcv label_font \$1 \$2;
#X msg 34 423 \; foo8_rcv label blabla;
#X msg 300 460 \; foo8_rcv pos \$1 \$2;
#X msg 286 341 \; foo8_rcv delta \$1 \$2;
#X msg 270 216 \; foo8_rcv size \$1;
#X msg 482 171 \; foo8a_rcv receive foo8_rcv;
#X msg 483 133 \; foo8_rcv receive foo8a_rcv;
#X msg 483 88 \; foo8_rcv send foo8_snd;
#X msg 483 50 \; foo8_rcv send foo8a_snd;
#X msg 483 312 \; foo8_rcv init 0;
#X msg 485 366 \; foo8_rcv init 1;
#X msg 490 436 \; foo8_rcv single_change;
#X msg 490 470 \; foo8_rcv double_change;
#X text 491 417 changing-behavior;
#X msg 482 254 \; foo8_rcv number \$1;
#X text 526 228 number of buttons;
#X obj 47 104 pack 0 0 0;
#X obj 47 76 f;
#X msg 24 28 bang;
#X floatatom 63 26 3 0 29 0 - - -, f 3;
#X floatatom 79 46 3 0 29 0 - - -, f 3;
#X floatatom 112 62 3 0 29 0 - - -, f 3;
#X text 91 26 background;
#X text 106 46 front-color;
#X text 140 63 label-color;
#X msg 285 25 back;
#X msg 285 45 front;
#X msg 285 65 label;
#X msg 247 25 bang;
#N canvas 15 207 606 448 RGB_____________ 0;
#X obj 97 56 inlet;
#X obj 262 53 inlet;
#X obj 339 55 inlet;
#X obj 405 56 inlet;
#X obj 97 270 bang;
#X msg 77 295 0;
#X msg 104 295 1;
#X obj 146 268 bang;
#X msg 132 295 0;
#X msg 160 295 1;
#X obj 196 269 bang;
#X msg 187 295 0;
#X msg 214 295 1;
#X obj 265 313 spigot;
#X obj 312 313 spigot;
#X obj 359 313 spigot;
#X obj 249 385 outlet;
#X text 93 33 select;
#X text 267 28 red;
#X text 337 30 green;
#X text 409 30 blue;
#X obj 405 102 t b f;
#X obj 339 160 +;
#X obj 339 185 t b f;
#X obj 339 216 +;
#X obj 296 385 outlet;
#X obj 343 385 outlet;
#X obj 28 180 loadbang;
#X obj 97 135 route back front label bang;
#X obj 343 362 f;
#X obj 296 361 f;
#X obj 249 361 f;
#X obj 262 79 * -65536;
#X obj 339 80 * -256;
#X obj 405 80 * -1;
#X obj 339 247 - 1;
#X obj 235 168 t b b b b;
#X connect 0 0 28 0;
#X connect 1 0 32 0;
#X connect 2 0 33 0;
#X connect 3 0 34 0;
#X connect 4 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 14 1;
#X connect 5 0 15 1;
#X connect 6 0 13 1;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 13 1;
#X connect 8 0 15 1;
#X connect 9 0 14 1;
#X connect 10 0 11 0;
#X connect 10 0 12 0;
#X connect 11 0 13 1;
#X connect 11 0 14 1;
#X connect 12 0 15 1;
#X connect 13 0 31 1;
#X connect 14 0 30 1;
#X connect 15 0 29 1;
#X connect 21 0 22 0;
#X connect 21 1 22 1;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 23 1 24 1;
#X connect 24 0 35 0;
#X connect 27 0 6 0;
#X connect 28 0 4 0;
#X connect 28 1 7 0;
#X connect 28 2 10 0;
#X connect 28 3 36 0;
#X connect 29 0 26 0;
#X connect 30 0 25 0;
#X connect 31 0 16 0;
#X connect 32 0 24 0;
#X connect 33 0 22 0;
#X connect 34 0 21 0;
#X connect 35 0 15 0;
#X connect 35 0 14 0;
#X connect 35 0 13 0;
#X connect 36 0 31 0;
#X connect 36 1 30 0;
#X connect 36 2 29 0;
#X connect 36 3 35 0;
#X restore 285 86 pd RGB_____________;
#X floatatom 327 55 3 0 255 0 - - -, f 3;
#X floatatom 370 55 3 0 255 0 - - -, f 3;
#X floatatom 413 56 3 0 255 0 - - -, f 3;
#X text 34 0 preset-colors;
#X text 296 -3 RGB-colors;
#X text 327 37 red;
#X text 363 36 green;
#X text 411 36 blue;
#X msg 34 459 \; foo8_rcv label hdial_0_9;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 3 0 4 1;
#X connect 4 0 34 0;
#X connect 7 0 39 0;
#X connect 9 0 13 0;
#X connect 10 0 9 0;
#X connect 11 0 9 1;
#X connect 12 0 13 1;
#X connect 13 0 38 0;
#X connect 14 0 18 0;
#X connect 15 0 14 0;
#X connect 16 0 14 1;
#X connect 17 0 18 1;
#X connect 18 0 37 0;
#X connect 23 0 27 0;
#X connect 24 0 23 0;
#X connect 25 0 23 1;
#X connect 26 0 27 1;
#X connect 27 0 35 0;
#X connect 32 0 49 0;
#X connect 51 0 33 0;
#X connect 52 0 51 0;
#X connect 53 0 52 0;
#X connect 54 0 52 1;
#X connect 55 0 51 1;
#X connect 56 0 51 2;
#X connect 60 0 64 0;
#X connect 61 0 64 0;
#X connect 62 0 64 0;
#X connect 63 0 64 0;
#X connect 64 0 51 0;
#X connect 64 1 51 1;
#X connect 64 2 51 2;
#X connect 65 0 64 1;
#X connect 66 0 64 2;
#X connect 67 0 64 3;
#X restore 469 108 pd edit;
#X obj 346 35 hdl 15 1 0 8 eee eee empty 20 8 192 8 -262144 -1 -1 0
;
#X obj 260 11 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
#X text 183 11 gui-hdial:;
#X text 33 238 graz \, austria 2002;
#X text 251 232 updated for Pd version 0.35;
#X text 279 254 KEYWORDS deprecated;
#X connect 6 0 9 0;
#X connect 8 0 5 0;
#X connect 8 0 31 0;
#X connect 9 0 10 0;
#X connect 9 0 14 0;
#X connect 9 0 29 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 14 0 13 0;
#X connect 14 1 20 0;
#X connect 14 2 21 0;
#X connect 14 3 22 0;
#X connect 14 4 23 0;
#X connect 14 5 24 0;
#X connect 14 6 25 0;
#X connect 14 7 26 0;
#X connect 14 8 27 0;
#X connect 14 9 28 0;
#X connect 15 0 9 0;
#X connect 16 0 15 0;
#X connect 17 0 9 0;
#X connect 18 0 9 0;
#X connect 19 0 9 0;
#X connect 31 0 30 0;
#X connect 32 0 7 0;
#X connect 33 0 32 0;
#N canvas 425 40 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 hip~ 3 12 0 18 -204280
-1 0;
#X obj 0 381 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 284 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd version 0.37. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal filter;
#X text 12 45 DESCRIPTION one-pole high pass filter;
#X text 12 105 OUTLET_0 signal;
#X text 12 65 INLET_0 signal clear;
#X text 12 85 INLET_1 float;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 488 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 525 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X obj 78 390 cnv 17 3 37 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#N canvas 219 468 428 166 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [hip~] Related Objects;
#X obj 22 43 lop~;
#X obj 69 43 bp~;
#X obj 117 43 vcf~;
#X text 22 81 Raw Filters;
#X obj 73 108 rzero~;
#X obj 195 108 cpole~;
#X obj 24 108 rpole~;
#X obj 122 108 rzero_rev~;
#X obj 244 108 czero~;
#X obj 293 108 czero_rev~;
#X restore 101 597 pd Related_objects;
#X text 98 389 signal;
#X obj 78 497 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 497 signal;
#X obj 510 11 hip~;
#X obj 146 270 env~;
#X floatatom 146 293 0 0 0 0 - - -;
#X floatatom 195 215 0 0 0 0 - - -;
#X obj 146 243 hip~ 5;
#X obj 88 270 env~;
#X floatatom 88 292 0 0 0 0 - - -;
#X floatatom 88 144 0 0 0 0 - - -;
#X text 89 105 The left inlet is the incoming audio signal. The right
inlet is the cutoff frequency in Hz.;
#X obj 88 167 osc~ 100;
#X text 133 142 <-- scroll to change input frequency;
#X msg 146 191 clear;
#X text 198 190 <-- reinitialize internal state;
#X text 227 216 <-- set cutoff frequency;
#X text 168 389 - incoming audio signal.;
#X obj 78 432 cnv 17 3 45 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 431 float;
#X text 98 449 list;
#X text 98 409 clear;
#X text 84 312 Compare the strength of the original signal on the left
with that of the filtered signal on the right.;
#X text 11 23 one-pole high pass filter;
#X text 168 543 - initial rolloff frequency.;
#X text 168 409 - reinitialize internal state.;
#X text 168 431 - cutoff frequency in Hz.;
#X text 168 449 - a list to the right inlet is truncated \, and the
first element is used as the cutoff frequency.;
#X text 88 68 [hip~] is a one-pole high pass filter with a specified
rolloff frequency.;
#X text 191 272 [env~] gives the amplitude of the signal envelop in
dB.;
#X text 168 497 - the output is the filtered audio signal.;
#X text 80 543 1) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 479 52 pddp/dsp;
#X connect 13 0 14 0;
#X connect 15 0 16 1;
#X connect 16 0 13 0;
#X connect 17 0 18 0;
#X connect 19 0 21 0;
#X connect 21 0 17 0;
#X connect 21 0 16 0;
#X connect 23 0 16 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 hslider 3 12 0 18
-204280 -1 0;
#X obj 0 291 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 482 291 494 344 META 0;
#X text 12 135 LIBRARY internal;
#X text 12 45 LICENSE SIBSD;
#X text 12 155 AUTHOR Thomas Musil;
#X text 12 175 WEBSITE;
#X text 12 215 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
to conform to the PDDP template for Pd version 0.42.;
#X text 12 25 KEYWORDS control storage GUI nonlocal;
#X text 12 65 DESCRIPTION horizontal gui-slider;
#X text 12 5 ALIAS hsl;
#X text 12 85 INLET_0 float bang size range log init steady receive
send label label_pos label_font color pos delta;
#X text 12 115 OUTLET_0 float;
#X text 12 195 RELEASE_DATE 2002;
#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 461 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;
#X obj 78 300 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#N canvas 211 518 428 112 Related_objects 0;
#X obj 19 52 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
#X text 17 28 All iem-gui objects:;
#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 [hslider] Related Objects;
#X restore 100 597 pd Related_objects;
#X obj 78 419 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 291 175 and receive names. Right-;
#X text 291 190 click and choose;
#X text 290 206 "Properties" to set them \,;
#X text 98 299 float;
#X text 98 340 list;
#X text 98 419 float;
#X text 291 220 or change them with messages (see below);
#X obj 414 45 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 135 116 4 0 0 0 - - -, f 4;
#X msg 199 69 set \$1;
#X floatatom 155 48 4 0 0 0 - - -, f 4;
#X obj 135 138 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
-1 -1;
#X obj 135 49 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
#X obj 138 94 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 0 10
-225280 -1109 -1 3900 1;
#X floatatom 199 48 4 0 0 0 - - -, f 4;
#X floatatom 292 141 4 0 0 0 - - -, f 4;
#X floatatom 292 48 4 0 0 0 - - -, f 4;
#X obj 179 140 print;
#N canvas 276 200 290 224 once 0;
#X obj 38 47 t b b f;
#X msg 56 85 1;
#X obj 31 108 f 0;
#X obj 31 131 pack 0 0;
#X obj 31 156 route 0;
#X obj 38 24 inlet;
#X obj 31 180 outlet;
#X connect 0 0 1 0;
#X connect 0 1 2 0;
#X connect 0 2 3 1;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X restore 179 116 pd once;
#X obj 59 177 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 7
0 10 -204800 -260818 -90133 1618 1;
#X obj 56 203 ftom;
#X floatatom 56 227 4 0 0 0 - - -, f 4;
#X floatatom 143 215 9 0 0 0 - - -, f 9;
#X floatatom 56 132 4 0 0 0 - - -, f 4;
#X obj 56 153 mtof;
#X obj 292 92 s foo1_rcv;
#X obj 292 117 r foo1_snd;
#X msg 292 68 set \$1;
#X text 139 193 (0.01 pixels);
#X text 142 163 shift-click & drag;
#X text 142 178 for fine-tuning;
#X text 54 248 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 290 159 hslider has settable send;
#X text 98 356 Special messages can be sent to [hslider] to change
its properties:;
#X text 168 419 - when the slider value is changed by clicking \, dragging
\, or sending a float to the inlet \, the new slider value is sent
to the outlet.;
#N canvas 94 219 428 370 hsl-creation-arguments 0;
#X obj 22 289 s pd-hsl-creation-arguments;
#X text 20 37 "hsl" 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 225 For example \, click the msg-box to dynamically create
a hsl:;
#X text 20 84 hsl creation arguments: xSize ySize rangeBtm rangeTop
Logarithmic Init sendName receiveName Label labelXOff labelYOff Font#
fontSize bgColor foregroundColor lblColor sliderPosition steadyOnClick
;
#X text 21 142 note: sliderPosition is not the same as the initialization
value. To dynamically instantiate an hsl that initializes with a desired
value \, save an hsl in a patch and view it in a text editor to get
the right value for sliderPosition. Or \, refer to hslider_set in g_hslider.c
for conversion between sliderPosition and slider value.;
#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 [hslider] Creation Arguments and Dynamic Patching;
#X msg 22 247 obj 150 335 hsl 75 20 -1 1 0 1 send receive Celaeno 12
-9 0 12 7 13 21 4400 0;
#X connect 7 0 0 0;
#X restore 170 521 pd hsl-creation-arguments;
#N canvas 66 11 463 602 Setting_slider_properties_through_messages
0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X floatatom 11 188 1 0 1 0 - #0-soc -, f 1;
#X text 323 34 no init;
#X text 8 169 steady-on-click;
#X text 339 169 label;
#X msg 339 191 label blabla;
#X msg 323 53 init 0;
#X msg 11 221 steady \$1;
#X msg 234 73 lin;
#X msg 244 105 log;
#X text 230 34 linear/;
#X text 230 49 logarithmical;
#X text 332 73 init value;
#X text 333 88 on loadbang;
#X text 231 169 change send name;
#X text 106 169 change receive name;
#X obj 120 244 s z_rcv;
#X msg 108 191 receive z_rcv;
#X msg 347 243 label mySlider;
#X obj 234 134 s hsl_rcv;
#X obj 323 134 s hsl_rcv;
#X obj 11 269 s hsl_rcv;
#X obj 233 269 s hsl_rcv;
#X obj 108 269 s hsl_rcv;
#X msg 120 221 receive hsl_rcv;
#X msg 233 192 send hsl1_snd;
#X msg 242 221 send hsl_snd;
#X obj 339 271 s hsl_rcv;
#N canvas 382 136 161 310 init 0;
#X obj 16 11 loadbang;
#X obj 16 42 f \$0;
#X msg 16 73 \; \$1-xpos 300 \; \$1-ypos 350 \; \$1-xlabel -2 \; \$1-ylabel
-8 \; \$1-soc 1 \; \$1-font-size 10 \; \$1-width 128 \; \$1-height
15 \; \$1-bottom 0 \; \$1-top 127 \; \$1-bg 0 \; \$1-front 12 \; \$1-label
12;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 384 415 pd init;
#X msg 333 109 init 1;
#X msg 11 105 size \$1 \$2;
#X text 60 56 1.width;
#X text 60 77 2.height;
#X obj 11 134 s hsl_rcv;
#X obj 123 134 s hsl_rcv;
#X text 172 56 1.bottom;
#X text 172 77 2.top;
#X text 120 34 output-range;
#X msg 123 105 range \$1 \$2;
#X text 136 307 font properties;
#X msg 138 379 label_font \$1 \$2;
#X text 187 329 1.font(0-2);
#X text 187 350 2.height;
#X text 9 308 label position;
#X msg 11 380 label_pos \$1 \$2;
#X text 60 330 1.x-offset;
#X text 60 351 2.y-offset;
#X obj 11 405 s hsl_rcv;
#X obj 138 404 s hsl_rcv;
#X obj 273 325 cnv 15 157 82 empty empty empty 20 12 0 14 -1 -66577
0;
#X obj 274 326 cnv 15 155 80 empty empty empty 20 12 0 14 -261682 -66577
0;
#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 128 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 15 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 11 55 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 -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 127 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 123 55 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 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
0 -8 0 12 -262144 -1 -1 -2 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 11 329 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 138 328 pd flash-time;
#X text 8 448 preset-colors;
#X text 104 448 RGB-colors;
#X msg 11 554 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 11 469 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 108 469 pd flash-time;
#X text 60 471 1.bg;
#X text 60 491 2.front;
#X text 60 512 3.label;
#X text 317 448 delta;
#X text 217 448 position;
#X msg 218 540 pos \$1 \$2;
#X msg 318 540 delta \$1 \$2;
#X obj 318 517 list;
#X obj 318 470 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 397 469 1.x-delta;
#X text 397 491 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 300 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 350 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 218 470 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 347 470 pd flash-time;
#X floatatom 329 384 5 0 0 0 - - -, f 5;
#X obj 11 579 s hsl_rcv;
#X obj 318 565 s hsl_rcv;
#X obj 218 565 s hsl_rcv;
#X text 10 35 dimensions;
#X text 7 1 [hslider] Set Properties through Messages;
#X text 266 469 1.x-pos;
#X text 266 491 2.y-pos;
#X obj 289 356 hsl 128 15 0 127 0 0 hsl-snd hsl-rcv mySlider -2 -8
0 10 -262144 -1 -1 0 1;
#X connect 1 0 7 0;
#X connect 5 0 27 0;
#X connect 6 0 20 0;
#X connect 7 0 21 0;
#X connect 8 0 19 0;
#X connect 9 0 19 0;
#X connect 17 0 23 0;
#X connect 18 0 27 0;
#X connect 24 0 16 0;
#X connect 25 0 22 0;
#X connect 26 0 22 0;
#X connect 29 0 20 0;
#X connect 30 0 33 0;
#X connect 38 0 34 0;
#X connect 40 0 48 0;
#X connect 44 0 47 0;
#X connect 51 0 30 0;
#X connect 52 0 38 0;
#X connect 53 0 44 0;
#X connect 54 0 40 0;
#X connect 57 0 74 0;
#X connect 58 0 57 0;
#X connect 59 0 57 0;
#X connect 65 0 76 0;
#X connect 66 0 75 0;
#X connect 67 0 66 0;
#X connect 68 0 67 0;
#X connect 71 0 65 0;
#X connect 72 0 67 1;
#X connect 81 0 73 0;
#X restore 101 388 pd Setting_slider_properties_through_messages;
#X text 11 21 horizontal gui-slider;
#X text 98 466 18;
#X text 168 466 - creating an [hslider] object without arguments sets
default values for its gui-properties. See the subpatch below to learn
how to dynamically instantiate a [bng] object with custom properties:
;
#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 168 299 - a float updates the slider value and is sent to the
outlet.;
#X text 168 340 - a list is truncated to the first element.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 98 323 bang;
#X text 168 323 - output the current slider value.;
#X text 436 8 [hslider] or [hsl];
#X connect 18 0 21 0;
#X connect 19 0 23 0;
#X connect 20 0 23 0;
#X connect 22 0 23 0;
#X connect 23 0 18 0;
#X connect 23 0 28 0;
#X connect 24 0 19 0;
#X connect 26 0 37 0;
#X connect 28 0 27 0;
#X connect 29 0 32 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 33 0 34 0;
#X connect 34 0 29 0;
#X connect 36 0 25 0;
#X connect 37 0 35 0;
#N canvas 431 34 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header inlet~ 3 12 0 18
-204280 -1 0;
#X obj 0 350 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 486 283 494 344 META 0;
#X text 12 85 LIBRARY internal;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 165 HELP_PATCH_AUTHORS Updated for Pd v0.41. Revised by
Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
;
#X text 12 45 DESCRIPTION signal inlet for a subpatch;
#X text 12 65 OUTLET_0 signal;
#X text 12 5 KEYWORDS signal nonlocal canvas_op;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 377 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 220 515 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 43 inlet;
#X obj 67 43 outlet;
#X obj 118 43 inlet~;
#X obj 168 43 outlet;
#X obj 225 43 block~;
#X text 8 2 [inlet~] Related Objects;
#X obj 277 43 switch~;
#X restore 102 598 pd Related_objects;
#X obj 78 386 cnv 17 3 60 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 369 259 print~;
#X obj 369 199 sig~ 12;
#X floatatom 126 203 0 0 0 0 - - -;
#X floatatom 126 255 0 0 0 0 - - -;
#X text 96 182 messages in and out;
#X text 339 176 audio in and out;
#X obj 369 237 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 50 247 428 293 subpatch-with-inlets-and-outlets 0;
#X obj 68 68 inlet;
#X text 20 38 control inlet for receiving messages;
#X floatatom 68 96 0 0 0 0 - - -;
#X floatatom 68 218 0 0 0 0 - - -;
#X obj 68 250 outlet;
#X text 20 188 control outlet for sending message;
#X obj 340 84 inlet~;
#X obj 340 135 print~;
#X msg 355 109 bang;
#X obj 340 243 outlet~;
#X obj 340 217 sig~ 34;
#X text 333 38 same for;
#X text 334 57 signals.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [inlet~] Creating Inlets/Outlets on Subpatches;
#X connect 0 0 2 0;
#X connect 3 0 4 0;
#X connect 6 0 7 0;
#X connect 8 0 7 0;
#X connect 10 0 9 0;
#X restore 126 229 pd subpatch-with-inlets-and-outlets;
#X text 98 353 (none);
#X text 11 23 signal inlet for a subpatch;
#X obj 497 10 inlet~;
#X text 98 385 signal;
#N canvas 61 152 428 466 up/downsampling 0;
#X obj 30 396 print~;
#X obj 48 370 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 112 396 print~;
#X obj 130 372 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 195 396 print~;
#X obj 213 370 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 64 float 3;
#A 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 1 64 -1 200 140 1;
#X restore 216 181 graph;
#X obj 274 368 s \$0-tab;
#X msg 274 341 const 0 \, 0 0 1;
#X obj 145 233 print~;
#X obj 145 208 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 23 181 tabreceive~ \$0-tab;
#N canvas 81 269 585 267 test-subpatch-upsampled 0;
#X obj 40 17 block~ 128 1 2;
#X obj 209 149 inlet~ hold;
#X obj 367 153 inlet~ lin;
#X obj 23 202 print~;
#X obj 41 176 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 209 209 print~;
#X obj 227 183 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 366 213 print~;
#X obj 383 187 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 42 49 Upsampling methods:;
#X text 206 114 sample/hold;
#X text 337 111 linear interpolation;
#X text 16 114 interleaved zeros;
#X obj 23 146 inlet~;
#X connect 1 0 5 0;
#X connect 2 0 7 0;
#X connect 4 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 13 0 3 0;
#X restore 23 285 pd test-subpatch-upsampled;
#N canvas 46 43 585 267 test-subpatch-downsampled 0;
#X obj 23 146 outlet~;
#X obj 209 149 outlet~ hold;
#X obj 367 153 outlet~ lin;
#X text 206 173 sample/hold;
#X text 364 177 linear interpolation;
#X text 197 19 upsampling methods:;
#X obj 40 17 block~ 32 1 0.5;
#X text 18 169 interleaved zeros;
#X obj 21 83 tabreceive~ \$0-tab;
#X connect 8 0 0 0;
#X connect 8 0 1 0;
#X connect 8 0 2 0;
#X restore 29 340 pd test-subpatch-downsampled;
#X text 20 38 When a subpatch is reblocked to a higher or lower sample
rate \, the inlet~ and outlet~ objects offer a choice of three upsampling
methods. (The inlet~ upsamples when entering a subpatch with a higher
sample rate \; the outlet~ upsamples when leaving a subpatch of _lower_
sample rate \, as demonstrated below.) There is no corresponding choice
of downsampling method - downsampling is done simply by dropping the
extra samples.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [inlet~] Up/downsampling;
#X connect 1 0 0 0;
#X connect 3 0 2 0;
#X connect 5 0 4 0;
#X connect 8 0 7 0;
#X connect 10 0 9 0;
#X connect 11 0 12 1;
#X connect 11 0 12 2;
#X connect 11 0 9 0;
#X connect 11 0 12 0;
#X connect 13 0 0 0;
#X connect 13 1 2 0;
#X connect 13 2 4 0;
#X restore 171 538 pd up/downsampling;
#X text 80 477 1) symbol atom;
#X text 98 127 The subpatch below shows how to use [inlet] \, [inlet~]
\, [outlet] \, and [outlet~] objects to get data into and out of a
subpatch:;
#X text 168 477 - (optional) The word "hold" will cause sample/hold
upsampling/downsampling \, and the word "lin" will cause linear upsampling/downsampling.
See the subpatch below for more details:;
#X text 98 77 The [inlet~] object allows signals to be sent to a subpatch
from objects on the parent canvas.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 168 385 - the [inlet~] object outputs the signal sent to the
inlet of the subpatch in which it is found. When multiple [inlet~]
or [inlet] objects are in one subpatch \, their horizontal order corresponds
with the inlets drawn on the containing object in the parent patch.
;
#X connect 10 0 16 1;
#X connect 11 0 16 0;
#X connect 15 0 9 0;
#X connect 16 0 12 0;
#X connect 16 1 9 0;
#N canvas 425 35 555 619 10;
#X obj 0 595 cnv 15 550 21 empty empty empty 20 12 0 14 -228856 -66577
0;
#X obj 0 0 cnv 15 550 40 empty empty int 3 12 0 18 -204280 -1 0;
#X obj 0 234 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#N canvas 492 233 482 395 META 0;
#X text 12 145 LIBRARY internal;
#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 45 LICENSE SIBSD;
#X text 12 165 AUTHOR Miller Puckette;
#X text 12 225 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 24 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 25 KEYWORDS control storage;
#X text 12 65 DESCRIPTION store an integer;
#X text 12 5 ALIAS i;
#X text 12 85 INLET_0 bang float;
#X text 12 105 INLET_1 float;
#X text 12 125 OUTLET_0 float;
#X text 12 205 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 375 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 412 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 0 475 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1
0;
#X obj 78 334 cnv 17 3 30 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X obj 78 243 cnv 17 3 82 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 495 12 or;
#X obj 100 524 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s3.1
-text Pd manual 2.3.1: anatomy of a message;
#N canvas 107 165 428 375 More_Info 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 19 36 Integers are "whole" numbers - numbers which do not contain
fractions. The following are examples of whole numbers:;
#X text 20 66 1;
#X text 20 81 -544;
#X text 20 110 10024;
#X text 19 95 420;
#X obj 1 161 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
0 14 -204280 -1 0;
#X text 7 1 [int] What is an integer;
#X text 7 161 [int] Note;
#X text 21 231 -8 \,;
#X text 39 231 388 \,;
#X text 63 231 608;
#X text 22 248 and:;
#X text 33 267 388 \,;
#X text 57 267 608;
#X text 22 267 8 \,;
#X text 21 290 Hence \, the [int] object takes about as much CPU as
the [float] object \; but is useful when numbers need to be truncated
and/or when patches are being designed to be compatible with Pd and
MAX/MSP.;
#X text 21 206 All numbers in Pd are kept in 32-bit floating point
and can represent real numbers between:;
#X restore 102 545 pd More_Info;
#X text 101 508 all_about_data-types.pd;
#X text 98 242 bang;
#X text 98 262 float;
#X text 98 302 list;
#X text 98 334 float;
#N canvas 212 521 428 108 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 64 36 value;
#X obj 111 36 list;
#X floatatom 152 37 5 0 0 0 - - -, f 5;
#X msg 195 36;
#X obj 22 36 float;
#X obj 22 66 symbol;
#X obj 71 66 random;
#X text 7 1 [int] Related Objects;
#X restore 101 597 pd Related_objects;
#X text 99 382 float;
#X obj 468 11 int;
#X obj 516 11 i;
#X msg 115 122 bang;
#X floatatom 105 205 0 0 0 0 - - -;
#X floatatom 105 100 0 0 0 0 - - -;
#X floatatom 144 153 0 0 0 0 - - -;
#X text 153 122 You can force the object to output the stored number.
;
#X text 150 100 You can set and output the value simoultaneously.;
#X text 172 153 You can store the number \, without outputting it.
;
#X text 100 52 Tip: Press and hold SHIFT while click-n-dragging these
number boxes to see how the [int] object truncates the number - drops
decimal places.;
#X obj 105 179 int 6.5;
#X text 100 479 Note: [int] does not 'rounded off' floats. It discards
everything to the right of the decimal point.;
#X obj 78 384 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#N canvas 108 391 428 173 Building_a_counter 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 19 37 The [int] object can be used as a basis for building
simple counter mechanisms in Pd. In the example below \, the [int]
object's stored value is incremented by 1 with each "bang".;
#X msg 164 84 bang;
#X obj 164 113 int;
#X obj 192 113 + 1;
#X floatatom 164 139 5 0 0 0 - - -, f 5;
#X text 7 1 [int] Example: Building a Counter;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X restore 102 567 pd Building_a_counter;
#X text 11 20 store an integer;
#X text 169 430 - initializes the object and stores the number until
the value is reset. The creation argument is optional. If no creation
argument is provided \, the object defaults to zero.;
#X text 169 382 - outputs the stored value as a float message.;
#X text 168 242 - output the currently stored integer.;
#X text 168 262 - [int] will convert an incoming float to an integer--
all numerals to the right of the decimal place are truncated (dropped).
This value is then sent to the outlet.;
#X text 168 302 - a list is truncated to the first element \, which
is then output and stored.;
#X text 168 334 - a float received at the right inlet is converted
to an integer and stored for later use.;
#X text 81 430 1) float;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 21 0 29 0;
#X connect 23 0 29 0;
#X connect 24 0 29 1;
#X connect 29 0 22 0;
#N canvas 424 37 555 619 10;
#X obj 0 635 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header key 3 12 0 18 -204280
-1 0;
#X obj 0 257 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 278 494 344 META 0;
#X text 12 85 LIBRARY internal;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 165 HELP_PATCH_AUTHORS Dave Sabine \, July 11 \, 2003 Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 45 DESCRIPTION get input from the keyboard;
#X text 12 65 OUTLET_0 float;
#X text 12 5 KEYWORDS control user_input;
#X text 12 145 RELEASE_DATE 1997;
#X restore 500 637 pd META;
#X obj 0 285 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 445 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 513 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 222 479 428 145 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 21 42 keyup;
#X obj 61 42 keyname;
#X text 19 72 Externals and other object libraries;
#X text 7 1 [key] Related Objects;
#X obj 18 94 pddp/helplink Gem/gemkeyboard;
#X obj 18 114 pddp/helplink Gem/gemkeyname;
#X restore 102 638 pd Related_objects;
#X text 98 293 float;
#X obj 78 294 cnv 17 3 140 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 517 9 key;
#X text 98 261 (none);
#X text 98 411 Also note that key combinations \, such as SHIFT+7 produce
a different result than SHIFT or 7 alone.;
#X text 168 346 Some keys \, such as SHIFT or the F1-F12 series all
produce a zero \, but we can see by the [bng] that the event is not
ignored completely...but the numeric "ID" of the key is not captured
successfully. (This may produce different results on different systems.)
;
#X text 168 293 - the number received at the outlet represents the
numeric "ID" of a key on the computer's keyboard. This event occurs
when the key is pressed down. Only one event is captured at a time.
;
#X obj 46 113 key;
#X obj 26 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 46 150 5 0 0 0 - - -, f 5;
#X text 75 113 Type something on the keyboard to send input to Pd;
#X text 23 64 [key] reports the (system dependent) numbers of "printing"
keys of the keyboard.;
#X text 99 517 Caveat - this only works if Pd actually gets the key
events which can depend on the stacking order of windows and/or the
pointer location. This is dependent on the system.;
#N canvas 105 161 428 356 reacting_to_user_input 0;
#X text 19 37 Most \, if not all \, programming environments provide
us with tools to capture 'user initiated' events from the operating
system. Keyboard input \, mouse clicks \, and mouse movements are the
most common events in this 'user event' category.;
#X text 19 103 Pd's [key] \, [keyup] \, and [keyname] are complimented
by the externals such as [gemmouse] and [nimouse] to provide us with
a full range of tools to gleen a user's activities at the computer.
;
#X text 33 240 onKeyUp;
#X text 33 221 onKeyDown;
#X text 33 259 onKeyPress;
#X text 20 290 hmmm...wouldn't it be great if Pd also gave us onChange
\, onBlur \, onFocus \, onClick \, onDblClick \, onDragDrop \, onLoad
\, onMouseDown \, onMouseOver \, onMouseOut \, onMouseMove \, onUnload...?
;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [key] Reacing to User Input;
#X text 20 169 It's interesting to note that with these tools \, PD
can mimic some of the functions in other languages - Javascript for
example has:;
#X restore 102 564 pd reacting_to_user_input;
#N canvas 105 31 345 511 some_keyboard_fun 0;
#X obj 52 75 loadbang;
#X msg 23 16 bang;
#X obj 33 158 qlist;
#X floatatom 33 185 5 0 0 0 - - -, f 5;
#X obj 228 30 r keyboard_fun;
#X msg 52 105 read keyboard_fun.txt;
#X msg 45 51 rewind;
#X obj 228 112 symbol add2;
#X obj 228 83 t b s;
#X obj 228 138 pack s s;
#X obj 228 164 route list;
#X msg 47 245 set;
#X msg 47 278;
#X obj 228 57 symbol;
#X text 71 17 Click here to start...;
#X msg 62 131 tempo 0.8;
#X obj 47 217 loadbang;
#X connect 0 0 5 0;
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 13 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 9 1;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 13 0 8 0;
#X connect 15 0 2 0;
#X connect 16 0 11 0;
#X restore 102 588 pd some_keyboard_fun;
#X obj 245 611 pddp/pddplink all_about_hid.pd -text all_about_hid;
#X text 100 612 for more on HIDs:;
#X text 11 23 get input from the keyboard;
#X text 168 261 - [key] gets input directly from the keyboard.;
#X obj 4 637 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 153 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 173 190 5 0 0 0 - - -, f 5;
#X obj 173 153 key 1;
#X text 210 153 Legacy version which also includes autorepeat can be
invoked by passing an optional argument 1 at creation. Notice how
this version reports multiple presses when holding a key down.;
#X text 98 449 1) float;
#X text 168 449 - optional argument to enable legacy autorepeat detection.
0 or no argument will disable autorepeat reporting \, 1 will enable
legacy behavior and repeat press-and-hold as multiple pressess in succession.
;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 30 0 28 0;
#X connect 30 0 29 0;
#N canvas 515 143 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header line 3 12 0 18 -204280
-1 0;
#X obj 0 267 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 565 371 494 364 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 28 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 45 DESCRIPTION ramp generator;
#X text 12 65 INLET_0 float list stop;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 float;
#X text 12 185 RELEASE_DATE 1997;
#X text 12 5 KEYWORDS control time;
#X restore 500 598 pd META;
#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 439 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 498 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 297 500 428 230 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 43 line~;
#X obj 62 43 vline~;
#X text 8 2 [line] Related Objects;
#X text 19 102 Externals;
#X obj 19 142 pddp/helplink markex/tripleLine;
#X obj 19 162 pddp/helplink iemlib/t3_line~;
#X obj 19 182 pddp/helplink iemlib/fade~;
#X obj 19 122 pddp/helplink maxlib/step;
#X restore 101 598 pd Related_objects;
#X obj 78 276 cnv 17 3 63 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 275 float;
#X text 98 301 list;
#X text 98 383 float;
#X obj 78 384 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 347 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 346 float;
#X obj 509 10 line;
#X obj 137 180 line;
#X msg 137 87 1000 1000;
#X floatatom 137 201 5 0 0 0 - - -, f 5;
#X text 203 86 ramp up.;
#X msg 146 110 0 1000;
#X text 193 110 ramp down.;
#X msg 158 154 stop;
#X msg 154 133 42;
#X text 180 134 jumps to this value immediately.;
#X text 195 154 stops the current ramp.;
#N canvas 106 115 428 446 continuous_ramps 0;
#X text 19 98 In other words \, if [line] receives a message specifying
some new target and time before reaching the previous target \, it
takes off from its current value.;
#X obj 26 247 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 56 205 stop;
#X msg 49 185 42;
#X obj 23 226 line;
#X msg 23 144 127 5000;
#X msg 41 165 0 5000;
#X text 16 271 Due to this unique behavior \, a common construct found
in Pd patches includes the [pack] object as follows:;
#X obj 30 392 line;
#X floatatom 30 413 10 0 0 0 - - -, f 10;
#X floatatom 30 306 5 0 0 0 - - -, f 5;
#X obj 30 372 pack f 500;
#X msg 41 325 50;
#X msg 49 346 2000;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [line] Continuous Ramps;
#X text 21 37 [line] does not schedule its incoming messages. What
this means is that if you send [line] a new target value mid-way through
a ramp \, a new ramp is immediately created to the new target value
starting from the "current" value.;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 8 0 9 0;
#X connect 10 0 11 0;
#X connect 11 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X restore 101 551 pd continuous_ramps;
#N canvas 107 25 428 516 grain_rate_and_creation_arguments 0;
#X text 21 39 The "grain rate" of [line] is the rate at which it will
output its values. The faster the grain is \, the smoother the ramp
will appear. While slower grain rates will produce a more disjunct
ramp. Of course this setting will alter the amount of CPU that the
[line] object will require. Higher rates require more computation.
;
#X text 22 145 This means simply that [line] will output a new value
between its current value and your new value once every 20 milliseconds.
;
#X text 22 126 The default grain rate is 20 milliseconds.;
#X text 19 193 [line]'s optional creation arguments can be used to
reset the grain rate. However \, the grain rate cannot be reset dynamically.
;
#X text 21 248 First creation argument is the initial value: the starting
point of the first ramp.;
#X text 20 287 The second creation argument sets the grain rate. Observe
the following two examples to see how the grain rate effects the output.
;
#X obj 33 403 line 0 5;
#X obj 36 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X msg 136 332 127;
#X msg 168 340 0;
#X obj 135 368 pack f 5000;
#X obj 203 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 200 403 line 0 500;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [line] Grain Rate;
#X text 31 469 You can check the default grain rate in the subpatch
below:;
#N canvas 398 136 429 326 default_grain_rate 0;
#X obj 22 87 line;
#X obj 22 226 timer;
#X obj 22 111 t b b;
#X obj 49 137 spigot;
#X obj 101 169 0;
#X obj 22 193 spigot;
#X obj 22 64 t a b;
#X obj 65 87 1;
#X obj 71 226 1;
#X obj 22 251 print Pd's_default_grain_rate;
#X msg 22 42 0 200;
#X text 19 274 Here we assume the grain rate is less than 200 ms. For
a more comprehensive test we could start with a time value of 1 ms
and step up until the output ceases to increase.;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X text 7 1 [line] Pd's Default Grain Rate;
#X text 60 42 Click here to output pd's default grain rate to the console
;
#X connect 0 0 2 0;
#X connect 1 0 9 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 4 0;
#X connect 3 0 1 1;
#X connect 4 0 3 1;
#X connect 4 0 5 1;
#X connect 5 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 0 0;
#X connect 6 1 7 0;
#X connect 7 0 5 1;
#X connect 8 0 3 1;
#X connect 10 0 6 0;
#X restore 34 491 pd default_grain_rate;
#X connect 6 0 7 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X connect 10 0 12 0;
#X connect 12 0 11 0;
#X restore 101 529 pd grain_rate_and_creation_arguments;
#X text 11 23 ramp generator;
#X text 98 325 stop;
#X text 168 325 - stop the current ramp.;
#X text 167 346 - time to reach the target value (in milliseconds).
;
#X text 168 275 - target value. This value is stored and used as the
starting value for the next ramp.;
#X text 168 301 - a (target \, time) pair is distributed between the
two inlets.;
#X text 168 474 - grain rate in milliseconds (default: 20 ms).;
#X text 168 383 - [line] outputs a linear ramp \, reaching the target
value within the time value specified by the right inlet and at a grain
rate specified by the second creation argument (default 20 ms).;
#N canvas 106 32 428 493 tips_on_using_line 0;
#X text 20 39 [line]'s left inlet defines the "target" value. The right
inlet defines the "time" value. The "target \, time" pair of numbers
inform [line] to produce a numeric "ramp" from its current value (whatever
that might be at any given moment) to the new value within the alloted
time which is defined at the right inlet.;
#X obj 25 242 line;
#X msg 59 218 1000;
#X msg 25 218 1000;
#X obj 25 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 25 195 t b b;
#X floatatom 25 264 5 0 0 0 - - -, f 5;
#X obj 150 260 line;
#X msg 150 236 1000;
#X obj 150 216 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 150 282 5 0 0 0 - - -, f 5;
#X text 20 309 If [line] receives a new target value without an accompanying
"time" \, it simply jumps to the new value...as in the example above
on the right. In the example above on the left \, you'll see that [line]
will create a numeric ramp from 0 to 1000 over 1000 milliseconds. You
should also note that if you click that [bng] again a second time \,
nothing happens. This is because [line] is already at 1000 \, so sending
it new instructions to ramp to 1000 is meaningless and has no effect.
;
#X text 20 425 Having said all of that \, let's just reiterate that
it's important to send a "time" value to [line] before sending it a
new "target" value...unless of course you WANT it to jump immediately
to the new target.;
#X text 149 182 While this does NOT work unless;
#X text 149 196 you click "500" first.;
#X msg 184 236 500;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [line] Tips;
#X text 20 118 It is important to realize that [line] stores only the
current value...it does not remember the defined "time" (duration of
the ramp). Hence \, the example to the left works:;
#X connect 1 0 6 0;
#X connect 2 0 1 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 5 1 2 0;
#X connect 7 0 10 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 15 0 7 1;
#X restore 101 507 pd tips_on_using_line;
#X text 80 459 1) float;
#X text 80 474 2) float;
#X text 168 459 - initial value \, i.e. \, the starting point of the
first ramp.;
#X obj 3 598 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 98 571 pddp/pddplink ../3.audio.examples/C03.zipper.noise.pd
-text doc/3.audio.examples/C03.zipper.noise.pd;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 20 0 16 0;
#X connect 22 0 16 0;
#X connect 23 0 16 0;
#N canvas 426 36 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header line~ 3 12 0 18
-204280 -1 0;
#X obj 0 271 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 481 284 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Updated for version 0.33. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal time conversion;
#X text 12 45 DESCRIPTION audio ramp generator;
#X text 12 85 INLET_1 list;
#X text 12 105 OUTLET_0 signal;
#X text 12 65 INLET_0 float list stop;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 452 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 489 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 516 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X text 98 493 (none);
#N canvas 213 398 428 230 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 43 vline~;
#X obj 82 43 line;
#X text 8 2 [line~] Related Objects;
#X text 20 100 Externals;
#X obj 20 180 pddp/helplink markex/tripleLine;
#X obj 20 120 pddp/helplink iemlib/t3_line~;
#X obj 20 140 pddp/helplink iemlib/fade~;
#X obj 20 160 pddp/helplink maxlib/step;
#X restore 101 597 pd Related_objects;
#X obj 78 280 cnv 17 3 90 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 279 float;
#X text 98 305 list;
#X obj 78 461 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 381 cnv 17 3 65 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 380 float;
#X obj 509 9 line~;
#X obj 66 210 snapshot~;
#X obj 66 164 line~;
#X floatatom 66 233 0 0 0 0 - - -;
#X obj 108 187 metro 100;
#X msg 66 66 1 1000;
#X text 121 65 a pair of numbers starts a ramp;
#X msg 126 113 2;
#X text 158 113 a single number jumps to value;
#X msg 124 138 stop;
#X text 167 137 "stop" message freezes line~ at its current value;
#X msg 93 113 0;
#X msg 76 88 0 5000;
#X obj 108 164 loadbang;
#X text 98 359 stop;
#X text 98 460 signal;
#X text 167 380 - stores a duration in milliseconds until the next
target value is sent to the left inlet. Unlike most other objects in
Pd \, the value is only stored until it is used with this target value
to start the ramp-- after that point the right inlet is reset (to zero).
;
#X text 11 23 audio ramp generator;
#X text 168 305 - [line~] takes a two-element list to start a new ramp.
The first element specifies the target value \, and the second one
sets the duration in milliseconds. (Lists with more than two elements
will be truncated.);
#X text 168 279 - a float to the left inlet of [line~] will cause the
output to jump immediately to the target value.;
#X text 168 359 - the stop message freezes [line~] at its current value.
;
#X text 168 460 - the outgoing signal is the linear ramp.;
#X text 179 191 The [line~] object generates linear ramps whose levels
and timing are determined by messages you send it. The messages may
be a single target value (causing the output to jump to the target)
or a target and a time in milliseconds (to start a new ramp).;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 486 51 pddp/dsp;
#X obj 98 547 pddp/pddplink ../3.audio.examples/A03.line.pd/ -text
doc/3.audio.examples/A03.line.pd;
#X obj 98 562 pddp/pddplink ../3.audio.examples/A04.line2.pd/ -text
doc/3.audio.examples/A04.line2.pd;
#X text 98 521 More information about [line] can be found in the Pure
Documentation folder doc/3.audio.examples:;
#X obj 98 577 pddp/pddplink ../3.audio.examples/C05.sampler.oneshot.pd
-text doc/3.audio.examples/C05.sampler.oneshot.pd;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 19 0 16 0;
#X connect 20 0 17 0;
#X connect 22 0 17 0;
#X connect 24 0 17 0;
#X connect 26 0 17 0;
#X connect 27 0 17 0;
#X connect 28 0 19 0;
#N canvas 398 77 555 619 10;
#X obj 0 635 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header list 3 12 0 18 -204280
-1 0;
#X obj 0 144 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 450 328 494 344 META 0;
#X text 12 90 LIBRARY internal;
#X text 12 130 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 50 LICENSE SIBSD;
#X text 12 110 AUTHOR Miller Puckette;
#X text 12 170 HELP_PATCH_AUTHORS Updated for Pd version 0.40. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 70 DESCRIPTION building and using variable-length messages
;
#X text 12 5 NAME list append list prepend list trim list split list
length;
#X text 12 30 KEYWORDS control storage needs_work list_op symbol_op
;
#X text 12 150 RELEASE_DATE 2005;
#X restore 500 638 pd META;
#X obj 0 237 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 288 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 179 562 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [list] Related Objects;
#X obj 21 42 float;
#X obj 61 42 symbol;
#X obj 112 42 pack;
#X obj 152 42 unpack;
#X restore 102 639 pd Related_objects;
#X obj 78 246 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 78 153 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 510 11 list;
#N canvas 1 112 555 502 append 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 13 3 list append;
#X text 18 24 append (concatenate) the second list to the first;
#X obj 0 294 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 303 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 353 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 304 anything;
#X text 98 354 anything;
#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 456 n);
#X text 98 471 float;
#X text 80 440 1);
#X text 170 440 - the symbol "append".;
#X text 170 456 - an arbitrary number of additional floats or symbols
may be specified to initialize the list stored at the right inlet.
;
#X obj 158 219 list append 1 2;
#X floatatom 168 165 5 0 0 0 - - -, f 5;
#X msg 158 140 1 2 3;
#X msg 178 190 bang;
#X msg 285 189 bang;
#X obj 158 241 print append;
#X msg 285 163 4 5 6 and 7;
#X msg 285 80 4 5 6;
#X msg 285 139 four 5 6;
#X msg 285 110 list four 5 6;
#X text 178 354 - all input is converted to a list and stored.;
#X text 178 304 - all input is converted to a list. The list stored
at the right inlet is appended to it \, and the resulting list is sent
to the outlet.;
#X text 98 387 list;
#X text 168 387 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 440 symbol atom;
#X text 98 456 symbol atom;
#X connect 16 0 21 0;
#X connect 17 0 16 0;
#X connect 18 0 16 0;
#X connect 19 0 16 0;
#X connect 20 0 16 1;
#X connect 22 0 16 1;
#X connect 23 0 16 1;
#X connect 24 0 16 1;
#X connect 25 0 16 1;
#X restore 102 365 pd append;
#N canvas 89 83 428 592 about-lists 0;
#X obj 22 567 print message;
#X msg 22 380 list x.wav 44100;
#X msg 22 538 read \$1 \$2;
#X msg 22 409 set x.wav 44100;
#X msg 39 509 set \, add2 read \, adddollar 1 \, adddollar 2;
#X msg 22 439 x.wav 44100;
#X obj 39 483 loadbang;
#X text 127 486 reset message as it was;
#X text 139 380 good;
#X text 128 411 bad;
#X text 94 439 ugly;
#X msg 223 403 list 44100 x.wav;
#X msg 236 428 44100 x.wav;
#X obj 223 454 print number-first;
#X text 217 375 these two are equivalent:;
#X text 19 266 In the example below \, the top message sets \$1 to
"x.wav" and \$2 to 44100 in the "read" message. The lower message box
outputs the message "read x.wav 44100". The "set" message changes the
content of the message box itself (click on the longer message box
below to repair the damage.) The "ugly" message \, since it is neither
"list" nor "set" \, gets interpreted in an arbitrary (and probably
inappropriate!) way.;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [list] About lists in Pd;
#X text 19 37 Messages in Pd are somewhat artificially divided into
two classes. First are data-holding messages (bang \, float \, symbol
\, list) which are the primary way of communicating between objects.
Second is "everything else" (you could call them out-of-band messages
or metamessages) that describe changes in configuration \, read and
write files \, quit Pd \, etc. These are provided so that complex objects
don't need to have 100 separate inlets for every possible functionality.
It's not clear whether this was a good design choice \, but it's entrenched.
;
#X text 19 170 The distinction becomes visible \, and ugly \, when
the leading item in a data-holding message is a symbol. In this case
\, to disambiguate it from the other sort \, the printed form of the
message has a selector \, "list" or "symbol" prepended to it. Underneath
\, there is always a selector in front of data messages \, but it is
implied if the first data item is a number.;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 4 0;
#X connect 11 0 13 0;
#X connect 12 0 13 0;
#X restore 101 586 pd about-lists;
#X text 11 23 building and using variable-length messages;
#X text 80 307 1);
#X text 80 514 n);
#X text 180 365 append - append the second list to the first;
#X text 180 409 split - split a list in two;
#X text 180 387 prepend - prepend the second list to the first;
#X text 180 453 length - output the number of items in a list;
#X text 180 431 trim - trim the "list" selector off;
#X obj 212 98 list;
#X msg 233 68 rice;
#X msg 212 46 beans;
#X obj 212 120 print groceries;
#X msg 276 68 cornbread;
#X text 98 550 Here are some examples showing how to use these objects
to compose and/or use variable length messages:;
#N canvas 20 53 525 646 simple_sequencer 0;
#X obj 23 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 232 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 227 154 clear;
#X text 20 153 send;
#X msg 71 175 250;
#X msg 103 175 500;
#X msg 136 175 750;
#X msg 169 175 1000;
#X obj 23 258 list append;
#X obj 188 220 t l;
#X obj 71 214 list prepend;
#X obj 23 426 t l l;
#X obj 74 426 print start;
#X obj 129 257 print stored;
#X obj 23 451 list split 1;
#X obj 23 575 del;
#X obj 23 607 print bang;
#X obj 55 542 list append;
#X msg 35 403 0 250 250 500;
#X text 98 150 -- add --;
#X text 37 20 example 1: simple rhythmic sequencer;
#X text 29 53 The top part of this patch demonstrates building up a
message from a variable number of elements provided sequentially. The
"list prepend" object stores the list and \, each time a number arrives
\, prepends the previous list to it.;
#X text 216 237 "list prepend" to its own inlet.;
#X text 213 220 "trigger list" is needed only to connect outlet of
;
#X text 254 258 printout shows the growing message.;
#X text 47 279 "list append" stores the growing message which is output
by the "send" button above. "list prepend" would have been equivalent.
;
#X text 165 403 <-- test message;
#X text 39 354 The bottom part of the patch takes numbers off the beginning
of the list \, one by one \, to use as delays.;
#X text 190 426 printout shows the sequence as it starts.;
#X text 169 543 The rest of the list is stored for next time.;
#X obj 141 505 print done;
#X text 150 450 Split off the first item. If there is none \, nothing
comes out the first or second outlet \, but instead we get a "bang"
from the third one.;
#X text 64 575 After delay \, output a bang and recall the rest of
the list.;
#X connect 0 0 8 0;
#X connect 1 0 10 1;
#X connect 4 0 10 0;
#X connect 5 0 10 0;
#X connect 6 0 10 0;
#X connect 7 0 10 0;
#X connect 8 0 11 0;
#X connect 9 0 10 1;
#X connect 10 0 9 0;
#X connect 10 0 8 1;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 11 1 12 0;
#X connect 14 0 15 0;
#X connect 14 1 17 1;
#X connect 14 2 30 0;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 17 0 14 0;
#X connect 18 0 11 0;
#X restore 401 586 pd simple_sequencer;
#N canvas 127 68 397 569 another_sequencer 0;
#X obj 66 263 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 292 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 287 244 clear;
#X text 63 243 send;
#X obj 66 342 list append;
#X obj 213 317 t l;
#X obj 94 303 list prepend;
#X obj 66 410 t l l;
#X obj 121 410 print start;
#X obj 171 340 print stored;
#X obj 66 486 del;
#X obj 105 486 list append;
#X msg 94 264 250 57;
#X msg 154 264 500 52;
#X msg 215 264 750 55;
#X obj 66 461 unpack;
#X obj 66 435 list split 2;
#X text 80 38 example 2: sequencer with pitch;
#X text 147 242 -- add --;
#X obj 185 438 print done;
#X obj 115 517 print pitch;
#X text 13 69 This example is a slight modification of example 1 showing
how to build up lists with more than one item per iteration. We regard
pairs of numbers as specifying a delay time and a pitch. Unlike the
previous example \, the delay here is interpreted as teh delay until
the next event \, not the delay since the previous one. This is done
by taking the "pitch" output before the delay object (previously the
"output" was taken from the delay object's output.);
#X connect 0 0 4 0;
#X connect 1 0 6 1;
#X connect 4 0 7 0;
#X connect 5 0 6 1;
#X connect 6 0 5 0;
#X connect 6 0 4 1;
#X connect 6 0 9 0;
#X connect 7 0 16 0;
#X connect 7 1 8 0;
#X connect 10 0 11 0;
#X connect 11 0 16 0;
#X connect 12 0 6 0;
#X connect 13 0 6 0;
#X connect 14 0 6 0;
#X connect 15 0 10 0;
#X connect 15 1 20 0;
#X connect 16 0 15 0;
#X connect 16 1 11 1;
#X connect 16 2 19 0;
#X restore 401 608 pd another_sequencer;
#N canvas 48 176 447 426 serializer 0;
#X obj 19 287 list split 1;
#X obj 19 378 print;
#X obj 19 204 until;
#X obj 19 242 list append;
#X obj 45 171 t b l;
#X obj 149 287 bang;
#X msg 45 148 1 2 3 4 a b c;
#X text 34 21 example 3: serializing a message without delays;
#X text 17 55 The "until" object can be used as shown to iterate through
all the items of a list.;
#X text 178 147 <- click to test;
#X text 101 171 First store list \, then start the loop;
#X text 88 199 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 107 241 Store the remaining list.;
#X text 184 286 third outlet of "split" tells us to stop.;
#X text 37 318 Second outlet of "split" becomes the new list for "list
append" above.;
#X text 75 377 First outlet is the output.;
#X connect 0 0 1 0;
#X connect 0 1 3 1;
#X connect 0 2 5 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 2 0;
#X connect 4 1 3 1;
#X connect 5 0 2 1;
#X connect 6 0 4 0;
#X restore 241 608 pd serializer;
#N canvas 101 244 428 350 lists_vs_non-lists 0;
#X obj 23 290 list append 1 2;
#X floatatom 23 120 5 0 0 0 - - -, f 5;
#X msg 23 95 1 2 3;
#X msg 23 68 list cis boom bah;
#X msg 23 145 bang;
#X msg 162 260 bang;
#X obj 23 319 print append;
#X msg 23 43 walk the dog;
#X msg 162 210 list x y z;
#X msg 161 184 go dog go;
#X msg 160 234 4 5 6 and 7;
#X text 119 43 non-list message converted to list;
#X text 144 68 list starting with symbol;
#X text 75 118 number is one-element list;
#X text 75 95 numeric list;
#X text 75 145 bang is zero-element list;
#X text 226 184 same for right inlet...;
#X text 235 233 (note: only the first item;
#X text 238 252 need be a number to make this;
#X text 238 270 a list.);
#X text 121 290 <- creation args initialize the list to append;
#X obj 2 2 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 8 2 [list] Lists vs. Non-lists;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 1;
#X connect 7 0 0 0;
#X connect 8 0 0 1;
#X connect 9 0 0 1;
#X connect 10 0 0 1;
#X restore 101 608 pd lists_vs_non-lists;
#N canvas 0 82 555 506 prepend 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 299 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 308 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 354 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 309 anything;
#X text 98 355 anything;
#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 456 n);
#X text 98 471 float;
#X text 80 440 1);
#X text 170 456 - an arbitrary number of additional floats or symbols
may be specified to initialize the list stored at the right inlet.
;
#X floatatom 198 160 5 0 0 0 - - -, f 5;
#X msg 188 135 1 2 3;
#X msg 208 185 bang;
#X msg 315 184 bang;
#X msg 315 158 4 5 6 and 7;
#X msg 315 75 4 5 6;
#X msg 315 134 four 5 6;
#X msg 315 105 list four 5 6;
#X text 178 355 - all input is converted to a list and stored.;
#X text 18 24 prepend the second list to the first;
#X obj 13 3 list prepend;
#X obj 188 214 list prepend 1 2;
#X obj 188 236 print prepend;
#X text 178 309 - all input is converted to a list. The list stored
at the right inlet is prepended to it \, and the resulting list is
sent to the outlet.;
#X text 170 440 - the symbol "prepend".;
#X text 98 387 list;
#X text 168 387 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 440 symbol atom;
#X text 98 456 symbol atom;
#X connect 13 0 24 0;
#X connect 14 0 24 0;
#X connect 15 0 24 0;
#X connect 16 0 24 1;
#X connect 17 0 24 1;
#X connect 18 0 24 1;
#X connect 19 0 24 1;
#X connect 20 0 24 1;
#X connect 24 0 25 0;
#X restore 102 387 pd prepend;
#N canvas 1 82 555 530 split 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 277 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 371 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 380 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 286 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 314 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 287 anything;
#X obj 0 458 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 477 1);
#X msg 200 145 bang;
#X obj 159 173 list split 2;
#X floatatom 262 148 3 0 5 0 - - -, f 3;
#X msg 159 57 1 2;
#X msg 124 57 1;
#X text 156 228 first n;
#X text 245 228 rest of list;
#X text 337 228 shorter than n;
#X text 18 24 cut a list into smaller ones;
#X obj 13 3 list split;
#X msg 173 79 one 2 3;
#X msg 183 101 list one 2 3;
#X msg 193 123 1 2 three;
#X obj 159 211 print split0;
#X obj 248 211 print split1;
#X obj 340 211 print split2;
#X text 178 287 - all input is converted to a list.;
#X text 98 315 float;
#X text 98 381 list;
#X obj 78 403 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 404 list;
#X obj 78 425 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
-162280 0;
#X text 98 426 list;
#X text 178 315 - split point. A value of n will send the first n elements
to the left outlet \, and the rest of the list to the middle outlet.
Incoming lists shorter than n are sent to the rightmost outlet.;
#X text 168 381 - the first n elements of the incoming list.;
#X text 168 404 - the remaining elements of the incoming list.;
#X text 168 426 - if the incoming list has fewer than n elements \,
it is sent in its entirety to the rightmost outlet.;
#X text 170 477 - the symbol "split".;
#X text 98 493 float;
#X text 80 493 2);
#X text 98 477 symbol atom;
#X text 170 493 - (optional) an integer to initialize the split point.
;
#X connect 9 0 10 0;
#X connect 10 0 22 0;
#X connect 10 1 23 0;
#X connect 10 2 24 0;
#X connect 11 0 10 1;
#X connect 12 0 10 0;
#X connect 13 0 10 0;
#X connect 19 0 10 0;
#X connect 20 0 10 0;
#X connect 21 0 10 0;
#X restore 102 409 pd split;
#N canvas 1 82 555 481 trim 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 330 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 385 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 394 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 339 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 340 anything;
#X obj 0 429 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 448 1);
#X msg 49 139 1 2 3;
#X msg 49 90 list cis boom bah;
#X msg 49 195 bang;
#X msg 49 63 walk the dog;
#X obj 49 276 list trim;
#X obj 49 298 print trim;
#X msg 49 222 1 x y;
#X msg 49 248 x 1 y;
#X msg 49 113 55;
#X text 98 395 anything;
#X text 170 448 - the symbol "trim".;
#X obj 13 3 list trim;
#X text 18 24 remove the list selector;
#X text 128 230 The [list trim] object inputs lists (or makes lists
out of incoming non-list messages) and outputs a message whose selector
is the first item of the list \, and whose arguments \, if any \, are
the remainder of the list. If the list has no items \, or if its first
item is numeric \, the selector is "list" (which might print out as
list \, float \, or bang.);
#X text 98 448 symbol atom;
#X text 178 340 - all input is converted to a list. A bang message
is converted to an empty list. A symbol message like "symbol blah"
is converted to "list blah".;
#X text 134 63 non-list messages remain non-list messages;
#X text 97 139 implicit list remains a list;
#X msg 49 167 symbol x;
#X text 86 195 becomes message "list" (interpreted by most objects
as bang);
#X text 166 90 "list" selector gets trimmed off;
#X text 79 113 becomes "list 55" (interpreted by most objects as float)
;
#X text 112 167 "symbol" selector gets trimmed off.;
#X text 168 395 - after the incoming message is converted to a list
\, the "list" selector is removed and the message is output.;
#X connect 8 0 12 0;
#X connect 9 0 12 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X connect 16 0 12 0;
#X connect 26 0 12 0;
#X restore 102 431 pd trim;
#N canvas 2 128 555 490 length 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 374 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 411 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 420 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 383 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 384 anything;
#X obj 0 448 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 467 1);
#X obj 13 3 list length;
#X msg 226 161 1 2 3;
#X msg 226 112 list cis boom bah;
#X msg 227 187 bang;
#X msg 226 85 walk the dog;
#X msg 227 209 1 x y;
#X msg 226 235 x 1 y;
#X msg 226 135 55;
#X obj 201 263 list length;
#X floatatom 201 289 5 0 0 0 - - -, f 5;
#X text 18 24 number of elements in a list;
#X text 98 421 float;
#X text 170 467 - the symbol "length".;
#X text 98 467 symbol atom;
#X text 168 384 - any message type is accepted and converted to a list.
;
#X text 168 421 - [list length] outputs the number of elements in the
list.;
#X connect 9 0 16 0;
#X connect 10 0 16 0;
#X connect 11 0 16 0;
#X connect 12 0 16 0;
#X connect 13 0 16 0;
#X connect 14 0 16 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 102 453 pd length;
#X text 98 307 symbol atom;
#X text 98 322 float;
#N canvas 51 146 428 419 list_conversion_in_Pd 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X text 7 1 [list] Conversion;
#X text 19 168 In brief:;
#X text 19 188 "list" -> bang;
#X text 19 208 "list 1" -> "float 1";
#X text 19 228 "list hello" -> "symbol hello";
#X text 19 37 Most objects in Pd handle zero- and one-element lists
in the following way:;
#X text 19 67 * an incoming zero-element list (i.e. \, a message consisting
onf the selector "list") is treated as a bang.;
#X text 19 97 * an incoming one-element list that contains a float
is treated as a float.;
#X obj 22 331 route list float;
#X obj 22 304 list;
#X obj 22 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 68 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 22 277 12;
#X text 55 277 implicit float-- same as "float 12";
#X text 55 304 output as "list 12";
#X floatatom 68 387 5 0 0 0 - - -, f 5;
#X text 130 331 [route] converts "list 12" to "float 12";
#X text 19 127 * an incoming one-element list that contains a symbol
atom is treated as a symbol.;
#X connect 9 0 11 0;
#X connect 9 1 12 0;
#X connect 9 1 16 0;
#X connect 10 0 9 0;
#X connect 13 0 10 0;
#X restore 241 586 pd list_conversion_in_Pd;
#X text 170 307 - (optional) if no creation argument is given \, or
if the first creation argument is a number \, [list] will behave like
[list append]. Otherwise \, one of the following symbols may be given
as arguments (see subpatches for more info):;
#X text 98 245 [list] family objects always output a list. See the
"list_conversion_in_Pd" subpatch below for how lists are interpreted
by other objects.;
#X text 98 514 depending on what the first creation argument is \,
other creation arguments may be specified.;
#X text 98 154 See subpatches under the heading "arguments" for more
details. With the exception of the right inlet of [list split] \, All
[list] objects will convert incoming non-list messages to lists (e.g.
\, "set 5" will become "list set 5"). A bang message is converted to
an empty list (i.e. \, "list") \, and "symbol foo" is converted to
"list foo".;
#X obj 4 638 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X text 180 475 cat - build a list by accumulating elements;
#N canvas 1 112 555 488 cat 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
-204280 -1 0;
#X obj 0 304 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#X obj 0 387 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 78 396 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 313 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 363 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 314 anything;
#X obj 0 431 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X text 80 450 1);
#X floatatom 189 166 5 0 0 0 - - -, f 5;
#X msg 179 143 1 2 3;
#X msg 196 189 bang;
#X msg 170 120 4 5 6 and 7;
#X msg 128 51 4 5 6;
#X msg 158 98 four 5 6;
#X msg 144 74 list four 5 6;
#X text 98 397 list;
#X text 168 397 - the output is always a message with the selector
"list" (see subpatch "list_conversion" for more info).;
#X text 98 450 symbol atom;
#X obj 13 3 list cat;
#X text 18 24 append (concatenate) list to the previously entered list(s)
;
#X msg 203 225 clear;
#X obj 158 271 print cat;
#X obj 158 249 list cat;
#X text 98 364 clear;
#X text 178 364 - empties the stored list.;
#X text 178 314 - all input is converted to a list. The list is appended
to the list(s) previously entered in the left inlet \, and the resulting
list is sent to the outlet.;
#X text 170 450 - the symbol "cat".;
#X connect 9 0 23 0;
#X connect 10 0 23 0;
#X connect 11 0 23 0;
#X connect 12 0 23 0;
#X connect 13 0 23 0;
#X connect 14 0 23 0;
#X connect 15 0 23 0;
#X connect 21 0 23 1;
#X connect 23 0 22 0;
#X restore 102 475 pd cat;
#X connect 21 0 24 0;
#X connect 22 0 21 1;
#X connect 23 0 21 0;
#X connect 25 0 21 1;
#N canvas 427 35 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header log 3 12 0 18 -204280
-1 0;
#X obj 0 439 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 483 285 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS This help patch was updated for Pd
version 0.35 test 28 by Dave Sabine as part of a project called pddp
proposed by Krzysztof Czaja to build comprehensive documentation for
Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 5 KEYWORDS control;
#X text 12 45 DESCRIPTION natural logarithm of a number;
#X text 12 65 INLET_0 float;
#X text 12 85 OUTLET_0 float;
#X text 12 165 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 504 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 541 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;
#X text 98 545 (none);
#N canvas 215 516 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 208 42 abs;
#X obj 236 42 sqrt;
#X obj 271 42 pow;
#X obj 56 75 cos~;
#X obj 88 75 osc~;
#X obj 22 75 expr;
#X obj 22 42 sin;
#X obj 48 42 cos;
#X obj 75 42 tan;
#X obj 108 42 atan;
#X obj 143 42 atan2;
#X text 7 1 [log] Related Objects;
#X obj 181 42 exp;
#X restore 101 597 pd Related_objects;
#X obj 78 448 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 447 float;
#X text 98 467 list;
#X text 98 512 float;
#X obj 78 513 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X floatatom 239 217 0 0 0 0 - - -;
#X floatatom 239 160 0 0 0 0 - - -;
#X text 94 274 [log] will output the natural logarithm (base E) of
a number. The value of zero will produce "-1000" which represents "negative
infinity".;
#X obj 239 190 log;
#X obj 515 9 log;
#X text 11 23 natural logarithm of a number;
#X text 168 467 - a list will be truncated \, and the first element
will be used as input.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X connect 15 0 17 0;
#X connect 17 0 14 0;
#N canvas 428 38 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header lop~ 3 12 0 18 -204280
-1 0;
#X obj 0 381 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 487 290 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 25 LICENSE SIBSD;
#X text 12 145 AUTHOR Miller Puckette;
#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd version-0.38. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 5 KEYWORDS signal filter;
#X text 12 45 DESCRIPTION one-pole low pass filter;
#X text 12 65 INLET_0 signal clear;
#X text 12 85 INLET_1 float;
#X text 12 105 OUTLET_0 signal;
#X text 12 185 RELEASE_DATE 1997;
#X restore 500 597 pd META;
#X obj 0 488 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 525 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#X obj 78 390 cnv 17 3 37 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#N canvas 220 463 428 166 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 69 43 bp~;
#X obj 117 43 vcf~;
#X text 22 81 Raw Filters;
#X obj 73 108 rzero~;
#X obj 195 108 cpole~;
#X obj 24 108 rpole~;
#X obj 122 108 rzero_rev~;
#X obj 244 108 czero~;
#X obj 293 108 czero_rev~;
#X obj 22 43 hip~;
#X text 8 2 [lop~] Related Objects;
#X restore 101 597 pd Related_objects;
#X text 98 389 signal;
#X obj 78 497 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 497 signal;
#X obj 147 240 env~;
#X floatatom 147 263 0 0 0 0 - - -;
#X floatatom 180 185 0 0 0 0 - - -;
#X obj 88 240 env~;
#X floatatom 88 262 0 0 0 0 - - -;
#X floatatom 88 114 0 0 0 0 - - -;
#X obj 88 137 osc~ 100;
#X msg 147 161 clear;
#X text 168 389 - incoming audio signal.;
#X obj 78 432 cnv 17 3 45 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
-162280 0;
#X text 98 431 float;
#X text 98 449 list;
#X text 98 409 clear;
#X obj 514 10 lop~;
#X text 133 112 <- scroll to change input frequency;
#X obj 147 213 lop~ 5;
#X text 84 291 Compare the strength of the original signal on the left
with that of the filtered signal on the right.;
#X text 11 23 one-pole low pass filter;
#X text 168 544 - initial rolloff frequency.;
#X text 168 409 - reinitialize internal state.;
#X text 168 431 - cutoff frequency in Hz.;
#X text 168 449 - a list to the right inlet is truncated \, and the
first element is used as the cutoff frequency.;
#X text 168 497 - output is the filtered audio signal.;
#X text 80 544 1) float;
#X text 191 240 [env~] gives the amplitude of the signal envelop in
dB.;
#X text 88 68 [lop~] is a one-pole low pass filter with a specified
rolloff frequency.;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 479 51 pddp/dsp;
#X connect 12 0 13 0;
#X connect 14 0 27 1;
#X connect 15 0 16 0;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 18 0 27 0;
#X connect 19 0 27 0;
#X connect 27 0 12 0;