#N canvas 419 23 590 723 12;
#X declare;
#X obj 54 2364 delay;
#X obj 54 2416 metro;
#X obj 54 2442 line;
#X obj 54 2468 timer;
#X obj 54 2494 cputime;
#X obj 54 2520 realtime;
#X text 183 2519 - measure real time;
#X obj 54 2390 pipe;
#X obj 54 2867 random;
#X obj 174 2907 max;
#X obj 204 2907 min;
#X obj 54 2841 clip;
#X obj 54 3363 notein;
#X obj 105 3363 ctlin;
#X obj 149 3363 pgmin;
#X obj 193 3363 bendin;
#X obj 244 3363 touchin;
#X obj 54 3387 polytouchin;
#X obj 302 3376 midiin;
#X obj 139 3387 sysexin;
#X obj 54 3427 noteout;
#X obj 112 3427 ctlout;
#X obj 163 3427 pgmout;
#X obj 214 3427 bendout;
#X obj 54 3451 touchout;
#X obj 120 3451 polytouchout;
#X obj 214 3451 midiout;
#X obj 54 3491 makenote;
#X obj 54 3517 stripnote;
#X text 183 3516 - strip "note off" messages;
#X obj 54 1026 tabread;
#X obj 54 1052 tabread4;
#X obj 54 1078 tabwrite;
#X obj 54 1104 soundfiler;
#X obj 54 6071 loadbang;
#X obj 54 1468 qlist;
#X obj 54 3543 poly;
#X obj 54 4884 clip~;
#X obj 54 4844 wrap~;
#X obj 54 7357 framp~;
#X obj 54 4093 dac~;
#X text 183 4092 - audio output;
#X obj 54 4067 adc~;
#X text 183 4066 - audio input;
#X obj 54 4119 sig~;
#X text 183 4118 - convert numbers to audio signals;
#X obj 54 4145 line~;
#X obj 54 4171 vline~;
#X obj 54 4249 snapshot~;
#X obj 54 4275 vsnapshot~;
#X obj 54 4327 bang~;
#X obj 54 4353 samplerate~;
#X obj 54 4393 send~;
#X obj 98 4393 receive~;
#X obj 54 4433 throw~;
#X obj 105 4433 catch~;
#X obj 54 6373 block~;
#X obj 54 4473 readsf~;
#X text 183 4472 - soundfile playback from disk;
#X obj 54 4499 writesf~;
#X obj 54 5250 phasor~;
#X obj 54 5276 cos~;
#X obj 54 5302 osc~;
#X obj 54 5380 tabwrite~;
#X obj 54 5354 tabplay~;
#X text 183 5354 - play back from a table (non-transposing);
#X obj 54 5406 tabread~;
#X obj 54 5432 tabread4~;
#X obj 54 5328 tabosc4~;
#X obj 54 5458 tabsend~;
#X text 183 5458 - write one block continuously to a table;
#X obj 54 5484 tabreceive~;
#X text 183 5484 - read one block continuously from a table;
#X obj 54 5575 vcf~;
#X obj 54 5224 noise~;
#X obj 54 4223 env~;
#X text 183 4222 - envelope follower;
#X obj 54 5601 hip~;
#X obj 54 5627 lop~;
#X obj 54 5679 bp~;
#X obj 54 5705 biquad~;
#X obj 54 4301 samphold~;
#X text 183 4300 - sample and hold unit;
#X obj 54 4525 print~;
#X text 183 4524 - print out one or more "blocks";
#X obj 54 5745 rpole~;
#X text 183 5744 - raw real-valued one-pole filter;
#X obj 54 5771 rzero~;
#X text 183 5770 - raw real-valued one-zero filter;
#X obj 54 5797 rzero_rev~;
#X obj 54 5837 cpole~;
#X obj 105 5837 czero~;
#X obj 54 5928 delwrite~;
#X obj 54 5954 delread~;
#N canvas 52 50 450 300 (subpatch) 0;
#X restore 54 6201 pd;
#X obj 54 1130 table;
#X obj 54 6267 inlet;
#X obj 54 6293 outlet;
#X obj 54 6333 inlet~;
#X obj 105 6333 outlet~;
#X obj 54 6464 struct;
#X obj 54 6530 drawcurve;
#X obj 126 6530 filledcurve;
#X obj 54 6504 drawpolygon;
#X obj 140 6504 filledpolygon;
#X obj 54 6596 plot;
#X obj 54 6556 drawnumber;
#X obj 54 6648 pointer;
#X obj 54 6674 get;
#X obj 54 6700 set;
#X obj 54 6726 element;
#X obj 54 6752 getsize;
#X obj 54 6778 setsize;
#X obj 54 6804 append;
#X obj 54 6622 scalar;
#X obj 156 5837 czero_rev~;
#X obj 54 4197 threshold~;
#X obj 91 4746 min~;
#X obj 54 4746 max~;
#X obj 84 2907 -;
#X obj 114 2907 *;
#X obj 144 2907 /;
#X obj 54 2907 +;
#X obj 54 4722 +~;
#X obj 84 4722 -~;
#X obj 114 4722 *~;
#X obj 144 4722 /~;
#X obj 54 6097 declare;
#X text 183 6332 - signal versions;
#X obj 91 4769 pow~;
#X obj 54 4769 log~;
#X obj 98 4844 exp~;
#X obj 54 4820 abs~;
#X text 183 3490 - schedule delayed "note off" message for a note-on;
#X obj 54 1508 textfile;
#X obj 91 4820 sqrt~;
#X obj 54 3569 oscparse;
#X obj 54 3595 oscformat;
#X obj 54 6897 sigmund~;
#X obj 54 6923 bonk~;
#X obj 54 6949 choice;
#X obj 54 6975 hilbert~;
#X obj 54 7001 complex-mod~;
#X obj 54 7027 loop~;
#X obj 54 7053 lrshift~;
#X obj 54 7079 pd~;
#X obj 54 7151 rev1~;
#X obj 98 7151 rev2~, f 6;
#X obj 149 7151 rev3~, f 7;
#X obj 54 7105 stdout;
#X obj 54 7191 bob~;
#X obj 54 6149 clone;
#X obj 195 3387 midirealtimein;
#X obj 54 5980 delread4~;
#X obj 135 4830 rsqrt~;
#X obj 54 7476 q8_sqrt~;
#X obj 54 7499 q8_rsqrt~;
#X obj 54 4682 expr~;
#X obj 54 2815 expr;
#X obj 98 4682 fexpr~;
#X text 183 2814 - C-style expressions;
#X obj 133 6556 drawsymbol;
#X obj 212 6556 drawtext;
#X obj 54 6123 savestate;
#X obj 54 5653 slop~, f 7;
#X obj 54 6175 pdcontrol;
#X obj 54 7383 fiddle~;
#X obj 112 7383 pique;
#X text 183 5250 - phase ramp generator;
#X text 183 6621 - create a single scalar (experimental);
#X obj 54 6227 namecanvas;
#X text 183 6226 - attach a name to a pd window;
#X text 183 5276 - cosine wavetable;
#X obj 54 7231 output~;
#X text 183 2363 - send a bang message after a time delay;
#X text 183 2415 - send a bang message periodically (a la metronome);
#X text 183 6463 - define a data structure template;
#X text 183 6673 - get field values (floats/symbols) from a scalar;
#X text 183 6699 - set field values (floats/symbols) of a scalar;
#X text 183 6803 - add a scalar to a Data Structure list;
#X obj 54 753 list append;
#X obj 54 779 list prepend;
#X obj 54 857 list trim;
#X obj 54 831 list split;
#X obj 54 883 list length;
#X obj 54 909 list fromsymbol;
#X obj 54 935 list tosymbol;
#X obj 54 805 list store;
#X obj 54 1196 array size;
#X obj 54 1170 array define;
#X obj 54 1222 array sum;
#X obj 54 1300 array quantile;
#X obj 54 1248 array get;
#X obj 54 1274 array set;
#X obj 54 1326 array random;
#X obj 54 1352 array max;
#X obj 54 1378 array min;
#X obj 54 3051 sin;
#X obj 84 3051 cos;
#X obj 114 3051 tan;
#X obj 144 3051 atan;
#X obj 181 3051 atan2;
#X obj 84 3011 sqrt;
#X obj 234 2907 log;
#X obj 158 3011 exp;
#X obj 54 3011 abs;
#X obj 121 3011 wrap;
#X obj 264 2907 pow;
#X obj 54 2947 >;
#X obj 84 2947 >=;
#X obj 144 2947 <=;
#X obj 114 2947 <;
#X obj 174 2947 ==;
#X obj 204 2947 !=;
#X obj 234 2947 div;
#X obj 234 2971 mod;
#X obj 54 2971 &&;
#X obj 84 2971 ||;
#X obj 114 2971 &;
#X obj 144 2971 |;
#X obj 174 2971 <<;
#X obj 204 2971 >>;
#X text 183 2866 - pseudo random integers;
#X obj 54 1548 text define;
#X obj 54 1574 text get;
#X obj 54 1678 text size;
#X obj 54 1600 text set;
#X obj 54 1704 text tolist;
#X obj 54 1730 text fromlist;
#X obj 54 1756 text search;
#X obj 54 1782 text sequence;
#X obj 54 1652 text delete;
#X obj 54 1626 text insert;
#X text 183 1729 - convert from a list to a text;
#X text 183 1755 - search for a line in a text;
#X text 183 1781 - text based sequencer/message-sender;
#X obj 54 1873 file handle;
#X obj 54 2069 file stat;
#X text 183 1872 - read/write binary files;
#X text 183 2002 - find a file in Pd's search-path;
#X text 183 2028 - list files in directories;
#X obj 54 2029 file glob;
#X obj 54 2003 file which;
#X obj 54 1925 file mkdir;
#X text 183 1924 - create a directory;
#X obj 54 2185 file delete;
#X text 183 2184 - delete files and directories;
#X obj 54 2133 file copy;
#X text 183 2132 - copy files;
#X obj 54 2159 file move;
#X text 183 2158 - move files;
#X obj 54 2225 file split;
#X obj 54 2249 file join;
#X obj 133 2225 file splitext;
#X obj 126 2249 file splitname;
#X obj 54 2093 file isfile;
#X obj 126 2069 file isdirectory;
#X obj 140 2093 file size;
#X obj 54 1899 file define \$0.f;
#X text 183 1898 - shared file handles;
#X obj 54 4013 snake~ in;
#X obj 54 4040 snake~ out;
#X text 183 4012 - combine mono signals into multichannel signals;
#X text 183 4039 - split multichannel signals into mono signals;
#X obj 54 324 bang;
#X obj 54 454 float;
#X obj 54 532 symbol;
#X obj 54 480 int;
#X obj 54 584 send;
#X obj 54 610 receive;
#X obj 54 376 route;
#X obj 54 701 pack;
#X obj 54 727 unpack;
#X obj 54 350 trigger;
#X obj 54 428 print;
#X obj 54 558 makefilename;
#X obj 54 402 swap;
#X obj 54 506 value;
#X obj 54 3792 netsend;
#X obj 54 3818 netreceive;
#X text 183 3791 - send messages over a network connection;
#X text 183 3817 - receive messages over a network connection;
#X obj 54 2611 select;
#X obj 54 2669 spigot;
#X obj 54 2696 moses;
#X text 183 2695 - part a numeric stream;
#X obj 54 2724 until;
#X obj 54 2641 change;
#X text 183 2640 - eliminate repeated numbers;
#X text 183 2668 - pass or block messages;
#X text 183 2723 - bang loop mechanism;
#X obj 54 3922 trace;
#X text 183 3921 - message tracing for debugging;
#X obj 54 3686 openpanel;
#X obj 54 3712 savepanel;
#X obj 54 3896 bag;
#X obj 54 3752 key;
#X obj 84 3752 keyup;
#X obj 128 3752 keyname;
#X text 183 3895 - collection of numbers;
#X obj 54 3844 fudiparse;
#X obj 54 3870 fudiformat;
#X text 183 3843 - convert FUDI messages to Pd messages;
#X text 183 3869 - convert Pd messages to FUDI message;
#X text 183 3594 - convert lists to OSC packets;
#X text 183 3568 - parse OSC packets into Pd messages;
#X text 183 4170 - deluxe [line~];
#X text 183 4274 - deluxe [snapshot~];
#X obj 54 4975 mtof~;
#X obj 54 5001 ftom~;
#X obj 54 5041 dbtorms~;
#X obj 54 5067 rmstodb~;
#X obj 54 5107 dbtopow~;
#X obj 54 5133 powtodb~;
#X text 183 3141 - MIDI pitch to Frequency in hertz;
#X text 183 3193 - dB to linear "RMS";
#X text 183 3219 - linear "RMS" to dB;
#X text 183 3245 - dB to power unit (square of "RMS");
#X text 183 3271 - power unit (square of "RMS") to dB;
#X text 183 3167 - frequency in hertz to MIDI pitch;
#X obj 54 3142 mtof;
#X obj 54 3168 ftom;
#X obj 54 3194 dbtorms;
#X obj 54 3220 rmstodb;
#X obj 54 3246 dbtopow;
#X obj 54 3272 powtodb;
#X text 183 2441 - timed ramp generator;
#X text 183 2467 - measure logical time;
#X text 183 2493 - measure CPU time/usage;
#X text 183 2389 - message "delay line";
#X text 183 2610 - compare numbers or symbols;
#X text 183 2840 - bound a number between two limits;
#X text 183 3542 - MIDI-style polyphonic voice allocator;
#X text 183 3685 - query for files or directories;
#X text 183 3710 - query you for the name of a file to create;
#X text 183 4144 - audio ramp generator;
#X text 183 4196 - detect signal thresholds (schmitt trigger);
#X text 183 4248 - convert a signal to a number on demand;
#X text 183 4326 - output a bang after each DSP block;
#X text 183 4352 - get sample rate;
#X text 183 4392 - one-to-many nonlocal signal(s) connection;
#X text 183 4432 - summing signal bus and non-local connection;
#X text 183 4498 - record audio signals to a soundfile;
#X obj 54 4642 fft~;
#X obj 104 4642 ifft~;
#X text 183 4641 - forward and inverse complex FFT;
#X obj 54 4616 rfft~;
#X obj 104 4616 rifft~;
#X text 183 4615 - forward and inverse real FFT;
#X text 183 4883 - bound a signal between two limits;
#X text 183 4974 - MIDI pitch to Frequency in hertz for signals;
#X text 183 5000 - frequency in hertz to MIDI pitch for signals;
#X text 183 5040 - dB to linear "RMS" for signals;
#X text 183 5066 - linear "RMS" to dB for signals;
#X text 183 5106 - dB to power unit (square of "RMS") for signals;
#X text 183 5132 - power unit (square of "RMS") to dB for signals;
#X text 183 5224 - uniformly distributed white noise;
#X text 183 5302 - cosine wave oscillator;
#X text 183 5328 - 4-point interpolating wavetable oscillator;
#X text 183 5380 - write a signal in an array;
#X text 183 5406 - non-interpolating table lookup for signals;
#X text 183 5432 - 4-point-interpolating table lookup for signals;
#X text 183 5574 - voltage-controlled band/low-pass filter;
#X text 183 5600 - one-pole high pass filter;
#X text 183 5626 - one-pole low pass filter;
#X text 183 5652 - slew-limiting / low pass filter;
#X text 183 5678 - 2-pole band-pass filter;
#X text 183 5704 - raw biquad 2nd order filter;
#X text 183 5953 - read a signal from a delay line (no interpolation);
#X text 183 5979 - read from a delay line with 4-point interpolation;
#X text 183 6096 - set search path and/or libraries for the patch;
#X text 183 6070 - send a "bang" when loading the patch;
#X text 183 6122 - mechanism for saving the state of an abstraction;
#X text 183 6174 - get patch/window information;
#X text 183 6148 - make multiple copies of an abstraction;
#X text 183 6200 - create a subpatch;
#X text 183 6266 - add an inlet to a subpatch/abstraction;
#X text 183 6292 - add an outlet to a pd subpatch/abstraction;
#X text 183 6595 - draw array in a scalar;
#X text 183 6647 - store the location of a scalar in a list;
#X text 183 6725 - get pointer to a Data Structure's array element;
#X text 183 6751 - get the size of a Data Structure's array;
#X text 183 6777 - change the size of a Data Structure's array;
#X text 183 6922 - attack detection and spectral envelope measurement;
#X text 183 6896 - signal analyzer (pitch/amplitude and more);
#X text 183 6948 - search for a best match to an incoming list;
#X text 183 6974 - hilbert transform;
#X text 183 7000 - complex amplitude modulator (frequency shifter);
#X text 183 7026 - phase generator for looping samplers;
#X text 183 7052 - shift block elements left or right;
#X text 183 7078 - run a Pd sub-proccess (for multiprocessing);
#X text 183 7104 - standard output for sub-process;
#X text 183 7193 - Moog analog lowpass resonant filter simulation;
#X text 183 7356 - FFT frequency estimate (use [sigmund~] now);
#X text 183 7382 - pitch/peaks estimate (use [sigmund~] now);
#X obj 54 7435 %;
#X obj 54 7409 template;
#X obj 54 143 pd-messages;
#X obj 161 2273 file isabsolute;
#X obj 54 2273 file normalize;
#X obj 54 1951 file cwd;
#X text 183 1950 - get/set the current working directory;
#X obj 54 1977 file patchpath;
#X text 183 1976 - get path relative to the patch;
#X text 183 4680 - C-style expressions / filter expressions;
#X obj 18 19 cnv 1 539 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 183 323 - convert to a bang message;
#X text 183 349 - sequence messages in right-to-left order;
#X text 183 375 - route messages according to first element;
#X text 183 401 - swap two numbers;
#X text 183 427 - print out messages;
#X text 183 453 - store and recall a number;
#X text 183 479 - store and recall an integer;
#X text 183 505 - shared numeric value;
#X text 183 531 - store and recall a symbol;
#X text 183 583 - send messages without patch cords;
#X text 183 609 - receive messages without patch cords;
#X text 183 726 - split lists into atoms;
#X text 183 752 - append the second list to the first;
#X text 183 557 - format a symbol name with a variable field;
#X text 15 288 _________________________ GENERAL DATA MANAGEMENT ___________________________, f 77;
#X text 183 778 - prepend the second list to the first;
#X text 183 804 - build up or break down a list;
#X text 183 830 - split a list in two;
#X text 183 856 - trim the "list" selector off;
#X text 183 882 - output number of items in list;
#X text 183 908 - convert symbols to numeric characters;
#X text 15 665 _________________________ LIST MANAGEMENT ___________________________________, f 77;
#X text 15 990 _________________________ ARRAYS/TABLES _____________________________________, f 77;
#X text 15 1432 _________________________ TEXT MANAGEMENT ___________________________________, f 77;
#X text 15 1837 _________________________ FILE MANAGEMENT ___________________________________, f 77;
#X text 15 2328 _________________________ TIME ______________________________________________, f 77;
#X text 15 2575 _________________________ LOGIC _____________________________________________, f 77;
#X text 15 2779 _________________________ MATH ______________________________________________, f 77;
#X text 15 3106 _________________________ ACOUSTIC CONVERSIONS ______________________________, f 77;
#X text 15 3327 _________________________ MIDI/OSC __________________________________________, f 77;
#X text 15 3650 _________________________ MISC ______________________________________________, f 77;
#X text 15 3977 _________________________ GENERAL AUDIO TOOLS _______________________________, f 77;
#X text 15 4580 _________________________ SIGNAL MATH _______________________________________, f 77;
#X text 15 4939 _________________________ SIGNAL ACOUSTIC CONVERSIONS _______________________, f 77;
#X text 15 5188 _________________________ AUDIO GENERATORS AND TABLES _______________________, f 77;
#X text 15 5539 _________________________ AUDIO FILTERS _____________________________________, f 77;
#X text 15 5892 _________________________ AUDIO DELAY _______________________________________, f 77;
#X text 15 6035 _________________________ PATCH/SUBPATCH ____________________________________, f 77;
#X text 15 6428 _________________________ DATA STRUCTURES ___________________________________, f 77;
#X text 15 6859 _________________________ "EXTRA" (patches and externs in pd/extra) _________, f 77;
#X text 15 7325 _________________________ OBSOLETE / DEPRECATED _____________________________, f 77;
#X text 183 700 - combine atoms into a list;
#X text 183 1025 - non-interpolating table lookup;
#X text 183 1051 - 4-point-interpolating table lookup;
#X text 183 1077 - write numbers to a table;
#X text 183 934 - convert numeric characters to symbols;
#X text 183 1129 - create a subwindow with an array (rather deprecated \, check [array define] instead), f 43;
#X text 183 1103 - import/export soundfiles to/from arrays;
#X text 183 1169 - create \, store \, and/or edit an array;
#X text 183 1195 - get or change array size;
#X text 183 1221 - sum all or a range of array's elements;
#X text 183 1247 - get array contents as a list;
#X text 183 1273 - set array contents from a list;
#X text 183 1299 - get array quantile;
#X text 183 1325 - array as weighted probabilities;
#X text 183 1351 - find highest value in array;
#X text 183 1377 - find lowest value in array;
#X text 183 1467 - text-based sequencer (rather deprecated \, check [text sequence] instead), f 42;
#X text 183 1507 - read/write text files (rather deprecated \, check the ones below instead), f 43;
#X text 183 1547 - create \, store \, and/or edit a text;
#X text 183 1573 - get a line from a text;
#X text 183 1599 - replace or add a line to a text;
#X text 183 1625 - insert a line to a text;
#X text 183 1651 - delete a line or clear text;
#X text 183 1677 - get number of lines in a text;
#X text 183 1703 - convert a text into list;
#X obj 18 7552 cnv 1 539 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 183 5927 - writes a signal in a delay line;
#X text 183 5796 - real one-zero "reverse" filter;
#X text 356 3377 - MIDI input;
#X text 275 3439 - MIDI output;
#X text 190 3751 - grab keyboard input;
#X text 189 4829 - unary (one-input) signal operators;
#X text 241 6503 - draw polygon shapes in a scalar;
#X text 212 6529 - draw shapes with bezier curve in a scalar;
#X text 279 6555 - draw number/symbol/text fields;
#X text 210 7150 - reverberators;
#X text 183 4746 - binary (two-input) signal operators;
#X text 100 6373 [switch~];
#X text 237 5836 - complex-valued variants;
#X text 191 3010 - unary (one-input) operators;
#X text 229 3050 - trigonometric functions;
#X text 267 2959 - other binary operators;
#X text 296 2906 - binary (two-input) operators;
#X text 235 2248 - filename operations;
#X text 249 2080 - get information on existing files;
#X text 183 7408 - use [struct] now;
#X text 183 7434 - use [mod] instead;
#X text 183 7230 - simple stereo output GUI abstraction;
#X text 197 7245 (used in the documentation), f 36;
#X text 183 6372 - set block size \, overlap and up/downsampling, f 49;
#X text 197 6388 (and switch subpatches if invoked as [switch~]);
#X text 67 80 But first \, we here present a help file with messages you can send to Pd or canvas windows., f 64;
#X text 67 41 This file contains a list of built-in objects in Pd. Right-click on any object to get its "help window"., f 64;
#X text 143 142 <-- click for messages you can send to Pd or canvases;
#X text 22 184 ----------------------------------- GUIs -----------------------------------, f 76;
#X text 172 225 click and open for all Graphical User Interface (GUI) objects in Pd, f 48;
#X obj 76 226 all_guis;
#X text 143 225 <--;
#X text 183 7473 - these used to be cheap 8 bits versions of square root functions but now are the same as srqt~] and [rsqrt~] (so just use them instead), f 51;
