aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuenter Geiger <ggeiger@users.sourceforge.net>2002-11-19 12:02:33 +0000
committerGuenter Geiger <ggeiger@users.sourceforge.net>2002-11-19 12:02:33 +0000
commitc17e6115bda2e692dab2c47dc0be6e343741bc61 (patch)
tree7d3ef040ce972f931d8934a7d066fbb31495662a
parent7e0207c8a5d4689c55d0fd99ba2a67c281ce5dea (diff)
added doc directory
svn path=/trunk/; revision=220
-rw-r--r--externals/build/doc/ann/som.pd114
-rw-r--r--externals/build/doc/apply~.pd22
-rw-r--r--externals/build/doc/atan2~.pd4
-rw-r--r--externals/build/doc/bandpass.pd38
-rw-r--r--externals/build/doc/cdplayer.pd30
-rw-r--r--externals/build/doc/cxc/ENV.pd34
-rw-r--r--externals/build/doc/cxc/ascseq.pd12
-rw-r--r--externals/build/doc/cxc/ascwave.pd65
-rw-r--r--externals/build/doc/cxc/bfilt.pd23
-rw-r--r--externals/build/doc/cxc/cxc.prepend.pd13
-rw-r--r--externals/build/doc/cxc/delta.pd63
-rw-r--r--externals/build/doc/cxc/proc.pd75
-rw-r--r--externals/build/doc/cxc/randomix.pd181
-rw-r--r--externals/build/doc/cxc/serialize.pd10
-rw-r--r--externals/build/doc/cxc/statistics.pd120
-rw-r--r--externals/build/doc/cxc/utime.pd9
-rw-r--r--externals/build/doc/equalizer.pd39
-rw-r--r--externals/build/doc/ext13.pd109
-rw-r--r--externals/build/doc/filtgain.pd74
-rw-r--r--externals/build/doc/help-aenv~.pd76
-rw-r--r--externals/build/doc/help-svf~.pd137
-rw-r--r--externals/build/doc/help-zhzxh~.pd39
-rw-r--r--externals/build/doc/highpass.pd35
-rw-r--r--externals/build/doc/highshelf.pd39
-rw-r--r--externals/build/doc/hlshelf.pd34
-rw-r--r--externals/build/doc/inv.pd26
-rw-r--r--externals/build/doc/kalashnikov.pd23
-rw-r--r--externals/build/doc/lowpass.pd35
-rw-r--r--externals/build/doc/lowshelf.pd39
-rw-r--r--externals/build/doc/mandelbrot.pd13
-rw-r--r--externals/build/doc/mandelbrot~.pd53
-rw-r--r--externals/build/doc/mixer~.pd87
-rw-r--r--externals/build/doc/moog~.pd39
-rw-r--r--externals/build/doc/notch.pd35
-rw-r--r--externals/build/doc/openpatch.pd11
-rw-r--r--externals/build/doc/ossmixer.pd67
-rw-r--r--externals/build/doc/pipeio~.pd29
-rw-r--r--externals/build/doc/promiscous~.pd9
-rw-r--r--externals/build/doc/receivelocal.pd18
-rw-r--r--externals/build/doc/rtin~.pd32
-rw-r--r--externals/build/doc/scramble~.pd107
-rw-r--r--externals/build/doc/send13.pd11
-rw-r--r--externals/build/doc/sendlocal.pd18
-rw-r--r--externals/build/doc/serial_bird.pd35
-rw-r--r--externals/build/doc/serialctl.pd61
-rw-r--r--externals/build/doc/serialize.pd8
-rw-r--r--externals/build/doc/serialmouse.pd35
-rw-r--r--externals/build/doc/sfread~.pd44
-rw-r--r--externals/build/doc/sfwrite.pd45
-rw-r--r--externals/build/doc/shell.pd39
-rw-r--r--externals/build/doc/streamin~.pd41
-rw-r--r--externals/build/doc/streamio13~.pd51
-rw-r--r--externals/build/doc/streamout~.pd49
-rw-r--r--externals/build/doc/stripdir.pd7
-rw-r--r--externals/build/doc/unwonk.pd36
-rw-r--r--externals/build/doc/wavinfo.pd18
56 files changed, 2516 insertions, 0 deletions
diff --git a/externals/build/doc/ann/som.pd b/externals/build/doc/ann/som.pd
new file mode 100644
index 00000000..9f039792
--- /dev/null
+++ b/externals/build/doc/ann/som.pd
@@ -0,0 +1,114 @@
+#N canvas 50 -127 640 687 10;
+#X msg 131 495 print;
+#X msg 132 528 new 5 8 8;
+#X msg 127 99 init;
+#X msg 128 274 train;
+#X msg 129 296 test;
+#X msg 128 387 write;
+#X obj 70 559 ann_som 4 9 10;
+#X msg 70 49 1 0 0 1;
+#X msg 70 68 0 1 0 1;
+#X msg 70 87 2 1 0 0;
+#X msg 128 118 init 0.5;
+#X msg 128 138 init 1 0.5 0 0.5;
+#X text 234 101 init all weights with "0";
+#X text 235 120 init all weights with "0.5";
+#X text 235 137 init weights for each sensor;
+#X msg 128 163 learn 1;
+#X msg 128 197 learn 1 0.9 0.1;
+#X text 226 163 set learning rate to 1;
+#X msg 128 180 learn 0.5 0.999;
+#X text 227 179 set learning rate to 0.5 and factor to 0.999;
+#X text 227 197 set learning rate to 1 \, factor to 0.9 and offset to 0.1;
+#X msg 128 214 neighbour 1;
+#X msg 128 231 neighbour 0.5 0.999;
+#X msg 128 248 neighbour 1 0.9 0.1;
+#X text 248 215 set neighbourhood to 1;
+#X text 249 231 set neighbourhoodto 0.5 and factor to 0.999;
+#X text 249 249 set neighbourhood to 1 \, factor to 0.9 and offset to 0.1;
+#X text 180 269 set som to "train" mode (learn from sensor-input and output winning neuron);
+#X text 179 291 set som to "test" mode (output winning neuron for sensor-input \, but do not learn !);
+#X msg 129 328 rule INSTAR;
+#X msg 129 345 rule OUTSTAR;
+#X msg 129 362 rule KOHONEN;
+#X text 218 327 learn with IN-STAR rule;
+#X text 219 345 learn with OUT-STAR rule;
+#X text 219 362 learn with KOHONENrule;
+#X msg 128 405 write mysom.som;
+#X msg 129 429 read;
+#X msg 129 447 read mysom.som;
+#X text 156 68 present various data to the SOM;
+#X text 203 495 for debugging;
+#X text 207 530 create a new SOM with 8x8 neurons \, each having 5 sensors;
+#X text 204 561 create a new SOM with 9x10 neurons \, each having 4 sensors;
+#X floatatom 70 614 4 0 0;
+#X text 113 618 winning neuron;
+#N canvas 13 0 889 630 SOMs 0;
+#X text 76 27 SOM :: Self-Organized Maps;
+#X text 55 53 SOMs are "Artificial Neural Networks" \, that are trying to learn something about the data presented to them without a supervisor/teacher.;
+#X text 59 118 in short:;
+#X text 120 119 the neuron \, whose weight-configuration matches the presented data best is the winner (its number (counting from the lower-left corner) is sent to the output);
+#X text 121 163 to match the data better the next time it is presented \, the weights of the winning neuron are adjusted.;
+#X text 121 188 the weights of the neurons neighbouring the winner are adjusted to match the data too \, but not so strong as the winner's.;
+#X text 121 276 lr(n+1)=lr(n)*factor;
+#X text 275 277 learning_rate=lr+offset;
+#X text 121 289 nb(n+1)=nb(n)*factor;
+#X text 275 290 neighbourhood=nb+offset;
+#X text 121 230 both neighbourhood and learning-rate (==amount of how much the weights of the winner (and \, proportional \, the weights of the neighbours) are adjusted) are decreasing recursively with time.;
+#X text 119 319 thus you will sooner or (most of the time) later get a "brain map" \, where similar inputs will activate neurons in specifique regions (like there are regions for seeing and regions for hearing in our brains);
+#X text 97 381 there are various rules \, how to re-adjust the weights of the neurons : in-star \, out-star and kohonen (maybe there are others \, but these i found in literature);
+#X obj 607 220 +;
+#X text 640 182 ...;
+#X obj 579 185 * \$1;
+#X obj 607 185 * \$2;
+#X obj 670 185 * \$0;
+#X obj 579 128 unpack 0 0 0 0 0;
+#X text 602 111 n sensors;
+#X text 705 186 weights 1 to n;
+#X obj 579 90 inlet;
+#X obj 607 288 outlet;
+#X text 594 62 a neuron;
+#X text 566 307 the neuron with the highest weighted sum;
+#X text 567 318 matches best and is therefore the winner;
+#X text 53 452 notes:;
+#X text 101 453 each neuron of the SOM has n sensors. you have to present a list of n floats to the SOM to make it work;
+#X text 102 482 you should init the weights for each sensor with the expected mean of the sensor values before you start training to get best and fastest results;
+#X text 55 87 they were first proposed by the Finnish scientist T.Kohonen in the 80ies (i think).;
+#X text 98 543 if you have no clue \, what's this all about \, maybe you do not need SOMs (which i doubt) or you should have a look at;
+#X text 118 577 http://www.eas.asu.edu/~eee511;
+#X text 118 591 http://www.cis.hut.fi/projects/ica;
+#X connect 13 0 22 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 0;
+#X connect 17 0 13 0;
+#X connect 18 0 15 0;
+#X connect 18 1 16 0;
+#X connect 18 4 17 0;
+#X connect 21 0 18 0;
+#X restore 535 44 pd SOMs;
+#X text 81 13 ann_som :: train and test Self-Organized Maps;
+#X obj 73 660 ann_som test.som;
+#X text 211 664 load a SOM-file;
+#X connect 0 0 6 0;
+#X connect 1 0 6 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 0;
+#X connect 4 0 6 0;
+#X connect 5 0 6 0;
+#X connect 6 0 42 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 11 0 6 0;
+#X connect 15 0 6 0;
+#X connect 16 0 6 0;
+#X connect 18 0 6 0;
+#X connect 21 0 6 0;
+#X connect 22 0 6 0;
+#X connect 23 0 6 0;
+#X connect 29 0 6 0;
+#X connect 30 0 6 0;
+#X connect 31 0 6 0;
+#X connect 35 0 6 0;
+#X connect 36 0 6 0;
+#X connect 37 0 6 0;
diff --git a/externals/build/doc/apply~.pd b/externals/build/doc/apply~.pd
new file mode 100644
index 00000000..9ba48b28
--- /dev/null
+++ b/externals/build/doc/apply~.pd
@@ -0,0 +1,22 @@
+#N canvas 284 112 450 300 10;
+#X obj 40 122 sig~;
+#X obj 40 194 snapshot~;
+#X floatatom 40 217 10 0 0;
+#X msg 77 123 bang;
+#X floatatom 40 76 5 0 0;
+#X obj 137 152 apply~;
+#X msg 137 88 what;
+#X obj 40 152 apply~ rint;
+#X obj 356 213 loadbang;
+#X msg 356 235 \; pd dsp 1;
+#X text 176 87 Click to show available functions;
+#X text 19 30 Apply~ applies a one argument function to the input buffer
+;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 0 0;
+#X connect 4 0 3 0;
+#X connect 6 0 5 0;
+#X connect 7 0 1 0;
+#X connect 8 0 9 0;
diff --git a/externals/build/doc/atan2~.pd b/externals/build/doc/atan2~.pd
new file mode 100644
index 00000000..e7ff494e
--- /dev/null
+++ b/externals/build/doc/atan2~.pd
@@ -0,0 +1,4 @@
+#N canvas 197 203 500 184 10;
+#X obj 33 88 atan2~;
+#X text 30 121 (C) Guenter Geiger;
+#X text 30 18 The atan2 function is used to get the phase from a imaginary value of the fft.;
diff --git a/externals/build/doc/bandpass.pd b/externals/build/doc/bandpass.pd
new file mode 100644
index 00000000..73cace4b
--- /dev/null
+++ b/externals/build/doc/bandpass.pd
@@ -0,0 +1,38 @@
+#N canvas 295 68 622 469 10;
+#X obj 77 199 print;
+#X floatatom 77 114 0 0 0;
+#X floatatom 139 114 0 0 0;
+#X msg 360 109 \; paint 0;
+#X obj 164 196 filtgain;
+#X msg 91 138 bang;
+#X text 139 93 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which
+is expressed in octaves. A bandwidth of 100 is equivalent to one octave.
+;
+#X text 358 25 click first;
+#X text 186 159 click on filtgain to view frequency plot;
+#X text 76 12 Bandpass coefficients for biquad~;
+#X text 70 26 ===================================;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients
+for biquad~;
+#X obj 77 160 bandpass 4000 33;
+#X obj 33 114 r doit;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X connect 1 0 24 0;
+#X connect 2 0 24 1;
+#X connect 2 0 5 0;
+#X connect 5 0 24 0;
+#X connect 24 0 0 0;
+#X connect 24 0 4 0;
+#X connect 25 0 5 0;
diff --git a/externals/build/doc/cdplayer.pd b/externals/build/doc/cdplayer.pd
new file mode 100644
index 00000000..8a61caf0
--- /dev/null
+++ b/externals/build/doc/cdplayer.pd
@@ -0,0 +1,30 @@
+#N canvas 0 337 450 300 10;
+#X obj 58 179 cdplayer;
+#X obj 151 235 metro 100;
+#X obj 151 261 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 151 203 1;
+#X obj 151 175 loadbang;
+#X msg 65 98 pause;
+#X msg 44 75 resume;
+#X msg 79 125 stop;
+#X msg 84 148 eject;
+#X text 22 7 cdplayer is an object for atapi-cd-roms under linux;
+#X text 100 76 resume;
+#X text 112 96 pause playing;
+#X text 113 124 stop (no resume);
+#X text 132 149 eject;
+#X text 185 261 <- cdplayer does not block;
+#X text 208 278 because of forking;
+#X floatatom 21 28 5 0 0;
+#X msg 21 51 play \$1;
+#X text 81 50 play a track;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 16 0 17 0;
+#X connect 17 0 0 0;
diff --git a/externals/build/doc/cxc/ENV.pd b/externals/build/doc/cxc/ENV.pd
new file mode 100644
index 00000000..7582c671
--- /dev/null
+++ b/externals/build/doc/cxc/ENV.pd
@@ -0,0 +1,34 @@
+#N canvas 370 240 625 314 10;
+#X obj 147 203 ENV;
+#X msg 147 163 RAND_MAX;
+#X floatatom 226 253 10 0 0;
+#X obj 147 277 print;
+#X msg 214 164 getenv \$1;
+#X symbolatom 215 130 10 0 0;
+#X obj 295 130 symbol;
+#X msg 311 105 HOSTNAME;
+#X msg 310 80 USERNAME;
+#X obj 147 228 route symbol;
+#X msg 147 253 \$1;
+#X msg 424 110 USERNAME bla;
+#X obj 386 168 cxc.prepend setenv;
+#X obj 395 202 print pre;
+#X msg 425 135 HOSTNAME testi;
+#X msg 312 45 RANDOM;
+#X text 18 7 get and set environment variables etc ...;
+#X msg 244 51 DATE;
+#X connect 0 0 9 0;
+#X connect 1 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 9 1 2 0;
+#X connect 10 0 3 0;
+#X connect 11 0 12 0;
+#X connect 12 0 0 0;
+#X connect 14 0 12 0;
+#X connect 15 0 6 0;
+#X connect 17 0 6 0;
diff --git a/externals/build/doc/cxc/ascseq.pd b/externals/build/doc/cxc/ascseq.pd
new file mode 100644
index 00000000..5038a844
--- /dev/null
+++ b/externals/build/doc/cxc/ascseq.pd
@@ -0,0 +1,12 @@
+#N canvas 454 117 570 300 10;
+#X obj 132 168 print ascseq;
+#X msg 253 112 bang;
+#X obj 223 70 random_fl -10000 10000;
+#X obj 131 118 ascseq 100;
+#X floatatom 268 137 5 0 0;
+#X msg 83 34 "abcde 123 dsfjnsdf ewrte 3k4n5 3n hjb5465hj 6";
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 1;
+#X connect 5 0 3 0;
diff --git a/externals/build/doc/cxc/ascwave.pd b/externals/build/doc/cxc/ascwave.pd
new file mode 100644
index 00000000..bb36502e
--- /dev/null
+++ b/externals/build/doc/cxc/ascwave.pd
@@ -0,0 +1,65 @@
+#N canvas 448 258 407 316 10;
+#X msg 80 153 bang;
+#X floatatom 169 176;
+#X floatatom 214 58;
+#X obj 151 13 loadbang;
+#X obj 157 97 metro 100;
+#X msg 157 196 1;
+#X msg 157 58 1;
+#X msg 186 58 0;
+#X obj 145 221 ascwave;
+#X msg 75 192 fill 1;
+#X msg 74 211 fill 0;
+#X obj 145 262 ixprint;
+#X msg 145 241 \$1;
+#N canvas 517 176 588 372 modulate 0;
+#X obj 84 200 outlet;
+#X obj 84 139 random 80;
+#X msg 30 110 bang;
+#X obj 84 75 * 50;
+#X obj 84 93 metro 5000;
+#X obj 29 52 loadbang;
+#X msg 29 70 1;
+#X obj 84 161 pack 1 5000;
+#X obj 84 180 line;
+#X obj 86 31 inlet start/stop;
+#X obj 130 53 inlet time;
+#X connect 1 0 7 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
+#X connect 3 0 7 1;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 0;
+#X connect 8 0 0 0;
+#X connect 9 0 4 0;
+#X connect 10 0 3 0;
+#X restore 169 154 page modulate;
+#X floatatom 262 132;
+#X obj 262 179 min 127;
+#X obj 262 154 max 33;
+#X obj 157 77 f;
+#X obj 210 78 f;
+#X text 200 178 <== here;
+#X text 297 131 <== and here;
+#X connect 0 0 8 0;
+#X connect 1 0 8 2;
+#X connect 2 0 18 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 1;
+#X connect 6 0 17 0;
+#X connect 7 0 17 0;
+#X connect 8 0 12 0;
+#X connect 9 0 8 0;
+#X connect 10 0 8 0;
+#X connect 12 0 11 0;
+#X connect 13 0 8 2;
+#X connect 14 0 16 0;
+#X connect 15 0 8 3;
+#X connect 16 0 15 0;
+#X connect 17 0 4 0;
+#X connect 17 0 13 0;
+#X connect 18 0 4 1;
+#X connect 18 0 13 1;
diff --git a/externals/build/doc/cxc/bfilt.pd b/externals/build/doc/cxc/bfilt.pd
new file mode 100644
index 00000000..4be9d45c
--- /dev/null
+++ b/externals/build/doc/cxc/bfilt.pd
@@ -0,0 +1,23 @@
+#N canvas 203 207 404 226 10;
+#X floatatom 85 119;
+#X obj 57 175 print;
+#X floatatom 45 120;
+#X obj 58 146 bfilt 5;
+#X text 43 16 bfilt (at the moment) is: modulo something + select 0;
+#X floatatom 167 120;
+#X obj 139 176 print;
+#X floatatom 127 121;
+#X obj 140 147 bfilt2 5;
+#X obj 145 87 metro 100;
+#X msg 145 68 1;
+#X text 42 29 bfilt2: real bangfilter: bangs on first inlet \, internal counter \, only outputs every arg2th bang ...;
+#X msg 169 67 0;
+#X connect 0 0 3 1;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 5 0 8 1;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
+#X connect 9 0 8 0;
+#X connect 10 0 9 0;
+#X connect 12 0 9 0;
diff --git a/externals/build/doc/cxc/cxc.prepend.pd b/externals/build/doc/cxc/cxc.prepend.pd
new file mode 100644
index 00000000..eaa57dcd
--- /dev/null
+++ b/externals/build/doc/cxc/cxc.prepend.pd
@@ -0,0 +1,13 @@
+#N canvas 322 265 450 300 10;
+#X obj 186 244 print;
+#X msg 200 102 itsch ni san chi;
+#X obj 186 187 cxc.prepend /bla;
+#X obj 186 210 cxc.prepend send;
+#X floatatom 155 79 5 0 0;
+#X msg 214 138 qui qua 2 3.4555 "bla ha";
+#X text 25 11 prepend arbitrary length lists/anythings with stuff;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
diff --git a/externals/build/doc/cxc/delta.pd b/externals/build/doc/cxc/delta.pd
new file mode 100644
index 00000000..7f0bf8be
--- /dev/null
+++ b/externals/build/doc/cxc/delta.pd
@@ -0,0 +1,63 @@
+#N canvas 9 51 986 579 10;
+#X obj 139 177 delta~;
+#X obj 80 44 noise~;
+#X obj 83 268 print a;
+#X obj 143 267 print b;
+#X obj 329 312 dac~;
+#X obj 226 47 osc~ 400;
+#X graph graph1 0 -1 999 1 497 206 697 66;
+#X array orig 1000 float 0;
+#X pop;
+#X graph graph2 0 -1 999 1 431 563 931 203;
+#X array diff 1000 float 0;
+#X pop;
+#X obj 129 390 tabwrite~ diff;
+#X msg 220 340 bang;
+#X floatatom 225 24 5 0 0;
+#X obj 139 468 table test;
+#X msg 139 442 resize 2205;
+#X obj 242 389 tabwrite~ test;
+#X obj 243 415 tabwrite~ orig;
+#X obj 403 515 print;
+#X msg 350 441 bang;
+#X obj 346 530 t b;
+#X obj 332 552 spigot;
+#X obj 375 528 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
+1;
+#X obj 320 474 tabread~ test;
+#X obj 201 532 phasor~ 10;
+#X floatatom 201 510 5 0 0;
+#X obj 201 556 *~ 2205;
+#X obj 147 45 phasor~ 1;
+#X obj 160 93 nop~;
+#X obj 287 224 metro 100;
+#X obj 287 198 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
+1;
+#X floatatom 173 18 5 0 0;
+#X obj 109 77 *~ 0.1;
+#X floatatom 86 103 5 0 0;
+#X text 308 36 if this sample is larger than last \, value is positive
+\, else negative ...;
+#X text 308 18 delta~: difference between this and last sample;
+#X connect 0 0 4 1;
+#X connect 0 0 8 0;
+#X connect 1 0 29 0;
+#X connect 9 0 8 0;
+#X connect 9 0 13 0;
+#X connect 9 0 14 0;
+#X connect 10 0 5 0;
+#X connect 12 0 11 0;
+#X connect 17 0 18 0;
+#X connect 19 0 18 1;
+#X connect 21 0 23 0;
+#X connect 22 0 21 0;
+#X connect 23 0 20 0;
+#X connect 24 0 25 0;
+#X connect 25 0 0 0;
+#X connect 25 0 13 0;
+#X connect 25 0 14 0;
+#X connect 26 0 9 0;
+#X connect 27 0 26 0;
+#X connect 28 0 24 0;
+#X connect 29 0 25 0;
+#X connect 30 0 29 1;
diff --git a/externals/build/doc/cxc/proc.pd b/externals/build/doc/cxc/proc.pd
new file mode 100644
index 00000000..65411ae4
--- /dev/null
+++ b/externals/build/doc/cxc/proc.pd
@@ -0,0 +1,75 @@
+#N canvas 179 113 717 546 10;
+#X obj 151 118 proc;
+#X text 96 15 interface to the linux proc filesystem;
+#X msg 88 80 cpuinfo;
+#X obj 27 281 unpack f f f;
+#X floatatom 25 304 5 0 0;
+#X floatatom 67 305 5 0 0;
+#X floatatom 109 304 5 0 0;
+#X text 37 254 cpu-id \, cpu-mhz \, bogomips;
+#X obj 151 147 print proc_raw;
+#X msg 151 94 proc \$1;
+#X obj 151 71 symbol;
+#X msg 123 38 cpuinfo;
+#X msg 183 38 uptime;
+#X msg 351 38 stat;
+#X msg 389 38 blubb;
+#X obj 242 276 unpack f f;
+#X text 241 255 uptime in s \, idle-time in s;
+#X floatatom 241 301 5 0 0;
+#X floatatom 302 305 5 0 0;
+#X msg 237 38 loadavg;
+#X msg 297 39 version;
+#X obj 174 349 unpack f f f f f f;
+#X floatatom 172 373 5 0 0;
+#X floatatom 187 397 5 0 0;
+#X floatatom 220 373 5 0 0;
+#X floatatom 238 397 5 0 0;
+#X floatatom 271 372 5 0 0;
+#X floatatom 289 396 5 0 0;
+#X text 315 345 apparently the loadavg format is something liek this
+;
+#X text 318 359 my manpage seems outdated ...;
+#X text 330 379 1: number of jobs in the run queue (1');
+#X text 340 394 2: numofjobs in R qu (5');
+#X text 348 411 3: numofjobs in R qu (15');
+#X text 339 425 4: num of procs waiting for disk io?;
+#X text 339 452 6: num of processes ever total;
+#X text 339 438 5: num of processes now total;
+#X obj 27 234 route cpuinfo uptime loadavg version stat;
+#X obj 458 241 unpack f f f;
+#X floatatom 458 267 5 0 0;
+#X floatatom 484 293 5 0 0;
+#X floatatom 516 266 5 0 0;
+#X text 462 215 uname -r;
+#X text 307 82 really useless stuff but maybe good for estimating number
+of voices in self-generating patches;
+#X connect 0 0 8 0;
+#X connect 0 0 36 0;
+#X connect 2 0 0 0;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 3 2 6 0;
+#X connect 9 0 0 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 13 0 10 0;
+#X connect 14 0 10 0;
+#X connect 15 0 17 0;
+#X connect 15 1 18 0;
+#X connect 19 0 10 0;
+#X connect 20 0 10 0;
+#X connect 21 0 22 0;
+#X connect 21 1 23 0;
+#X connect 21 2 24 0;
+#X connect 21 3 25 0;
+#X connect 21 4 26 0;
+#X connect 21 5 27 0;
+#X connect 36 0 3 0;
+#X connect 36 1 15 0;
+#X connect 36 2 21 0;
+#X connect 36 3 37 0;
+#X connect 37 0 38 0;
+#X connect 37 1 39 0;
+#X connect 37 2 40 0;
diff --git a/externals/build/doc/cxc/randomix.pd b/externals/build/doc/cxc/randomix.pd
new file mode 100644
index 00000000..3f6823b4
--- /dev/null
+++ b/externals/build/doc/cxc/randomix.pd
@@ -0,0 +1,181 @@
+#N canvas 33 162 966 505 10;
+#X msg 197 150 bang;
+#X floatatom 244 150 5 0 0;
+#X floatatom 197 218 10 0 0;
+#X floatatom 53 162 5 0 0;
+#X msg 54 111 bang;
+#X floatatom 289 152 5 0 0;
+#X obj 53 135 random 100;
+#X msg 427 151 bang;
+#X floatatom 474 151 5 0 0;
+#X floatatom 427 219 10 0 0;
+#X floatatom 519 153 5 0 0;
+#X obj 196 183 random1 0 1;
+#X obj 426 184 random_fl 0 1;
+#X msg 672 152 bang;
+#X floatatom 719 152 5 0 0;
+#X floatatom 672 220 10 0 0;
+#X floatatom 764 154 5 0 0;
+#X obj 671 185 random_icg 0 1;
+#X msg 197 276 bang;
+#X floatatom 244 276 5 0 0;
+#X floatatom 197 344 10 0 0;
+#X floatatom 289 278 5 0 0;
+#X text 193 251 random_icg lowerlimit \, upperlimit;
+#X msg 368 288 help;
+#X text 253 10 the random number generatorse;
+#X obj 539 406 dist_normal;
+#X msg 540 356 bang;
+#X obj 579 357 metro 100;
+#X obj 579 337 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
+1;
+#X obj 196 309 random_tw 0 1;
+#X floatatom 637 334 5 0 0;
+#N canvas 0 0 600 400 streamview 0;
+#X graph graph2 0 -2 99 2 92 362 292 222;
+#X array randstream 100 float 0;
+#X pop;
+#X obj 146 144 tabwrite randstream;
+#X obj 200 63 count;
+#X obj 200 88 % 100;
+#X obj 156 28 t f b;
+#X obj 49 15 inlet;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 0 1 0;
+#X connect 4 1 2 0;
+#X connect 5 0 4 0;
+#X restore 570 433 pd streamview;
+#N canvas 306 24 679 400 distview 0;
+#X graph graph1 0 0 99 200 248 231 648 31;
+#X array randview1 100 float 0;
+#X pop;
+#X obj 28 26 inlet;
+#X obj 45 355 tabwrite randview1;
+#X obj 136 201 * 100;
+#X obj 136 225 int;
+#X obj 136 153 + 2;
+#X obj 45 280 tabread randview1;
+#X obj 136 176 / 4;
+#X obj 136 250 t f f;
+#X obj 45 304 t f b;
+#X obj 45 329 + 1;
+#X obj 136 129 t f;
+#X connect 1 0 11 0;
+#X connect 3 0 4 0;
+#X connect 4 0 8 0;
+#X connect 5 0 7 0;
+#X connect 6 0 9 0;
+#X connect 7 0 3 0;
+#X connect 8 0 6 0;
+#X connect 8 1 2 1;
+#X connect 9 0 10 0;
+#X connect 10 0 2 0;
+#X connect 11 0 5 0;
+#X restore 550 458 pd distview;
+#X obj 540 381 t b;
+#X floatatom 477 430 5 0 0;
+#N canvas 0 0 600 400 seedit 0;
+#X msg 284 154 seed \$1;
+#X obj 284 107 utime;
+#X msg 304 74 bang;
+#X obj 254 28 loadbang;
+#X obj 284 130 * 1e+06;
+#X obj 360 167 until;
+#X msg 455 156 bang;
+#X obj 359 194 random 2.14748e+08;
+#X msg 359 267 seed \$1;
+#X msg 385 294 seed \$1;
+#X msg 412 318 seed \$1;
+#X msg 439 267 seed \$1;
+#X msg 466 293 seed \$1;
+#X obj 254 50 t b b;
+#X obj 195 155 print seed1;
+#X obj 143 360 outlet;
+#X obj 204 361 outlet;
+#X obj 264 361 outlet;
+#X obj 317 361 outlet;
+#X obj 367 361 outlet;
+#X text 35 9 seed one random obj \, which generates the seeds for all
+the others.;
+#X obj 359 218 serialize 6;
+#X msg 360 140 6;
+#X obj 359 242 unpack f f f f f f;
+#X msg 485 317 seed \$1;
+#X obj 420 359 outlet;
+#X connect 0 0 7 0;
+#X connect 1 1 4 0;
+#X connect 2 0 1 0;
+#X connect 3 0 13 0;
+#X connect 4 0 0 0;
+#X connect 4 0 14 0;
+#X connect 5 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 21 0;
+#X connect 8 0 15 0;
+#X connect 9 0 16 0;
+#X connect 10 0 17 0;
+#X connect 11 0 18 0;
+#X connect 12 0 19 0;
+#X connect 13 0 22 0;
+#X connect 13 1 1 0;
+#X connect 21 0 23 0;
+#X connect 22 0 5 0;
+#X connect 23 0 8 0;
+#X connect 23 1 9 0;
+#X connect 23 2 10 0;
+#X connect 23 3 11 0;
+#X connect 23 4 12 0;
+#X connect 23 5 24 0;
+#X connect 24 0 25 0;
+#X restore 258 33 pd seedit;
+#X text 37 79 std pd random;
+#X text 197 124 linear congruential generator;
+#X text 197 77 creation arguments for the extra randoms are:;
+#X text 205 92 <range-min \, range-max> \, defaults to 0 respectively
+RAND_MAX;
+#X text 545 17 see also:;
+#X obj 545 40 utime;
+#X text 428 129 another lcg method ..;
+#X text 668 127 inverse linear congruential generator;
+#X text 536 249 normal distribution mean 0 and dist 1;
+#X text 536 264 right now it uses random1 for the actual rand values
+;
+#X text 537 278 but later on it should take one of the randoms as creation
+argument \, so yu can specify which generator is being used.;
+#X text 198 106 they all output floats);
+#X text 540 311 also \, there is some burst at the upper and lower
+limits;
+#X connect 0 0 11 0;
+#X connect 1 0 11 1;
+#X connect 4 0 6 0;
+#X connect 5 0 11 2;
+#X connect 6 0 3 0;
+#X connect 7 0 12 0;
+#X connect 8 0 12 1;
+#X connect 10 0 12 2;
+#X connect 11 0 2 0;
+#X connect 12 0 9 0;
+#X connect 13 0 17 0;
+#X connect 14 0 17 1;
+#X connect 16 0 17 2;
+#X connect 17 0 15 0;
+#X connect 18 0 29 0;
+#X connect 19 0 29 1;
+#X connect 21 0 29 2;
+#X connect 23 0 29 0;
+#X connect 25 0 31 0;
+#X connect 25 0 32 0;
+#X connect 25 0 34 0;
+#X connect 26 0 33 0;
+#X connect 27 0 33 0;
+#X connect 28 0 27 0;
+#X connect 29 0 20 0;
+#X connect 30 0 27 1;
+#X connect 33 0 25 0;
+#X connect 35 0 6 0;
+#X connect 35 1 11 0;
+#X connect 35 2 12 0;
+#X connect 35 3 17 0;
+#X connect 35 4 29 0;
+#X connect 35 5 25 0;
diff --git a/externals/build/doc/cxc/serialize.pd b/externals/build/doc/cxc/serialize.pd
new file mode 100644
index 00000000..b9d84699
--- /dev/null
+++ b/externals/build/doc/cxc/serialize.pd
@@ -0,0 +1,10 @@
+#N canvas 246 82 551 292 10;
+#X obj 34 141 print;
+#X floatatom 34 69 0 0 0;
+#X text 30 195 (C) 2000 Guenter Geiger;
+#X text 30 39 serialize ... turn a stream of floats into a list;
+#X obj 33 107 serialize 4;
+#X floatatom 105 82 5 0 0;
+#X connect 1 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 1;
diff --git a/externals/build/doc/cxc/statistics.pd b/externals/build/doc/cxc/statistics.pd
new file mode 100644
index 00000000..24d7ca37
--- /dev/null
+++ b/externals/build/doc/cxc/statistics.pd
@@ -0,0 +1,120 @@
+#N canvas 416 554 622 369 10;
+#X obj 64 102 noise~;
+#X obj 463 105 mean~ blir;
+#X obj 21 262 table blir;
+#N canvas 162 270 331 246 fillary 0;
+#X obj 34 53 until;
+#X obj 34 79 count;
+#X msg 85 27 bang;
+#X obj 34 105 - 1;
+#X obj 34 130 t b f;
+#X obj 34 166 random_fl -1 1;
+#X obj 162 16 loadbang;
+#X obj 192 64 utime;
+#X obj 200 100 +;
+#X msg 200 124 seed \$1;
+#X obj 162 39 t b b b;
+#X obj 232 13 inlet;
+#X obj 120 65 t b b;
+#X msg 34 27 1000;
+#X msg 132 108 set \$1;
+#X obj 280 13 inlet;
+#X obj 178 165 random_icg -1 1;
+#X obj 34 192 tabwrite blor;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 1;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 17 1;
+#X connect 5 0 17 0;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 7 1 8 1;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 9 0 16 0;
+#X connect 10 0 12 0;
+#X connect 10 1 7 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 12 1 2 0;
+#X connect 13 0 0 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 16 0 17 0;
+#X restore 152 241 pd fillary;
+#X obj 21 175 tabwrite~ blir;
+#X msg 21 147 bang;
+#X obj 356 102 samplerate~;
+#X floatatom 356 126 5 0 0;
+#X obj 356 80 loadbang;
+#X floatatom 463 129 8 0 0;
+#X obj 64 150 +~ 0.1;
+#X floatatom 101 127 5 0 0;
+#X msg 152 218 bang;
+#X text 44 30 mean~ <arrayname>;
+#X floatatom 160 160 5 0 0;
+#X obj 160 183 t f f;
+#X text 206 163 set arraysize;
+#X text 529 130 mean;
+#X text 43 10 this is supposed to calculate the signal mean of an array.
+;
+#X msg 463 82 mean;
+#X msg 503 82 ad;
+#X msg 534 82 sd;
+#X obj 462 35 mean 1 2 3;
+#X floatatom 462 59 5 0 0;
+#X msg 462 13 1 2 3.6677;
+#X obj 316 251 cx.mean blir;
+#X floatatom 271 305 8 0 0;
+#X msg 316 228 mean;
+#X msg 350 228 ad;
+#X obj 446 251 histo;
+#X obj 21 291 table blor;
+#X obj 342 304 cx.avgdev blir;
+#X floatatom 341 325 10 0 0;
+#X floatatom 461 326 10 0 0;
+#X obj 392 150 loadbang;
+#X obj 460 304 cx.stddev blir;
+#X obj 316 272 t f f f;
+#X text 542 36 pd's mean;
+#X text 544 115 dont need this;
+#X msg 392 218 set \$1;
+#X obj 392 194 symbol;
+#X msg 392 173 blir;
+#X msg 429 173 blor;
+#X msg 20 214 \; blir resize \$1 \;;
+#X msg 113 270 \; blor resize \$1 \;;
+#X connect 0 0 10 0;
+#X connect 1 0 9 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 8 0 6 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 43 0;
+#X connect 15 0 44 0;
+#X connect 15 1 3 1;
+#X connect 19 0 1 0;
+#X connect 20 0 1 0;
+#X connect 21 0 1 0;
+#X connect 22 0 23 0;
+#X connect 24 0 22 0;
+#X connect 25 0 36 0;
+#X connect 27 0 25 0;
+#X connect 28 0 25 0;
+#X connect 31 0 32 0;
+#X connect 34 0 42 0;
+#X connect 35 0 33 0;
+#X connect 36 0 26 0;
+#X connect 36 1 31 0;
+#X connect 36 2 35 0;
+#X connect 39 0 25 0;
+#X connect 39 0 31 0;
+#X connect 39 0 35 0;
+#X connect 40 0 39 0;
+#X connect 41 0 40 0;
+#X connect 42 0 40 0;
diff --git a/externals/build/doc/cxc/utime.pd b/externals/build/doc/cxc/utime.pd
new file mode 100644
index 00000000..aa5af835
--- /dev/null
+++ b/externals/build/doc/cxc/utime.pd
@@ -0,0 +1,9 @@
+#N canvas 305 149 450 300 10;
+#X obj 199 94 utime;
+#X msg 192 55 bang;
+#X floatatom 259 170 8 0 0;
+#X floatatom 174 129 20 0 0;
+#X text 25 8 output seconds since epoch and microsecond fraction;
+#X connect 0 0 3 0;
+#X connect 0 1 2 0;
+#X connect 1 0 0 0;
diff --git a/externals/build/doc/equalizer.pd b/externals/build/doc/equalizer.pd
new file mode 100644
index 00000000..05f7c562
--- /dev/null
+++ b/externals/build/doc/equalizer.pd
@@ -0,0 +1,39 @@
+#N canvas 561 126 620 459 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 186 112;
+#X msg 360 117 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 186 91 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 200 158 click on filtgain to view frequency plot;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X floatatom 129 113;
+#X text 138 92 gain;
+#X text 71 26 ==============================================;
+#X text 76 12 Parametric Equalizer coefficients for biquad~;
+#X obj 77 160 equalizer 5000 70 8;
+#X obj 31 114 r doit;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X connect 1 0 26 0;
+#X connect 2 0 5 0;
+#X connect 2 0 26 2;
+#X connect 5 0 26 0;
+#X connect 22 0 5 0;
+#X connect 22 0 26 1;
+#X connect 26 0 0 0;
+#X connect 26 0 4 0;
+#X connect 27 0 26 0;
diff --git a/externals/build/doc/ext13.pd b/externals/build/doc/ext13.pd
new file mode 100644
index 00000000..8960f5b1
--- /dev/null
+++ b/externals/build/doc/ext13.pd
@@ -0,0 +1,109 @@
+#N canvas 165 0 804 625 10;
+#X obj 59 150 send13~ foo;
+#X obj 52 176 receive13~ foo;
+#X msg 236 122 set barfuss;
+#X text 13 82 send13~ \, receive13~ and catch13~ \, throw13~ are equivalent
+to s~ r~ catch~ throw~ \, but accept set messages.;
+#X obj 15 323 filesize;
+#X msg 15 297 symbol /boot/vmlinuz;
+#X obj 15 350 print;
+#X text 81 324 =;
+#X obj 99 325 fsize;
+#X text 140 153 =;
+#X text 163 143 =;
+#X obj 363 148 c13~;
+#X obj 353 195 t13~;
+#X text 334 195 =;
+#X text 348 145 =;
+#X text 14 275 filesize gives you: guess what;
+#X floatatom 255 292 4 0 0;
+#X msg 255 341 set \$1;
+#X msg 255 365 5;
+#X obj 255 317 ftos 3;
+#X text 255 241 ftos: float to symbol;
+#X floatatom 292 293 4 0 0;
+#X text 254 256 right argument for number of digits;
+#X text 13 23 most of them are not well done/tested and need more work
+for seriuos usage.;
+#X text 13 9 ext13: some extrnals i wrote for my own needs;
+#X obj 16 562 piperead~;
+#X obj 16 589 pipewrite~;
+#X text 13 524 like sfread and sfwrite \, but non-blocking;
+#X text 13 540 good for use with external programs (e.g. mpg123 > pipe)
+;
+#X obj 14 392 strippath;
+#X text 13 372 strip a path from a filename;
+#X obj 15 451 wavinfo;
+#X obj 44 198 receive13~ foo;
+#X obj 427 574 openpatch;
+#X text 499 575 =;
+#X obj 520 576 opa;
+#X msg 485 548 symbol /usr/local/pd/ext13/;
+#X msg 427 526 symbol help.pd;
+#X text 427 508 that you can also use a message for the same result
+;
+#X text 426 493 when i wrote this object \, i didn`t realize;
+#X msg 25 123 set furchtbar;
+#X text 157 176 =;
+#X obj 465 178 streamin13~ 8008 4;
+#X obj 465 203 streamout13~ localhost 8008 4;
+#X text 462 104 streamin13~/out13~ :;
+#X text 461 118 like streamin~/out~ from ggee but;
+#X text 461 132 for multiple channels;
+#X text 462 146 and reduced udp-traffic;
+#X text 463 161 warning: not well tested;
+#X obj 250 146 catch13~ bar;
+#X obj 245 168 throw13~ bar;
+#X obj 236 193 throw13~ bar;
+#X obj 543 318 mandelbrot;
+#X obj 543 340 mandelbrot~;
+#X text 542 244 mandelbrot & mandelbrot~;
+#X text 541 257 z = z*z +c;
+#X text 542 270 you can use it for gem;
+#X text 541 285 maybe you can also find another useful app \; );
+#X text 255 271 useful in combination with makefilename;
+#X text 13 50 contact: dieb13@klingt.org;
+#X text 14 420 get #samples \, channels \, bitspersample \, samplerate
+of a wavfile;
+#X obj 422 397 adc~;
+#X obj 421 449 dac~;
+#X obj 421 423 scramble~ 2;
+#X text 511 423 big fun with spoken words or beats;
+#X obj 17 499 uzi;
+#X text 46 500 =;
+#X obj 62 500 kalashnikov;
+#X text 15 479 uzi like in max for multibang;
+#X obj 380 319 ossmixer;
+#X text 359 302 a simple oss mixer;
+#X obj 33 222 receive13 foo;
+#X text 133 221 =;
+#X obj 144 221 r13 foo;
+#X obj 168 176 r13~ foo;
+#X obj 158 151 s13~ foo;
+#X text 103 247 =;
+#X obj 25 246 send13 foo;
+#X obj 114 247 s13 foo;
+#X text 353 344 a simple atapi-cdplayer;
+#X obj 380 361 cdplayer;
+#X msg 327 326 eject;
+#X connect 2 0 49 0;
+#X connect 2 0 50 0;
+#X connect 2 0 51 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 16 0 19 0;
+#X connect 17 0 18 0;
+#X connect 19 0 17 0;
+#X connect 21 0 19 1;
+#X connect 36 0 33 1;
+#X connect 37 0 33 0;
+#X connect 40 0 0 0;
+#X connect 40 0 1 0;
+#X connect 40 0 32 0;
+#X connect 40 0 71 0;
+#X connect 40 0 77 0;
+#X connect 61 0 63 0;
+#X connect 61 1 63 1;
+#X connect 63 0 62 0;
+#X connect 63 1 62 1;
+#X connect 81 0 80 0;
diff --git a/externals/build/doc/filtgain.pd b/externals/build/doc/filtgain.pd
new file mode 100644
index 00000000..b276a524
--- /dev/null
+++ b/externals/build/doc/filtgain.pd
@@ -0,0 +1,74 @@
+#N canvas 178 144 702 459 10;
+#X obj 38 342 biquad~;
+#X obj 38 316 osc~ 220;
+#X obj 118 340 env~;
+#X floatatom 38 297;
+#X obj 38 419 dac~;
+#X obj 193 428 tabwrite array1;
+#X obj 325 400 int;
+#X obj 350 401 + 1;
+#X msg 296 399 0;
+#X obj 193 410 float;
+#X obj 218 372 t b f;
+#X obj 38 398 *~;
+#X obj 61 399 dbtorms;
+#X floatatom 368 359;
+#X obj 296 418 sel 500;
+#X obj 38 277 * 40;
+#X obj 325 380 metro 10;
+#X obj 325 359 r paint;
+#X obj 61 381 r volume;
+#X obj 38 7 inlet;
+#X floatatom 194 368;
+#X floatatom 279 360;
+#X obj 118 360 - 100;
+#X obj 118 382 * 0.01;
+#X graph graph2 0 -1 500 1 148 253 648 113;
+#X array array1 500 float;
+#X pop;
+#X msg 273 272 5000;
+#X msg 273 82 5000;
+#X msg 398 82 10000;
+#X msg 398 272 10000;
+#X msg 173 83 1000;
+#X msg 173 271 1000;
+#X text 105 6 subpatch used in filter externals see;
+#X obj 347 12 bandpass;
+#X obj 414 13 notch;
+#X obj 470 14 lowpass;
+#X obj 522 13 highpass;
+#X obj 522 35 equalizer;
+#X obj 347 34 highshelf;
+#X obj 414 34 lowshelf;
+#X obj 470 34 hlshelf;
+#X connect 0 0 2 0;
+#X connect 0 0 11 0;
+#X connect 1 0 0 0;
+#X connect 2 0 22 0;
+#X connect 3 0 1 0;
+#X connect 6 0 7 0;
+#X connect 6 0 10 0;
+#X connect 6 0 14 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 1;
+#X connect 8 0 6 0;
+#X connect 9 0 5 0;
+#X connect 10 0 9 0;
+#X connect 10 1 5 1;
+#X connect 11 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 11 1;
+#X connect 13 0 16 1;
+#X connect 14 0 8 0;
+#X connect 15 0 3 0;
+#X connect 16 0 6 0;
+#X connect 17 0 16 0;
+#X connect 18 0 12 0;
+#X connect 19 0 0 0;
+#X connect 20 0 5 0;
+#X connect 21 0 5 1;
+#X connect 22 0 23 0;
+#X connect 23 0 9 1;
+#X connect 26 0 25 0;
+#X connect 27 0 28 0;
+#X connect 29 0 30 0;
diff --git a/externals/build/doc/help-aenv~.pd b/externals/build/doc/help-aenv~.pd
new file mode 100644
index 00000000..a888cb09
--- /dev/null
+++ b/externals/build/doc/help-aenv~.pd
@@ -0,0 +1,76 @@
+#N canvas 10 20 762 475 10;
+#X floatatom 238 150 5 0 0;
+#X floatatom 281 150 5 0 0;
+#X floatatom 324 150 5 0 0;
+#X floatatom 367 150 5 0 0;
+#X msg 8 115 1;
+#X msg 50 115 0;
+#N canvas 0 0 450 300 graph1 0;
+#X array env 88200 float 0;
+#X coords 0 1 88199 0 300 140 1;
+#X restore 455 327 graph;
+#X msg 20 250 bang;
+#X obj 142 353 tabwrite~ env;
+#X obj 291 335 *~;
+#X obj 312 444 dac~;
+#X obj 318 410 *~;
+#X obj 364 395 vsl 8 64 0 1 0 1 empty empty empty 0 -8 0 8 -262144
+-1 -1 4900 1;
+#X obj 170 211 aenv~ 100 200 0.6 500;
+#X obj 430 222 phasor~ 100;
+#X obj 430 266 lop~ 1000;
+#X obj 430 244 -~ 0.5;
+#X obj 238 75 vsl 8 64 10 2000 0 1 empty empty attack 0 -8 0 8 -262144
+-1 -1 600 1;
+#X obj 281 75 vsl 8 64 10 2000 0 1 empty empty decay 0 -8 0 8 -262144
+-1 -1 800 1;
+#X obj 367 75 vsl 8 64 10 2000 0 1 empty empty release 0 -8 0 8 -262144
+-1 -1 2600 1;
+#X obj 324 75 vsl 8 64 0 1 0 1 empty empty sustain 0 -8 0 8 -262144
+-1 -1 4400 1;
+#X obj 430 146 notein 1;
+#X obj 430 196 mtof;
+#X text 42 206 nonzero -> attack;
+#X text 484 81 Ben Saylor <bsaylor@macalester.edu>;
+#X text 500 97 http://www.macalester.edu/~bsaylor;
+#X obj 8 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
+;
+#X text 27 17 <- click here;
+#X obj 20 70 del 800;
+#X text 452 6 aenv~: asymptotic ADSR envelope generator;
+#X msg 198 73 lina;
+#X msg 198 104 loga;
+#X text 104 73 linear attack;
+#X text 120 105 log attack;
+#X msg 198 133 zero;
+#X text 77 219 0 -> release;
+#X connect 0 0 13 1;
+#X connect 1 0 13 2;
+#X connect 2 0 13 3;
+#X connect 3 0 13 4;
+#X connect 4 0 7 0;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 8 0;
+#X connect 9 0 11 0;
+#X connect 11 0 10 0;
+#X connect 11 0 10 1;
+#X connect 12 0 11 1;
+#X connect 13 0 8 0;
+#X connect 13 0 9 0;
+#X connect 14 0 16 0;
+#X connect 15 0 9 1;
+#X connect 16 0 15 0;
+#X connect 17 0 0 0;
+#X connect 18 0 1 0;
+#X connect 19 0 3 0;
+#X connect 20 0 2 0;
+#X connect 21 0 22 0;
+#X connect 21 1 13 0;
+#X connect 22 0 14 0;
+#X connect 26 0 4 0;
+#X connect 26 0 28 0;
+#X connect 28 0 5 0;
+#X connect 30 0 13 0;
+#X connect 31 0 13 0;
+#X connect 34 0 13 0;
diff --git a/externals/build/doc/help-svf~.pd b/externals/build/doc/help-svf~.pd
new file mode 100644
index 00000000..39c8cbfe
--- /dev/null
+++ b/externals/build/doc/help-svf~.pd
@@ -0,0 +1,137 @@
+#N canvas 10 20 762 475 10;
+#X obj 170 445 dac~;
+#X obj 7 369 phasor~;
+#X floatatom 7 347 5 0 0;
+#X obj 145 329 sig~;
+#X obj 190 329 sig~;
+#X obj 97 257 mtof;
+#X obj 97 120 vsl 15 128 16 135 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 145 120 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 190 119 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 97 329 line~;
+#X msg 97 306 \$1 100;
+#X floatatom 200 281 5 0 0;
+#X floatatom 155 281 5 0 0;
+#X floatatom 97 281 7 0 0;
+#X msg 361 123 low;
+#X msg 361 147 high;
+#X msg 361 171 band;
+#X msg 361 195 notch;
+#X msg 361 219 peak;
+#X obj 7 303 loadbang;
+#N canvas 4 20 608 388 hanning-table 0;
+#X obj 92 206 phasor~;
+#X obj 92 234 cos~;
+#X obj 23 328 tabwrite~ hanning;
+#X obj 30 252 -~;
+#X obj 28 218 sig~ 1;
+#X msg 37 180 0;
+#X text 141 13 CALCULATE HANNING;
+#X text 141 27 WINDOW TABLE;
+#N canvas 0 0 450 300 graph1 0;
+#X array hanning 512 float 0;
+#X coords 0 1 511 0 256 128 1;
+#X restore 305 93 graph;
+#X obj 93 171 sig~;
+#X text 24 354 sample rate / window size;
+#X msg 23 144 bang;
+#X obj 66 269 sig~ 0.5;
+#X obj 49 300 *~;
+#X obj 67 96 samplerate~;
+#X obj 25 53 t b f;
+#X obj 25 8 loadbang;
+#X msg 25 31 512;
+#X obj 94 131 / 512;
+#X connect 0 0 1 0;
+#X connect 1 0 3 1;
+#X connect 3 0 13 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 1;
+#X connect 9 0 0 0;
+#X connect 11 0 2 0;
+#X connect 11 0 5 0;
+#X connect 12 0 13 1;
+#X connect 13 0 2 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 15 0 11 0;
+#X connect 15 1 18 1;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 18 0 9 0;
+#X restore 13 430 pd hanning-table;
+#N canvas 10 112 328 354 fft-analysis 0;
+#X obj 69 15 inlet~;
+#X obj 43 74 rfft~;
+#X obj 37 123 *~;
+#X obj 81 124 *~;
+#X obj 49 167 +~;
+#X obj 49 196 sqrt~;
+#X obj 27 297 tabsend~ response;
+#X obj 171 209 block~ 512 2;
+#X obj 182 61 tabreceive~ hanning;
+#X obj 164 99 *~;
+#X obj 69 36 /~ 8;
+#X obj 51 249 clip~ 0 1;
+#X connect 0 0 10 0;
+#X connect 1 0 2 0;
+#X connect 1 0 2 1;
+#X connect 1 1 3 0;
+#X connect 1 1 3 1;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 11 0;
+#X connect 8 0 9 1;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 11 0 6 0;
+#X restore 216 421 pd fft-analysis;
+#N canvas 0 0 450 300 graph1 0;
+#X array response 256 float 0;
+#X coords 0 1 255 0 256 140 1;
+#X restore 478 10 graph;
+#X msg 7 325 110;
+#X text 5 1 svf~ - state-variable filter;
+#X text 146 99 q;
+#X text 171 100 resonance;
+#X text 67 100 frequency;
+#X text 331 100 filter type;
+#X obj 200 387 svf~ low;
+#X text 8 28 A port of Steve Harris' LADSPA plugin;
+#X text 6 45 (http://plugin.org.uk);
+#X text 325 313 Notes:;
+#X text 338 334 'q' controls the filter resonance. The resonance input
+is for 'extra' resonance.. :);
+#X text 400 171 <- keep q below 0.1;
+#X text 339 370 The filters don't use the same scale for frequency.
+Bandpass frequency seems to be in Hz. If the frequency is set too high
+\, LOUD aliasing is produced.;
+#X text 339 418 The bandpass filter is very sensitive to q - normal
+range is 0 to 0.1.;
+#X connect 1 0 29 0;
+#X connect 2 0 1 0;
+#X connect 3 0 29 2;
+#X connect 4 0 29 3;
+#X connect 5 0 13 0;
+#X connect 6 0 5 0;
+#X connect 7 0 3 0;
+#X connect 7 0 12 0;
+#X connect 8 0 4 0;
+#X connect 8 0 11 0;
+#X connect 9 0 29 1;
+#X connect 10 0 9 0;
+#X connect 13 0 10 0;
+#X connect 14 0 29 0;
+#X connect 15 0 29 0;
+#X connect 16 0 29 0;
+#X connect 17 0 29 0;
+#X connect 18 0 29 0;
+#X connect 19 0 23 0;
+#X connect 23 0 2 0;
+#X connect 29 0 0 0;
+#X connect 29 0 0 1;
+#X connect 29 0 21 0;
diff --git a/externals/build/doc/help-zhzxh~.pd b/externals/build/doc/help-zhzxh~.pd
new file mode 100644
index 00000000..9b5f26a1
--- /dev/null
+++ b/externals/build/doc/help-zhzxh~.pd
@@ -0,0 +1,39 @@
+#N canvas 12 60 418 347 10;
+#X floatatom 127 195 5 0 0;
+#X obj 76 307 dac~;
+#X obj 78 277 *~;
+#X obj 13 123 readsf~;
+#X msg 36 94 1;
+#X floatatom 99 46 5 0 0;
+#X obj 130 183 hsl 128 8 0 2500 0 1 empty empty tone -2 -6 0 8 -262144
+-1 -1 8200 1;
+#X obj 78 220 zhzxh~;
+#X msg 13 56 open \$1;
+#X obj 136 244 vsl 8 64 0 1 0 1 empty empty empty 0 -8 0 8 -262144
+-1 -1 4200 1;
+#X text 163 25 http://www.macalester.edu/~bsaylor;
+#X text 160 9 Ben Saylor <bsaylor@macalester.edu>;
+#X obj 13 31 openpanel;
+#X obj 13 8 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
+;
+#X obj 105 120 *~;
+#X obj 155 94 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 99 67 mtof;
+#X obj 99 93 osc~ 50;
+#X connect 0 0 7 1;
+#X connect 2 0 1 0;
+#X connect 2 0 1 1;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 16 0;
+#X connect 6 0 0 0;
+#X connect 7 0 2 0;
+#X connect 8 0 3 0;
+#X connect 9 0 2 1;
+#X connect 12 0 8 0;
+#X connect 13 0 12 0;
+#X connect 14 0 7 0;
+#X connect 15 0 14 1;
+#X connect 16 0 17 0;
+#X connect 17 0 14 0;
diff --git a/externals/build/doc/highpass.pd b/externals/build/doc/highpass.pd
new file mode 100644
index 00000000..e953888f
--- /dev/null
+++ b/externals/build/doc/highpass.pd
@@ -0,0 +1,35 @@
+#N canvas 365 183 620 463 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 168 115;
+#X msg 360 109 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 168 94 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 182 148 click on filtgain to view frequency plot;
+#X text 70 26 ===================================;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X text 76 12 Highpass coefficients for biquad~;
+#X obj 77 160 highpass 4000 33;
+#X obj 34 113 r doit;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X connect 1 0 24 0;
+#X connect 2 0 5 0;
+#X connect 2 0 24 1;
+#X connect 5 0 24 0;
+#X connect 24 0 0 0;
+#X connect 24 0 4 0;
+#X connect 25 0 24 0;
diff --git a/externals/build/doc/highshelf.pd b/externals/build/doc/highshelf.pd
new file mode 100644
index 00000000..be2a5775
--- /dev/null
+++ b/externals/build/doc/highshelf.pd
@@ -0,0 +1,39 @@
+#N canvas 310 193 620 455 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 186 112;
+#X msg 360 117 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 208 159 click on filtgain to view frequency plot;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X floatatom 129 113;
+#X text 138 92 gain;
+#X text 71 26 ==============================================;
+#X text 186 91 slope (0 - 100);
+#X text 76 12 Highshelf coefficients for biquad~;
+#X obj 77 160 highshelf 5000 70 100;
+#X obj 30 113 r doit;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X connect 1 0 26 0;
+#X connect 2 0 5 0;
+#X connect 2 0 26 2;
+#X connect 5 0 26 0;
+#X connect 21 0 5 0;
+#X connect 21 0 26 1;
+#X connect 26 0 0 0;
+#X connect 26 0 4 0;
+#X connect 27 0 26 0;
diff --git a/externals/build/doc/hlshelf.pd b/externals/build/doc/hlshelf.pd
new file mode 100644
index 00000000..0e5251dd
--- /dev/null
+++ b/externals/build/doc/hlshelf.pd
@@ -0,0 +1,34 @@
+#N canvas 365 183 620 471 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 139 114;
+#X msg 360 109 \; paint 0;
+#X obj 159 175 filtgain;
+#X text 139 93 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 158 159 click on filtgain to view frequency plot;
+#X text 76 12 Bandpass coefficients for biquad~;
+#X text 70 26 ===================================;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X obj 77 61 r freq;
+#X obj 139 61 r bw;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; freq 4000 \; bw 33;
+#X obj 77 160 hlshelf;
+#X connect 1 0 26 0;
+#X connect 2 0 26 1;
+#X connect 23 0 1 0;
+#X connect 24 0 2 0;
+#X connect 26 0 0 0;
+#X connect 26 0 4 0;
diff --git a/externals/build/doc/inv.pd b/externals/build/doc/inv.pd
new file mode 100644
index 00000000..47244495
--- /dev/null
+++ b/externals/build/doc/inv.pd
@@ -0,0 +1,26 @@
+#N canvas 201 39 506 289 10;
+#X floatatom 32 76;
+#X floatatom 32 137;
+#X obj 188 93 sig~ 220;
+#X floatatom 188 74;
+#X obj 188 150 1/x~;
+#X obj 188 192 clip~ -1 1;
+#X obj 181 222 dac~;
+#X text 25 267 (C) Guenter Geiger;
+#X obj 188 111 phasor~;
+#X obj 188 129 +~ 1;
+#X obj 188 173 -~ 0.5;
+#X text 184 54 the signal version doesnt look useful to me;
+#X text 34 54 To make life easier;
+#X text 32 12 1/x takes the inverse of the input;
+#X obj 32 107 invert;
+#X connect 0 0 14 0;
+#X connect 2 0 8 0;
+#X connect 3 0 2 0;
+#X connect 4 0 10 0;
+#X connect 5 0 6 0;
+#X connect 5 0 6 1;
+#X connect 8 0 9 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 14 0 1 0;
diff --git a/externals/build/doc/kalashnikov.pd b/externals/build/doc/kalashnikov.pd
new file mode 100644
index 00000000..dfebcebd
--- /dev/null
+++ b/externals/build/doc/kalashnikov.pd
@@ -0,0 +1,23 @@
+#N canvas 304 321 450 300 10;
+#X msg 106 44 bang;
+#X floatatom 158 43 5 0 0;
+#X obj 254 180 print kalashnikov_done;
+#X obj 73 154 print uzi_index;
+#X obj 88 182 print uzi_done;
+#X obj 168 128 print kalashnikov_bang;
+#X obj 58 128 print uzi_bang;
+#X obj 211 154 print kalashnikov_index;
+#X obj 168 89 kalashnikov 2;
+#X obj 58 88 uzi 3;
+#X text 41 14 uzi aka kalashnikov is an easy way to serialize bangs
+;
+#X connect 0 0 8 0;
+#X connect 0 0 9 0;
+#X connect 1 0 8 1;
+#X connect 1 0 9 1;
+#X connect 8 0 5 0;
+#X connect 8 1 7 0;
+#X connect 8 2 2 0;
+#X connect 9 0 6 0;
+#X connect 9 1 3 0;
+#X connect 9 2 4 0;
diff --git a/externals/build/doc/lowpass.pd b/externals/build/doc/lowpass.pd
new file mode 100644
index 00000000..9d15c16f
--- /dev/null
+++ b/externals/build/doc/lowpass.pd
@@ -0,0 +1,35 @@
+#N canvas 365 183 620 467 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 162 114;
+#X msg 360 109 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 139 93 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 175 159 click on filtgain to view frequency plot;
+#X text 70 26 ===================================;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X text 71 12 Lowpass coefficients for biquad~;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X obj 32 114 r doit;
+#X obj 77 160 lowpass 4000 33;
+#X connect 1 0 26 0;
+#X connect 2 0 5 0;
+#X connect 2 0 26 1;
+#X connect 5 0 26 0;
+#X connect 25 0 26 0;
+#X connect 26 0 0 0;
+#X connect 26 0 4 0;
diff --git a/externals/build/doc/lowshelf.pd b/externals/build/doc/lowshelf.pd
new file mode 100644
index 00000000..140c754a
--- /dev/null
+++ b/externals/build/doc/lowshelf.pd
@@ -0,0 +1,39 @@
+#N canvas 365 183 620 459 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 192 113;
+#X msg 360 117 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 211 159 click on filtgain to view frequency plot;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X floatatom 129 113;
+#X text 138 92 gain;
+#X text 71 26 ==============================================;
+#X text 192 92 slope (0 - 100);
+#X text 76 12 Lowshelf coefficients for biquad~;
+#X obj 31 113 r doit;
+#X msg 360 45 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X obj 77 160 lowshelf 4000 50 100;
+#X connect 1 0 28 0;
+#X connect 2 0 5 0;
+#X connect 2 0 28 2;
+#X connect 5 0 28 0;
+#X connect 21 0 5 0;
+#X connect 21 0 28 1;
+#X connect 26 0 28 0;
+#X connect 28 0 0 0;
+#X connect 28 0 4 0;
diff --git a/externals/build/doc/mandelbrot.pd b/externals/build/doc/mandelbrot.pd
new file mode 100644
index 00000000..88df2e40
--- /dev/null
+++ b/externals/build/doc/mandelbrot.pd
@@ -0,0 +1,13 @@
+#N canvas 0 0 450 300 10;
+#X obj 184 89 mandelbrot;
+#X floatatom 186 117 0 0 0;
+#X floatatom 181 61 4 0 0;
+#X floatatom 217 29 4 0 0;
+#X floatatom 267 38 0 0 0;
+#X obj 296 106 cpuload;
+#X floatatom 298 140 4 0 0;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 1;
+#X connect 4 0 0 2;
+#X connect 5 0 6 0;
diff --git a/externals/build/doc/mandelbrot~.pd b/externals/build/doc/mandelbrot~.pd
new file mode 100644
index 00000000..a4953e06
--- /dev/null
+++ b/externals/build/doc/mandelbrot~.pd
@@ -0,0 +1,53 @@
+#N canvas 0 0 450 300 10;
+#X obj 114 209 env~;
+#X floatatom 115 237 4 0 0;
+#X floatatom 227 135 4 0 0;
+#X floatatom 118 19 4 0 0;
+#X floatatom 182 27 4 0 0;
+#X obj 113 170 mandelbrot~ 500;
+#X obj 172 211 snapshot~;
+#X floatatom 186 243 4 0 0;
+#X obj 258 164 ticker 15 15;
+#X obj 244 186 metro 100;
+#X obj 50 258 dac~;
+#X obj 113 107 line~;
+#X obj 163 110 line~;
+#X obj 266 99 snapshot~;
+#X floatatom 280 131 4 0 0;
+#X obj 352 52 ticker 15 15;
+#X obj 338 74 metro 100;
+#X msg 181 80 \$1 1000;
+#X msg 105 75 \$1 1000;
+#X obj 183 52 * 0.01;
+#X obj 111 51 * 0.01;
+#X obj 238 19 random 100;
+#X obj 42 215 /~ 50;
+#X obj 350 142 cpuload;
+#X floatatom 354 167 4 0 0;
+#X connect 0 0 1 0;
+#X connect 2 0 5 2;
+#X connect 2 0 22 1;
+#X connect 3 0 20 0;
+#X connect 4 0 19 0;
+#X connect 5 0 6 0;
+#X connect 5 0 0 0;
+#X connect 5 0 22 0;
+#X connect 6 0 7 0;
+#X connect 8 0 9 0;
+#X connect 9 0 6 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 1;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 15 0 16 0;
+#X connect 16 0 13 0;
+#X connect 16 0 21 0;
+#X connect 17 0 12 0;
+#X connect 18 0 11 0;
+#X connect 19 0 17 0;
+#X connect 20 0 18 0;
+#X connect 21 0 4 0;
+#X connect 21 0 3 0;
+#X connect 22 0 10 0;
+#X connect 22 0 10 1;
+#X connect 23 0 24 0;
diff --git a/externals/build/doc/mixer~.pd b/externals/build/doc/mixer~.pd
new file mode 100644
index 00000000..1063de10
--- /dev/null
+++ b/externals/build/doc/mixer~.pd
@@ -0,0 +1,87 @@
+#N canvas 205 153 590 395 10;
+#X obj 163 120 osc~ 220;
+#X obj 186 297 dac~;
+#X obj 163 140 *~ 0.1;
+#X obj 217 120 osc~ 220;
+#X obj 217 140 *~ 0.1;
+#X obj 272 120 osc~ 220;
+#X obj 272 140 *~ 0.1;
+#X obj 325 120 osc~ 220;
+#X obj 325 140 *~ 0.1;
+#X floatatom 217 97 0 0 0;
+#X floatatom 273 98 0 0 0;
+#X floatatom 326 95 0 0 0;
+#X floatatom 166 96 0 0 0;
+#X msg 106 175 1 \$1;
+#X msg 104 198 2 \$1;
+#X msg 104 221 3 \$1;
+#X floatatom 58 114 0 0 0;
+#X floatatom 58 153 0 0 0;
+#X floatatom 59 201 0 0 0;
+#X floatatom 59 84 0 0 0;
+#X msg 105 143 0 \$1;
+#X obj 196 246 mixer~ 20 --------------------------------------;
+#X obj 386 119 osc~ 220;
+#X obj 386 139 *~ 0.1;
+#X obj 440 119 osc~ 220;
+#X obj 440 139 *~ 0.1;
+#X obj 495 119 osc~ 220;
+#X obj 495 139 *~ 0.1;
+#X obj 548 119 osc~ 220;
+#X obj 548 139 *~ 0.1;
+#X floatatom 440 96 0 0 0;
+#X floatatom 496 97 0 0 0;
+#X floatatom 549 94 0 0 0;
+#X floatatom 389 95 0 0 0;
+#X floatatom 55 251 0 0 0;
+#X floatatom 55 290 0 0 0;
+#X floatatom 56 338 0 0 0;
+#X floatatom 56 221 0 0 0;
+#X msg 102 280 4 \$1;
+#X msg 103 312 5 \$1;
+#X msg 101 335 6 \$1;
+#X msg 101 358 7 \$1;
+#X text 57 7 The beginnig of a dynamic mixer matrix object \, implemented
+together with Oswald;
+#X connect 0 0 2 0;
+#X connect 2 0 21 0;
+#X connect 3 0 4 0;
+#X connect 4 0 21 1;
+#X connect 5 0 6 0;
+#X connect 6 0 21 2;
+#X connect 7 0 8 0;
+#X connect 8 0 21 3;
+#X connect 9 0 3 0;
+#X connect 10 0 5 0;
+#X connect 11 0 7 0;
+#X connect 12 0 0 0;
+#X connect 13 0 21 0;
+#X connect 14 0 21 0;
+#X connect 15 0 21 0;
+#X connect 16 0 13 0;
+#X connect 17 0 14 0;
+#X connect 18 0 15 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 21 0 1 0;
+#X connect 21 0 1 1;
+#X connect 22 0 23 0;
+#X connect 23 0 21 4;
+#X connect 24 0 25 0;
+#X connect 25 0 21 5;
+#X connect 26 0 27 0;
+#X connect 27 0 21 6;
+#X connect 28 0 29 0;
+#X connect 29 0 21 7;
+#X connect 30 0 24 0;
+#X connect 31 0 26 0;
+#X connect 32 0 28 0;
+#X connect 33 0 22 0;
+#X connect 34 0 39 0;
+#X connect 35 0 40 0;
+#X connect 36 0 41 0;
+#X connect 37 0 38 0;
+#X connect 38 0 21 0;
+#X connect 39 0 21 0;
+#X connect 40 0 21 0;
+#X connect 41 0 21 0;
diff --git a/externals/build/doc/moog~.pd b/externals/build/doc/moog~.pd
new file mode 100644
index 00000000..7e0139ba
--- /dev/null
+++ b/externals/build/doc/moog~.pd
@@ -0,0 +1,39 @@
+#N canvas 225 113 568 397 10;
+#X obj 186 210 moog~;
+#X obj 178 288 dac~;
+#X floatatom 226 163 5 0 0;
+#X floatatom 183 104 5 0 0;
+#X floatatom 25 113 5 0 0;
+#X obj 238 237 env~;
+#X floatatom 238 257 5 0 0;
+#X obj 186 257 *~ 0.1;
+#X msg 182 163 reset;
+#X obj 116 105 +~ 1;
+#X floatatom 116 63 5 0 0;
+#X floatatom 180 128 5 0 0;
+#X obj 116 146 +~ 100;
+#X obj 116 84 osc~ 0.25;
+#X obj 116 125 *~ 2000;
+#X obj 226 182 sig~ 3;
+#X obj 25 139 phasor~ 110;
+#X msg 249 52 \; pd dsp 1 \;;
+#X text 17 7 A signal controlled "moog" resonant lowpass;
+#X text 272 163 Q (1-4);
+#X text 61 46 resonance freq modulation;
+#X connect 0 0 5 0;
+#X connect 0 0 7 0;
+#X connect 2 0 15 0;
+#X connect 3 0 14 1;
+#X connect 4 0 16 0;
+#X connect 5 0 6 0;
+#X connect 7 0 1 0;
+#X connect 7 0 1 1;
+#X connect 8 0 0 0;
+#X connect 9 0 14 0;
+#X connect 10 0 13 0;
+#X connect 11 0 12 1;
+#X connect 12 0 0 1;
+#X connect 13 0 9 0;
+#X connect 14 0 12 0;
+#X connect 15 0 0 2;
+#X connect 16 0 0 0;
diff --git a/externals/build/doc/notch.pd b/externals/build/doc/notch.pd
new file mode 100644
index 00000000..a65d9c42
--- /dev/null
+++ b/externals/build/doc/notch.pd
@@ -0,0 +1,35 @@
+#N canvas 363 47 620 467 10;
+#X obj 77 182 print;
+#X floatatom 77 114;
+#X floatatom 150 114;
+#X msg 360 109 \; paint 0;
+#X obj 159 175 filtgain;
+#X msg 91 138 bang;
+#X text 150 93 bandwidth (0 - 100);
+#X text 6 334 See also:;
+#X obj 72 335 bandpass;
+#X obj 139 336 notch;
+#X obj 195 337 lowpass;
+#X obj 247 336 highpass;
+#X obj 247 358 equalizer;
+#X obj 72 357 highshelf;
+#X obj 139 357 lowshelf;
+#X obj 195 357 hlshelf;
+#X text 75 226 These filters are all controlled by a bandwidth which is expressed in octaves. A bandwidth of 100 is equivalent to one octave.;
+#X text 358 25 click first;
+#X text 165 159 click on filtgain to view frequency plot;
+#X text 70 26 ===================================;
+#X text 6 393 (C) Guenter Geiger 2000;
+#X text 75 92 frequency;
+#X text 75 268 Attention \, only the left inlet triggers new coefficients for biquad~;
+#X text 72 13 Notch coefficients for biquad~;
+#X msg 360 46 \; pd dsp 1 \; paint 1 \; doit bang \;;
+#X obj 35 114 r doit;
+#X obj 77 160 notch 4000 33;
+#X connect 1 0 26 0;
+#X connect 2 0 5 0;
+#X connect 2 0 26 1;
+#X connect 5 0 26 0;
+#X connect 25 0 26 0;
+#X connect 26 0 0 0;
+#X connect 26 0 4 0;
diff --git a/externals/build/doc/openpatch.pd b/externals/build/doc/openpatch.pd
new file mode 100644
index 00000000..ef57b782
--- /dev/null
+++ b/externals/build/doc/openpatch.pd
@@ -0,0 +1,11 @@
+#N canvas 19 591 373 232 10;
+#X obj 47 87 openpatch;
+#X text 120 88 =;
+#X obj 136 89 opa;
+#X msg 105 49 /tmp;
+#X msg 47 49 foo.pd;
+#X text 43 13 this would open /tmp/tst.pd;
+#X text 24 161 but you can also use;
+#X msg 176 160 \; pd open foo.pd /tmp/ 1 1 \;;
+#X connect 3 0 0 1;
+#X connect 4 0 0 0;
diff --git a/externals/build/doc/ossmixer.pd b/externals/build/doc/ossmixer.pd
new file mode 100644
index 00000000..ee8e34fc
--- /dev/null
+++ b/externals/build/doc/ossmixer.pd
@@ -0,0 +1,67 @@
+#N canvas 572 217 606 552 10;
+#X obj 188 331 ossmixer;
+#X msg 251 228 bang;
+#X msg 66 95 get pcm;
+#X msg 80 67 get main;
+#X msg 62 122 get igain;
+#X floatatom 37 167 5 0 0;
+#X text 232 479 altpcm \, reclev \, igain \, ogain;
+#X msg 37 192 set main \$1;
+#X text 35 451 possible channels:;
+#X floatatom 36 220 5 0 0;
+#X msg 36 242 set igain \$1;
+#X msg 230 130 get_source;
+#X msg 311 217 set_source line;
+#X msg 312 240 set_source mic;
+#X msg 314 263 set_source cd;
+#X floatatom 35 267 5 0 0;
+#X msg 35 289 set pcm \$1;
+#X symbolatom 239 359 10 0 0;
+#X floatatom 223 386 5 0 0;
+#X obj 158 387 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 158 358 sel source;
+#X floatatom 199 96 5 0 0;
+#X text 15 36 you will have to do mutings manually (read \, set 0 \,
+set x);
+#X text 146 67 get value of channel;
+#X text 252 98 get value of current channel;
+#X text 249 212 nop;
+#X text 307 131 get recording source;
+#X text 316 281 set rec. source;
+#X text 7 166 s;
+#X text 8 180 e;
+#X text 8 195 t;
+#X text 7 220 v;
+#X text 7 231 a;
+#X text 7 245 l;
+#X text 7 258 u;
+#X text 7 271 e;
+#X text 35 466 main \, treble \, bass \, synth \, pcm \, speaker \,
+line \, line1 \, line2 \, line3 \, mic \, cd \, imix \,;
+#X text 130 421 right outlet: channel name;
+#X text 130 408 left outlet: "source" or value;
+#X msg 252 173 set_device 1;
+#X text 350 175 /dev/mixer1 /dev/mixer2...;
+#X text 15 6 a simple mixer for /dev/mixerX;
+#X text 16 21 only stereo (no seperate L/R);
+#X connect 0 0 20 0;
+#X connect 0 1 17 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 7 0;
+#X connect 7 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 0;
+#X connect 13 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X connect 20 0 19 0;
+#X connect 20 1 18 0;
+#X connect 21 0 0 0;
+#X connect 39 0 0 0;
diff --git a/externals/build/doc/pipeio~.pd b/externals/build/doc/pipeio~.pd
new file mode 100644
index 00000000..e7e29512
--- /dev/null
+++ b/externals/build/doc/pipeio~.pd
@@ -0,0 +1,29 @@
+#N canvas 303 26 450 397 10;
+#X msg 102 140 1;
+#X msg 81 90 0;
+#X obj 226 21 loadbang;
+#X msg 226 47 \; pd dsp 1;
+#X obj 63 67 osc~ 440;
+#X msg 94 117 open /usr/local/pd/ext13/doc/pipein.wav;
+#X obj 246 231 dac~;
+#X obj 63 179 pipewrite~ 2;
+#X obj 142 65 osc~ 480;
+#X obj 224 192 piperead~ 2;
+#X msg 165 140 open /usr/local/pd/ext13/doc/pipein.wav;
+#X msg 227 164 1;
+#X msg 261 166 0;
+#X text 26 256 pipewrite/read: argument: number of channels you can
+create a pipe/fifo from within a shell with mknod pipename p and use
+this construct to send signals to another program/process. useful if
+you run more than one pd or mpeg-players \, ...;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 8 0 7 1;
+#X connect 9 0 6 0;
+#X connect 9 1 6 1;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
diff --git a/externals/build/doc/promiscous~.pd b/externals/build/doc/promiscous~.pd
new file mode 100644
index 00000000..eca5e117
--- /dev/null
+++ b/externals/build/doc/promiscous~.pd
@@ -0,0 +1,9 @@
+#N canvas 291 56 450 300 10;
+#X obj 89 151 dac~;
+#X text 15 19 promiscous~ converts all network traffic;
+#X text 15 41 from a given interface to signal.;
+#X text 15 196 pd must run with root permissions \, to catch the traffic
+;
+#X obj 100 93 promiscous~ eth0;
+#X connect 4 0 0 0;
+#X connect 4 0 0 1;
diff --git a/externals/build/doc/receivelocal.pd b/externals/build/doc/receivelocal.pd
new file mode 100644
index 00000000..5ada9f9e
--- /dev/null
+++ b/externals/build/doc/receivelocal.pd
@@ -0,0 +1,18 @@
+#N canvas 245 35 596 413 10;
+#N canvas 296 238 600 380 /SUBPATCH/ 0;
+#X obj 104 220 print subpatch;
+#X obj 105 160 rl test;
+#X connect 1 0 0 0;
+#X restore 254 192 pd;
+#X obj 39 285 print local;
+#X floatatom 38 142;
+#X msg 72 138 nope dope;
+#X text 38 327 (C) 1999 Guenter Geiger;
+#X obj 41 198 sl test1;
+#X obj 39 259 rl test1;
+#X text 31 38 receive locally sent messages with receivelocal;
+#X text 31 20 send messages locally (per canvas) with sendlocal;
+#X text 30 56 aliases are "sl" and "rl";
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 6 0 1 0;
diff --git a/externals/build/doc/rtin~.pd b/externals/build/doc/rtin~.pd
new file mode 100644
index 00000000..176be1a6
--- /dev/null
+++ b/externals/build/doc/rtin~.pd
@@ -0,0 +1,32 @@
+#N canvas 321 9 450 300 10;
+#X obj 121 96 noise~;
+#X obj 139 202 dac~;
+#X obj 152 157 *~;
+#X obj 210 121 line~;
+#X msg 175 34 bang;
+#X obj 332 193 print;
+#X msg 141 69 1 \, 0 10;
+#X obj 270 89 int;
+#X obj 329 86 + 1;
+#X obj 263 141 sel 0;
+#X floatatom 274 167 5 0 0;
+#X obj 366 82 metro 20;
+#X floatatom 355 52 5 0 0;
+#X obj 270 110 % 8;
+#X obj 227 15 rtin~;
+#X msg 231 48 bang;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 2 0 1 1;
+#X connect 3 0 2 1;
+#X connect 4 0 6 0;
+#X connect 6 0 3 0;
+#X connect 7 0 13 0;
+#X connect 8 0 7 1;
+#X connect 9 0 6 0;
+#X connect 12 0 11 1;
+#X connect 13 0 8 0;
+#X connect 13 0 9 0;
+#X connect 13 0 10 0;
+#X connect 14 0 15 0;
+#X connect 15 0 7 0;
diff --git a/externals/build/doc/scramble~.pd b/externals/build/doc/scramble~.pd
new file mode 100644
index 00000000..35d10c32
--- /dev/null
+++ b/externals/build/doc/scramble~.pd
@@ -0,0 +1,107 @@
+#N canvas 259 13 723 441 10;
+#X obj 324 367 dac~;
+#X obj 324 331 scramble~ 2;
+#X floatatom 422 124 0 0 0;
+#X obj 299 241 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1
+1;
+#X msg 50 36 \; pd dsp 1;
+#X obj 44 11 loadbang;
+#X msg 22 69 \; pd meters 1;
+#X obj 342 262 adc~;
+#X msg 140 285 threshold \$1;
+#X floatatom 140 262 0 0 0;
+#X msg 332 121 open \$1;
+#X obj 324 145 sfread~ 2;
+#X obj 230 104 del 100;
+#X msg 230 80 bang;
+#X msg 237 20 open /usr/local/media/audios/klima_gegengelesen_cato-ok.wav
+;
+#X msg 296 42 open /usr/local/media/audios/restorak.wav;
+#X obj 334 96 openpanel;
+#X msg 333 74 bang;
+#X obj 512 158 openpanel;
+#X msg 511 123 bang;
+#X msg 591 162 start;
+#X msg 594 137 stop;
+#X msg 515 194 open \$1;
+#X obj 422 101 cpuload 100;
+#X obj 513 229 mp3play~;
+#X floatatom 587 199 5 0 0;
+#X msg 146 157 grains \$1;
+#X floatatom 146 133 0 0 0;
+#X floatatom 27 130 0 0 0;
+#X msg 27 153 min_length \$1;
+#X floatatom 18 255 0 0 0;
+#X msg 18 278 direction \$1;
+#X msg 141 206 autofollow;
+#X floatatom 241 199 0 0 0;
+#X msg 242 221 buffer \$1;
+#X text 176 135 # of grains;
+#X text 26 113 minimum low period;
+#X text 209 180 ringbuffer size (882000);
+#X text 6 202 -1 back only;
+#X text 11 214 1 forw. only;
+#X text 11 231 0 both directions;
+#X text 136 244 threshold;
+#X text 110 183 autothreshold;
+#X floatatom 22 309 0 0 0;
+#X msg 22 332 pitch \$1;
+#X msg 107 353 flush;
+#X floatatom 372 375 0 0 0;
+#X floatatom 396 355 0 0 0;
+#X floatatom 169 373 0 0 0;
+#X msg 169 396 normalize \$1;
+#X msg 271 402 analize \$1;
+#X obj 273 374 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X floatatom 400 198 5 0 0;
+#X msg 400 223 autopitch \$1;
+#X connect 1 0 0 0;
+#X connect 1 1 0 1;
+#X connect 1 2 46 0;
+#X connect 1 3 47 0;
+#X connect 3 0 1 0;
+#X connect 5 0 4 0;
+#X connect 5 0 6 0;
+#X connect 7 0 1 0;
+#X connect 7 1 1 1;
+#X connect 8 0 1 0;
+#X connect 9 0 8 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
+#X connect 11 1 1 1;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 11 0;
+#X connect 14 0 13 0;
+#X connect 15 0 11 0;
+#X connect 15 0 13 0;
+#X connect 16 0 10 0;
+#X connect 17 0 16 0;
+#X connect 18 0 22 0;
+#X connect 19 0 18 0;
+#X connect 20 0 24 0;
+#X connect 21 0 24 0;
+#X connect 22 0 24 0;
+#X connect 23 0 2 0;
+#X connect 24 0 1 0;
+#X connect 24 1 1 1;
+#X connect 25 0 24 1;
+#X connect 26 0 1 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
+#X connect 29 0 1 0;
+#X connect 30 0 31 0;
+#X connect 31 0 1 0;
+#X connect 32 0 1 0;
+#X connect 33 0 34 0;
+#X connect 34 0 1 0;
+#X connect 43 0 44 0;
+#X connect 44 0 1 0;
+#X connect 45 0 1 0;
+#X connect 48 0 49 0;
+#X connect 49 0 1 0;
+#X connect 50 0 1 0;
+#X connect 51 0 50 0;
+#X connect 52 0 53 0;
+#X connect 53 0 1 0;
diff --git a/externals/build/doc/send13.pd b/externals/build/doc/send13.pd
new file mode 100644
index 00000000..ec397e18
--- /dev/null
+++ b/externals/build/doc/send13.pd
@@ -0,0 +1,11 @@
+#N canvas 0 0 450 300 10;
+#X obj 197 107 receive13 foo;
+#X obj 71 107 send13 foo;
+#X floatatom 197 141 5 0 0;
+#X floatatom 71 79 5 0 0;
+#X msg 197 67 set bar;
+#X msg 118 79 set bar;
+#X connect 0 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 0 0;
+#X connect 5 0 1 0;
diff --git a/externals/build/doc/sendlocal.pd b/externals/build/doc/sendlocal.pd
new file mode 100644
index 00000000..5ada9f9e
--- /dev/null
+++ b/externals/build/doc/sendlocal.pd
@@ -0,0 +1,18 @@
+#N canvas 245 35 596 413 10;
+#N canvas 296 238 600 380 /SUBPATCH/ 0;
+#X obj 104 220 print subpatch;
+#X obj 105 160 rl test;
+#X connect 1 0 0 0;
+#X restore 254 192 pd;
+#X obj 39 285 print local;
+#X floatatom 38 142;
+#X msg 72 138 nope dope;
+#X text 38 327 (C) 1999 Guenter Geiger;
+#X obj 41 198 sl test1;
+#X obj 39 259 rl test1;
+#X text 31 38 receive locally sent messages with receivelocal;
+#X text 31 20 send messages locally (per canvas) with sendlocal;
+#X text 30 56 aliases are "sl" and "rl";
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 6 0 1 0;
diff --git a/externals/build/doc/serial_bird.pd b/externals/build/doc/serial_bird.pd
new file mode 100644
index 00000000..bec40d98
--- /dev/null
+++ b/externals/build/doc/serial_bird.pd
@@ -0,0 +1,35 @@
+#N canvas 48 227 891 382 10;
+#X obj 77 254 serial_bird;
+#X msg 98 89 start;
+#X msg 90 55 poll;
+#X msg 414 97 mode position;
+#X msg 77 26 init;
+#X msg 414 80 mode positionangle;
+#X obj 77 277 unpack 1 2 3 4 5 6;
+#X floatatom 180 310;
+#X floatatom 159 331;
+#X floatatom 138 355;
+#X floatatom 97 323;
+#X floatatom 76 344;
+#X floatatom 55 368;
+#X text 415 23 The serial_bird object interprets the acsension Flock of Birds device.;
+#X text 414 51 The mode command sets the output mode (see FOB description for further information;
+#X text 114 24 Init initializes the serial device;
+#X text 125 50 poll stops streaming mode and outputs;
+#X text 125 60 one data set;
+#X text 136 89 start streaming mode with start;
+#X obj 180 254 serialctl /dev/ttyS0;
+#X connect 0 0 6 0;
+#X connect 0 1 19 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 0;
+#X connect 6 0 12 0;
+#X connect 6 1 11 0;
+#X connect 6 2 10 0;
+#X connect 6 3 9 0;
+#X connect 6 4 8 0;
+#X connect 6 5 7 0;
+#X connect 19 0 0 0;
diff --git a/externals/build/doc/serialctl.pd b/externals/build/doc/serialctl.pd
new file mode 100644
index 00000000..34fd0237
--- /dev/null
+++ b/externals/build/doc/serialctl.pd
@@ -0,0 +1,61 @@
+#N canvas 91 60 907 514 10;
+#X msg 202 243 getlines;
+#X msg 201 169 setlines RTS 0;
+#X msg 201 187 setlines RTS 1;
+#X msg 24 213 start;
+#X msg 24 195 stop;
+#X msg 515 231 vtime 0 20;
+#X msg 515 212 setlocal 0;
+#X msg 515 193 setcontrol 0 CS8 CLOCAL CREAD;
+#X msg 201 224 setlines DTR 1;
+#X msg 201 206 setlines DTR 0;
+#X text 12 489 (C) 2000 Guenter Geiger;
+#X text 32 22 serialin reads from a Unix serial device. There are several ways how serial devices can be setup \, and serialin provides access to these serial device settings. This makes it possible to interpret the data stream from a serial device either within pd itself \, or via a specially written external for the device attached to the serial port (see serial_bird and serial_ms).;
+#X msg 516 431 79 \, 75 \, 13;
+#X msg 517 451 OK \, 13;
+#X text 201 138 setlines set the serial port;
+#X text 199 151 lines (only acces to RTS and DTR is provided;
+#X text 23 153 start/stop;
+#X text 23 165 reading characters;
+#X text 23 177 from the device;
+#X text 510 69 setinput \, setcontrol \, setlocal \, vtime provide access to the termios status bits of the serial device. This is lowlevel configuration and is sometimes necessary.;
+#X text 512 296 set the baudrate;
+#X msg 514 348 makeraw;
+#X text 513 330 configure the device as "raw";
+#X text 511 110 If a 0 is prepended to the flags \, the flags are reset before any bits are switched. All other commands set the corresponding bits to either 1 (e.g. CLOCAL) or 0 (!CLOCAL).;
+#X msg 516 250 listflags;
+#X msg 716 210 setinput list;
+#X text 511 151 the "list flag" lists all available flags.;
+#X text 514 412 data can be sent as symbols or as ASCII character code;
+#X msg 716 230 setcontrol list;
+#X msg 717 191 setlocal list;
+#X msg 514 175 setinput 0 IXOFF;
+#X floatatom 590 314;
+#X msg 513 313 speed \$1;
+#X obj 24 455 print;
+#X floatatom 62 243;
+#X msg 73 277 send c;
+#X obj 24 429 serialctl /dev/ttyS0;
+#X connect 0 0 36 0;
+#X connect 1 0 36 0;
+#X connect 2 0 36 0;
+#X connect 3 0 36 0;
+#X connect 4 0 36 0;
+#X connect 5 0 36 0;
+#X connect 6 0 36 0;
+#X connect 7 0 36 0;
+#X connect 8 0 36 0;
+#X connect 9 0 36 0;
+#X connect 12 0 36 0;
+#X connect 13 0 36 0;
+#X connect 21 0 36 0;
+#X connect 24 0 36 0;
+#X connect 25 0 36 0;
+#X connect 28 0 36 0;
+#X connect 29 0 36 0;
+#X connect 30 0 36 0;
+#X connect 31 0 32 0;
+#X connect 32 0 36 0;
+#X connect 34 0 36 0;
+#X connect 35 0 36 0;
+#X connect 36 0 33 0;
diff --git a/externals/build/doc/serialize.pd b/externals/build/doc/serialize.pd
new file mode 100644
index 00000000..0fbacf62
--- /dev/null
+++ b/externals/build/doc/serialize.pd
@@ -0,0 +1,8 @@
+#N canvas 246 82 551 292 10;
+#X obj 34 106 serialize 4;
+#X obj 34 141 print;
+#X floatatom 34 69;
+#X text 30 195 (C) 2000 Guenter Geiger;
+#X text 30 39 serialize ... turn a stream of floats into a list;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
diff --git a/externals/build/doc/serialmouse.pd b/externals/build/doc/serialmouse.pd
new file mode 100644
index 00000000..45911198
--- /dev/null
+++ b/externals/build/doc/serialmouse.pd
@@ -0,0 +1,35 @@
+#N canvas 515 351 462 262 10;
+#X obj 251 170 print reading;
+#X msg 154 72 start;
+#X msg 155 90 stop;
+#X obj 59 147 serial_ms;
+#X text 35 9 decodes serial mice attached to the 1 serial port;
+#X text 35 258 (C) Guenter Geiger;
+#X msg 37 43 init;
+#X msg 245 88 setcontrol 0 CREAD CLOCAL CS7;
+#X msg 247 67 getlines;
+#X obj 59 170 unpack;
+#X floatatom 59 192;
+#X floatatom 90 192;
+#X msg 344 46 setlines RTS 1;
+#X msg 247 27 setlines DTR 0;
+#X msg 247 45 setlines RTS 0;
+#X msg 342 27 setlines DTR 1;
+#X msg 304 123 setlocal 0;
+#X obj 155 113 serialctl /dev/ttyS0;
+#X connect 1 0 17 0;
+#X connect 2 0 17 0;
+#X connect 3 0 9 0;
+#X connect 3 1 17 0;
+#X connect 6 0 3 0;
+#X connect 7 0 17 0;
+#X connect 8 0 17 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 12 0 17 0;
+#X connect 13 0 17 0;
+#X connect 14 0 17 0;
+#X connect 15 0 17 0;
+#X connect 16 0 17 0;
+#X connect 17 0 0 0;
+#X connect 17 0 3 0;
diff --git a/externals/build/doc/sfread~.pd b/externals/build/doc/sfread~.pd
new file mode 100644
index 00000000..5cc1058f
--- /dev/null
+++ b/externals/build/doc/sfread~.pd
@@ -0,0 +1,44 @@
+#N canvas 89 114 600 456 8;
+#X msg 34 135 bang;
+#X obj 228 324 dac~;
+#X msg 70 218 1;
+#X floatatom 348 128;
+#X text 14 33 file to open;
+#X text 33 116 start playback;
+#X msg 70 240 0;
+#X text 34 10 SFREAD;
+#X text 34 21 =======;
+#X text 346 96 playback speed (defaults to 1);
+#X text 93 8 The file should have the systems samplerate (44100) and endianess matching the machine.;
+#X text 25 257 pause on/off during playback;
+#X text 277 46 resets sound to position;
+#X msg 322 63 200;
+#X text 288 164 instatiation: sfread <channels> <skip>;
+#X text 276 35 start position in samples (defaults to <skip>);
+#X floatatom 231 102;
+#X msg 172 114 loop 1;
+#X msg 152 94 loop 0;
+#X msg 364 224 size;
+#X floatatom 336 275;
+#X text 333 205 Get the size (in frames);
+#X obj 207 164 sfread~ 2 62;
+#X msg 14 85 open \$1;
+#X obj 14 66 openpanel;
+#X msg 69 66 bang;
+#X msg 365 249 state;
+#X connect 0 0 22 0;
+#X connect 2 0 22 0;
+#X connect 3 0 22 2;
+#X connect 6 0 22 0;
+#X connect 13 0 22 1;
+#X connect 16 0 22 1;
+#X connect 17 0 22 0;
+#X connect 18 0 22 0;
+#X connect 19 0 22 0;
+#X connect 22 0 1 0;
+#X connect 22 1 1 1;
+#X connect 22 2 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 23 0;
+#X connect 25 0 24 0;
+#X connect 26 0 22 0;
diff --git a/externals/build/doc/sfwrite.pd b/externals/build/doc/sfwrite.pd
new file mode 100644
index 00000000..1426cf33
--- /dev/null
+++ b/externals/build/doc/sfwrite.pd
@@ -0,0 +1,45 @@
+#N canvas 340 71 600 460 12;
+#X obj 185 96 sfwrite~ 2;
+#X msg 65 16 open test.wav;
+#X floatatom 185 16;
+#X msg 147 308 0;
+#X obj 232 17 adc~;
+#X msg 91 278 0;
+#X msg 59 278 1;
+#X obj 142 222 table;
+#X msg 136 171 bang;
+#X msg 32 171 resize 441000;
+#X msg 181 172 read16 test.wav 200 l;
+#X obj 417 104 env~;
+#X obj 298 34 osc~ 220;
+#X obj 125 396 dac~;
+#X floatatom 411 10;
+#X obj 125 341 sfread~ 2;
+#X obj 281 379 dbtorms;
+#X obj 281 279 slider 96 0 15;
+#X obj 159 372 *~ 0;
+#X obj 125 372 *~ 0;
+#X msg 125 277 open test.wav \, bang;
+#X floatatom 417 129;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 15 1;
+#X connect 5 0 15 0;
+#X connect 6 0 15 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 0;
+#X connect 11 0 21 0;
+#X connect 12 0 0 0;
+#X connect 12 0 0 1;
+#X connect 12 0 11 0;
+#X connect 12 0 19 0;
+#X connect 12 0 18 0;
+#X connect 14 0 12 0;
+#X connect 15 0 19 0;
+#X connect 15 1 18 0;
+#X connect 16 0 18 1;
+#X connect 16 0 19 1;
+#X connect 18 0 13 1;
+#X connect 19 0 13 0;
+#X connect 20 0 15 0;
diff --git a/externals/build/doc/shell.pd b/externals/build/doc/shell.pd
new file mode 100644
index 00000000..767559c1
--- /dev/null
+++ b/externals/build/doc/shell.pd
@@ -0,0 +1,39 @@
+#N canvas 420 4 512 424 10;
+#X obj 137 98 shell;
+#X msg 36 39 ls;
+#X obj 121 165 print;
+#X msg 64 40 ls makefile;
+#X msg 330 86 date +%k%M;
+#X floatatom 330 130 4 0 0;
+#X obj 330 107 shell;
+#X text 330 68 Getting the date;
+#X msg 118 17 bang;
+#X obj 60 17 metro 10;
+#X floatatom 271 89 4 0 0;
+#X obj 53 245 shell;
+#X obj 97 306 print;
+#X msg 133 215 cvs commit -m fixed_bug_in_shell;
+#X msg 19 191 cvs -q update;
+#X obj 53 268 route ?;
+#X msg 207 147 xedit;
+#X obj 168 124 print done;
+#X msg 215 257 send sadf asdf asdf;
+#X msg 163 286 /usr/bin/perl;
+#X msg 160 41 ./test;
+#X connect 0 0 2 0;
+#X connect 0 1 17 0;
+#X connect 1 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 6 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 3 0;
+#X connect 10 0 11 0;
+#X connect 11 0 15 0;
+#X connect 13 0 11 0;
+#X connect 14 0 11 0;
+#X connect 15 1 12 0;
+#X connect 16 0 11 0;
+#X connect 18 0 11 0;
+#X connect 19 0 11 0;
+#X connect 20 0 0 0;
diff --git a/externals/build/doc/streamin~.pd b/externals/build/doc/streamin~.pd
new file mode 100644
index 00000000..e248f275
--- /dev/null
+++ b/externals/build/doc/streamin~.pd
@@ -0,0 +1,41 @@
+#N canvas 248 65 623 459 12;
+#X obj 49 95 print~;
+#X msg 49 67 bang;
+#X obj 27 24 streamin~ 3000;
+#X obj 132 210 streamout~;
+#X msg 132 108 disconnect;
+#X obj 372 72 osc~;
+#X obj 372 47 sig~ 220;
+#X floatatom 372 20 0 0 0;
+#X msg 285 162 format float;
+#X msg 284 184 format 16bit;
+#X text 14 432 (C) 1999 Guenter Geiger;
+#X msg 286 204 format 8bit;
+#X floatatom 132 235 0 0 0;
+#X text 21 295 The streamin~ object just takes the portnumber it is
+listening to as it's argument.;
+#X text 23 334 For help on the streamout object \, see the streamout.pd
+patch.;
+#X obj 27 159 dac~;
+#X obj 355 115 *~ 0.1;
+#X floatatom 418 88 0 0 0;
+#X floatatom 149 159 0 0 0;
+#X msg 285 252 connect gige 3001;
+#X msg 132 86 connect localhost 3000;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 2 0 15 0;
+#X connect 2 0 15 1;
+#X connect 3 0 12 0;
+#X connect 4 0 3 0;
+#X connect 5 0 16 0;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 0;
+#X connect 11 0 3 0;
+#X connect 16 0 3 0;
+#X connect 17 0 16 1;
+#X connect 18 0 3 0;
+#X connect 19 0 3 0;
+#X connect 20 0 3 0;
diff --git a/externals/build/doc/streamio13~.pd b/externals/build/doc/streamio13~.pd
new file mode 100644
index 00000000..5ee91bdc
--- /dev/null
+++ b/externals/build/doc/streamio13~.pd
@@ -0,0 +1,51 @@
+#N canvas 165 0 804 625 10;
+#X obj 18 107 streamin13~ 8008 4;
+#X obj 19 496 streamout13~ localhost 8008 4;
+#X text 15 13 streamin13~/out13~ :;
+#X text 14 27 like streamin~/out~ from ggee but;
+#X text 14 41 for multiple channels;
+#X text 15 55 and reduced udp-traffic;
+#X text 16 70 warning: not well tested;
+#X text 161 110 receives 4 channels in port 8808;
+#X obj 18 150 dac~ 1;
+#X obj 68 150 dac~ 2;
+#X obj 121 150 dac~ 3;
+#X obj 175 151 dac~ 4;
+#X obj 74 462 osc~ 440;
+#X obj 145 463 osc~ 880;
+#X obj 214 462 osc~ 990;
+#X obj 281 463 osc~ 220;
+#X text 245 497 sends 4 dsp-channels to localhost:8008;
+#X msg 19 202 connect foo.com 8008;
+#X msg 32 235 disconnect;
+#X text 175 203 to build up a connection and start sending;
+#X text 117 236 guess;
+#X msg 46 263 format float;
+#X msg 56 287 format 16bit;
+#X msg 72 311 format 8bit;
+#X text 165 284 format defines the resolution of the sent signal;
+#X text 168 302 float is the most expensive with the best resolution
+(32bit);
+#X text 181 337 change the hostname you are sending to;
+#X msg 85 337 host bar.org;
+#X msg 101 364 grain 512;
+#X text 185 363 the number of samples sent at a time;
+#X text 347 462 the signals to send;
+#X floatatom 19 528 5 0 0;
+#X text 72 530 status: 1 = connected 0 = disconnected;
+#X connect 0 0 8 0;
+#X connect 0 1 9 0;
+#X connect 0 2 10 0;
+#X connect 0 3 11 0;
+#X connect 1 0 31 0;
+#X connect 12 0 1 0;
+#X connect 13 0 1 1;
+#X connect 14 0 1 2;
+#X connect 15 0 1 3;
+#X connect 17 0 1 0;
+#X connect 18 0 1 0;
+#X connect 21 0 1 0;
+#X connect 22 0 1 0;
+#X connect 23 0 1 0;
+#X connect 27 0 1 0;
+#X connect 28 0 1 0;
diff --git a/externals/build/doc/streamout~.pd b/externals/build/doc/streamout~.pd
new file mode 100644
index 00000000..56b2eceb
--- /dev/null
+++ b/externals/build/doc/streamout~.pd
@@ -0,0 +1,49 @@
+#N canvas 45 154 820 483 12;
+#X floatatom 227 194 0 0 0;
+#X msg 46 32 disconnect;
+#X obj 368 72 osc~;
+#X floatatom 368 20 0 0 0;
+#X obj 368 44 sig~ 220;
+#X text 13 239 The format message sets the transmission format;
+#X text 11 419 Hopefully we will sometimes have a version where we can compress it for transmission over the "real" net.;
+#X text 14 462 (C) 1999 Guenter Geiger;
+#X obj 455 21 streamin~ 3001;
+#X obj 448 78 dac~;
+#X msg 156 68 connect tritonus 3000;
+#X msg 20 113 format float;
+#X msg 20 144 format 16bit;
+#X text 13 256 format float: send float numbers;
+#X text 12 275 format 16bit: send 16 bit integers;
+#X msg 20 176 format 8bit;
+#X text 380 246 host:;
+#X text 13 219 format:;
+#X obj 227 162 streamout~ localhost 3000;
+#X text 379 193 connect:;
+#X text 378 210 connect sets the host and portnumber and immediatly tries to connect .;
+#X text 380 263 Set the host name and connect to the host \, if a connection was active.;
+#X msg 250 100 1;
+#X msg 284 100 0;
+#X text 379 298 disconnect (0);
+#X text 378 315 disconnect and 0 disconnect the object;
+#X text 379 335 1:;
+#X text 376 352 if the number 1 is sent to streamout \, the object connects to the stored host and portnumber. Default is localhost \, port number 3000;
+#X obj 366 107 *~ 0.01;
+#X msg 179 12 connect gige 15001;
+#X msg 156 37 connect localhost 3001;
+#X text 12 292 format 8bit: send 8 bit integers;
+#X connect 1 0 18 0;
+#X connect 2 0 28 0;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 8 0 9 0;
+#X connect 8 0 9 1;
+#X connect 10 0 18 0;
+#X connect 11 0 18 0;
+#X connect 12 0 18 0;
+#X connect 15 0 18 0;
+#X connect 18 0 0 0;
+#X connect 22 0 18 0;
+#X connect 23 0 18 0;
+#X connect 28 0 18 0;
+#X connect 29 0 18 0;
+#X connect 30 0 18 0;
diff --git a/externals/build/doc/stripdir.pd b/externals/build/doc/stripdir.pd
new file mode 100644
index 00000000..1d200a80
--- /dev/null
+++ b/externals/build/doc/stripdir.pd
@@ -0,0 +1,7 @@
+#N canvas 231 207 452 294 10;
+#X obj 22 78 stripdir;
+#X symbolatom 22 48 0 0 0;
+#X obj 22 105 print;
+#X text 20 22 strips all leading directories from a path;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
diff --git a/externals/build/doc/unwonk.pd b/externals/build/doc/unwonk.pd
new file mode 100644
index 00000000..2769a1e1
--- /dev/null
+++ b/externals/build/doc/unwonk.pd
@@ -0,0 +1,36 @@
+#N canvas 273 9 542 405 10;
+#X obj 53 134 unwonk;
+#X obj 211 246 print;
+#X floatatom 39 175;
+#X floatatom 65 175;
+#X obj 144 179 unwonk 1 2 3;
+#X floatatom 119 223;
+#X floatatom 145 223;
+#X floatatom 171 223;
+#X msg 30 100 1 2 3 4 5 6 7 8;
+#X obj 30 267 unwonk 1 2 3 4 5 6 7 8 9;
+#X floatatom 27 310;
+#X floatatom 53 310;
+#X floatatom 79 310;
+#X floatatom 105 311;
+#X floatatom 131 311;
+#X floatatom 157 311;
+#X text 25 364 (C) 1999 Guenter Geiger;
+#X text 27 24 unwonk is an unpack which sends;
+#X text 27 41 unused symbols to the last outlet;
+#X text 25 59 instead of discarding them;
+#X connect 0 0 2 0;
+#X connect 0 1 3 0;
+#X connect 0 2 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 4 2 7 0;
+#X connect 4 3 1 0;
+#X connect 8 0 0 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 9 2 12 0;
+#X connect 9 3 13 0;
+#X connect 9 4 14 0;
+#X connect 9 5 15 0;
diff --git a/externals/build/doc/wavinfo.pd b/externals/build/doc/wavinfo.pd
new file mode 100644
index 00000000..c42cc6e3
--- /dev/null
+++ b/externals/build/doc/wavinfo.pd
@@ -0,0 +1,18 @@
+#N canvas 0 1 450 300 8;
+#X obj 112 79 openpanel;
+#X msg 112 49 bang;
+#X obj 111 105 wavinfo;
+#X floatatom 45 168 20 0 0;
+#X floatatom 165 168 5 0 0;
+#X floatatom 212 169 5 0 0;
+#X floatatom 257 169 5 0 0;
+#X text 44 183 samples;
+#X text 165 183 channels;
+#X text 212 183 bitsize;
+#X text 257 184 rate;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 2 2 5 0;
+#X connect 2 3 6 0;