aboutsummaryrefslogtreecommitdiff
path: root/externals/build
diff options
context:
space:
mode:
authorGuenter Geiger <ggeiger@users.sourceforge.net>2002-11-26 11:12:14 +0000
committerGuenter Geiger <ggeiger@users.sourceforge.net>2002-11-26 11:12:14 +0000
commit5300f1dd4cb72171b0b02c85be42f9d7dcd6727d (patch)
treefd53453d2880ef1c0b59f8529ea9214bacec8d21 /externals/build
parent5a01275994d5c8ab7110e3c46f538c341cc4da04 (diff)
added maxlib help files
svn path=/trunk/; revision=251
Diffstat (limited to 'externals/build')
-rw-r--r--externals/build/doc/help-arbran.pd28
-rw-r--r--externals/build/doc/help-average.pd29
-rw-r--r--externals/build/doc/help-beat.pd66
-rw-r--r--externals/build/doc/help-beta.pd14
-rw-r--r--externals/build/doc/help-bilex.pd12
-rw-r--r--externals/build/doc/help-borax.pd86
-rw-r--r--externals/build/doc/help-cauchy.pd11
-rw-r--r--externals/build/doc/help-chord.pd37
-rw-r--r--externals/build/doc/help-delta.pd20
-rw-r--r--externals/build/doc/help-dist.pd36
-rw-r--r--externals/build/doc/help-divide.pd18
-rw-r--r--externals/build/doc/help-divmod.pd20
-rw-r--r--externals/build/doc/help-edge.pd17
-rw-r--r--externals/build/doc/help-expo.pd12
-rw-r--r--externals/build/doc/help-fifo.pd13
-rw-r--r--externals/build/doc/help-gauss.pd14
-rw-r--r--externals/build/doc/help-gestalt.pd51
-rw-r--r--externals/build/doc/help-history.pd30
-rw-r--r--externals/build/doc/help-ignore.pd15
-rw-r--r--externals/build/doc/help-iso.pd54
-rw-r--r--externals/build/doc/help-lifo.pd16
-rw-r--r--externals/build/doc/help-limit.pd25
-rw-r--r--externals/build/doc/help-linear.pd8
-rw-r--r--externals/build/doc/help-listfunnel.pd21
-rw-r--r--externals/build/doc/help-match.pd68
-rw-r--r--externals/build/doc/help-maxlib.pd73
-rw-r--r--externals/build/doc/help-minus.pd17
-rw-r--r--externals/build/doc/help-mlife.pd56
-rw-r--r--externals/build/doc/help-multi.pd17
-rw-r--r--externals/build/doc/help-netclient.pd51
-rw-r--r--externals/build/doc/help-netdist.pd37
-rw-r--r--externals/build/doc/help-netrec.pd34
-rw-r--r--externals/build/doc/help-netserver.pd50
-rw-r--r--externals/build/doc/help-nroute.pd37
-rw-r--r--externals/build/doc/help-oggamp~.pd54
-rw-r--r--externals/build/doc/help-oggcast~.pd57
-rw-r--r--externals/build/doc/help-oggread~.pd34
-rw-r--r--externals/build/doc/help-oggwrite~.pd59
-rw-r--r--externals/build/doc/help-pitch.pd30
-rw-r--r--externals/build/doc/help-plus.pd17
-rw-r--r--externals/build/doc/help-poisson.pd12
-rw-r--r--externals/build/doc/help-pulse.pd35
-rw-r--r--externals/build/doc/help-remote.pd18
-rw-r--r--externals/build/doc/help-rhythm.pd35
-rw-r--r--externals/build/doc/help-scale.pd31
-rw-r--r--externals/build/doc/help-score.pd52
-rw-r--r--externals/build/doc/help-speedlim.pd30
-rw-r--r--externals/build/doc/help-step.pd22
-rw-r--r--externals/build/doc/help-subst.pd72
-rw-r--r--externals/build/doc/help-temperature.pd16
-rw-r--r--externals/build/doc/help-tilt.pd26
-rw-r--r--externals/build/doc/help-triang.pd9
-rw-r--r--externals/build/doc/help-velocity.pd14
-rw-r--r--externals/build/doc/help-weibull.pd15
54 files changed, 1731 insertions, 0 deletions
diff --git a/externals/build/doc/help-arbran.pd b/externals/build/doc/help-arbran.pd
new file mode 100644
index 00000000..9153bf51
--- /dev/null
+++ b/externals/build/doc/help-arbran.pd
@@ -0,0 +1,28 @@
+#N canvas 190 136 663 491 12;
+#X obj 41 152 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 41 249 5 0 0;
+#N canvas 0 0 450 300 graph1 0;
+#X array array1 6 float 1;
+#A 0 1.1 2.67143 3.24285 3.1 4.38571 8.67143;
+#X coords 0 10 5 0 200 140 1;
+#X restore 347 71 graph;
+#N canvas 0 0 450 300 graph2 0;
+#X array array2 6 float 1;
+#A 0 0.0229077 0.204366 0.486501 0.0632986 0.204028 0.025319;
+#X coords 0 1 5 0 200 140 1;
+#X restore 347 220 graph;
+#X obj 41 202 arbran array1 array2;
+#X text 39 21 arbran :: generates a random variable that conforms
+to the piecewise probability density functions specified in two arrays
+;
+#X text 40 297 array1 has values between 0 and 10;
+#X text 40 317 array2 between 0 and 1 !;
+#X msg 99 152 pdfscale;
+#X text 41 389 array1 stores the values and array2 the corresponding
+probabilities (0 - 1) for each of that values \, use message 'pdfscale'
+to check (and adjust) the probability values to correct settings (the
+area below the curve has to be 1);
+#X connect 0 0 4 0;
+#X connect 4 0 1 0;
+#X connect 8 0 4 0;
diff --git a/externals/build/doc/help-average.pd b/externals/build/doc/help-average.pd
new file mode 100644
index 00000000..61557169
--- /dev/null
+++ b/externals/build/doc/help-average.pd
@@ -0,0 +1,29 @@
+#N canvas 445 253 470 320 12;
+#X floatatom 47 39 5 0 0;
+#X floatatom 47 276 5 0 0;
+#X floatatom 122 191 5 0 0;
+#X obj 47 219 average 10;
+#X text 177 191 number of items to average;
+#X text 139 220 creation argument = number of items;
+#X floatatom 122 254 5 0 0;
+#X text 105 277 average of last N items;
+#X text 125 11 average :: calculates the average of the;
+#X text 214 30 last N items (floats);
+#X text 176 255 tendency (up = 1 \, down = -1);
+#X msg 100 60 reset;
+#X text 152 61 forget everything;
+#X msg 129 94 linear;
+#X msg 147 118 geometric;
+#X text 191 93 linear average (dafault);
+#X text 230 119 geometric average;
+#X msg 158 146 weight;
+#X text 217 147 weighted average (giving last;
+#X text 218 163 items higher weight);
+#X connect 0 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
+#X connect 3 1 6 0;
+#X connect 11 0 3 0;
+#X connect 13 0 3 0;
+#X connect 14 0 3 0;
+#X connect 17 0 3 0;
diff --git a/externals/build/doc/help-beat.pd b/externals/build/doc/help-beat.pd
new file mode 100644
index 00000000..55f85ef7
--- /dev/null
+++ b/externals/build/doc/help-beat.pd
@@ -0,0 +1,66 @@
+#N canvas 294 98 628 562 12;
+#X floatatom 20 503 8 0 0;
+#X obj 20 66 notein;
+#X obj 183 376 makenote 100 250;
+#X floatatom 41 477 5 0 0;
+#X text 43 13 beat :: beat tracker;
+#X text 97 505 beats per minute;
+#X msg 71 224 reset;
+#X obj 183 219 tgl 20 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X msg 183 346 60;
+#X msg 53 108 print;
+#X obj 63 446 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -258699
+-1;
+#X text 93 447 'on beat';
+#X text 96 479 milliseconds;
+#X msg 303 336 400;
+#X obj 319 299 + 0;
+#X text 411 245 <-- adding some jitter;
+#X obj 183 271 random 4;
+#X obj 183 298 select 0 1 2 3;
+#X text 211 218 <-- click here to play random rhythm;
+#X obj 338 243 random 3;
+#X obj 338 270 - 1;
+#X obj 20 414 beat 4;
+#X text 88 415 creation: beat <band percentage>;
+#X text 349 456 certain percentage in which;
+#X text 350 472 the beats have to lie;
+#X msg 262 337 200;
+#X msg 222 336 100;
+#X obj 183 245 metro 100;
+#X text 106 108 print internal data (toggle on/off);
+#X text 106 136 prints out: time between current and last event \,
+the five best-fitting theories (with likelyhood in brackets) \, the
+time of arrival of current event (R) and the expected time of arrival
+(E) of the next event;
+#X text 213 439 band percentage: creates a critical time band of a
+;
+#X connect 1 0 21 0;
+#X connect 1 1 21 1;
+#X connect 2 0 21 0;
+#X connect 2 1 21 1;
+#X connect 6 0 21 0;
+#X connect 7 0 27 0;
+#X connect 8 0 2 0;
+#X connect 9 0 21 0;
+#X connect 13 0 14 0;
+#X connect 14 0 27 1;
+#X connect 16 0 17 0;
+#X connect 17 0 8 0;
+#X connect 17 0 26 0;
+#X connect 17 1 8 0;
+#X connect 17 1 25 0;
+#X connect 17 2 13 0;
+#X connect 17 2 8 0;
+#X connect 17 3 8 0;
+#X connect 17 3 13 0;
+#X connect 19 0 20 0;
+#X connect 20 0 14 1;
+#X connect 21 0 0 0;
+#X connect 21 1 3 0;
+#X connect 21 2 10 0;
+#X connect 25 0 14 0;
+#X connect 26 0 14 0;
+#X connect 27 0 16 0;
+#X connect 27 0 19 0;
diff --git a/externals/build/doc/help-beta.pd b/externals/build/doc/help-beta.pd
new file mode 100644
index 00000000..f4b9edff
--- /dev/null
+++ b/externals/build/doc/help-beta.pd
@@ -0,0 +1,14 @@
+#N canvas 438 222 487 308 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 139 94 5 0 0;
+#X obj 70 140 beta 0.78 1.3;
+#X text 192 95 a;
+#X floatatom 209 116 5 0 0;
+#X text 262 117 b;
+#X text 39 21 beta :: beta distributed random numbers;
+#X connect 0 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
+#X connect 5 0 3 2;
diff --git a/externals/build/doc/help-bilex.pd b/externals/build/doc/help-bilex.pd
new file mode 100644
index 00000000..4e9961f7
--- /dev/null
+++ b/externals/build/doc/help-bilex.pd
@@ -0,0 +1,12 @@
+#N canvas 370 195 485 306 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 177 103 5 0 0;
+#X text 230 105 lambda;
+#X text 13 20 bilex :: bilinear exponetionally distributed random
+numbers;
+#X obj 70 140 bilex 1.5;
+#X connect 0 0 5 0;
+#X connect 2 0 5 1;
+#X connect 5 0 1 0;
diff --git a/externals/build/doc/help-borax.pd b/externals/build/doc/help-borax.pd
new file mode 100644
index 00000000..a286a601
--- /dev/null
+++ b/externals/build/doc/help-borax.pd
@@ -0,0 +1,86 @@
+#N canvas 281 85 645 549 12;
+#X obj 125 230 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 125 298 6 0 0;
+#X floatatom 50 451 5 0 0;
+#X floatatom 26 502 5 0 0;
+#X floatatom 63 425 5 0 0;
+#X floatatom 38 476 5 0 0;
+#X floatatom 100 349 6 0 0;
+#X floatatom 75 399 5 0 0;
+#X floatatom 112 323 5 0 0;
+#X floatatom 87 374 5 0 0;
+#X obj 26 269 borax 0 0 0 0;
+#X text 103 452 number of voices currently playing;
+#X text 120 422 pitch;
+#X text 127 399 velocity;
+#X obj 15 54 makenote 100 1500;
+#X obj 336 67 metro 100;
+#X obj 428 124 + 50;
+#X obj 428 147 s time;
+#X obj 403 43 r time;
+#X obj 260 147 s pitch;
+#X obj 15 17 r pitch;
+#X obj 80 18 r velo;
+#X msg 336 14 1;
+#X msg 345 37 0;
+#X obj 513 101 random 64;
+#X obj 513 124 + 64;
+#X obj 513 147 s velo;
+#X obj 146 19 r duration;
+#X obj 336 147 s duration;
+#X obj 336 124 + 250;
+#X text 91 477 voice allocation number - each note playing is assigned
+a no;
+#X obj 45 88 noteout 1;
+#X obj 428 101 random 500;
+#X obj 260 101 random 88;
+#X obj 260 124 + 21;
+#X text 120 200 borax :: analyse incoming midi notes;
+#X text 363 13 <-- click to play random music;
+#X obj 40 125 notein 1;
+#X text 186 300 delta time value - time between note-ons;
+#X text 160 350 duration value - time between note-on and note-off
+;
+#X text 79 502 note-on count;
+#X text 141 374 duration count;
+#X text 164 326 delta time count;
+#X obj 336 101 random 1000;
+#X text 153 228 <-- reset :: sets counters and clocks to zero and sends
+;
+#X text 258 243 note-off for all notes currently playing;
+#X text 137 273 <--- zeroes only added to make the object larger;
+#X connect 0 0 10 2;
+#X connect 10 0 3 0;
+#X connect 10 1 5 0;
+#X connect 10 2 2 0;
+#X connect 10 3 4 0;
+#X connect 10 4 7 0;
+#X connect 10 5 9 0;
+#X connect 10 6 6 0;
+#X connect 10 7 8 0;
+#X connect 10 8 1 0;
+#X connect 14 0 10 0;
+#X connect 14 0 31 0;
+#X connect 14 1 10 1;
+#X connect 14 1 31 1;
+#X connect 15 0 24 0;
+#X connect 15 0 32 0;
+#X connect 15 0 33 0;
+#X connect 15 0 43 0;
+#X connect 16 0 17 0;
+#X connect 18 0 15 1;
+#X connect 20 0 14 0;
+#X connect 21 0 14 1;
+#X connect 22 0 15 0;
+#X connect 23 0 15 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 27 0 14 2;
+#X connect 29 0 28 0;
+#X connect 32 0 16 0;
+#X connect 33 0 34 0;
+#X connect 34 0 19 0;
+#X connect 37 0 10 0;
+#X connect 37 1 10 1;
+#X connect 43 0 29 0;
diff --git a/externals/build/doc/help-cauchy.pd b/externals/build/doc/help-cauchy.pd
new file mode 100644
index 00000000..a7dd6f23
--- /dev/null
+++ b/externals/build/doc/help-cauchy.pd
@@ -0,0 +1,11 @@
+#N canvas 438 222 487 308 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 185 103 5 0 0;
+#X obj 70 140 cauchy 0.5;
+#X text 238 104 alpha - governs spread;
+#X text 39 21 cauchy :: Cauchy distributed random numbers;
+#X connect 0 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
diff --git a/externals/build/doc/help-chord.pd b/externals/build/doc/help-chord.pd
new file mode 100644
index 00000000..a509840f
--- /dev/null
+++ b/externals/build/doc/help-chord.pd
@@ -0,0 +1,37 @@
+#N canvas 291 216 458 308 12;
+#X floatatom 15 276 5 0 0;
+#X symbolatom 44 212 48 0 0;
+#X floatatom 74 149 5 0 0;
+#X floatatom 131 149 5 0 0;
+#X floatatom 189 149 5 0 0;
+#X floatatom 248 149 5 0 0;
+#X floatatom 59 182 5 0 0;
+#X text 71 276 MIDI note number of bass note;
+#X text 116 175 root position (0) \, 1st inversion (1);
+#X text 115 188 or 2nd inversion (2);
+#X floatatom 29 249 5 0 0;
+#X text 84 251 class of bass note;
+#X text 231 118 list of chord notes;
+#X obj 15 51 notein;
+#X obj 15 86 chord 59;
+#X text 90 86 <-- notes higher than 59 get ignored;
+#X text 15 9 chord :: tries to detect chords;
+#X text 89 232 notes in chord : chord name;
+#X text 89 26 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 89 44 based on code by Rober Rowe;
+#X obj 74 118 unpack f f f f f f;
+#X floatatom 303 149 5 0 0;
+#X floatatom 362 149 5 0 0;
+#X connect 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 14 0 0 0;
+#X connect 14 1 10 0;
+#X connect 14 2 1 0;
+#X connect 14 3 6 0;
+#X connect 14 4 20 0;
+#X connect 20 0 2 0;
+#X connect 20 1 3 0;
+#X connect 20 2 4 0;
+#X connect 20 3 5 0;
+#X connect 20 4 21 0;
+#X connect 20 5 22 0;
diff --git a/externals/build/doc/help-delta.pd b/externals/build/doc/help-delta.pd
new file mode 100644
index 00000000..fa865e3d
--- /dev/null
+++ b/externals/build/doc/help-delta.pd
@@ -0,0 +1,20 @@
+#N canvas 328 264 466 318 12;
+#X floatatom 54 217 5 0 0;
+#X floatatom 54 108 5 0 0;
+#X msg 23 83 bang;
+#X text 69 82 calculate and output result now;
+#X obj 54 172 delta;
+#X obj 54 133 * 3;
+#X floatatom 127 218 5 0 0;
+#X floatatom 127 109 5 0 0;
+#X obj 127 134 * 3;
+#X obj 127 173 delta 2;
+#X text 53 259 use creation arguments to set order (1st or 2nd);
+#X text 39 20 delta :: calculate 1st or 2nd order difference;
+#X connect 1 0 5 0;
+#X connect 2 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 6 0;
diff --git a/externals/build/doc/help-dist.pd b/externals/build/doc/help-dist.pd
new file mode 100644
index 00000000..608283fc
--- /dev/null
+++ b/externals/build/doc/help-dist.pd
@@ -0,0 +1,36 @@
+#N canvas 450 84 473 453 12;
+#X text 33 10 dist :: send data to a list of receive objects;
+#X obj 34 364 dist;
+#X msg 85 127 connect bla;
+#X msg 103 154 connect foo;
+#X msg 131 209 disconnect bla;
+#X msg 145 237 disconnect foo;
+#X msg 158 295 clear;
+#X obj 200 374 receive bla;
+#X obj 306 374 receive foo;
+#X obj 200 400 print bla;
+#X obj 306 400 print foo;
+#X floatatom 34 69 5 0 0;
+#X msg 170 328 print;
+#X msg 56 98 send anything 1 2 dog;
+#X obj 34 397 d bla foo;
+#X msg 122 180 connect dog cat;
+#X msg 159 265 disconnect cat dog;
+#X text 210 295 empty receiver list;
+#X text 218 328 print list of receive names;
+#X text 190 126 add 'bla' to list of receivers;
+#X text 253 209 remove 'bla' from list;
+#X text 238 99 send anything you want;
+#X text 97 28 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X connect 2 0 1 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 1 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 0;
+#X connect 11 0 1 0;
+#X connect 12 0 1 0;
+#X connect 13 0 1 0;
+#X connect 15 0 1 0;
+#X connect 16 0 1 0;
diff --git a/externals/build/doc/help-divide.pd b/externals/build/doc/help-divide.pd
new file mode 100644
index 00000000..a0aea042
--- /dev/null
+++ b/externals/build/doc/help-divide.pd
@@ -0,0 +1,18 @@
+#N canvas 328 264 466 318 12;
+#X floatatom 54 217 5 0 0;
+#X floatatom 54 132 5 0 0;
+#X floatatom 108 132 5 0 0;
+#X text 39 20 divide :: like '/' but calculates result;
+#X text 133 204 use creation arguments to set initial;
+#X text 133 220 values for inlets;
+#X msg 7 104 bang;
+#X text 53 103 calculate and output result now;
+#X obj 54 172 divide 8 6 4;
+#X text 118 58 allows for up to 32 inlets;
+#X floatatom 164 132 5 0 0;
+#X text 120 38 when leftmost or second inlet is changed;
+#X connect 1 0 8 0;
+#X connect 2 0 8 1;
+#X connect 6 0 8 0;
+#X connect 8 0 0 0;
+#X connect 10 0 8 2;
diff --git a/externals/build/doc/help-divmod.pd b/externals/build/doc/help-divmod.pd
new file mode 100644
index 00000000..5e0018be
--- /dev/null
+++ b/externals/build/doc/help-divmod.pd
@@ -0,0 +1,20 @@
+#N canvas 328 264 464 316 12;
+#X floatatom 54 239 5 0 0;
+#X floatatom 54 127 5 0 0;
+#X floatatom 129 127 5 0 0;
+#X obj 54 172 divmod 8 6;
+#X text 146 170 use creation arguments to set initial;
+#X text 146 186 values for inlets;
+#X msg 23 83 bang;
+#X text 69 82 calculate and output result now;
+#X floatatom 129 219 5 0 0;
+#X text 182 222 modulo;
+#X text 106 242 result of division;
+#X text 186 127 takes int's only!;
+#X text 12 19 divmod :: calculate division and modulo;
+#X text 92 35 outputs results even when right inlet changes;
+#X connect 1 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 0 0;
+#X connect 3 1 8 0;
+#X connect 6 0 3 0;
diff --git a/externals/build/doc/help-edge.pd b/externals/build/doc/help-edge.pd
new file mode 100644
index 00000000..ce85dfbc
--- /dev/null
+++ b/externals/build/doc/help-edge.pd
@@ -0,0 +1,17 @@
+#N canvas 258 208 452 302 12;
+#X obj 100 154 edge;
+#X obj 100 215 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 127 186 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 156 186 falling edge detected;
+#X text 128 216 rising edge detected;
+#X text 31 16 edge :: detect rising or falling edge in floats;
+#X floatatom 126 111 5 0 0;
+#X obj 100 79 tgl 20 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 94 35 written by <olaf.matthes@gmx.de>;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
diff --git a/externals/build/doc/help-expo.pd b/externals/build/doc/help-expo.pd
new file mode 100644
index 00000000..922cf4cc
--- /dev/null
+++ b/externals/build/doc/help-expo.pd
@@ -0,0 +1,12 @@
+#N canvas 370 195 454 304 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X text 13 20 expo :: exponetionally distributed random numbers
+;
+#X obj 70 140 expo 0.5;
+#X floatatom 169 101 5 0 0;
+#X text 222 103 lambda;
+#X connect 0 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 3 1;
diff --git a/externals/build/doc/help-fifo.pd b/externals/build/doc/help-fifo.pd
new file mode 100644
index 00000000..581a7b78
--- /dev/null
+++ b/externals/build/doc/help-fifo.pd
@@ -0,0 +1,13 @@
+#N canvas 356 196 452 302 12;
+#X obj 38 176 fifo 10;
+#X floatatom 38 231 5 0 0;
+#X floatatom 61 132 5 0 0;
+#X msg 38 98 bang;
+#X text 83 98 hit to get next number;
+#X text 111 176 fifo <size>;
+#X text 92 233 output of fifo;
+#X text 42 14 fifo :: first in first out buffer for floats;
+#X text 105 32 written for Max by St. Rainstick;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
diff --git a/externals/build/doc/help-gauss.pd b/externals/build/doc/help-gauss.pd
new file mode 100644
index 00000000..c4dce4ba
--- /dev/null
+++ b/externals/build/doc/help-gauss.pd
@@ -0,0 +1,14 @@
+#N canvas 438 222 487 308 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 123 91 5 0 0;
+#X obj 70 140 gauss 1 0;
+#X floatatom 177 113 5 0 0;
+#X text 39 21 gauss :: Gauss distributed random numbers;
+#X text 176 92 sigma - standard deviation;
+#X text 230 114 mu - mean;
+#X connect 0 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
+#X connect 4 0 3 2;
diff --git a/externals/build/doc/help-gestalt.pd b/externals/build/doc/help-gestalt.pd
new file mode 100644
index 00000000..acf09cc8
--- /dev/null
+++ b/externals/build/doc/help-gestalt.pd
@@ -0,0 +1,51 @@
+#N canvas 323 155 599 396 12;
+#X text 137 8 gestalt :: gestalt detection for monophonic melodies
+;
+#X floatatom 58 332 5 0 0;
+#X obj 58 176 makenote 100 100;
+#X obj 58 53 tgl 20 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 58 76 metro 100;
+#X obj 58 100 random 24;
+#X obj 58 124 + 60;
+#X obj 58 278 gestalt 100;
+#X obj 142 100 random 24;
+#X obj 142 124 select 0;
+#X msg 201 146 100;
+#X msg 142 146 400;
+#X floatatom 68 154 5 0 0;
+#X text 160 282 CREATION ARGUMENT: reference time;
+#X obj 219 220 beat;
+#X floatatom 232 245 5 0 0;
+#X text 87 54 click to play random melody;
+#X text 112 350 one could use 'tilt' to detect abrupt changes that
+;
+#X text 112 367 indicate the start of a new segment;
+#X text 111 332 the higher the output the more the gestalt changes
+\;;
+#X text 161 298 i.e. time in ms expected to be the duration of the
+;
+#X text 161 314 shortest note (also setable via rightmost inlet);
+#X text 281 200 use 'beat' (maxlib) to get the real;
+#X text 281 217 reference time from input \, especially;
+#X text 282 234 when using;
+#X obj 372 235 notein;
+#X text 225 26 written by <olaf.matthes@gmx.de>;
+#X connect 2 0 7 0;
+#X connect 2 0 14 0;
+#X connect 2 1 7 1;
+#X connect 2 1 14 1;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 6 0 12 0;
+#X connect 7 0 1 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 0;
+#X connect 9 1 10 0;
+#X connect 10 0 2 2;
+#X connect 11 0 2 2;
+#X connect 14 1 15 0;
+#X connect 14 1 7 2;
diff --git a/externals/build/doc/help-history.pd b/externals/build/doc/help-history.pd
new file mode 100644
index 00000000..acd1bc82
--- /dev/null
+++ b/externals/build/doc/help-history.pd
@@ -0,0 +1,30 @@
+#N canvas 445 253 480 330 12;
+#X floatatom 32 49 5 0 0;
+#X floatatom 32 286 5 0 0;
+#X floatatom 115 201 5 0 0;
+#X floatatom 115 264 5 0 0;
+#X text 169 265 tendency (up = 1 \, down = -1);
+#X msg 85 70 reset;
+#X text 137 71 forget everything;
+#X msg 114 104 linear;
+#X msg 132 128 geometric;
+#X text 176 103 linear average (dafault);
+#X text 215 129 geometric average;
+#X msg 143 156 weight;
+#X text 203 173 items higher weight);
+#X text 124 6 history :: calculates the average of the;
+#X text 212 23 items (floats) that came in;
+#X obj 32 229 history 250;
+#X text 202 157 weighted average (giving newer;
+#X text 130 229 creation argument = ms to look back;
+#X text 171 201 milliseconds to look back;
+#X text 214 40 within the last N milliseconds;
+#X text 90 287 average over last N milliseconds;
+#X connect 0 0 15 0;
+#X connect 2 0 15 1;
+#X connect 5 0 15 0;
+#X connect 7 0 15 0;
+#X connect 8 0 15 0;
+#X connect 11 0 15 0;
+#X connect 15 0 1 0;
+#X connect 15 1 3 0;
diff --git a/externals/build/doc/help-ignore.pd b/externals/build/doc/help-ignore.pd
new file mode 100644
index 00000000..fc6314a2
--- /dev/null
+++ b/externals/build/doc/help-ignore.pd
@@ -0,0 +1,15 @@
+#N canvas 445 253 464 314 12;
+#X floatatom 47 107 5 0 0;
+#X floatatom 47 225 5 0 0;
+#X text 122 197 creation argument = time in ms;
+#X floatatom 122 136 5 0 0;
+#X obj 47 167 ignore 500;
+#X text 177 136 time in ms a value has to;
+#X text 178 152 be present in order to get through;
+#X text 75 24 ignore :: lets information through;
+#X text 154 41 only when it was presente;
+#X text 155 59 at input longer than N ms;
+#X text 73 258 note: input gets delayed by N milliseconds;
+#X connect 0 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 1 0;
diff --git a/externals/build/doc/help-iso.pd b/externals/build/doc/help-iso.pd
new file mode 100644
index 00000000..79559abc
--- /dev/null
+++ b/externals/build/doc/help-iso.pd
@@ -0,0 +1,54 @@
+#N canvas 438 64 464 535 12;
+#X obj 16 407 iso;
+#X floatatom 16 434 5 0 0;
+#X floatatom 69 434 10 0 0;
+#X msg 72 156 bang;
+#X msg 96 207 stop;
+#X msg 106 233 pause;
+#X msg 117 259 resume;
+#X msg 128 285 loop;
+#X msg 139 311 unloop;
+#X text 214 100 list of pitches;
+#X text 273 129 list of attacks [ms];
+#X text 170 284 turn loopin back on;
+#X text 198 309 turn looping off;
+#X obj 16 460 makenote 0 100;
+#X obj 16 487 noteout;
+#X text 112 156 start from beginning;
+#X text 149 183 start at item specyfied;
+#X text 281 145 (inter-note onsets);
+#X text 88 45 ported to Pd by Olaf Matthes;
+#X text 216 337 global time multiplier;
+#X text 163 435 duration in ms;
+#X msg 152 337 hook 2;
+#X msg 161 368 duty 1.5;
+#X text 234 369 duration multiplier;
+#X obj 16 69 loadbang;
+#X msg 82 182 start 4;
+#X text 251 350 (speed adjustment);
+#X text 237 389 duty < 1 - staccato;
+#X text 237 404 duty > 1 - legato;
+#X text 169 198 (item count starts with 0);
+#X text 88 26 written for Max by Charlie Baker;
+#X text 31 6 iso :: queues up lists of pitches and attack points;
+#X msg 16 100 60 61 62 66 67 68 69 70;
+#X msg 35 128 240 10 500 375 15 15 375 500;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 1 0 13 0;
+#X connect 2 0 13 1;
+#X connect 3 0 0 0;
+#X connect 4 0 0 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 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 21 0 0 0;
+#X connect 22 0 0 0;
+#X connect 24 0 32 0;
+#X connect 24 0 33 0;
+#X connect 25 0 0 0;
+#X connect 32 0 0 0;
+#X connect 33 0 0 1;
diff --git a/externals/build/doc/help-lifo.pd b/externals/build/doc/help-lifo.pd
new file mode 100644
index 00000000..c5ec758a
--- /dev/null
+++ b/externals/build/doc/help-lifo.pd
@@ -0,0 +1,16 @@
+#N canvas 356 196 454 304 12;
+#X obj 38 176 lifo 10;
+#X floatatom 38 231 5 0 0;
+#X floatatom 61 110 5 0 0;
+#X msg 38 76 bang;
+#X text 83 76 hit to get next number;
+#X text 111 176 lifo <size>;
+#X text 42 14 lifo :: last in first out buffer for floats;
+#X text 108 33 written for Max by St. Rainstick;
+#X msg 76 140 clear;
+#X text 127 139 clear buffer;
+#X text 92 233 output of buffer;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 8 0 0 0;
diff --git a/externals/build/doc/help-limit.pd b/externals/build/doc/help-limit.pd
new file mode 100644
index 00000000..4ee74dae
--- /dev/null
+++ b/externals/build/doc/help-limit.pd
@@ -0,0 +1,25 @@
+#N canvas 328 32 558 365 12;
+#X floatatom 27 277 8 0 0;
+#X floatatom 27 73 5 0 0;
+#X text 215 46 written by <olaf.matthes@gmx.de>;
+#X floatatom 54 131 5 0 0;
+#X floatatom 82 152 5 0 0;
+#X floatatom 110 173 5 0 0;
+#X text 84 71 input value;
+#X text 57 104 creation arguments can be changed dynamically:;
+#X obj 27 249 limit 0 9 5;
+#X text 35 316 creation arguments:;
+#X text 170 172 0 = limit \, others: compression ratio;
+#X text 35 340 limit <lower limit> <upper limit> <ratio>;
+#X text 324 195 values between 0 and 1;
+#X text 325 213 result in expansion !;
+#X text 106 278 limited / compressed output value;
+#X text 141 11 limit :: limits input to lie between boundaries;
+#X text 213 27 allows for compression / expansion;
+#X text 114 129 lower boundary;
+#X text 144 151 upper boundary;
+#X connect 1 0 8 0;
+#X connect 3 0 8 1;
+#X connect 4 0 8 2;
+#X connect 5 0 8 3;
+#X connect 8 0 0 0;
diff --git a/externals/build/doc/help-linear.pd b/externals/build/doc/help-linear.pd
new file mode 100644
index 00000000..adcf0432
--- /dev/null
+++ b/externals/build/doc/help-linear.pd
@@ -0,0 +1,8 @@
+#N canvas 206 71 452 302 12;
+#X obj 70 140 linear;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X text 23 20 linear :: linearly distributed random numbers;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
diff --git a/externals/build/doc/help-listfunnel.pd b/externals/build/doc/help-listfunnel.pd
new file mode 100644
index 00000000..2d309a80
--- /dev/null
+++ b/externals/build/doc/help-listfunnel.pd
@@ -0,0 +1,21 @@
+#N canvas 280 185 452 302 12;
+#X obj 47 160 listfunnel;
+#X floatatom 47 89 5 0 0;
+#X obj 47 219 unpack f f;
+#X floatatom 47 244 5 0 0;
+#X floatatom 122 246 5 0 0;
+#X obj 61 194 print listfunnel;
+#X msg 73 114 17.3 23 147 11;
+#X text 37 23 listfunnel :: send values out as a list with;
+#X text 149 38 source index;
+#X text 149 55 based on code found on the web;
+#X msg 210 113 99 \$1 12;
+#X floatatom 210 86 5 0 0;
+#X connect 0 0 2 0;
+#X connect 0 0 5 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 6 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 10 0;
diff --git a/externals/build/doc/help-match.pd b/externals/build/doc/help-match.pd
new file mode 100644
index 00000000..8d2fbd73
--- /dev/null
+++ b/externals/build/doc/help-match.pd
@@ -0,0 +1,68 @@
+#N canvas 90 142 874 407 12;
+#X obj 50 350 bng 24 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 148 212 reset;
+#X obj 50 95 random 5;
+#X msg 50 5 0;
+#X msg 65 32 1;
+#X obj 50 65 metro 100;
+#X text 203 212 reset internal data storage;
+#X text 182 26 input values matches the creation;
+#X text 183 42 arguments;
+#X text 185 82 this can be changed in the sources !;
+#X text 83 351 <-- 'bang' when input matches arguments;
+#X obj 62 122 hdl 20 1 0 5 empty empty empty 0 -6 0 8 -262144 -1 -1
+0;
+#X floatatom 50 154 5 0 0;
+#X text 228 229 -> forget all old values;
+#X obj 50 243 match 3 4;
+#X floatatom 81 325 5 0 0;
+#X floatatom 156 324 5 0 0;
+#X obj 81 294 unpack f f;
+#X text 111 11 match :: outputs a list when a list of;
+#X msg 93 178 1 3 4 7;
+#X msg 160 178 1 2 4 5;
+#X text 230 179 send a list of floats;
+#X symbolatom 688 312 10 0 0;
+#X symbolatom 616 336 10 0 0;
+#X symbolatom 581 356 10 0 0;
+#X obj 540 349 bng 24 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 540 244 match dog bytes 2 cats;
+#X msg 553 186 dog bytes 2 cats;
+#X msg 564 214 cat bytes 2 dogs;
+#X text 384 114 same works for symbols and mixtures of floats and symbols:
+;
+#X obj 581 285 unpack s s f s;
+#X floatatom 635 313 5 0 0;
+#X text 89 271 sends out the list when a match is found;
+#X msg 459 151 dog;
+#X msg 494 143 cats;
+#X msg 519 170 2;
+#X msg 471 195 bytes;
+#X text 183 68 a maximum of 16 arguments is allowed;
+#X connect 1 0 14 0;
+#X connect 2 0 12 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X connect 11 0 12 0;
+#X connect 12 0 14 0;
+#X connect 14 0 0 0;
+#X connect 14 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 16 0;
+#X connect 19 0 14 0;
+#X connect 20 0 14 0;
+#X connect 26 0 25 0;
+#X connect 26 0 30 0;
+#X connect 27 0 26 0;
+#X connect 28 0 26 0;
+#X connect 30 0 24 0;
+#X connect 30 1 23 0;
+#X connect 30 2 31 0;
+#X connect 30 3 22 0;
+#X connect 33 0 26 0;
+#X connect 34 0 26 0;
+#X connect 35 0 26 0;
+#X connect 36 0 26 0;
diff --git a/externals/build/doc/help-maxlib.pd b/externals/build/doc/help-maxlib.pd
new file mode 100644
index 00000000..663c6053
--- /dev/null
+++ b/externals/build/doc/help-maxlib.pd
@@ -0,0 +1,73 @@
+#N canvas 70 3 889 647 12;
+#X obj 290 277 average;
+#X obj 19 171 beat;
+#X obj 19 196 borax;
+#X obj 19 146 chord;
+#X obj 472 491 dist;
+#X obj 290 172 divide;
+#X obj 290 146 divmod;
+#X obj 606 171 fifo;
+#X obj 290 303 history;
+#X obj 17 496 ignore;
+#X obj 17 470 iso;
+#X obj 605 145 lifo;
+#X obj 290 329 match;
+#X obj 290 197 minus;
+#X obj 609 261 mlife;
+#X obj 290 224 multi;
+#X obj 472 516 netdist;
+#X obj 19 272 pitch;
+#X obj 290 251 plus;
+#X obj 17 418 pulse;
+#X obj 472 542 remote;
+#X obj 19 221 rhythm;
+#X obj 19 246 score array01;
+#X obj 17 444 speedlim;
+#X obj 17 522 step;
+#X obj 609 236 subst;
+#X text 30 27 maxlib 0.8 :: Music Analysis eXtensions LIBrary;
+#X text 140 44 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 139 61 download at http://www.akustische-kunst.de/puredata/maxlib
+;
+#X text 72 146 chord detection;
+#X text 69 171 beat tracking;
+#X text 78 222 beat detection;
+#X text 73 197 music analysis;
+#X text 136 246 score following;
+#X text 73 272 pitch information;
+#X text 20 115 MUSIC / MIDI ANALYSIS;
+#X text 290 110 MATH;
+#X text 357 147 calculate / and %;
+#X text 355 172 / for several inputs;
+#X text 349 252 + for several inputs;
+#X text 349 224 * for several inputs;
+#X text 353 198 - for several inputs;
+#X text 361 276 average of last N values;
+#X text 362 302 average over last N seconds;
+#X text 345 329 match input to list of numbers;
+#X text 17 392 TIME;
+#X text 94 445 lets input through every N milliseconds;
+#X text 56 472 play sequence of MIDI notes;
+#X text 78 497 ignore too fast changing input;
+#X text 469 459 CONTROL;
+#X text 520 490 send to list of receive objects;
+#X text 541 514 same for netreceive;
+#X text 531 541 send to one receive object;
+#X text 604 118 BUFFER;
+#X text 650 145 last in first out;
+#X text 653 171 first in first out;
+#X text 64 524 a line object that steps;
+#X text 606 204 OTHER / EXPERIMENTAL;
+#X text 666 235 self-similar substitution;
+#X text 665 261 cellular automaton;
+#X obj 290 355 scale;
+#X text 344 356 scale input to outpur range;
+#X text 72 418 a 'better' metro;
+#X obj 17 548 history;
+#X obj 17 574 velocity;
+#X text 86 548 average over last N milliseconds;
+#X text 93 574 velocity of input in digits per second;
+#X obj 472 569 netrec;
+#X text 531 570 netreceive with extra info about sender;
+#X obj 290 381 delta;
+#X text 344 381 calculate 1st or 2nd order difference;
diff --git a/externals/build/doc/help-minus.pd b/externals/build/doc/help-minus.pd
new file mode 100644
index 00000000..64e45f3b
--- /dev/null
+++ b/externals/build/doc/help-minus.pd
@@ -0,0 +1,17 @@
+#N canvas 328 264 464 316 12;
+#X floatatom 54 217 5 0 0;
+#X floatatom 54 127 5 0 0;
+#X floatatom 107 127 5 0 0;
+#X text 39 20 minus :: like '-' but calculates result;
+#X text 133 204 use creation arguments to set initial;
+#X text 133 220 values for inlets;
+#X msg 23 83 bang;
+#X text 69 82 calculate and output result now;
+#X obj 54 172 minus 8 6 4;
+#X floatatom 161 127 5 0 0;
+#X text 120 38 when leftmost or second inlet is changed;
+#X connect 1 0 8 0;
+#X connect 2 0 8 1;
+#X connect 6 0 8 0;
+#X connect 8 0 0 0;
+#X connect 9 0 8 2;
diff --git a/externals/build/doc/help-mlife.pd b/externals/build/doc/help-mlife.pd
new file mode 100644
index 00000000..d12e1fc5
--- /dev/null
+++ b/externals/build/doc/help-mlife.pd
@@ -0,0 +1,56 @@
+#N canvas 309 47 454 459 12;
+#X floatatom 23 424 5 0 0;
+#X floatatom 39 397 5 0 0;
+#X floatatom 76 424 5 0 0;
+#X floatatom 93 397 5 0 0;
+#X floatatom 129 424 5 0 0;
+#X floatatom 147 397 5 0 0;
+#X floatatom 183 425 5 0 0;
+#X floatatom 200 398 5 0 0;
+#X msg 22 33 bang;
+#X msg 69 123 randfill;
+#X msg 84 150 fill 0;
+#X msg 100 177 lo 2;
+#X msg 108 204 hi 3;
+#X msg 120 231 nset 3;
+#X msg 161 312 display;
+#X text 178 233 set neighbourhood;
+#X text 151 205 set high;
+#X text 146 176 set low;
+#X text 151 150 fill cells with 0;
+#X text 145 123 fill cells with random value;
+#X text 226 312 display state of cells;
+#X msg 35 72 1;
+#X text 63 33 calculate next generation and output;
+#X text 64 50 bangs on every cell that is alife;
+#X text 68 72 calculate next generation and output;
+#X text 68 89 1 if cell is alife \, 0 if dead;
+#X text 227 329 in Pd console window;
+#X text 142 355 mlife <number of cells> <view_start>;
+#X text 189 370 <view_size> <closed>;
+#X text 279 395 closed universe if;
+#X text 279 409 <closed> = 1;
+#X msg 134 258 randseed 4;
+#X text 225 258 seed array with random no.;
+#X text 225 284 seed array with a number;
+#X msg 149 285 seed 1 4;
+#X obj 23 356 mlife 8 1 8 0;
+#X text 44 5 mlife :: a cellular automata object;
+#X connect 8 0 35 0;
+#X connect 9 0 35 0;
+#X connect 10 0 35 0;
+#X connect 11 0 35 0;
+#X connect 12 0 35 0;
+#X connect 13 0 35 0;
+#X connect 14 0 35 0;
+#X connect 21 0 35 0;
+#X connect 31 0 35 0;
+#X connect 34 0 35 0;
+#X connect 35 0 0 0;
+#X connect 35 1 1 0;
+#X connect 35 2 2 0;
+#X connect 35 3 3 0;
+#X connect 35 4 4 0;
+#X connect 35 5 5 0;
+#X connect 35 6 6 0;
+#X connect 35 7 7 0;
diff --git a/externals/build/doc/help-multi.pd b/externals/build/doc/help-multi.pd
new file mode 100644
index 00000000..86e6a5ca
--- /dev/null
+++ b/externals/build/doc/help-multi.pd
@@ -0,0 +1,17 @@
+#N canvas 328 264 464 316 12;
+#X floatatom 54 217 5 0 0;
+#X floatatom 54 127 5 0 0;
+#X floatatom 108 128 5 0 0;
+#X text 39 20 multi :: like '*' but calculates result;
+#X text 133 204 use creation arguments to set initial;
+#X text 133 220 values for inlets;
+#X msg 23 83 bang;
+#X text 69 82 calculate and output result now;
+#X obj 54 172 multi 8 6 2;
+#X floatatom 163 129 5 0 0;
+#X text 120 38 when leftmost or second inlet is changed;
+#X connect 1 0 8 0;
+#X connect 2 0 8 1;
+#X connect 6 0 8 0;
+#X connect 8 0 0 0;
+#X connect 9 0 8 2;
diff --git a/externals/build/doc/help-netclient.pd b/externals/build/doc/help-netclient.pd
new file mode 100644
index 00000000..46e5b522
--- /dev/null
+++ b/externals/build/doc/help-netclient.pd
@@ -0,0 +1,51 @@
+#N canvas 246 114 752 474 12;
+#X floatatom 49 333 5 0 0;
+#X floatatom 87 298 5 0 0;
+#X symbolatom 164 251 10 0 0;
+#X text 102 332 received data;
+#X text 140 298 number of connections;
+#X msg 49 54 print;
+#X floatatom 125 272 5 0 0;
+#X text 183 276 socket number;
+#X msg 103 179 broadcast hallo world!;
+#X text 288 179 send to all clients;
+#X text 143 49 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X obj 49 223 netserver 3000;
+#X text 137 120 send message to client no. 1;
+#X text 256 251 client's IP address;
+#X obj 477 189 netclient;
+#X msg 498 116 connect localhost 3000;
+#X msg 511 143 disconnect;
+#X msg 477 84 send 23;
+#X floatatom 544 218 5 0 0;
+#X msg 83 91 send 380 17.3;
+#X floatatom 477 296 5 0 0;
+#X obj 600 281 print anything;
+#X obj 538 309 print list;
+#X obj 477 245 route float list;
+#X msg 98 142 client 1 23;
+#X text 204 91 "send <socketnumber> <data>";
+#X text 110 70 send message on specified socket;
+#X text 200 143 "client <clientnumber> <data>";
+#X text 48 379 This example demonstrates how to set up a client/server
+connection. Data sent by the client get's received and displayed by
+the server imediately. Or just try it the other way round...;
+#X text 38 15 netclient :: simple client that connects to netserver
+or;
+#X text 142 32 to pd's native netreceive object;
+#X connect 5 0 11 0;
+#X connect 8 0 11 0;
+#X connect 11 0 0 0;
+#X connect 11 1 1 0;
+#X connect 11 2 6 0;
+#X connect 11 3 2 0;
+#X connect 14 0 23 0;
+#X connect 14 1 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
+#X connect 17 0 14 0;
+#X connect 19 0 11 0;
+#X connect 23 0 20 0;
+#X connect 23 1 22 0;
+#X connect 23 2 21 0;
+#X connect 24 0 11 0;
diff --git a/externals/build/doc/help-netdist.pd b/externals/build/doc/help-netdist.pd
new file mode 100644
index 00000000..84cd2e2f
--- /dev/null
+++ b/externals/build/doc/help-netdist.pd
@@ -0,0 +1,37 @@
+#N canvas 374 142 458 370 12;
+#X obj 23 299 netdist;
+#X obj 275 249 netreceive 3000;
+#X floatatom 275 275 5 0 0;
+#X floatatom 390 275 5 0 0;
+#X msg 23 64 connect localhost 3000;
+#X floatatom 276 328 5 0 0;
+#X floatatom 391 328 5 0 0;
+#X obj 276 302 netreceive 3001;
+#X msg 67 120 disconnect localhost 3000;
+#X msg 42 93 connect localhost 3001;
+#X msg 88 147 disconnect localhost 3001;
+#X msg 102 177 print;
+#X msg 113 203 clear;
+#X floatatom 23 326 5 0 0;
+#X msg 120 232 send 23;
+#X msg 146 259 send 17.3;
+#X text 151 178 print list of connections;
+#X text 164 202 disconnect all;
+#X text 189 232 send values;
+#X text 213 64 add connection to list;
+#X text 278 119 remove connection;
+#X text 33 8 netdist :: distribute data to several netreceive;
+#X text 122 24 written by Olaf Matthes;
+#X connect 0 0 13 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 4 0 0 0;
+#X connect 7 0 5 0;
+#X connect 7 1 6 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 0 0;
diff --git a/externals/build/doc/help-netrec.pd b/externals/build/doc/help-netrec.pd
new file mode 100644
index 00000000..80be6951
--- /dev/null
+++ b/externals/build/doc/help-netrec.pd
@@ -0,0 +1,34 @@
+#N canvas 315 121 600 364 12;
+#X obj 49 189 netrec 3000;
+#X obj 57 130 netsend;
+#X msg 57 18 connect localhost 3000;
+#X msg 78 44 disconnect localhost 3000;
+#X floatatom 49 297 5 0 0;
+#X floatatom 76 270 5 0 0;
+#X floatatom 93 73 5 0 0;
+#X msg 93 99 send \$1;
+#X symbolatom 132 217 10 0 0;
+#X text 224 217 IP address;
+#X text 100 298 received data;
+#X text 129 270 number of connections;
+#X obj 295 128 netsend;
+#X msg 295 16 connect localhost 3000;
+#X msg 316 42 disconnect localhost 3000;
+#X floatatom 331 71 5 0 0;
+#X msg 331 97 send \$1;
+#X msg 49 162 print;
+#X floatatom 104 243 5 0 0;
+#X text 162 247 socket number;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 0 2 18 0;
+#X connect 0 3 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 16 0;
+#X connect 16 0 12 0;
+#X connect 17 0 0 0;
diff --git a/externals/build/doc/help-netserver.pd b/externals/build/doc/help-netserver.pd
new file mode 100644
index 00000000..a849bd52
--- /dev/null
+++ b/externals/build/doc/help-netserver.pd
@@ -0,0 +1,50 @@
+#N canvas 246 114 752 474 12;
+#X floatatom 49 333 5 0 0;
+#X floatatom 87 298 5 0 0;
+#X symbolatom 164 251 10 0 0;
+#X text 102 332 received data;
+#X text 140 298 number of connections;
+#X msg 49 54 print;
+#X floatatom 125 272 5 0 0;
+#X text 183 276 socket number;
+#X msg 103 179 broadcast hallo world!;
+#X text 288 179 send to all clients;
+#X text 144 33 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X obj 49 223 netserver 3000;
+#X text 137 120 send message to client no. 1;
+#X text 256 251 client's IP address;
+#X obj 477 189 netclient;
+#X msg 498 116 connect localhost 3000;
+#X msg 511 143 disconnect;
+#X msg 477 84 send 23;
+#X floatatom 544 218 5 0 0;
+#X msg 83 91 send 380 17.3;
+#X floatatom 477 296 5 0 0;
+#X obj 600 281 print anything;
+#X obj 538 309 print list;
+#X obj 477 245 route float list;
+#X msg 98 142 client 1 23;
+#X text 204 91 "send <socketnumber> <data>";
+#X text 110 70 send message on specified socket;
+#X text 200 143 "client <clientnumber> <data>";
+#X text 48 379 This example demonstrates how to set up a client/server
+connection. Data sent by the client get's received and displayed by
+the server imediately. Or just try it the other way round...;
+#X text 38 15 netclient :: simple client that connects to netserver
+;
+#X connect 5 0 11 0;
+#X connect 8 0 11 0;
+#X connect 11 0 0 0;
+#X connect 11 1 1 0;
+#X connect 11 2 6 0;
+#X connect 11 3 2 0;
+#X connect 14 0 23 0;
+#X connect 14 1 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
+#X connect 17 0 14 0;
+#X connect 19 0 11 0;
+#X connect 23 0 20 0;
+#X connect 23 1 22 0;
+#X connect 23 2 21 0;
+#X connect 24 0 11 0;
diff --git a/externals/build/doc/help-nroute.pd b/externals/build/doc/help-nroute.pd
new file mode 100644
index 00000000..08313639
--- /dev/null
+++ b/externals/build/doc/help-nroute.pd
@@ -0,0 +1,37 @@
+#N canvas 252 37 630 380 12;
+#X floatatom 116 199 5 0 0;
+#X obj 41 290 print matched;
+#X obj 116 256 print failed;
+#X msg 78 151 8;
+#X obj 41 226 nroute 8 2;
+#X msg 41 77 0 8 15;
+#X msg 56 105 17 3 45;
+#X msg 116 153 3;
+#X text 170 197 position to match;
+#X floatatom 427 204 5 0 0;
+#X obj 336 293 print matched;
+#X obj 427 259 print failed;
+#X obj 336 229 nroute fly 2;
+#X msg 381 178 go;
+#X msg 417 178 walk;
+#X msg 336 80 swifts fly high;
+#X msg 351 108 dogs walk slow;
+#X msg 363 141 please go go;
+#X text 153 152 what to match;
+#X text 54 8 nroute :: route if Nth argument is matched;
+#X text 135 24 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X connect 0 0 4 2;
+#X connect 3 0 4 1;
+#X connect 4 0 1 0;
+#X connect 4 1 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 1;
+#X connect 9 0 12 2;
+#X connect 12 0 10 0;
+#X connect 12 1 11 0;
+#X connect 13 0 12 1;
+#X connect 14 0 12 1;
+#X connect 15 0 12 0;
+#X connect 16 0 12 0;
+#X connect 17 0 12 0;
diff --git a/externals/build/doc/help-oggamp~.pd b/externals/build/doc/help-oggamp~.pd
new file mode 100644
index 00000000..9f30cb8d
--- /dev/null
+++ b/externals/build/doc/help-oggamp~.pd
@@ -0,0 +1,54 @@
+#N canvas 176 105 678 455 10;
+#X obj 38 420 dac~;
+#X floatatom 100 419 5 0 0;
+#X text 145 419 connection state;
+#X msg 80 83 connect localhost puredata.ogg 8000;
+#X msg 109 131 disconnect;
+#X msg 35 60 connect ogg.bbc.co.uk radio1_low.ogg 8001;
+#X msg 93 106 connect 141.53.196.149 puredata.ogg 8000;
+#X msg 147 224 recover 0;
+#X msg 163 251 recover 1;
+#X msg 125 153 print;
+#X obj 15 389 *~ 0;
+#X obj 57 391 *~ 0;
+#X floatatom 20 332 5 0 0;
+#X obj 20 354 / 100;
+#X text 57 7 oggamp~ version 0.2 - Ogg Vorbis sreaming client;
+#X msg 139 191 recover -1;
+#X text 218 191 resume (default): mute audio and refill buffer;
+#X text 230 249 reconnect (disconnect and connect again);
+#X text 138 303 CREATION ARGUMENTS:;
+#X text 260 303 oggamp~ <graphic> <outlets> <buffersize>;
+#X text 167 324 <graphic> - turn graphical buffer status display on
+(1) or off (0 \, default);
+#X text 167 351 <outlets> - number of outlets (default = 2) \, mono
+to stereo and stereo to mono conversion supported;
+#X text 333 50 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 333 63 get source at http://www.akustische-kunst.de/;
+#X msg 530 406 \; pd dsp 1;
+#X msg 596 406 \; pd dsp 0;
+#X obj 530 380 loadbang;
+#X msg 16 34 connect radio.jcraft.com test.ogg 8000;
+#X obj 15 300 oggamp~ 1 2 256;
+#X text 154 171 BEHAVIOUR ON BUFFER UNDERRUNS:;
+#X text 166 378 <buffersize> - size of circular buffer in kbytes (default
+= 256k);
+#X text 219 222 disconnect on buffer underrun;
+#X connect 3 0 28 0;
+#X connect 4 0 28 0;
+#X connect 5 0 28 0;
+#X connect 6 0 28 0;
+#X connect 7 0 28 0;
+#X connect 8 0 28 0;
+#X connect 9 0 28 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 1;
+#X connect 12 0 13 0;
+#X connect 13 0 10 1;
+#X connect 13 0 11 1;
+#X connect 15 0 28 0;
+#X connect 26 0 24 0;
+#X connect 27 0 28 0;
+#X connect 28 0 10 0;
+#X connect 28 1 11 0;
+#X connect 28 2 1 0;
diff --git a/externals/build/doc/help-oggcast~.pd b/externals/build/doc/help-oggcast~.pd
new file mode 100644
index 00000000..6b45d355
--- /dev/null
+++ b/externals/build/doc/help-oggcast~.pd
@@ -0,0 +1,57 @@
+#N canvas 256 31 609 501 10;
+#X floatatom 18 36 0 40 16000;
+#X msg 467 454 \; pd dsp 1;
+#X floatatom 18 470 0 0 0;
+#X msg 171 152 disconnect;
+#X msg 207 283 print;
+#X msg 533 454 \; pd dsp 0;
+#X obj 467 428 loadbang;
+#X floatatom 96 448 10 0 0;
+#X text 120 80 connect <host> <mountpoint> <port>;
+#X text 272 45 get latest version at;
+#X text 274 59 http://www.akustische-kunst.de/puredata/;
+#X text 188 178 vorbis <samplerate> <channles> <max.br> <nom.br> <min.br>
+;
+#X text 167 448 ogg pages;
+#X text 47 473 connection state;
+#X text 372 249 channels: 1 or 2 (default);
+#X text 203 214 vbr <samplerate> <channels> <quality>;
+#X msg 100 57 passwd letmein;
+#X obj 18 63 osc~ 440;
+#X text 323 236 quality settings: 0 - 1 (low - hi);
+#X text 324 265 resampling currently not supported!;
+#X text 216 345 possible tags: TITLE \, ARTIST \, PERFORMER \, DESCRIPTION
+\,;
+#X text 305 358 GENRE \, LOCATION \, COPYRIGHT \, CONTACT \, DATE;
+#X msg 188 195 vorbis 44100 2 144 128 96;
+#X msg 152 120 connect 141.53.196.149 puredata.ogg 8000;
+#X msg 122 98 connect localhost puredata.ogg 8000;
+#X msg 202 230 vbr 44100 2 0.4;
+#X obj 17 421 oggcast~ 2 512;
+#X text 19 6 oggcast~ 0.2b - send Ogg Vorbis stream to IceCast2 or
+JRoar;
+#X text 273 34 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 246 284 print current settings to console window;
+#X text 214 306 comment: <TAG> <content>;
+#X msg 214 323 ARTIST your_name;
+#X text 118 421 creation arguments: oggcast~ <channles> <buffer size>
+;
+#X text 239 439 default is 2 channels and 512k;
+#X text 240 451 bytes buffer size;
+#X text 217 376 '_' (underline) or '=' (equal sign) will get replaced
+with spaces! Note that changing any settings while streaming might
+result in audible dropouts!;
+#X connect 0 0 17 0;
+#X connect 3 0 26 0;
+#X connect 4 0 26 0;
+#X connect 6 0 1 0;
+#X connect 16 0 26 0;
+#X connect 17 0 26 0;
+#X connect 17 0 26 1;
+#X connect 22 0 26 0;
+#X connect 23 0 26 0;
+#X connect 24 0 26 0;
+#X connect 25 0 26 0;
+#X connect 26 0 2 0;
+#X connect 26 1 7 0;
+#X connect 31 0 26 0;
diff --git a/externals/build/doc/help-oggread~.pd b/externals/build/doc/help-oggread~.pd
new file mode 100644
index 00000000..a37e225c
--- /dev/null
+++ b/externals/build/doc/help-oggread~.pd
@@ -0,0 +1,34 @@
+#N canvas 415 163 496 344 10;
+#X obj 35 298 dac~;
+#X floatatom 78 268 5 0 0;
+#X obj 35 236 oggread~;
+#X msg 55 83 start;
+#X msg 94 128 stop;
+#X msg 117 180 resume;
+#X msg 35 45 open myfile.ogg;
+#X text 99 81 play file from beginning;
+#X text 132 126 stop (pause) playing;
+#X text 165 179 resume playing at current position;
+#X msg 317 275 \; pd dsp 1;
+#X msg 383 275 \; pd dsp 0;
+#X obj 317 249 loadbang;
+#X text 185 50 get latest version at;
+#X text 186 63 http://www.akustische-kunst.de/puredata/;
+#X text 121 269 position in file (seconds);
+#X text 186 38 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 17 16 oggread~ version 0.2 - Ogg Vorbis file player;
+#X msg 110 152 0;
+#X msg 72 105 1;
+#X msg 148 210 seek 60;
+#X text 206 210 set new playing position (in seconds);
+#X connect 2 0 0 0;
+#X connect 2 1 0 1;
+#X connect 2 2 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 12 0 10 0;
+#X connect 18 0 2 0;
+#X connect 19 0 2 0;
+#X connect 20 0 2 0;
diff --git a/externals/build/doc/help-oggwrite~.pd b/externals/build/doc/help-oggwrite~.pd
new file mode 100644
index 00000000..86bbd918
--- /dev/null
+++ b/externals/build/doc/help-oggwrite~.pd
@@ -0,0 +1,59 @@
+#N canvas 286 47 631 513 10;
+#X obj 40 415 oggwrite~;
+#X obj 40 64 osc~ 440;
+#X floatatom 40 33 5 0 0;
+#X msg 120 52 open myfile.ogg;
+#X msg 175 125 start;
+#X msg 185 148 stop;
+#X msg 155 78 append;
+#X msg 166 99 truncate;
+#X floatatom 89 441 5 0 0;
+#X floatatom 40 470 5 0 0;
+#X msg 204 259 print;
+#X text 189 180 vorbis <samplerate> <channles> <max.br> <nom.br> <min.br>
+;
+#X text 373 251 channels: 1 or 2 (default);
+#X text 204 216 vbr <samplerate> <channels> <quality>;
+#X msg 203 232 vbr 44100 2 0.4;
+#X text 324 238 quality settings: 0 - 1 (low - hi);
+#X text 325 267 resampling currently not supported!;
+#X text 202 290 comment <tag> <content>;
+#X text 204 329 possible tags: TITLE \, ARTIST \, PERFORMER \, DESCRIPTION
+\,;
+#X text 293 342 GENRE \, LOCATION \, COPYRIGHT \, CONTACT \, DATE;
+#X msg 202 307 ARTIST your=name;
+#X msg 189 197 vorbis 44100 2 144 128 96;
+#X text 136 441 ogg pages written to file;
+#X msg 481 455 \; pd dsp 1;
+#X msg 547 455 \; pd dsp 0;
+#X obj 481 429 loadbang;
+#X text 354 9 written by Olaf Matthes (olaf.matthes@gmx.de);
+#X text 353 21 get latest version at;
+#X text 354 34 http://www.akustische-kunst.de/puredata/;
+#X text 209 76 append data at end of file;
+#X text 226 97 overwrite previously recorded data;
+#X text 221 145 stop recording;
+#X text 225 50 open a file first!;
+#X text 240 407 might result in audible dropouts!;
+#X text 202 395 note: changing settings while recording;
+#X text 85 470 file state (1 = open \; 0 = closed);
+#X text 5 9 oggwrite~ version 0.1 - write Ogg Vorbis stream to file
+;
+#X msg 204 361 COPYRIGHT (c)=2002=Olaf=Matthes;
+#X text 220 123 start recording;
+#X connect 0 0 9 0;
+#X connect 0 1 8 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 1;
+#X connect 2 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 10 0 0 0;
+#X connect 14 0 0 0;
+#X connect 20 0 0 0;
+#X connect 21 0 0 0;
+#X connect 25 0 23 0;
+#X connect 37 0 0 0;
diff --git a/externals/build/doc/help-pitch.pd b/externals/build/doc/help-pitch.pd
new file mode 100644
index 00000000..781fd4cd
--- /dev/null
+++ b/externals/build/doc/help-pitch.pd
@@ -0,0 +1,30 @@
+#N canvas 166 313 439 308 12;
+#X floatatom 83 266 5 0 0;
+#X obj 83 35 notein;
+#X floatatom 112 217 5 0 0;
+#X floatatom 127 191 5 0 0;
+#X floatatom 142 166 5 0 0;
+#X floatatom 24 33 5 0 0;
+#X symbolatom 97 242 7 0 0;
+#X text 139 267 MIDI note number;
+#X text 166 217 pitch class;
+#X text 181 191 interval to last note;
+#X text 197 166 register;
+#X text 153 33 pitch :: get info about pitch;
+#X text 169 243 note name (symbol);
+#X text 221 54 use creation argument to;
+#X text 221 71 set assumed first note;
+#X text 227 104 of the first interval );
+#X text 218 89 ( needed for calculation;
+#X obj 83 94 stripnote;
+#X obj 83 137 pitch 72;
+#X connect 1 0 17 0;
+#X connect 1 1 17 1;
+#X connect 5 0 18 0;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 0 0;
+#X connect 18 1 6 0;
+#X connect 18 2 2 0;
+#X connect 18 3 3 0;
+#X connect 18 4 4 0;
diff --git a/externals/build/doc/help-plus.pd b/externals/build/doc/help-plus.pd
new file mode 100644
index 00000000..3a0e442c
--- /dev/null
+++ b/externals/build/doc/help-plus.pd
@@ -0,0 +1,17 @@
+#N canvas 328 264 464 316 12;
+#X floatatom 54 217 5 0 0;
+#X floatatom 54 127 5 0 0;
+#X floatatom 107 127 5 0 0;
+#X text 133 204 use creation arguments to set initial;
+#X text 133 220 values for inlets;
+#X text 26 20 plus :: like '+' but calculates result;
+#X msg 23 83 bang;
+#X text 69 82 calculate and output result now;
+#X obj 54 172 plus 8 6 2;
+#X floatatom 161 127 5 0 0;
+#X text 91 40 whenever leftmost or second inlet is changed;
+#X connect 1 0 8 0;
+#X connect 2 0 8 1;
+#X connect 6 0 8 0;
+#X connect 8 0 0 0;
+#X connect 9 0 8 2;
diff --git a/externals/build/doc/help-poisson.pd b/externals/build/doc/help-poisson.pd
new file mode 100644
index 00000000..ab6fe4bb
--- /dev/null
+++ b/externals/build/doc/help-poisson.pd
@@ -0,0 +1,12 @@
+#N canvas 438 222 487 308 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 193 112 5 0 0;
+#X text 39 21 poisson :: Poisson distributed random numbers;
+#X obj 70 145 poisson 2.2;
+#X text 246 113 lambda - value that is most;
+#X text 317 132 likely to appear;
+#X connect 0 0 4 0;
+#X connect 2 0 4 1;
+#X connect 4 0 1 0;
diff --git a/externals/build/doc/help-pulse.pd b/externals/build/doc/help-pulse.pd
new file mode 100644
index 00000000..6d1320a2
--- /dev/null
+++ b/externals/build/doc/help-pulse.pd
@@ -0,0 +1,35 @@
+#N canvas 499 150 464 314 12;
+#X obj 23 223 pulse 120 1 4 0;
+#X floatatom 23 265 5 0 0;
+#X obj 138 265 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -258699
+-1;
+#X msg 23 23 0;
+#X msg 48 80 1;
+#X floatatom 51 122 5 0 0;
+#X floatatom 138 197 5 0 0;
+#X floatatom 109 172 5 0 0;
+#X floatatom 80 147 5 0 0;
+#X msg 39 53 bang;
+#X text 55 23 stop;
+#X obj 313 18 metro;
+#X text 80 79 start;
+#X text 242 44 originally written by;
+#X text 240 62 James McCartney for Max;
+#X text 74 267 count;
+#X text 168 18 pulse :: a better;
+#X text 104 123 quarter notes per minute;
+#X text 190 199 number of beats to play;
+#X text 189 214 before turning off;
+#X text 77 54 toggles on/off;
+#X text 131 148 interval at which a bang is output;
+#X text 160 174 notes to count (default = quarter);
+#X text 166 264 pulse turned off automagically;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 1;
+#X connect 6 0 0 4;
+#X connect 7 0 0 3;
+#X connect 8 0 0 2;
+#X connect 9 0 0 0;
diff --git a/externals/build/doc/help-remote.pd b/externals/build/doc/help-remote.pd
new file mode 100644
index 00000000..54a7cafd
--- /dev/null
+++ b/externals/build/doc/help-remote.pd
@@ -0,0 +1,18 @@
+#N canvas 472 309 456 306 12;
+#X text 9 9 remote :: send data to any receive object;
+#X obj 32 224 remote;
+#X obj 216 222 receive bla;
+#X obj 321 222 receive foo;
+#X obj 216 250 print bla;
+#X obj 321 250 print foo;
+#X msg 32 104 bla 17.3 23;
+#X msg 76 183 foo 13 \, bla 4;
+#X text 148 75 use message: <name> <data>;
+#X text 253 91 with data of any type;
+#X text 89 26 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X msg 61 147 foo five is 2 more than 3;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 6 0 1 0;
+#X connect 7 0 1 0;
+#X connect 11 0 1 0;
diff --git a/externals/build/doc/help-rhythm.pd b/externals/build/doc/help-rhythm.pd
new file mode 100644
index 00000000..bff970c5
--- /dev/null
+++ b/externals/build/doc/help-rhythm.pd
@@ -0,0 +1,35 @@
+#N canvas 262 64 579 413 12;
+#X obj 25 273 rhythm 0;
+#X floatatom 25 356 5 0 0;
+#X obj 25 59 notein;
+#X obj 348 237 makenote 100 100;
+#X msg 348 209 60;
+#X floatatom 54 328 5 0 0;
+#X text 81 360 beats per minute;
+#X text 111 331 beats in milliseconds;
+#X msg 79 113 reset;
+#X msg 90 146 model 0;
+#X msg 96 175 model 1;
+#X text 158 147 Large and Kolen adaptation model;
+#X text 164 174 Toiviainen adaptation model;
+#X text 53 21 rhythm :: detects the beat of rhythmic patterns;
+#X text 134 39 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 134 56 based on code written by Rober Rowe and published;
+#X text 133 72 in 'Mashine musicianship' \, Massachusetts \, 2001;
+#X text 115 275 creation: rhythm <adaptation model>;
+#X obj 84 303 bng 20 100 10 0 empty empty empty 0 -6 0 8 -262144 -42246
+-1;
+#X text 115 304 beat pulse;
+#X text 132 114 reset all values \, forget rhythm and stop beat pulse
+;
+#X connect 0 0 1 0;
+#X connect 0 1 5 0;
+#X connect 0 2 18 0;
+#X connect 2 0 0 0;
+#X connect 2 1 0 1;
+#X connect 3 0 0 0;
+#X connect 3 1 0 1;
+#X connect 4 0 3 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
diff --git a/externals/build/doc/help-scale.pd b/externals/build/doc/help-scale.pd
new file mode 100644
index 00000000..816bda5d
--- /dev/null
+++ b/externals/build/doc/help-scale.pd
@@ -0,0 +1,31 @@
+#N canvas 381 126 552 355 12;
+#X floatatom 27 277 8 0 0;
+#X floatatom 27 73 5 0 0;
+#X text 213 48 written by <olaf.matthes@gmx.de>;
+#X text 37 306 creation:;
+#X text 141 11 scale :: scale input from a certain input range;
+#X text 212 29 to lie between output boundaries;
+#X floatatom 56 131 5 0 0;
+#X floatatom 85 152 5 0 0;
+#X floatatom 115 173 5 0 0;
+#X floatatom 144 194 5 0 0;
+#X text 84 71 input value;
+#X text 106 278 scaled output value;
+#X text 111 130 in low;
+#X text 137 151 in high;
+#X text 171 172 out low;
+#X text 200 194 out high;
+#X text 57 104 creation arguments can be changed dynamically:;
+#X text 53 323 scale <in low> <in high> <out low> <out high> <log coeff>
+;
+#X obj 27 249 scale 0 9 100 255 0;
+#X floatatom 174 220 5 0 0;
+#X text 227 219 log coefficient;
+#X text 265 237 0 = linear 1 = log;
+#X connect 1 0 18 0;
+#X connect 6 0 18 1;
+#X connect 7 0 18 2;
+#X connect 8 0 18 3;
+#X connect 9 0 18 4;
+#X connect 18 0 0 0;
+#X connect 19 0 18 5;
diff --git a/externals/build/doc/help-score.pd b/externals/build/doc/help-score.pd
new file mode 100644
index 00000000..a049bab7
--- /dev/null
+++ b/externals/build/doc/help-score.pd
@@ -0,0 +1,52 @@
+#N canvas 246 86 629 516 12;
+#X floatatom 30 301 5 0 0;
+#X obj 30 12 notein;
+#X obj 193 202 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 95 93 start;
+#X msg 104 118 stop;
+#X text 217 203 reset;
+#X text 145 92 start / stop score following;
+#X msg 111 146 start 4;
+#X text 176 146 start skipping first 4 notes;
+#X obj 193 286 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -258699
+-1;
+#X text 217 287 error;
+#X text 148 24 score :: score follower that tries to match incoming
+;
+#X text 221 41 MIDI data to a score stored in an array;
+#X text 219 57 outputs the index number of current position;
+#X obj 23 423 loadbang;
+#N canvas 0 0 450 300 graph2 0;
+#X array sco_array 25 float 1;
+#A 0 60 61 62 63 64 65 66 67 68 69 70 71 72 71 70 69 68 67 66 65 64
+63 62 61 60;
+#X coords 0 127 24 0 200 140 1;
+#X restore 402 361 graph;
+#X obj 30 235 score sco_array 2 300;
+#X msg 130 173 set sco_array;
+#X msg 23 449 \; sco_array resize 25 \; sco_array read examplescore.txt
+\;;
+#X text 250 174 set to array that contains the score;
+#X text 88 303 position on score;
+#X text 86 322 (x index of array);
+#X obj 30 356 tabread sco_array;
+#X floatatom 30 387 5 0 0;
+#X text 86 388 note from score;
+#X text 291 255 array: name of array containing score;
+#X text 235 234 USAGE: score <array> <skipitems> <skiptime>;
+#X text 292 272 skipitems: max. number of notes to skip;
+#X text 292 289 skip time: max. time [ms] to rewind;
+#X text 378 307 input data;
+#X connect 0 0 22 0;
+#X connect 1 0 16 0;
+#X connect 1 1 16 1;
+#X connect 2 0 16 2;
+#X connect 3 0 16 0;
+#X connect 4 0 16 0;
+#X connect 7 0 16 0;
+#X connect 14 0 18 0;
+#X connect 16 0 0 0;
+#X connect 16 1 9 0;
+#X connect 17 0 16 0;
+#X connect 22 0 23 0;
diff --git a/externals/build/doc/help-speedlim.pd b/externals/build/doc/help-speedlim.pd
new file mode 100644
index 00000000..2ef4f828
--- /dev/null
+++ b/externals/build/doc/help-speedlim.pd
@@ -0,0 +1,30 @@
+#N canvas 445 253 464 314 12;
+#X floatatom 38 54 5 0 0;
+#X floatatom 18 264 5 0 0;
+#X obj 38 141 speedlim 500;
+#X text 126 18 speedlim :: lets information through;
+#X text 222 37 only every N milliseconds;
+#X text 152 171 creation argument = time in ms;
+#X floatatom 129 116 5 0 0;
+#X text 184 116 time between outputs in ms;
+#X msg 49 82 bang;
+#X obj 121 207 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 121 236 timer;
+#X floatatom 121 262 5 0 0;
+#X text 175 262 this should never be less than;
+#X text 175 280 the creation argument of speedlim;
+#X obj 18 194 route f;
+#X obj 47 236 print;
+#X msg 95 82 this is speedlim;
+#X connect 0 0 2 0;
+#X connect 2 0 9 0;
+#X connect 2 0 14 0;
+#X connect 6 0 2 1;
+#X connect 8 0 2 0;
+#X connect 9 0 10 1;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 14 0 1 0;
+#X connect 14 1 15 0;
+#X connect 16 0 2 0;
diff --git a/externals/build/doc/help-step.pd b/externals/build/doc/help-step.pd
new file mode 100644
index 00000000..9197d013
--- /dev/null
+++ b/externals/build/doc/help-step.pd
@@ -0,0 +1,22 @@
+#N canvas 417 206 533 314 12;
+#X floatatom 33 229 5 0 0;
+#X text 72 7 step :: output sequence of numbers (similar to 'line')
+;
+#X text 138 25 written by Olaf Matthes (olaf.matthes@gmx.de);
+#X text 222 250 stepsize :: step between two numbers;
+#X msg 33 76 23 6000 2;
+#X msg 62 119 230;
+#X obj 101 282 line;
+#X text 98 117 send a single number to jump;
+#X text 121 77 send a triplet to step to a new value;
+#X text 22 282 see also:;
+#X msg 80 146 stop;
+#X text 127 147 "stop" message to stop output;
+#X text 121 92 <new value> <time> <step>;
+#X text 123 196 step <value> <stepsize>;
+#X text 221 234 value :: value to start with;
+#X obj 33 195 step 100 3;
+#X connect 4 0 15 0;
+#X connect 5 0 15 0;
+#X connect 10 0 15 0;
+#X connect 15 0 0 0;
diff --git a/externals/build/doc/help-subst.pd b/externals/build/doc/help-subst.pd
new file mode 100644
index 00000000..405ea207
--- /dev/null
+++ b/externals/build/doc/help-subst.pd
@@ -0,0 +1,72 @@
+#N canvas 249 69 784 504 12;
+#X obj 19 346 print;
+#X msg 143 272 bang;
+#X text 190 180 minimum order of substitution;
+#X msg 122 181 order 2;
+#X msg 19 118 72 68 67 64 69 71 77 75 70 73 74 78;
+#X floatatom 98 347 5 0 0;
+#X text 151 348 length of row;
+#X msg 138 241 intervall 4;
+#X obj 541 228 noteout;
+#N canvas 0 0 450 300 graph1 0;
+#X array array01 100 float 0;
+#X coords 0 127 99 0 200 140 1;
+#X restore 564 321 graph;
+#X obj 506 43 tgl 20 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 537 42 << switch playback on/off;
+#X obj 506 93 int 0;
+#X obj 558 93 + 1;
+#X text 27 19 subst :: self-similar substitution / diminuition of rows
+;
+#X text 87 307 [subst <order>];
+#X obj 506 146 sel 0;
+#X obj 98 374 s length;
+#X obj 541 120 r length;
+#X obj 541 173 tabread array01;
+#X msg 506 173 0;
+#X obj 506 67 metro 250;
+#X obj 541 201 makenote 100 250;
+#X obj 19 306 subst 2;
+#X text 99 35 play it and you'll never get a note repetition;
+#X msg 125 212 set array01;
+#N canvas 0 0 450 300 graph1 0;
+#X array array00 12 float 1;
+#A 0 72 68 67 64 69 71 77 75 70 73 74 78;
+#X coords 0 127 11 0 200 140 1;
+#X restore 291 321 graph;
+#X msg 118 146 load array00;
+#X text 222 211 set array for processing and output;
+#X obj 21 417 subst array00 3;
+#X text 295 464 THE INPUT;
+#X text 574 464 THE OUTPUT;
+#X text 315 119 send it a list;
+#X text 226 147 or load values from array;
+#X text 18 444 use creation arguments to set;
+#X text 18 458 name of output array and order;
+#X text 17 472 of substitution;
+#X text 99 55 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 244 241 substitute the Nth interval;
+#X text 187 272 substitute now \, choose interval by chance;
+#X connect 1 0 23 0;
+#X connect 3 0 23 0;
+#X connect 4 0 23 0;
+#X connect 5 0 17 0;
+#X connect 7 0 23 0;
+#X connect 10 0 21 0;
+#X connect 12 0 13 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 1;
+#X connect 16 0 20 0;
+#X connect 16 1 19 0;
+#X connect 18 0 16 1;
+#X connect 19 0 22 0;
+#X connect 20 0 12 1;
+#X connect 20 0 1 0;
+#X connect 21 0 12 0;
+#X connect 22 0 8 0;
+#X connect 22 1 8 1;
+#X connect 23 0 0 0;
+#X connect 23 1 5 0;
+#X connect 25 0 23 0;
+#X connect 27 0 23 0;
diff --git a/externals/build/doc/help-temperature.pd b/externals/build/doc/help-temperature.pd
new file mode 100644
index 00000000..64db2a7a
--- /dev/null
+++ b/externals/build/doc/help-temperature.pd
@@ -0,0 +1,16 @@
+#N canvas 214 144 454 304 12;
+#X obj 45 139 temperature 500;
+#X floatatom 45 193 5 0 0;
+#X floatatom 45 91 5 0 0;
+#X text 11 10 temperature :: oputput number of input changes in N ms
+;
+#X text 132 27 written by <olaf.matthes@gmx.de>;
+#X floatatom 160 104 5 0 0;
+#X text 219 103 set new time interval;
+#X text 104 192 number of changes (i.e. the 'temperature');
+#X text 104 209 of the input during one time interval;
+#X msg 68 112 foo;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 5 0 0 1;
+#X connect 9 0 0 0;
diff --git a/externals/build/doc/help-tilt.pd b/externals/build/doc/help-tilt.pd
new file mode 100644
index 00000000..581f9349
--- /dev/null
+++ b/externals/build/doc/help-tilt.pd
@@ -0,0 +1,26 @@
+#N canvas 245 222 562 330 12;
+#X floatatom 24 114 5 0 0;
+#X obj 54 293 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 153 227 5 0 0;
+#X text 210 228 interval;
+#X text 39 20 tilt :: meassure 'tilt' of input;
+#X text 226 186 trip point :: alert when exceeding;
+#X text 339 203 this value;
+#X text 215 128 low limit :: reset 'start tilt' in case;
+#X text 319 143 value is below this for a;
+#X text 319 160 longer time;
+#X text 184 80 high limit :: ignore chnages higher than this;
+#X text 163 56 tilt :: maximum value change within one interval;
+#X obj 54 250 tilt 0.78 100;
+#X msg 126 81 hi 230;
+#X msg 139 127 low 17.3;
+#X msg 139 186 trip 173;
+#X msg 100 55 tilt 25;
+#X connect 0 0 12 0;
+#X connect 2 0 12 1;
+#X connect 12 0 1 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 16 0 12 0;
diff --git a/externals/build/doc/help-triang.pd b/externals/build/doc/help-triang.pd
new file mode 100644
index 00000000..2a430207
--- /dev/null
+++ b/externals/build/doc/help-triang.pd
@@ -0,0 +1,9 @@
+#N canvas 370 195 483 304 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X obj 70 141 triang;
+#X text 19 20 triang :: triangularly distributed random numbers
+;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/externals/build/doc/help-velocity.pd b/externals/build/doc/help-velocity.pd
new file mode 100644
index 00000000..38f8f0cc
--- /dev/null
+++ b/externals/build/doc/help-velocity.pd
@@ -0,0 +1,14 @@
+#N canvas 239 183 454 304 12;
+#X text 30 16 velocity :: get velocity of digits per second;
+#X obj 50 137 velocity;
+#X floatatom 50 72 5 0 0;
+#X floatatom 50 187 8 0 0;
+#X text 150 77 sending a float every second would;
+#X text 151 95 result in a velocity of 1 \, higher;
+#X text 151 114 rates produce higher velocities;
+#X msg 65 102 bang;
+#X text 151 148 originally written for Max by;
+#X text 151 164 Trond Lossius \, BEK;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 7 0 1 0;
diff --git a/externals/build/doc/help-weibull.pd b/externals/build/doc/help-weibull.pd
new file mode 100644
index 00000000..56eb3b1f
--- /dev/null
+++ b/externals/build/doc/help-weibull.pd
@@ -0,0 +1,15 @@
+#N canvas 438 222 487 308 12;
+#X obj 70 95 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 70 192 5 0 0;
+#X floatatom 151 94 5 0 0;
+#X floatatom 233 116 5 0 0;
+#X obj 70 140 weibull 0.78 1.3;
+#X text 286 117 t;
+#X text 204 95 s;
+#X text 123 247 s and t must be greater than zero;
+#X text 39 21 weibull :: Weibull distributed random numbers;
+#X connect 0 0 4 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 1 0;