aboutsummaryrefslogtreecommitdiff
path: root/externals/build
diff options
context:
space:
mode:
authorGuenter Geiger <ggeiger@users.sourceforge.net>2003-07-21 15:30:25 +0000
committerGuenter Geiger <ggeiger@users.sourceforge.net>2003-07-21 15:30:25 +0000
commit3d1d1fe55d488c5786c262099762febbe565c553 (patch)
treec69de9fe1736b252eea4bd293869c7b2c6dbfc63 /externals/build
parent196bec15db5a033fb3b107d4c7ee93d1c848280f (diff)
added missing help patches
svn path=/trunk/; revision=787
Diffstat (limited to 'externals/build')
-rw-r--r--externals/build/doc/help-abs~.pd14
-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-button.pd29
-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.pd83
-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-equalizer.pd39
-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-hlshelf.pd34
-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-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~.pd108
-rw-r--r--externals/build/doc/help-oggread~.pd78
-rw-r--r--externals/build/doc/help-oggwrite~.pd118
-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-rewrap.pd23
-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-som.pd114
-rw-r--r--externals/build/doc/help-speedlim.pd30
-rw-r--r--externals/build/doc/help-split.pd24
-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-timebang.pd17
-rw-r--r--externals/build/doc/help-triang.pd9
-rw-r--r--externals/build/doc/help-unroute.pd30
-rw-r--r--externals/build/doc/help-urn.pd18
-rw-r--r--externals/build/doc/help-velocity.pd14
-rw-r--r--externals/build/doc/help-weibull.pd15
-rw-r--r--externals/build/doc/help-wrap.pd22
62 files changed, 1957 insertions, 210 deletions
diff --git a/externals/build/doc/help-abs~.pd b/externals/build/doc/help-abs~.pd
new file mode 100644
index 00000000..65612557
--- /dev/null
+++ b/externals/build/doc/help-abs~.pd
@@ -0,0 +1,14 @@
+#N canvas 0 0 450 300 10;
+#X obj 35 91 abs~;
+#X floatatom 35 54 5 0 0 0 - - -;
+#X obj 35 71 sig~;
+#X obj 34 112 snapshot~;
+#X floatatom 34 131 5 0 0 0 - - -;
+#X msg 76 90 bang;
+#X text 33 22 calculates the absolute value of a signal;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 1 0 5 0;
+#X connect 2 0 0 0;
+#X connect 3 0 4 0;
+#X connect 5 0 3 0;
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-button.pd b/externals/build/doc/help-button.pd
new file mode 100644
index 00000000..a2d21355
--- /dev/null
+++ b/externals/build/doc/help-button.pd
@@ -0,0 +1,29 @@
+#N canvas 215 105 529 408 10;
+#X obj 41 115 button OK;
+#X obj 77 249 print;
+#X obj 118 128 button Hit_me_with_your_rhythm_stick;
+#X msg 118 181 yes I will;
+#X obj 118 83 button OK;
+#X obj 325 328 del 400;
+#X obj 248 256 del 400;
+#X obj 324 195 del 400;
+#X obj 375 254 del 400;
+#X obj 368 246 button Don't_click;
+#X obj 321 321 button Don't_click;
+#X obj 316 188 button Don't_click;
+#X obj 236 247 button Don't_click;
+#X text 17 21 Button \, a bang with a label (no pics yet);
+#X text 26 374 (C) dosmildos Guenter Geiger;
+#X text 17 41 button <text> \, _ are made into spaces;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 2 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 5 0;
+#X connect 11 0 7 0;
+#X connect 12 0 6 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
index 7f0bf8be..fa865e3d 100644
--- a/externals/build/doc/help-delta.pd
+++ b/externals/build/doc/help-delta.pd
@@ -1,63 +1,20 @@
-#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;
+#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-equalizer.pd b/externals/build/doc/help-equalizer.pd
new file mode 100644
index 00000000..05f7c562
--- /dev/null
+++ b/externals/build/doc/help-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/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-hlshelf.pd b/externals/build/doc/help-hlshelf.pd
new file mode 100644
index 00000000..0e5251dd
--- /dev/null
+++ b/externals/build/doc/help-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/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-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
index 9f30cb8d..b0bb5048 100644
--- a/externals/build/doc/help-oggamp~.pd
+++ b/externals/build/doc/help-oggamp~.pd
@@ -1,54 +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;
+#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-oggread~.pd b/externals/build/doc/help-oggread~.pd
index a37e225c..51e59726 100644
--- a/externals/build/doc/help-oggread~.pd
+++ b/externals/build/doc/help-oggread~.pd
@@ -1,34 +1,44 @@
-#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;
+#N canvas 280 107 572 464 12;
+#X obj 27 411 dac~;
+#X floatatom 75 412 8 0 0 0 - - -;
+#X obj 36 343 oggread~;
+#X msg 71 170 start;
+#X msg 110 226 stop;
+#X msg 118 287 resume;
+#X msg 36 45 open myfile.ogg;
+#X text 119 168 play file from beginning;
+#X text 152 226 stop (pause) playing;
+#X text 179 288 resume playing at current position;
+#X msg 396 394 \; pd dsp 1;
+#X msg 472 394 \; pd dsp 0;
+#X obj 396 368 loadbang;
+#X text 185 52 get latest version at;
+#X text 152 411 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 126 250 0;
+#X msg 95 195 1;
+#X text 230 318 set new playing position (in seconds);
+#X obj 95 375 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 121 375 bang at end of file;
+#X text 186 67 http://www.akustische-kunst.org/puredata/;
+#X obj 55 102 openpanel;
+#X msg 55 74 bang;
+#X msg 55 129 open \$1;
+#X msg 149 317 seek 60;
+#X connect 2 0 0 0;
+#X connect 2 1 0 1;
+#X connect 2 2 1 0;
+#X connect 2 3 20 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 17 0 2 0;
+#X connect 18 0 2 0;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 25 0 2 0;
+#X connect 26 0 2 0;
diff --git a/externals/build/doc/help-oggwrite~.pd b/externals/build/doc/help-oggwrite~.pd
index 86bbd918..8e9ca4b0 100644
--- a/externals/build/doc/help-oggwrite~.pd
+++ b/externals/build/doc/help-oggwrite~.pd
@@ -1,59 +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;
+#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-rewrap.pd b/externals/build/doc/help-rewrap.pd
new file mode 100644
index 00000000..e444c9de
--- /dev/null
+++ b/externals/build/doc/help-rewrap.pd
@@ -0,0 +1,23 @@
+#N canvas 328 32 564 467 12;
+#X floatatom 27 304 8 0 0 0 - - -;
+#X floatatom 27 73 5 0 0 0 - - -;
+#X text 202 47 written by <olaf.matthes@gmx.de>;
+#X floatatom 60 133 5 0 0 0 - - -;
+#X floatatom 94 158 5 0 0 0 - - -;
+#X text 84 71 input value;
+#X text 57 102 creation arguments can be changed dynamically:;
+#X text 35 341 creation arguments:;
+#X text 115 132 lower limit;
+#X text 146 157 upper limit;
+#X floatatom 110 276 5 0 0 0 - - -;
+#X text 36 358 wrap <lower limit> <upper limit>;
+#X obj 27 249 rewrap 6 40;
+#X text 200 27 into a range;
+#X text 169 275 wrap period;
+#X text 107 305 output;
+#X text 122 11 rewrap :: wraps floats back and forth;
+#X connect 1 0 12 0;
+#X connect 3 0 12 1;
+#X connect 4 0 12 2;
+#X connect 12 0 0 0;
+#X connect 12 1 10 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-som.pd b/externals/build/doc/help-som.pd
new file mode 100644
index 00000000..9f039792
--- /dev/null
+++ b/externals/build/doc/help-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/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-split.pd b/externals/build/doc/help-split.pd
new file mode 100644
index 00000000..c4e8d26e
--- /dev/null
+++ b/externals/build/doc/help-split.pd
@@ -0,0 +1,24 @@
+#N canvas 328 32 560 463 12;
+#X floatatom 27 304 8 0 0 0 - - -;
+#X floatatom 27 73 5 0 0 0 - - -;
+#X text 196 28 written by <olaf.matthes@gmx.de>;
+#X floatatom 56 131 5 0 0 0 - - -;
+#X floatatom 85 152 5 0 0 0 - - -;
+#X text 84 71 input value;
+#X text 57 104 creation arguments can be changed dynamically:;
+#X text 35 341 creation arguments:;
+#X obj 27 249 split 6 40;
+#X text 111 130 lower limit;
+#X text 137 151 upper limit;
+#X text 35 378 All floats that fall below the lower limit or above
+the upper limit get routed to the 2nd outlet.;
+#X text 36 358 split <lower limit> <upper limit>;
+#X floatatom 102 276 5 0 0 0 - - -;
+#X text 154 276 floats 'out of range';
+#X text 122 11 split :: split incoming floats according to value;
+#X text 106 305 floats 'in range' (including borders!);
+#X connect 1 0 8 0;
+#X connect 3 0 8 1;
+#X connect 4 0 8 2;
+#X connect 8 0 0 0;
+#X connect 8 1 13 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-timebang.pd b/externals/build/doc/help-timebang.pd
new file mode 100644
index 00000000..1db50588
--- /dev/null
+++ b/externals/build/doc/help-timebang.pd
@@ -0,0 +1,17 @@
+#N canvas 207 138 549 342 12;
+#X obj 29 242 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 29 295 print good morning;
+#X obj 29 202 timebang 7 10 13 19 47 50;
+#X obj 224 235 print good night;
+#X text 32 13 timebang :: send out bangs at given times of day;
+#X text 130 34 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X text 31 119 creation arguments: triples of hour minute and second
+for;
+#X text 191 137 the times of day you want a bang to occur;
+#X text 191 156 each time will get it's own outlet;
+#X text 184 297 this gets banged at 7:10:13 in the morning;
+#X text 224 257 this gets banged at 19:47:50;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 2 1 3 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-unroute.pd b/externals/build/doc/help-unroute.pd
new file mode 100644
index 00000000..d8ca1140
--- /dev/null
+++ b/externals/build/doc/help-unroute.pd
@@ -0,0 +1,30 @@
+#N canvas 413 157 539 407 12;
+#X obj 64 343 print;
+#X msg 64 89 1 \$1;
+#X msg 112 110 2 \$1;
+#X msg 163 116 3 \$1;
+#X floatatom 64 62 5 0 0;
+#X floatatom 112 85 5 0 0;
+#X floatatom 163 91 5 0 0;
+#X obj 64 232 route 1 2 3 4;
+#X obj 64 314 unroute one 2 three 4;
+#X text 52 13 unroute :: merges all inputs into one output;
+#X text 138 30 and prepends an identifier;
+#X text 138 47 written by Olaf Matthes <olaf.matthes@gmx.de>;
+#X msg 194 170 4 this came through 4;
+#X msg 209 196 3 drei;
+#X msg 174 146 4 25 467 23.6;
+#X connect 1 0 7 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 0;
+#X connect 4 0 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 3 0;
+#X connect 7 0 8 0;
+#X connect 7 1 8 1;
+#X connect 7 2 8 2;
+#X connect 7 3 8 3;
+#X connect 8 0 0 0;
+#X connect 12 0 7 0;
+#X connect 13 0 7 0;
+#X connect 14 0 7 0;
diff --git a/externals/build/doc/help-urn.pd b/externals/build/doc/help-urn.pd
new file mode 100644
index 00000000..09cdb9e4
--- /dev/null
+++ b/externals/build/doc/help-urn.pd
@@ -0,0 +1,18 @@
+#N canvas 0 0 462 312 12;
+#X obj 99 182 urn 8;
+#X msg 157 112 clear;
+#X floatatom 99 241 5 0 0 0 - - -;
+#X msg 99 85 bang;
+#X obj 189 241 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 144 85 choose next number;
+#X text 209 113 clear / refill urn;
+#X floatatom 149 150 5 0 0 0 - - -;
+#X text 201 150 change number of items in urn;
+#X text 69 30 urn :: urn selection model;
+#X text 221 241 bang if urn is empty;
+#X connect 0 0 2 0;
+#X connect 0 1 4 0;
+#X connect 1 0 0 0;
+#X connect 3 0 0 0;
+#X connect 7 0 0 1;
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;
diff --git a/externals/build/doc/help-wrap.pd b/externals/build/doc/help-wrap.pd
new file mode 100644
index 00000000..7997d388
--- /dev/null
+++ b/externals/build/doc/help-wrap.pd
@@ -0,0 +1,22 @@
+#N canvas 328 32 562 465 12;
+#X floatatom 27 304 8 0 0 0 - - -;
+#X floatatom 27 73 5 0 0 0 - - -;
+#X text 187 26 written by <olaf.matthes@gmx.de>;
+#X floatatom 60 133 5 0 0 0 - - -;
+#X floatatom 94 158 5 0 0 0 - - -;
+#X text 84 71 input value;
+#X text 57 102 creation arguments can be changed dynamically:;
+#X text 35 341 creation arguments:;
+#X text 115 132 lower limit;
+#X text 146 157 upper limit;
+#X floatatom 94 277 5 0 0 0 - - -;
+#X obj 27 249 wrap 6 40;
+#X text 36 358 wrap <lower limit> <upper limit>;
+#X text 106 305 floats 'in range';
+#X text 122 11 wrap :: wrap floats into a range;
+#X text 153 276 wrap periods;
+#X connect 1 0 11 0;
+#X connect 3 0 11 1;
+#X connect 4 0 11 2;
+#X connect 11 0 0 0;
+#X connect 11 1 10 0;