aboutsummaryrefslogtreecommitdiff
path: root/reference
diff options
context:
space:
mode:
Diffstat (limited to 'reference')
-rw-r--r--reference/0.INTRO.txt94
-rw-r--r--reference/any2list-help.pd24
-rw-r--r--reference/atoi-help.pd45
-rw-r--r--reference/avg~-help.pd24
-rw-r--r--reference/blockmirror~-help.pd84
-rw-r--r--reference/blockswap~-help.pd85
-rw-r--r--reference/coordinates-help.pd84
-rw-r--r--reference/date-help.pd42
-rw-r--r--reference/demultiplex-help.pd42
-rw-r--r--reference/demultiplex~-help.pd34
-rw-r--r--reference/dfreq~-help.pd20
-rw-r--r--reference/digidistort-help.pd170
-rw-r--r--reference/dirac~-help.pd47
-rw-r--r--reference/drip-help.pd75
-rw-r--r--reference/envrms~-help.pd29
-rw-r--r--reference/fifop-help.pd38
-rw-r--r--reference/glue-help.pd22
-rw-r--r--reference/index-help.pd128
-rw-r--r--reference/length-help.pd17
-rw-r--r--reference/lifop-help.pd38
-rw-r--r--reference/limiter~-help.pd296
-rw-r--r--reference/list2int-help.pd18
-rw-r--r--reference/list2symbol-help.pd32
-rw-r--r--reference/lister-help.pd47
-rw-r--r--reference/lpt-help.pd44
-rw-r--r--reference/makesymbol-help.pd85
-rw-r--r--reference/matchbox-help.pd68
-rw-r--r--reference/mavg-help.pd17
-rw-r--r--reference/minmax-help.pd13
-rw-r--r--reference/msgfile-help.pd177
-rw-r--r--reference/multiline~-help.pd65
-rw-r--r--reference/multiplex-help.pd38
-rw-r--r--reference/multiplex~-help.pd24
-rw-r--r--reference/niagara-help.pd26
-rw-r--r--reference/noish~-help.pd81
-rw-r--r--reference/noisi~-help.pd81
-rw-r--r--reference/operating_system-help.pd20
-rw-r--r--reference/packel-help.pd21
-rw-r--r--reference/pack~-help.pd34
-rw-r--r--reference/pdf~-help.pd27
-rw-r--r--reference/prime-help.pd22
-rw-r--r--reference/quantize~-help.pd87
-rw-r--r--reference/regex-help-help.pd34
-rw-r--r--reference/regex-help.pd37
-rw-r--r--reference/relay-help.pd91
-rw-r--r--reference/repack-help.pd25
-rw-r--r--reference/repeat-help.pd23
-rw-r--r--reference/scalarmult-help.pd74
-rw-r--r--reference/sf-play_record-help.pd122
-rw-r--r--reference/sigzero~-help.pd110
-rw-r--r--reference/sort-help.pd85
-rw-r--r--reference/step~-help.pd128
-rw-r--r--reference/strcmp-help.pd30
-rw-r--r--reference/sum-help.pd13
-rw-r--r--reference/swap~-help.pd90
-rw-r--r--reference/symbol2list-help.pd47
-rw-r--r--reference/tabdump-help.pd23
-rw-r--r--reference/tabminmax-help.pd35
-rw-r--r--reference/tabset-help.pd23
-rw-r--r--reference/tavg~-help.pd30
-rw-r--r--reference/test.mtx4
-rw-r--r--reference/time-help.pd32
-rw-r--r--reference/unpack~-help.pd117
-rw-r--r--reference/urn-help.pd66
-rw-r--r--reference/wrap-help.pd50
-rw-r--r--reference/zigbinops-help.pd119
-rw-r--r--reference/z~-help.pd33
67 files changed, 3906 insertions, 0 deletions
diff --git a/reference/0.INTRO.txt b/reference/0.INTRO.txt
new file mode 100644
index 0000000..242fd54
--- /dev/null
+++ b/reference/0.INTRO.txt
@@ -0,0 +1,94 @@
+These are the objects that come with the zexy-external
+
+============================ DSP~ ===============================
+
+---------------------------- IO~ --------------------------------
+sfplay play back (multi-channel) soundfiles
+sfrecord record (multichannel) soundfiles
+
+------------------------ generators~ ----------------------------
+dirac~ dirac-pulse
+step~ unity step
+noish~ downsampled noise (hold)
+noisi~ downsampled noise (interpolate)
+
+------------------------ processing~ ----------------------------
+limiter~ a limiter/compressor module
+quantize~ quantizes signals
+swap~ bytes swap a 16bit-signal
+blockmirror~ time-reverse a signal-vector (1,2,...,64 -> 64,63,...,1)
+blockswap~ swap the upper and lower half of a signal-vector
+z~ samplewise delay
+
+------------------------- analytic~ -----------------------------
+sigzero~ detects whether a signal is zero throughout the vector or not
+pdf~ probability density function
+envrms~ like env~, but outputting rms instead of dB
+avg~ arithmetic mean of 1 signal-vector
+tavg~ arithmetic mean between two bangs
+dfreq~ frequency detector
+
+------------------------- sigbinops~ ----------------------------
+>~, <~, ==~, &&~, ||~ logical operators
+abs~ absolute value of a signal
+sgn~ signum of a signal
+
+--------------------------- misc~ -------------------------------
+nop~ no-operation
+pack~ convert a signal to a list of floats
+unpack~ convert a list of floats to a signal
+multiline~ multiply a number of signals with scalars (interpolated)
+multiplex~ multiplex 1-of-n inlets to 1 outlet
+demultiplex~ demultiplex 1 inlet to 1-of-n outlets
+
+
+========================= control ==============================
+
+-------------------------- basic -------------------------------
+nop no-operation
+repeat repeat a message several times
+lister store lists (like "float" for floats)
+repack (re)pack atoms to packages of a given size
+packel get a specified element of a list
+drip extract the atoms of a package (opt. scheduled)
+length get the length of a list
+niagara split 1 packages into 2
+glue append a package to another (glue them together)
+segregate segregate the input to various outlets, depending on the type
+any2list convert "anythings" to "lists"
+list2int cast each float of a list to integer
+atoi ascii to integer
+strcmp compare lists as strings
+list2symbol convert a list into a single symbol
+symbol2list convert a symbol to a list
+fifop list FIFO with priorities
+lifop list LIFO with priorities
+
+------------------------ advanced ------------------------------
+tabdump dump out a table as a list of floats
+tabset set a table with a list of floats
+tabminman get minimum and maximum of a table
+makesymbol concatenate lists to formatted symbols
+date get system date
+time get system time
+index map symbols to indices
+msgfile a powerful "textfile" derivative
+demultiplex demultiplex the input to a specified outlet
+lpt write to the (parallel) port
+operating_system get the current OS
+
+
+-------------------------- maths --------------------------------
+mavg moving average filter for floats
+mean get the mean value of a list of floats
+sum get the sum of a list of floats
+minmax get minimum and maximum of a list of floats
+sort shell-sort a list of floats
+urn unique random numbers
+prime test whether a number is prime or not
+wrap wrap the float-input between to boundaries
+. scalar multiplication of vectors (=lists of floats)
+deg2rad convert between degree and radiant
+rad2deg convert between radiant and degree
+cart2pol, pol2cart, cart2sph, sph2cart, pol2sph, sph2pol convert between coordinate systems (cartesian, polar, shperic)
+
diff --git a/reference/any2list-help.pd b/reference/any2list-help.pd
new file mode 100644
index 0000000..bfd7c15
--- /dev/null
+++ b/reference/any2list-help.pd
@@ -0,0 +1,24 @@
+#N canvas 319 129 450 458 10;
+#X text 113 30 convert "anything" to lists;
+#X text 116 56 pass through the rest;
+#X floatatom 46 229 0 0 0 0 - - -;
+#X symbolatom 46 203 0 0 0 0 - - -;
+#X msg 46 162 this is anything;
+#X msg 46 182 list this is a list;
+#X obj 35 276 print a2l;
+#X text 48 337 to make "anything"s out of lists \, try;
+#X obj 319 339 route list;
+#X msg 319 318 list this is a list;
+#X obj 319 359 print l2a;
+#X obj 48 30 any2list;
+#X text 245 223 alias;
+#X obj 286 223 a2l;
+#X obj 35 256 any2list;
+#X text 356 6 part of zexy;
+#X connect 2 0 14 0;
+#X connect 3 0 14 0;
+#X connect 4 0 14 0;
+#X connect 5 0 14 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 14 0 6 0;
diff --git a/reference/atoi-help.pd b/reference/atoi-help.pd
new file mode 100644
index 0000000..a84b57e
--- /dev/null
+++ b/reference/atoi-help.pd
@@ -0,0 +1,45 @@
+#N canvas 274 494 749 300 10;
+#X obj 125 21 atoi;
+#X text 174 19 convert ascii to integer;
+#X obj 72 178 atoi;
+#X floatatom 72 201 4 0 0 0 - - -;
+#X obj 72 132 makefilename %4d;
+#X symbolatom 72 155 10 0 0 0 - - -;
+#X floatatom 72 110 4 0 0 0 - - -;
+#X floatatom 177 110 4 0 0 0 - - -;
+#X obj 177 132 makefilename 0%d;
+#X floatatom 280 110 4 0 0 0 - - -;
+#X obj 280 132 makefilename 0x%d;
+#X text 74 92 decimal;
+#X text 178 94 octal;
+#X text 280 93 sedecimal;
+#X floatatom 417 109 4 0 0 0 - - -;
+#X obj 417 127 makefilename %d;
+#X floatatom 502 106 4 0 0 0 - - -;
+#X text 506 93 base;
+#X obj 417 146 pack s 2;
+#X msg 417 86 101;
+#X msg 443 86 10011;
+#X text 241 214 symbols starting with "0x" are converted as hex-numbers
+;
+#X text 242 228 symbols starting with "0" are converted as octal numbers
+;
+#X text 241 243 symbols starting with numbers but "0" are converted
+as decimal numbers;
+#X text 360 325 updated for zexy-2.0;
+#X text 360 325 updated for zexy-2.0;
+#X text 539 17 part of zexy;
+#X connect 2 0 3 0;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 10 0 5 0;
+#X connect 14 0 15 0;
+#X connect 15 0 18 0;
+#X connect 16 0 18 1;
+#X connect 18 0 2 0;
+#X connect 19 0 14 0;
+#X connect 20 0 14 0;
diff --git a/reference/avg~-help.pd b/reference/avg~-help.pd
new file mode 100644
index 0000000..451814e
--- /dev/null
+++ b/reference/avg~-help.pd
@@ -0,0 +1,24 @@
+#N canvas 288 18 580 361 10;
+#X floatatom 59 148 0 0 0 0 - - -;
+#X floatatom 59 254 0 0 0 0 - - -;
+#X floatatom 129 255 0 0 0 0 - - -;
+#X obj 59 276 dbtorms;
+#X floatatom 59 299 0 0 0 0 - - -;
+#X text 272 269 see also:;
+#X obj 277 296 env~;
+#X obj 373 296 tavg~;
+#X obj 71 51 avg~;
+#X obj 129 234 avg~;
+#X obj 59 233 env~;
+#X text 155 49 calculates the arithmetic mean of one signal vector
+;
+#X obj 315 296 envrms~;
+#X obj 59 173 osc~ 5512.5;
+#X text 456 11 part of zexy;
+#X connect 0 0 13 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 13 0 9 0;
+#X connect 13 0 10 0;
diff --git a/reference/blockmirror~-help.pd b/reference/blockmirror~-help.pd
new file mode 100644
index 0000000..8dc48ec
--- /dev/null
+++ b/reference/blockmirror~-help.pd
@@ -0,0 +1,84 @@
+#N canvas 425 385 705 533 10;
+#X floatatom 26 203 0 0 0 0 - - -;
+#X msg 118 228 help;
+#X msg 488 83 \; pd dsp 1;
+#N canvas 0 0 450 300 graph5 0;
+#X array scope 100 float 0;
+#X coords 0 1 100 -1 400 300 1;
+#X restore 298 194 graph;
+#X obj 139 314 tabwrite~ scope;
+#X msg 139 289 bang;
+#X text 287 166 note: there will be a break at 64 samples (signal-vector!)
+;
+#X obj 26 227 osc~ 440;
+#X obj 122 198 tgl 15 0 empty empty on/off 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 101 12 blockmirror~;
+#X obj 87 255 blockmirror~;
+#X text 200 13 play back a signal-vector in a time-reversed way!;
+#X floatatom 116 442 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 25 0;
+#X connect 5 0 25 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 26 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 24 0 1 1;
+#X connect 24 0 9 0;
+#X restore 87 470 pd output;
+#X msg 145 442 MUTE;
+#X text 111 423 output amplitude;
+#X text 595 41 part of zexy;
+#X connect 0 0 7 0;
+#X connect 1 0 10 0;
+#X connect 5 0 4 0;
+#X connect 7 0 10 0;
+#X connect 8 0 10 0;
+#X connect 10 0 4 0;
+#X connect 10 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 12 0;
+#X connect 14 0 13 2;
diff --git a/reference/blockswap~-help.pd b/reference/blockswap~-help.pd
new file mode 100644
index 0000000..011372f
--- /dev/null
+++ b/reference/blockswap~-help.pd
@@ -0,0 +1,85 @@
+#N canvas 380 305 705 533 10;
+#X floatatom 26 203 0 0 0 0 - - -;
+#X msg 118 228 help;
+#X msg 404 59 \; pd dsp 1;
+#N canvas 0 0 450 300 graph5 0;
+#X array scope 100 float 0;
+#X coords 0 1 100 -1 400 300 1;
+#X restore 298 194 graph;
+#X obj 139 314 tabwrite~ scope;
+#X msg 139 289 bang;
+#X text 287 166 note: there will be a break at 64 samples (signal-vector!)
+;
+#X obj 87 255 blockswap~;
+#X obj 26 227 osc~ 440;
+#X obj 123 12 blockswap~;
+#X text 200 13 swap upper and lower half of the signal-vector;
+#X obj 122 198 tgl 15 0 empty empty on/off 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 287 151 note: there will be a break at 32 samples (swap!);
+#X floatatom 116 442 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 87 470 pd output;
+#X msg 145 442 MUTE;
+#X text 111 423 output amplitude;
+#X text 477 63 part of zexy;
+#X connect 0 0 8 0;
+#X connect 1 0 7 0;
+#X connect 5 0 4 0;
+#X connect 7 0 4 0;
+#X connect 7 0 14 0;
+#X connect 8 0 7 0;
+#X connect 11 0 7 0;
+#X connect 13 0 14 1;
+#X connect 14 0 13 0;
+#X connect 15 0 14 2;
diff --git a/reference/coordinates-help.pd b/reference/coordinates-help.pd
new file mode 100644
index 0000000..e751b39
--- /dev/null
+++ b/reference/coordinates-help.pd
@@ -0,0 +1,84 @@
+#N canvas 413 385 754 537 10;
+#X text 122 40 convert between SPHeric \, POLar and CARTesian coordinates
+;
+#X obj 99 305 cart2sph;
+#X floatatom 150 286 5 0 0 0 z - -;
+#X floatatom 124 268 5 0 0 0 y - -;
+#X floatatom 99 248 5 0 0 0 x - -;
+#X floatatom 150 366 5 0 0 0 theta - -;
+#X floatatom 124 348 5 0 0 0 phi - -;
+#X floatatom 99 328 5 0 0 0 r - -;
+#X floatatom 150 116 5 0 0 0 z - -;
+#X floatatom 124 98 5 0 0 0 y - -;
+#X floatatom 99 78 5 0 0 0 x - -;
+#X floatatom 150 196 5 0 0 0 z - -;
+#X floatatom 124 178 5 0 0 0 phi - -;
+#X floatatom 99 158 5 0 0 0 r - -;
+#X obj 99 135 cart2pol;
+#X floatatom 353 116 5 0 0 0 z - -;
+#X floatatom 331 98 5 0 0 0 phi - -;
+#X floatatom 309 78 5 0 0 0 r - -;
+#X floatatom 353 196 5 0 0 0 theta - -;
+#X floatatom 331 178 5 0 0 0 phi - -;
+#X floatatom 309 158 5 0 0 0 r - -;
+#X floatatom 360 286 5 0 0 0 z - -;
+#X floatatom 334 268 5 0 0 0 phi - -;
+#X floatatom 309 248 5 0 0 0 r - -;
+#X floatatom 360 366 5 0 0 0 z - -;
+#X floatatom 334 348 5 0 0 0 y - -;
+#X floatatom 309 328 5 0 0 0 x - -;
+#X floatatom 573 286 5 0 0 0 theta - -;
+#X floatatom 551 268 5 0 0 0 phi - -;
+#X floatatom 529 248 5 0 0 0 r - -;
+#X floatatom 573 366 5 0 0 0 z - -;
+#X floatatom 551 348 5 0 0 0 phi - -;
+#X floatatom 529 328 5 0 0 0 r - -;
+#X obj 529 305 sph2pol;
+#X floatatom 580 116 5 0 0 0 theta - -;
+#X floatatom 554 98 5 0 0 0 phi - -;
+#X floatatom 529 78 5 0 0 0 r - -;
+#X floatatom 580 196 5 0 0 0 z - -;
+#X floatatom 554 178 5 0 0 0 y - -;
+#X floatatom 529 158 5 0 0 0 x - -;
+#X obj 529 135 sph2cart;
+#X obj 309 135 pol2sph;
+#X obj 309 305 pol2cart;
+#X text 112 450 angles are given in RADian \, if you want DEGree you
+might want to use [deg2rad] and [rad2deg];
+#X text 599 17 part of zexy;
+#X connect 1 0 7 0;
+#X connect 1 1 6 0;
+#X connect 1 2 5 0;
+#X connect 2 0 1 2;
+#X connect 3 0 1 1;
+#X connect 4 0 1 0;
+#X connect 8 0 14 2;
+#X connect 9 0 14 1;
+#X connect 10 0 14 0;
+#X connect 14 0 13 0;
+#X connect 14 1 12 0;
+#X connect 14 2 11 0;
+#X connect 15 0 41 2;
+#X connect 16 0 41 1;
+#X connect 17 0 41 0;
+#X connect 21 0 42 2;
+#X connect 22 0 42 1;
+#X connect 23 0 42 0;
+#X connect 27 0 33 2;
+#X connect 28 0 33 1;
+#X connect 29 0 33 0;
+#X connect 33 0 32 0;
+#X connect 33 1 31 0;
+#X connect 33 2 30 0;
+#X connect 34 0 40 2;
+#X connect 35 0 40 1;
+#X connect 36 0 40 0;
+#X connect 40 0 39 0;
+#X connect 40 1 38 0;
+#X connect 40 2 37 0;
+#X connect 41 0 20 0;
+#X connect 41 1 19 0;
+#X connect 41 2 18 0;
+#X connect 42 0 26 0;
+#X connect 42 1 25 0;
+#X connect 42 2 24 0;
diff --git a/reference/date-help.pd b/reference/date-help.pd
new file mode 100644
index 0000000..b3cdeb2
--- /dev/null
+++ b/reference/date-help.pd
@@ -0,0 +1,42 @@
+#N canvas 683 311 421 483 10;
+#X obj 71 203 date;
+#X msg 71 174 bang;
+#X floatatom 94 350 0 0 0 0 - - -;
+#X floatatom 82 374 0 0 0 0 - - -;
+#X floatatom 71 401 0 0 0 0 - - -;
+#X msg 285 173 bang;
+#X floatatom 336 347 0 0 0 0 - - -;
+#X floatatom 310 373 0 0 0 0 - - -;
+#X floatatom 285 400 0 0 0 0 - - -;
+#X obj 285 202 date GMT;
+#X obj 73 26 date;
+#X text 91 79 get the system date;
+#X text 175 373 month;
+#X text 179 399 year;
+#X text 70 151 local;
+#X text 294 153 GMT;
+#X floatatom 124 240 0 0 0 0 - - -;
+#X floatatom 112 264 0 0 0 0 - - -;
+#X floatatom 101 291 0 0 0 0 - - -;
+#X floatatom 366 237 0 0 0 0 - - -;
+#X floatatom 340 263 0 0 0 0 - - -;
+#X floatatom 315 290 0 0 0 0 - - -;
+#X text 170 239 daylight-saving;
+#X text 179 267 day of year;
+#X text 180 293 day of week;
+#X text 180 349 day of month;
+#X text 316 6 part of zexy;
+#X connect 0 0 4 0;
+#X connect 0 1 3 0;
+#X connect 0 2 2 0;
+#X connect 0 3 18 0;
+#X connect 0 4 17 0;
+#X connect 0 5 16 0;
+#X connect 1 0 0 0;
+#X connect 5 0 9 0;
+#X connect 9 0 8 0;
+#X connect 9 1 7 0;
+#X connect 9 2 6 0;
+#X connect 9 3 21 0;
+#X connect 9 4 20 0;
+#X connect 9 5 19 0;
diff --git a/reference/demultiplex-help.pd b/reference/demultiplex-help.pd
new file mode 100644
index 0000000..dfcc1b5
--- /dev/null
+++ b/reference/demultiplex-help.pd
@@ -0,0 +1,42 @@
+#N canvas 425 439 709 294 10;
+#X obj 51 171 demux 1 2 3 4;
+#X obj 51 91 metro 320;
+#X obj 51 111 t b b;
+#X obj 51 130 random 100;
+#X msg 51 69 1;
+#X msg 76 69 0;
+#X floatatom 135 147 0 0 0 0 - - -;
+#X obj 51 239 print output0;
+#X obj 135 129 random 4;
+#X obj 75 222 print outpu1;
+#X obj 99 205 print outp2;
+#X obj 124 188 print out3;
+#X msg 51 150 bet \$1;
+#X text 231 10 demultiplex the inlet to the specified output;
+#X obj 111 12 demultiplex;
+#X obj 315 236 demux;
+#X text 271 237 alias;
+#X text 303 159 the number of arguments defines the number of outlets
+;
+#X text 277 81 the right inlet specifies \, to which outlet the left
+inlet is routed;
+#X text 280 119 outlets number from 0..(n-1);
+#X text 549 33 part of zexy;
+#X text 263 174 even though this seems to be a bit weird \, this makes
+patches more readable (as the object becomes wider if it has more outlets)
+;
+#X text 268 140 creation: "demultiplex [<out1?> [<out2?> [<out3?> ...
+]]]";
+#X connect 0 0 7 0;
+#X connect 0 1 9 0;
+#X connect 0 2 10 0;
+#X connect 0 3 11 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 8 0;
+#X connect 3 0 12 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 0 1;
+#X connect 8 0 6 0;
+#X connect 12 0 0 0;
diff --git a/reference/demultiplex~-help.pd b/reference/demultiplex~-help.pd
new file mode 100644
index 0000000..6f43fd6
--- /dev/null
+++ b/reference/demultiplex~-help.pd
@@ -0,0 +1,34 @@
+#N canvas 301 479 635 302 12;
+#X obj 72 139 sig~ 1;
+#X floatatom 110 93 4 0 0 0 - - -;
+#X obj 71 229 env~;
+#X floatatom 71 255 4 0 0 0 - - -;
+#X text 428 109 alias;
+#X obj 71 193 demultiplex~ . . . . .;
+#X obj 113 229 env~;
+#X floatatom 113 255 4 0 0 0 - - -;
+#X obj 156 230 env~;
+#X floatatom 156 256 4 0 0 0 - - -;
+#X obj 199 229 env~;
+#X floatatom 199 255 4 0 0 0 - - -;
+#X obj 242 227 env~;
+#X floatatom 242 253 4 0 0 0 - - -;
+#X text 156 94 select an outlet;
+#X obj 75 23 demultiplex~;
+#X text 210 22 demultiplex 1 signal to 1-of-n outlets;
+#X obj 480 110 demux~;
+#X text 154 174 the number of arguments specifies the number of outlets
+;
+#X text 513 3 part of zexy;
+#X connect 0 0 5 0;
+#X connect 1 0 5 0;
+#X connect 2 0 3 0;
+#X connect 5 0 2 0;
+#X connect 5 1 6 0;
+#X connect 5 2 8 0;
+#X connect 5 3 10 0;
+#X connect 5 4 12 0;
+#X connect 6 0 7 0;
+#X connect 8 0 9 0;
+#X connect 10 0 11 0;
+#X connect 12 0 13 0;
diff --git a/reference/dfreq~-help.pd b/reference/dfreq~-help.pd
new file mode 100644
index 0000000..1f033f3
--- /dev/null
+++ b/reference/dfreq~-help.pd
@@ -0,0 +1,20 @@
+#N canvas 441 541 598 301 10;
+#X obj 61 163 dfreq~;
+#X obj 61 133 osc~ 440;
+#X obj 61 231 print~;
+#X msg 96 208 bang;
+#X obj 85 28 dfreq~;
+#X text 146 27 a frequency detector that counts zero-crossings;
+#X floatatom 61 109 0 0 0 0 - - -;
+#X text 182 104 every zero-crossing the frequency-estimation is updated
+\, therefore this estimation is given as a signal...;
+#X text 179 170 this detector won't work properly on complex signals
+(e.g. zero-crossings should not be caused by higher partials);
+#X text 177 205 on the other hand \, this is much cheaper than fft's
+or fiddle...;
+#X text 503 7 part of zexy;
+#X text 183 265 thanks to w.ritsch for this one;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X connect 3 0 2 0;
+#X connect 6 0 1 0;
diff --git a/reference/digidistort-help.pd b/reference/digidistort-help.pd
new file mode 100644
index 0000000..2a876da
--- /dev/null
+++ b/reference/digidistort-help.pd
@@ -0,0 +1,170 @@
+#N canvas 390 139 803 782 10;
+#X obj 99 529 swap~;
+#X text 172 515 byte-swap the signal;
+#X text 214 164 quantize a signal with a variable step-number;
+#X text 171 533 this object first converts the signal to 16bit \, then
+swaps upper and lower byte.;
+#X text 117 11 objects~ that are distorting in a very "digital" way
+;
+#X msg 128 113 8bit;
+#X msg 128 89 16bit;
+#X msg 128 66 float;
+#X floatatom 129 42 0 0 0 0 - - -;
+#X msg 122 441 0;
+#X msg 122 417 1;
+#X msg 121 466 bang;
+#X obj 35 136 osc~ 440;
+#X floatatom 35 112 0 0 0 0 - - -;
+#X obj 96 164 quantize~ 16;
+#X obj 35 496 osc~ 440;
+#X floatatom 35 472 0 0 0 0 - - -;
+#X msg 121 491 help;
+#X msg 127 137 help;
+#X msg 404 59 \; pd dsp 1;
+#N canvas 0 0 450 300 graph5 0;
+#X array scope 100 float 0;
+#X coords 0 1 100 -1 400 300 1;
+#X restore 298 194 graph;
+#X obj 148 223 tabwrite~ scope;
+#X msg 148 198 bang;
+#X obj 178 634 tabwrite~ scope;
+#X msg 178 609 bang;
+#X text 161 466 toggle;
+#X text 154 416 on;
+#X text 156 440 off;
+#X floatatom 129 695 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl2;
+#X obj 199 100 s \$0master-lvl2;
+#X obj 338 210 s \$0master-lvl2;
+#X obj 397 92 r \$0master-lvl2;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 25 0;
+#X connect 5 0 25 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 26 0 1 1;
+#X connect 26 0 9 0;
+#X restore 100 723 pd output;
+#X msg 158 695 MUTE;
+#X text 124 676 output amplitude;
+#X floatatom 125 301 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 24 0;
+#X connect 5 0 24 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 26 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 96 329 pd output;
+#X msg 154 301 MUTE;
+#X text 120 282 output amplitude;
+#X text 657 13 part of zexy;
+#X connect 0 0 23 0;
+#X connect 0 0 29 0;
+#X connect 5 0 14 0;
+#X connect 6 0 14 0;
+#X connect 7 0 14 0;
+#X connect 8 0 14 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 14 0 21 0;
+#X connect 14 0 33 0;
+#X connect 15 0 0 0;
+#X connect 16 0 15 0;
+#X connect 17 0 0 0;
+#X connect 18 0 14 0;
+#X connect 22 0 21 0;
+#X connect 24 0 23 0;
+#X connect 28 0 29 1;
+#X connect 29 0 28 0;
+#X connect 30 0 29 2;
+#X connect 32 0 33 1;
+#X connect 33 0 32 0;
+#X connect 34 0 33 2;
diff --git a/reference/dirac~-help.pd b/reference/dirac~-help.pd
new file mode 100644
index 0000000..6d0e755
--- /dev/null
+++ b/reference/dirac~-help.pd
@@ -0,0 +1,47 @@
+#N canvas 484 494 564 290 10;
+#X obj 123 230 dirac~;
+#X floatatom 95 186 0 0 0 0 - - -;
+#X obj 95 208 t b f;
+#X obj 123 253 print~;
+#X text 40 30 dirac~ ::;
+#X text 40 60 IN :;
+#X text 115 30 produces a unit:sample:sequence;
+#X text 114 61 define the nth sample after the float::bang:message
+for the unit:sample to take place;
+#X text 98 165 position;
+#N canvas 0 0 765 385 application 0;
+#X obj 75 82 t b b b;
+#X msg 119 104 \; pd dsp 1;
+#X obj 97 139 dirac~;
+#X floatatom 181 141 0 0 0 0 - - -;
+#X obj 97 181 tabwrite~ unit::response;
+#N canvas 0 0 450 300 graph1 0;
+#X array unit::response 64 float 0;
+#X coords 0 1 63 -1 400 300 1;
+#X restore 358 25 graph;
+#X msg 70 283 \; unit::response resize 64;
+#X text 32 353 we thought it useful to have a tool that would be able
+to easily plot the unit::response of a system;
+#X text 111 61 press me;
+#X msg 75 61 bang;
+#X obj 97 160 hip~ 5000;
+#X connect 0 0 4 0;
+#X connect 0 1 2 0;
+#X connect 0 2 1 0;
+#X connect 2 0 10 0;
+#X connect 3 0 10 1;
+#X connect 9 0 0 0;
+#X connect 10 0 4 0;
+#X restore 270 148 page application;
+#X obj 53 208 t f b;
+#X msg 53 187 2;
+#X msg 185 225 2;
+#X text 462 7 part of zexy;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 0 0;
+#X connect 10 0 3 0;
+#X connect 10 1 0 0;
+#X connect 11 0 10 0;
+#X connect 12 0 3 0;
diff --git a/reference/drip-help.pd b/reference/drip-help.pd
new file mode 100644
index 0000000..7015729
--- /dev/null
+++ b/reference/drip-help.pd
@@ -0,0 +1,75 @@
+#N canvas 139 0 872 747 10;
+#X msg 30 108 come on \, my house;
+#X obj 30 210 print UNFOLDED;
+#X msg 48 135 1 two tre quatre 5 se;
+#X text 72 10 drip;
+#X obj 30 183 drip;
+#X text 311 104 drip is like a medical drip - you can adjust the drop-speed
+;
+#X obj 316 198 drip 1000;
+#X obj 316 218 print DROP;
+#X msg 316 152 this is that slow;
+#X floatatom 365 179 0 0 0 0 - - -;
+#X text 439 545 drip without arguments will do no scheduling (this
+is: output all the atoms at once);
+#X text 424 182 drop-delay in [ms];
+#X obj 36 599 drip;
+#X obj 95 601 drip 0;
+#X msg 36 548 5 4 3 2 1 ready go;
+#X obj 36 569 t l l;
+#X obj 95 639 print SCHEDULED;
+#X obj 36 661 print DESCHEDUL;
+#X obj 248 592 drip -10;
+#X obj 248 621 print DESCHED;
+#X msg 248 556 bang;
+#X text 44 27 unfolds a package to a sequence;
+#X text 43 50 since you can switch to scheduled mode \, this might
+be used to reduce CPU-load;
+#X text 530 672 see also :;
+#X obj 602 674 repack;
+#X obj 35 299 t l l b;
+#X obj 181 350 t l l;
+#X obj 181 309 del 250;
+#X msg 35 280 list some atoms could be saved while others;
+#X msg 181 329 list might get lost;
+#X obj 35 422 print TIGHT;
+#X obj 171 413 print LOOSE;
+#X obj 35 403 pipe s 1500;
+#X text 411 309 creation:;
+#X text 475 309 "drip [<n> [flush]]";
+#X text 447 397 <n> is the initial drop-delay in [ms];
+#X text 442 333 "flush" indicates whether non-empty buffers should
+be flushed when a new package arrives or not.;
+#X text 443 362 default is no_flush;
+#X text 447 430 n==0 will DO scheduling (and is therefore somewhat
+"slower" than without arguments;
+#X text 445 415 default is NO scheduling;
+#X text 446 465 negative values for <n> turn off scheduling;
+#X obj 35 375 drip 200 flush;
+#X obj 171 375 drip 200;
+#X text 717 13 part of;
+#X obj 776 13 zexy;
+#X connect 0 0 4 0;
+#X connect 2 0 4 0;
+#X connect 4 0 1 0;
+#X connect 6 0 7 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 1;
+#X connect 12 0 17 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 15 0 12 0;
+#X connect 15 1 13 0;
+#X connect 18 0 19 0;
+#X connect 20 0 18 0;
+#X connect 25 0 41 0;
+#X connect 25 1 42 0;
+#X connect 25 2 27 0;
+#X connect 26 0 41 0;
+#X connect 26 1 42 0;
+#X connect 27 0 29 0;
+#X connect 28 0 25 0;
+#X connect 29 0 26 0;
+#X connect 32 0 30 0;
+#X connect 41 0 32 0;
+#X connect 42 0 31 0;
diff --git a/reference/envrms~-help.pd b/reference/envrms~-help.pd
new file mode 100644
index 0000000..469886e
--- /dev/null
+++ b/reference/envrms~-help.pd
@@ -0,0 +1,29 @@
+#N canvas 366 497 580 361 10;
+#X obj 71 51 envrms~;
+#X text 174 51 an envelope follower that outputs rms instead of dB
+;
+#X obj 59 172 sig~ 3;
+#X floatatom 59 148 0 0 0 0 - - -;
+#X obj 59 233 env~;
+#X floatatom 59 254 0 0 0 0 - - -;
+#X floatatom 129 255 0 0 0 0 - - -;
+#X obj 129 234 envrms~;
+#X text 177 93 (i found it very often quite annoying \, to get dB all
+the times \, and i wouldn't use snapshot~ instead);
+#X obj 59 276 dbtorms;
+#X floatatom 59 299 0 0 0 0 - - -;
+#X text 179 172 of course \, this is cheaper than using env~ + dbtorms
+;
+#X text 272 269 see also:;
+#X obj 277 296 env~;
+#X obj 315 296 avg~;
+#X obj 354 296 tavg~;
+#X msg 484 217 \; pd dsp 1;
+#X text 479 17 part of zexy;
+#X connect 2 0 7 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 0;
+#X connect 5 0 9 0;
+#X connect 7 0 6 0;
+#X connect 9 0 10 0;
diff --git a/reference/fifop-help.pd b/reference/fifop-help.pd
new file mode 100644
index 0000000..b1546c0
--- /dev/null
+++ b/reference/fifop-help.pd
@@ -0,0 +1,38 @@
+#N canvas 432 159 587 516 10;
+#X text 471 31 part of;
+#X obj 533 30 zexy;
+#X msg 58 85 1 2 3 4 5;
+#X msg 69 110 list a list;
+#X msg 81 137 5;
+#X msg 199 97 bang;
+#X floatatom 200 133 5 0 0 1 priority - -;
+#X text 45 61 input lists;
+#X text 50 400 priorities can be floating-point numbers (1.8 has a
+higher priority then 10);
+#X obj 58 192 fifop;
+#X text 47 18 fifop:: First-In-First-Out stack with Priorities;
+#X text 247 80 bang to output the first list that came in \; bang again
+to output the second list \; and so on;
+#X text 54 263 [fifop] manages a number of FIFO-stacks \; each stack
+has a priority value assigned \; the lower the value \, the higher
+the priority;
+#X text 52 310 banging the object will first empty the FIFO with the
+highest priority \, then the FIFO with the second highest priority
+and so on \, until the FIFO with the lowest priority is emptied.;
+#X text 51 368 when all FIFOs are emptied \, nothing will come out
+of the object any more.;
+#X obj 58 223 print FIFO;
+#X text 52 445 note: you can store any number of lists into the [fifop]
+\, but just pushing lists on the stack without popping them back will
+eat your memory.;
+#X msg 201 159 info;
+#X text 247 158 query the number of arguments in the LIFO;
+#X obj 156 209 print info;
+#X connect 2 0 9 0;
+#X connect 3 0 9 0;
+#X connect 4 0 9 0;
+#X connect 5 0 9 0;
+#X connect 6 0 9 1;
+#X connect 9 0 15 0;
+#X connect 9 1 19 0;
+#X connect 17 0 9 0;
diff --git a/reference/glue-help.pd b/reference/glue-help.pd
new file mode 100644
index 0000000..a888c69
--- /dev/null
+++ b/reference/glue-help.pd
@@ -0,0 +1,22 @@
+#N canvas 243 428 595 456 10;
+#X obj 111 58 glue;
+#X text 171 58 glue together 2 packages (append \, prepend \, ...)
+;
+#X msg 95 147 1 2 3;
+#X msg 127 174 4 you and me;
+#X obj 95 274 print;
+#X obj 277 270 print;
+#X msg 277 154 bang;
+#X msg 317 154 symbol click;
+#X text 104 335 creation argument: preset the second inlet;
+#X msg 51 179 bang;
+#X obj 95 210 glue;
+#X obj 277 206 glue and stick;
+#X text 490 14 part of zexy;
+#X connect 2 0 10 0;
+#X connect 3 0 10 1;
+#X connect 6 0 11 0;
+#X connect 7 0 11 0;
+#X connect 9 0 10 0;
+#X connect 10 0 4 0;
+#X connect 11 0 5 0;
diff --git a/reference/index-help.pd b/reference/index-help.pd
new file mode 100644
index 0000000..6f1417e
--- /dev/null
+++ b/reference/index-help.pd
@@ -0,0 +1,128 @@
+#N canvas 13 96 1051 669 10;
+#X msg 33 374 help;
+#X floatatom 682 190 0 0 128 0 - - -;
+#X msg 58 185 add alias;
+#X msg 58 203 add bind;
+#X msg 58 221 add break;
+#X msg 58 240 add built-in;
+#X msg 58 259 add case;
+#X msg 642 417 delete bind;
+#X msg 642 435 delete break;
+#X msg 642 454 delete built-in;
+#X msg 642 473 delete case;
+#X obj 514 287 symbol;
+#X msg 533 267 case;
+#X msg 533 248 built-in;
+#X msg 533 229 break;
+#X msg 533 211 bind;
+#X msg 533 193 alias;
+#X obj 514 305 send 2index;
+#X obj 61 431 receive 2index;
+#X obj 630 511 send 2index;
+#X obj 44 297 send 2index;
+#X text 522 156 get item index;
+#X text 516 170 (evt. add new item);
+#X text 33 154 add new item to map;
+#X text 640 360 delete item from map;
+#X text 128 39 creation : "index [<n> [<auto>]]";
+#X msg 642 399 delete alias;
+#X text 162 73 auto :: 1_sets auto ON \, 0_sets auto OFF (default off)
+;
+#X text 705 14 part of zexy;
+#X floatatom 61 573 0 0 0 0 - - -;
+#X symbolatom 121 572 0 0 0 0 - - -;
+#X obj 61 552 route float symbol;
+#X obj 196 552 print INDEX;
+#X obj 682 294 send 2index;
+#X text 673 168 query an item at index #;
+#X text 61 9 index:: create a symbol->int map;
+#X text 164 59 n :: initial max. number of elements in list (default:
+128);
+#X obj 460 7 index;
+#N canvas 0 0 849 372 administrative 0;
+#X obj 61 268 outlet;
+#X msg 61 77 reset;
+#X text 50 58 clear map;
+#X msg 103 155 auto \$1;
+#X obj 103 134 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 156 205 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 156 226 resize \$1;
+#X text 174 116 in AUTO mode \, unknown symbols are automatically added
+to the map \;;
+#X text 175 143 in NON-AUTO mode (default) \, only ADDed symbols (eg.
+"add <symbol>") are added to the map;
+#X text 235 197 normally \, the map will resize automatically if it
+gets to small. you can prevent it from resizing by sending a "resize
+0" message.;
+#X connect 1 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X restore 187 450 pd administrative;
+#N canvas 0 0 673 455 advanced 0;
+#X obj 76 298 outlet;
+#X msg 90 109 dump;
+#X msg 111 251 sort;
+#X msg 76 56 bang;
+#X text 124 56 output the number of stored entries;
+#X text 128 109 dump each entry in the format "list <symbol> <index>"
+;
+#X msg 114 161 compact;
+#X text 173 161 compact the entries \, so there are no holes in the
+map;
+#X text 159 253 sort the elements alphabetically;
+#X text 172 198 this does not produce any immediate output!;
+#X text 177 179 (e.g. "1 ... foo \, 3 ... bar" --> "1 ... foo \, 2
+... bar");
+#X text 156 270 (e.g. "1 ... foo \, 2 ... bar" --> "1 ... bar \, 2
+... foo");
+#X text 161 288 this does not produce any immediate output!;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 6 0 0 0;
+#X restore 190 480 pd advanced;
+#X text 320 450 open subpatch for administrative messages;
+#X text 320 480 open subpatch for advanced messages;
+#X obj 61 507 index 10 1;
+#X obj 210 299 send 2index;
+#X text 199 156 add new item to map at index#;
+#X msg 224 187 add foo 7;
+#X msg 231 221 add bar 2;
+#X text 205 168 (if that slot is still free);
+#X obj 824 514 send 2index;
+#X text 834 363 delete item at index# from map;
+#X msg 824 402 delete 6;
+#X text 88 123 "0" indicates success \; "-1" indicates an error;
+#X text 45 105 NOTE: indices start counting from "1" !!!;
+#X connect 0 0 42 0;
+#X connect 1 0 33 0;
+#X connect 2 0 20 0;
+#X connect 3 0 20 0;
+#X connect 4 0 20 0;
+#X connect 5 0 20 0;
+#X connect 6 0 20 0;
+#X connect 7 0 19 0;
+#X connect 8 0 19 0;
+#X connect 9 0 19 0;
+#X connect 10 0 19 0;
+#X connect 11 0 17 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 0;
+#X connect 14 0 11 0;
+#X connect 15 0 11 0;
+#X connect 16 0 11 0;
+#X connect 18 0 42 0;
+#X connect 26 0 19 0;
+#X connect 31 0 29 0;
+#X connect 31 1 30 0;
+#X connect 31 2 32 0;
+#X connect 38 0 42 0;
+#X connect 39 0 42 0;
+#X connect 42 0 31 0;
+#X connect 45 0 43 0;
+#X connect 46 0 43 0;
+#X connect 50 0 48 0;
diff --git a/reference/length-help.pd b/reference/length-help.pd
new file mode 100644
index 0000000..e5ce4f0
--- /dev/null
+++ b/reference/length-help.pd
@@ -0,0 +1,17 @@
+#N canvas 231 541 421 294 10;
+#X obj 77 40 length;
+#X text 141 43 get the length of a list;
+#X obj 72 186 length;
+#X floatatom 72 206 4 0 0 0 - - -;
+#X msg 72 109 list these are 4 elements;
+#X msg 83 128 1 2 3;
+#X msg 95 155 auralization by wave field synthesis;
+#X msg 25 113 bang;
+#X floatatom 14 146 4 0 0 0 - - -;
+#X text 324 19 part of zexy;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 0;
+#X connect 8 0 2 0;
diff --git a/reference/lifop-help.pd b/reference/lifop-help.pd
new file mode 100644
index 0000000..822e564
--- /dev/null
+++ b/reference/lifop-help.pd
@@ -0,0 +1,38 @@
+#N canvas 2 165 568 508 10;
+#X text 471 31 part of;
+#X obj 533 30 zexy;
+#X obj 58 192 lifop;
+#X msg 58 85 1 2 3 4 5;
+#X msg 69 110 list a list;
+#X msg 81 137 5;
+#X msg 199 107 bang;
+#X floatatom 200 143 5 0 0 1 priority - -;
+#X text 45 61 input lists;
+#X text 247 90 bang to output the last list that came in \; bang again
+to output the second last list \; and so on;
+#X obj 58 223 print LIFO;
+#X text 47 18 lifop:: Last-In-First-Out stack with Priorities;
+#X text 54 263 [lifop] manages a number of LIFO-stacks \; each stack
+has assigned a priority value \; the lower the value \, the higher
+the priority;
+#X text 52 312 banging the object will first empty the LIFO with the
+highest priority \, then the LIFO with the second highest priority
+until the LIFO with the lowest priority is emptied.;
+#X text 52 363 when all LIFOs are emptied \, nothing will come out
+of the object any more.;
+#X text 50 400 priorities can be floating-point numbers (1.8 has a
+higher priority then 10);
+#X text 52 445 note: you can store any number of lists into the [fifop]
+\, but just pushing lists on the stack without popping them back will
+eat your memory.;
+#X msg 200 167 info;
+#X obj 112 203 print info;
+#X text 247 168 query the number of arguments in the LIFO;
+#X connect 2 0 10 0;
+#X connect 2 1 18 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 7 0 2 1;
+#X connect 17 0 2 0;
diff --git a/reference/limiter~-help.pd b/reference/limiter~-help.pd
new file mode 100644
index 0000000..99f8df2
--- /dev/null
+++ b/reference/limiter~-help.pd
@@ -0,0 +1,296 @@
+#N canvas 354 454 851 449 10;
+#X text 189 15 limiter;
+#X text 187 25 ========;
+#N canvas 0 0 591 391 creation 0;
+#X text 211 152 creates a default limiter (MONO \, 9-samples-buffer)
+;
+#X text 213 189 creates a limiter(MONO \, 10ms-buffer);
+#X text 213 223 creates a limiter (multichannel \, 9-samples-buffer)
+;
+#X text 216 256 creates a limiter (multichannel \, 1ms-buffer !!);
+#X text 82 17 "limiter [<bufsize>] [<in1> [<in2> [...]]]";
+#X text 148 70 creating inlets depends ONLY on the number of arguments
+\, not on the arguments themselves... !;
+#X text 218 313 creates a limiter (multichannel \, 9-samples-buffer)
+;
+#X text 113 187 ______________;
+#X text 89 150 _________________;
+#X text 145 220 _________;
+#X text 114 254 ______________;
+#X text 199 311 __;
+#X obj 23 151 limiter~;
+#X obj 23 185 limiter~ 10;
+#X obj 22 219 limiter~ 0 1 2 3;
+#X obj 22 253 limiter~ 1 2;
+#X obj 18 310 limiter~ We need 4 inlets;
+#X restore 39 322 page creation;
+#N canvas 62 0 762 828 modes 0;
+#X text -189 189 MODE 0 : 1-treshold-limiter;
+#X text -191 384 MODE 1 : 2-tresholds-limiter;
+#X msg 232 255 print;
+#X obj 186 316 limiter~;
+#X obj 209 141 limiter~;
+#X msg 273 123 help;
+#X msg 272 104 print;
+#X msg 209 32 mode 0;
+#X msg 272 31 LIMIT;
+#X msg 209 50 mode 1;
+#X msg 272 49 CRACK;
+#X msg 209 67 mode 2;
+#X msg 272 66 COMPRESS;
+#X text 342 48 crack limiter (2 tresholds);
+#X text 342 66 compressor (1 treshold);
+#X text 351 102 context status;
+#X text 252 30 ==;
+#X text 251 49 ==;
+#X text 250 68 ==;
+#X msg 247 302 LIMIT;
+#X obj 247 286 loadbang;
+#X text 341 30 normal limiter (1 treshold) [default];
+#X msg 231 459 print;
+#X obj 183 522 limiter~;
+#X obj 244 492 loadbang;
+#X msg 244 508 CRACK;
+#X msg 217 716 print;
+#X obj 230 760 loadbang;
+#X text -185 590 MODE 2 : compressor;
+#X msg 230 776 COMPRESS;
+#X msg 222 629 ratio 0.5;
+#X text 329 628 set compress-ratio (0.5 == 1:2);
+#X text 329 605 set the treshold \, where the compressor should start
+to compress;
+#X text 352 677 set the compressor (limit/treshold/ratio);
+#X text 331 655 set limit/holdtime/releasetime at once;
+#X text 333 717 view actual settings;
+#X text 337 459 view actual settings;
+#X msg 234 188 limit 90;
+#X msg 234 211 set 105 40 150;
+#X msg 232 404 set 105 40 150;
+#X msg 235 426 set2 120 1 10;
+#X msg 221 654 set 110 40 150;
+#X msg 221 611 treshold 10;
+#X msg 220 677 compress 96 88 0.5;
+#X text 328 591 set the output-limit;
+#X msg 221 593 limit 98;
+#X text 338 254 view actual settings;
+#X text 339 212 set limit/holdtime/releasetime at once;
+#X text 339 185 set output limit;
+#X obj 169 790 limiter~;
+#X text 335 404 set limiter1 (output-limit/hold-time/release-time)
+;
+#X text -260 621 the output signal will never become louder than the
+specified output-limit.;
+#X text -260 653 if the input-signal becomes loader than the input-treshold
+\, a compressor will start working \, compressing the dynamic range
+by the specified ratio. Signals lesser than the treshold will pass
+through uncompressed.;
+#X text -231 59 set the limiter~ to one of the 3 modes;
+#X text 334 380 set both limits;
+#X text -259 210 this is simple : the output will not become bigger
+than the specified limit. When the input becomes small enough again
+so that this condition is matched even without (positive) amplification
+(this is \, when the input signal level falls below the limit) \, the
+amplification will increase gradually (depending on hold- & release-time)
+towards 1;
+#X text 334 427 set limiter2 (input-treshold/hold-time/release-time)
+;
+#X msg 232 381 limits 100 108;
+#X text -260 414 this limiter can be used to handle disgusting things
+like cracks \, which are much louder than the "normal" musical signal.
+Typically hold- and release-times for the second limiter are far smaller
+than those for the first \, to ensure that the disturbance will pass
+quite fast (since the crack would disturb the sensation anyhow \, we
+do not care much about the distortion caused by a fast limiter). The
+treshold for the 2nd limiter must be greater than the ouput-limit (if
+not \, the limiter will be reset to MODE 0);
+#X text -257 298 all levels (limts/tresholds) should be given in dB
+to produce satisfying results (following pd's agreement on the deziBel-scale
+\, 100dB are equal to 1 \, 0dB equals 0 \, ...);
+#X text 354 123 context(!) help;
+#X connect 2 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 9 0 4 0;
+#X connect 10 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 4 0;
+#X connect 19 0 3 0;
+#X connect 20 0 19 0;
+#X connect 22 0 23 0;
+#X connect 24 0 25 0;
+#X connect 25 0 23 0;
+#X connect 26 0 49 0;
+#X connect 27 0 29 0;
+#X connect 29 0 49 0;
+#X connect 30 0 49 0;
+#X connect 37 0 3 0;
+#X connect 38 0 3 0;
+#X connect 39 0 23 0;
+#X connect 40 0 23 0;
+#X connect 41 0 49 0;
+#X connect 42 0 49 0;
+#X connect 43 0 49 0;
+#X connect 45 0 49 0;
+#X connect 57 0 23 0;
+#X restore 184 321 page modes;
+#X msg 398 249 print;
+#X obj 445 319 *~;
+#X obj 476 319 *~;
+#X floatatom 476 199 0 0 0 2 left - -;
+#X floatatom 562 200 0 0 0 2 right - -;
+#X floatatom 520 181 0 0 0 2 both - -;
+#X obj 476 266 limiter~ 50 1;
+#N canvas 0 153 455 493 tabwrite 0;
+#N canvas 0 0 450 300 graph1 0;
+#X array array1 32768 float 0;
+#X coords 0 1 32767 -1 200 140 1;
+#X restore 130 196 graph;
+#X obj 111 63 inlet~;
+#X msg 214 78 \; array1 resize 32768;
+#X obj 111 85 tabwrite~ array1;
+#X obj 151 64 bang~;
+#X obj 214 59 loadbang;
+#X obj 337 88 block~ 32768 8;
+#X connect 1 0 3 0;
+#X connect 4 0 3 0;
+#X connect 5 0 2 0;
+#X restore 372 408 pd tabwrite;
+#X obj 382 341 env~;
+#X floatatom 382 359 4 0 0 0 - - -;
+#X text 30 304 to learn more about this object \, try these;
+#X text 48 371 http://iem.kug.ac.at/~zmoelnig;
+#N canvas 59 76 600 400 generator~ 0;
+#X obj 86 49 inlet;
+#X obj 252 54 inlet;
+#X obj 112 229 outlet~;
+#X obj 112 185 *~;
+#X obj 151 185 *~;
+#X obj 122 128 osc~ 440;
+#X obj 151 145 osc~ 689.062;
+#X obj 112 163 line~;
+#X obj 167 162 line~;
+#X msg 167 128 \$1 100;
+#X msg 112 111 \$1 100;
+#X obj 86 97 f;
+#X obj 252 98 f;
+#X obj 154 229 outlet~;
+#X obj 86 72 dbtorms;
+#X obj 252 78 dbtorms;
+#X connect 0 0 14 0;
+#X connect 1 0 15 0;
+#X connect 3 0 2 0;
+#X connect 4 0 13 0;
+#X connect 5 0 3 1;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X connect 8 0 4 1;
+#X connect 9 0 8 0;
+#X connect 10 0 7 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 14 0 11 0;
+#X connect 15 0 12 0;
+#X restore 476 221 pd generator~;
+#X text 37 99 it is quite important to delay the original signals before
+the limiter-amplification is applied to prevent clicks !!!;
+#X text 52 353 1906:forum::für::umläute:2001;
+#X text 36 41 limiter will output the amplification-factor that has
+to be applied on all INlet~s to get a beautiful limited multichannel-signal
+that preserves the balance between the channels;
+#X text 585 170 level of the inlets;
+#X text 511 148 (give some 190dB and notice no clipping);
+#X obj 493 298 z~ 64;
+#X obj 445 299 z~ 64;
+#X text 539 17 part of zexy;
+#X floatatom 496 354 0 0 100 0 - - -;
+#N canvas 159 26 532 285 output 0;
+#X obj 348 160 t b;
+#X obj 348 110 f;
+#X obj 348 60 inlet;
+#X text 354 29 mute;
+#X obj 348 185 f;
+#X msg 436 180 0;
+#X msg 348 85 bang;
+#X obj 348 135 moses 1;
+#X obj 407 110 moses 1;
+#X obj 133 148 dbtorms;
+#X obj 20 155 inlet~;
+#X obj 239 41 inlet;
+#X text 239 18 level;
+#X msg 146 65 set \$1;
+#X obj 146 90 outlet;
+#X msg 254 65 \; pd dsp 1;
+#X obj 133 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 133 173 pack 0 50;
+#X text 20 132 audio;
+#X text 146 114 show level;
+#X obj 436 155 t b;
+#X obj 20 181 hip~ 1;
+#X obj 133 42 r \$0master-lvl;
+#X obj 80 155 inlet~;
+#X obj 80 207 *~;
+#X obj 80 181 hip~ 1;
+#X obj 239 105 s \$0master-lvl;
+#X obj 407 85 r \$0master-lvl;
+#X obj 348 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 30 0;
+#X connect 5 0 30 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 22 0;
+#X connect 8 1 4 1;
+#X connect 9 0 19 0;
+#X connect 10 0 23 0;
+#X connect 11 0 15 0;
+#X connect 11 0 28 0;
+#X connect 13 0 14 0;
+#X connect 16 0 17 1;
+#X connect 16 0 26 1;
+#X connect 17 0 18 0;
+#X connect 19 0 16 0;
+#X connect 22 0 5 0;
+#X connect 23 0 17 0;
+#X connect 24 0 9 0;
+#X connect 24 0 13 0;
+#X connect 25 0 27 0;
+#X connect 26 0 18 1;
+#X connect 27 0 26 0;
+#X connect 29 0 1 1;
+#X connect 29 0 8 0;
+#X restore 458 382 pd output;
+#X msg 534 355 MUTE;
+#X text 37 132 this is \, because the limiter algorithm needs some
+time (e.g. the outcoming signal is delayed by some samples) \; directly
+multiplying would therefore be a bit too late \, in case a spike appears.
+Adding a small delay takes care of this psychoacoustically (you won't
+here the click);
+#X text 532 300 just a small delay of 64 samples;
+#X text 531 44 updated for zexy-2.0;
+#X connect 4 0 10 0;
+#X connect 5 0 26 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 6 0 26 1;
+#X connect 7 0 16 0;
+#X connect 8 0 16 1;
+#X connect 9 0 7 0;
+#X connect 9 0 8 0;
+#X connect 10 0 6 0;
+#X connect 10 0 5 1;
+#X connect 12 0 13 0;
+#X connect 16 0 10 0;
+#X connect 16 0 23 0;
+#X connect 16 1 10 1;
+#X connect 16 1 22 0;
+#X connect 22 0 6 1;
+#X connect 23 0 5 0;
+#X connect 25 0 26 2;
+#X connect 26 0 25 0;
+#X connect 27 0 26 3;
diff --git a/reference/list2int-help.pd b/reference/list2int-help.pd
new file mode 100644
index 0000000..607183e
--- /dev/null
+++ b/reference/list2int-help.pd
@@ -0,0 +1,18 @@
+#N canvas 265 308 612 302 12;
+#X obj 106 246 print;
+#X msg 141 139 3.14159 2 hello 1;
+#X msg 150 170 gosh 2.3 1;
+#X obj 106 212 list2int;
+#X text 145 23 list to integer;
+#X text 98 49 cast all floats of a list to integers;
+#X msg 106 110 1 2 -1.567 3 2;
+#X text 238 110 list of floats;
+#X text 304 139 list with symbols;
+#X obj 412 248 l2i;
+#X text 365 248 alias;
+#X text 451 15 part of zexy;
+#X text 248 169 not really a list;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 6 0 3 0;
diff --git a/reference/list2symbol-help.pd b/reference/list2symbol-help.pd
new file mode 100644
index 0000000..c7f2fe3
--- /dev/null
+++ b/reference/list2symbol-help.pd
@@ -0,0 +1,32 @@
+#N canvas 14 156 817 446 10;
+#X obj 135 48 list2symbol;
+#X text 228 49 convert a list into a symbol;
+#X obj 457 50 l2s;
+#X symbolatom 75 286 0 0 0 0 - - -;
+#X msg 75 97 list this was a list and is now a symbol;
+#X msg 159 118 anythings work fine too;
+#X obj 507 288 print;
+#X symbolatom 147 223 10 0 0 0 - - -;
+#X msg 147 158 symbol --;
+#X text 230 157 by default \, list-elements are separated by spaces.
+You can set the separator to any symbol;
+#X text 536 31 part of zexy;
+#X msg 156 201 symbol;
+#X obj 75 258 list2symbol;
+#X text 222 203 even to a zero-length symbol!;
+#X msg 507 247 my bonnie is over the ovean;
+#X obj 507 268 l2s .;
+#X text 537 61 updated for zexy-2.2;
+#X text 554 270 argument: default delimiter;
+#X text 316 326 in prior versions of [list2symbol] \, the default delimiter
+was not settable via arguments \; instead the arguments denoted the
+incoming list. this has changed!!!!;
+#X text 321 302 Attention:;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 7 0 12 1;
+#X connect 8 0 7 0;
+#X connect 11 0 7 0;
+#X connect 12 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 6 0;
diff --git a/reference/lister-help.pd b/reference/lister-help.pd
new file mode 100644
index 0000000..c9b4ec8
--- /dev/null
+++ b/reference/lister-help.pd
@@ -0,0 +1,47 @@
+#N canvas 385 348 685 518 10;
+#X obj 110 16 lister;
+#X text 160 17 - store a list;
+#X msg 41 132 bang;
+#X text 76 133 outputs a list;
+#X text 288 180 sets and outputs a list;
+#X text 243 336 creation argument initializes a list;
+#X obj 18 381 print;
+#X text 291 16 alias;
+#X obj 331 16 l;
+#X msg 232 315 2 3 5 7 11 prime;
+#X obj 41 336 lister 1 2 3 4 5 6 7 ordinal;
+#X msg 62 180 1 1 2 3 5 8 13 21 44 fibonacchi;
+#X text 64 77 of course \, this is similar to the "pack" object \,
+but here we handle list-lenghts dynamically and do not care about type
+checking !!!;
+#X text 40 434 of course \, this should be named "list" \, but there
+already appears to be a "list" object \, though i don't see any use
+in it;
+#X obj 443 440 list 1 two trois;
+#X text 40 473 it seems to store 1 atom only;
+#X obj 67 381 list2symbol;
+#X symbolatom 67 403 0 0 0 0 output: - -;
+#X msg 91 260 one 2 3 four;
+#X msg 96 283 list one 2 3 four;
+#X text 228 283 works;
+#X text 193 260 does NOT work (check console for error);
+#X text 353 315 right inlet sets a list without outputting;
+#X text 94 222 lists of mixed-type work but if any list starts with
+a symbol \, you need to cast it as a list:;
+#X msg 77 199 1 two three 4;
+#X msg 51 161 7 8 9;
+#X text 64 53 similar to:;
+#X obj 154 52 float;
+#X obj 202 52 int;
+#X obj 237 52 symbol;
+#X text 497 29 part of zexy;
+#X connect 2 0 10 0;
+#X connect 9 0 10 1;
+#X connect 10 0 6 0;
+#X connect 10 0 16 0;
+#X connect 11 0 10 0;
+#X connect 16 0 17 0;
+#X connect 18 0 10 0;
+#X connect 19 0 10 0;
+#X connect 24 0 10 0;
+#X connect 25 0 10 0;
diff --git a/reference/lpt-help.pd b/reference/lpt-help.pd
new file mode 100644
index 0000000..d9f461d
--- /dev/null
+++ b/reference/lpt-help.pd
@@ -0,0 +1,44 @@
+#N canvas 173 205 772 508 10;
+#X text 129 36 write data to the (parallel) port;
+#X text 75 390 parallel ports 0 \, 1 \, 2;
+#X text 289 394 another port;
+#X obj 81 305 % 256;
+#X floatatom 81 283 4 0 0 0 - - -;
+#X text 122 284 write an 8bit-word;
+#X obj 90 33 lpt;
+#X obj 81 337 lpt 1;
+#X obj 81 411 lpt 0;
+#X obj 120 411 lpt 1;
+#X obj 159 411 lpt 2;
+#X obj 294 415 lpt 0x378;
+#X text 521 30 part of zexy;
+#X text 82 70 this does not work on osX (as there is no parallel port)
+;
+#X text 79 194 if your port-address exceeds 0x3ff \, "lpt" will try
+to get all permissions with the iopl()-command. this might be dangerous
+!;
+#X text 79 160 you can access all ports on your system when using "lpt
+<hex-port-address>";
+#N canvas 0 0 631 406 windows 0;
+#X text 32 16 To get it running under WinNT/2000/XP a special kernel
+driver is needed. These systems do not allow direct access to I/O ports.
+;
+#X text 53 207 If you ever whish to remove the kernel driver start
+the programm again and click 'Stop'.;
+#X text 54 242 Under Win95/98/Me all this is not needed!!!;
+#X text 52 272 Good Luck!;
+#X text 54 141 The subfolder 'UserPort' contains a kernel driver that
+handles the I/O stuff. Just copy the file UserPort.sys into %WINDIR%/system32/drivers
+(e.g. C:/WinNT/system32/drivers) and run the program UserPort.exe.
+Click on 'Start' and then 'Exit'.;
+#X text 175 112 ftp://iem.at/DOSen/UserPort/;
+#X text 172 82 http://www.embeddedtronics.com/public/Electronics/minidaq/..
+../userport;
+#X text 49 79 downloads:;
+#X text 267 326 thanks to Olaf Matthes for this;
+#X restore 292 94 pd windows;
+#X text 78 94 windoze users shoud read this:;
+#X text 79 122 linux users might have to be root to get write-permissions
+on your specified port.;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
diff --git a/reference/makesymbol-help.pd b/reference/makesymbol-help.pd
new file mode 100644
index 0000000..1e6fd10
--- /dev/null
+++ b/reference/makesymbol-help.pd
@@ -0,0 +1,85 @@
+#N canvas 382 48 796 839 10;
+#X obj 57 15 makesymbol;
+#X text 152 13 makesymbol is something between the "symbol" and the
+"makefilename" object.;
+#X text 57 42 Any list (with up to 10 members) on the first input will
+be applied on a C-like format-string that can be either given as an
+argument on the second input or as a creation-argument.;
+#X obj 59 281 makesymbol;
+#X obj 61 591 makesymbol %s_is_%s;
+#X msg 14 260 bang;
+#X msg 11 380 bang;
+#X msg 10 570 bang;
+#X msg 232 260 symbol cat;
+#X msg 65 222 symbol horse;
+#X msg 69 247 symbol cow;
+#X obj 58 401 makesymbol house;
+#X msg 67 370 symbol castle;
+#X msg 232 235 symbol %ss;
+#X symbolatom 233 210 0 0 0 0 - - -;
+#X symbolatom 59 196 0 0 0 0 - - -;
+#X symbolatom 200 340 0 0 0 0 - - -;
+#X msg 71 568 list conan back;
+#X floatatom 128 521 0 0 0 0 - - -;
+#X obj 61 546 pack s 12;
+#X msg 69 498 symbol eleven;
+#X msg 200 359 symbol %d;
+#X msg 200 378 symbol %s;
+#X text 288 380 only %s does;
+#X text 278 357 %d \, %f... won't work properly;
+#X text 321 255 if the right inlet (mask) does not have any format-tags
+\, the left one won't get through !!;
+#X floatatom 61 458 0 0 0 0 - - -;
+#X text 177 473 it doesn't matter whether you are using numbers \,
+symbols...;
+#X text 235 567 note:: every member of the list will be converted to
+a STRING \, so there's no use \, using %d \, %f...;
+#X floatatom 58 340 0 0 0 0 - - -;
+#X text 317 367 (at least \, you won't get what you normally want)
+;
+#X symbolatom 92 427 25 0 0 0 - - -;
+#X symbolatom 72 306 25 0 0 0 - - -;
+#X symbolatom 80 619 25 0 0 0 - - -;
+#X symbolatom 58 166 0 0 0 0 - - -;
+#X text 58 98 The result will always be a symbol.;
+#X msg 58 118 list you can have up to ten members in your list.;
+#X obj 58 142 makesymbol 1%s_2%s_3%s_4%s_5%s_6%s_7%s_8%s_9%s_10%s;
+#X obj 19 426 print B;
+#X obj 10 618 print C;
+#X obj 13 305 print A;
+#X obj 61 478 makefilename %d;
+#X text 551 18 part of zexy;
+#X text 25 719 a personal ntoe: this object is somewhat obsoleted \;
+use the following instead:;
+#X obj 167 742 makefilename;
+#X obj 167 772 l2s;
+#X text 260 741 (plain pd!);
+#X text 260 775 (zexy);
+#X connect 3 0 32 0;
+#X connect 3 0 40 0;
+#X connect 4 0 33 0;
+#X connect 4 0 39 0;
+#X connect 5 0 3 0;
+#X connect 6 0 11 0;
+#X connect 7 0 4 0;
+#X connect 8 0 3 1;
+#X connect 9 0 3 0;
+#X connect 10 0 3 0;
+#X connect 11 0 31 0;
+#X connect 11 0 38 0;
+#X connect 12 0 11 0;
+#X connect 13 0 3 1;
+#X connect 14 0 3 1;
+#X connect 15 0 3 0;
+#X connect 16 0 11 1;
+#X connect 17 0 4 0;
+#X connect 18 0 19 1;
+#X connect 19 0 4 0;
+#X connect 20 0 19 0;
+#X connect 21 0 11 1;
+#X connect 22 0 11 1;
+#X connect 26 0 41 0;
+#X connect 29 0 11 0;
+#X connect 36 0 37 0;
+#X connect 37 0 34 0;
+#X connect 41 0 19 0;
diff --git a/reference/matchbox-help.pd b/reference/matchbox-help.pd
new file mode 100644
index 0000000..5812348
--- /dev/null
+++ b/reference/matchbox-help.pd
@@ -0,0 +1,68 @@
+#N canvas 80 59 728 623 10;
+#X text 68 47 you can store a number of lists by sending them to its
+right inlet.;
+#X text 50 23 [matchbox] - retrieve matching lists;
+#X text 67 76 when you send a list to the left inlet of [matchbox]
+\, it will be compared to each stored list \; any matches will be send
+to the first output of [matchbox]. the number of matches is sent to
+the 2nd outlet.;
+#X text 69 141 there are several matching algorithms available. you
+can choose between them via the "mode" message or by providing an argument
+at object creation.;
+#X text 70 185 currently available matching-modes:;
+#X text 90 204 '==': only matches if lists are exactly equal;
+#X text 90 216 'OSC': list-atoms are compared using OSC-pattern matching
+;
+#X obj 205 384 matchbox;
+#X floatatom 248 405 5 0 0 1 num_results - -;
+#X obj 205 439 print results;
+#X msg 248 351 list this is my string \, list this is your string \,
+list this was my string;
+#X text 278 385 default is exact matching;
+#X msg 205 256 list this is my string;
+#X msg 218 275 list this is no string;
+#X msg 233 295 list this is * string;
+#X msg 119 312 mode ==;
+#X msg 120 330 mode OSC;
+#X msg 110 407 clear;
+#X msg 111 450 dump;
+#X text 37 395 delete all stored lists;
+#X text 35 438 output all stored lists;
+#X floatatom 240 595 5 0 0 1 num_results - -;
+#X msg 240 551 list this is my string \, list this is your string \,
+list this was my string;
+#X msg 173 480 list this is my string;
+#X obj 173 578 matchbox OSC;
+#X obj 173 613 print OSCresults;
+#X msg 201 513 list this *s * string;
+#X msg 186 496 list this is * string;
+#X obj 240 535 loadbang;
+#X obj 248 335 loadbang;
+#X text 301 336 add lists to the pool;
+#X text 52 294 change matching mode;
+#X text 90 228 'regex': list-atoms are compared using regular expression
+pattern-matching;
+#X msg 120 350 mode regex;
+#X msg 247 313 list this .+ my string;
+#X text 394 295 an OSC pattern;
+#X text 394 314 a regular expression;
+#X connect 7 0 9 0;
+#X connect 7 1 8 0;
+#X connect 10 0 7 1;
+#X connect 12 0 7 0;
+#X connect 13 0 7 0;
+#X connect 14 0 7 0;
+#X connect 15 0 7 0;
+#X connect 16 0 7 0;
+#X connect 17 0 7 0;
+#X connect 18 0 7 0;
+#X connect 22 0 24 1;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 24 1 21 0;
+#X connect 26 0 24 0;
+#X connect 27 0 24 0;
+#X connect 28 0 22 0;
+#X connect 29 0 10 0;
+#X connect 33 0 7 0;
+#X connect 34 0 7 0;
diff --git a/reference/mavg-help.pd b/reference/mavg-help.pd
new file mode 100644
index 0000000..3d08d03
--- /dev/null
+++ b/reference/mavg-help.pd
@@ -0,0 +1,17 @@
+#N canvas 404 326 452 302 12;
+#X obj 119 132 metro 100;
+#X obj 119 155 random 10;
+#X floatatom 119 235 4 0 0 0 - - -;
+#X msg 120 107 1;
+#X msg 153 108 0;
+#X obj 119 202 mavg 4;
+#X floatatom 220 181 4 0 0 0 - - -;
+#X text 59 20 moving average filter;
+#X text 261 181 samples to average;
+#X text 277 47 part of zexy;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 2 0;
+#X connect 6 0 5 1;
diff --git a/reference/minmax-help.pd b/reference/minmax-help.pd
new file mode 100644
index 0000000..676a5ba
--- /dev/null
+++ b/reference/minmax-help.pd
@@ -0,0 +1,13 @@
+#N canvas 369 451 561 303 10;
+#X obj 73 61 minmax;
+#X text 127 60 get minimum and maximum of a (list of floats);
+#X obj 45 152 minmax;
+#X floatatom 45 184 4 0 0 0 - - -;
+#X floatatom 76 184 4 0 0 0 - - -;
+#X msg 45 112 10 2;
+#X msg 80 129 1 2 3 4 9 6 -1 7;
+#X text 352 14 part of zexy;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
diff --git a/reference/msgfile-help.pd b/reference/msgfile-help.pd
new file mode 100644
index 0000000..5631435
--- /dev/null
+++ b/reference/msgfile-help.pd
@@ -0,0 +1,177 @@
+#N canvas 94 78 859 363 10;
+#X obj 443 239 print done;
+#X text 72 260 see also:;
+#X msg 443 39 bang;
+#X text 334 293 this outlet gets the lines in sequence.;
+#X obj 73 9 msgfile;
+#X text 127 9 read and write messages into text files;
+#X obj 406 201 msgfile;
+#X obj 133 261 textfile;
+#X text 18 57 The msgfile object is derived from the textfile object
+and expands its features.;
+#X text 15 97 new features are :;
+#X text 127 110 insert \, append \, delete \, replace;
+#X text 492 36 output one line as a list and move to the next;
+#X text 90 201 add2 : read "add too" \; append to an existing line
+;
+#X text 508 222 This outlet gets a bang when you hit the end of the
+sequence \; it will also get the current position when using "when"
+;
+#X text 127 97 end \, goto \, skip;
+#X text 131 127 flush \, where \, this \, prev \, next;
+#X text 128 145 find;
+#X text 73 163 read/write can handle csv files too;
+#X text 618 7 part of zexy;
+#N canvas 347 164 646 300 navigation 0;
+#X obj 54 272 outlet;
+#X msg 91 140 rewind;
+#X text 140 139 go to beginning;
+#X msg 92 163 end;
+#X text 139 163 go the the end;
+#X msg 92 214 skip -1;
+#X msg 92 238 where;
+#X text 145 237 where are we now ?;
+#X text 146 214 go to the <n>th line from here;
+#X text 142 188 go to line number <n>;
+#X msg 92 189 goto 8;
+#X text 44 38 navigating through the lines of a [msgfile];
+#X text 42 62 these messages will not output any data;
+#X text 41 80 'where' will output the position of the "cursor" at the
+2nd outlet of [msgfile];
+#X connect 1 0 0 0;
+#X connect 3 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 10 0 0 0;
+#X restore 443 84 pd navigation;
+#N canvas 0 0 458 426 data 0;
+#X obj 54 332 outlet;
+#X msg 105 143 bang;
+#X msg 103 231 next;
+#X msg 102 189 prev;
+#X msg 103 210 this;
+#X text 154 140 output one line as a list and move to the next;
+#X text 151 189 output the previous line;
+#X text 153 229 output the next line;
+#X text 151 209 output the current line;
+#X msg 104 264 flush;
+#X text 153 263 output all lines;
+#X text 39 37 get the contents of the [msgfile] line-by-line;
+#X text 37 63 'prev' \, 'this' \, 'next' and 'flush' will not alter
+the current "cursor" position.;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 9 0 0 0;
+#X restore 443 64 pd data retrieval;
+#N canvas 0 0 669 573 editing 0;
+#X obj 54 512 outlet;
+#X msg 137 101 clear;
+#X msg 140 481 set 2 4 6 8;
+#X text 246 480 clear and then add one message;
+#X msg 136 258 add cis boom bah;
+#X msg 136 277 add2 bang;
+#X text 190 102 empty the object;
+#X msg 137 161 delete 2;
+#X text 272 303 insert a message before the current line;
+#X text 238 255 add a message at the end of the object;
+#X msg 137 359 append after the break of dawn;
+#X text 331 356 add a message at the current position;
+#X msg 138 437 replace the new day;
+#X text 330 437 replace the current line;
+#X msg 136 306 insert before sunrise;
+#X msg 136 325 insert2 inserted;
+#X msg 137 378 append2 appendix;
+#X msg 137 141 delete;
+#X text 191 142 delete the current line;
+#X text 194 161 delete the specified line;
+#X msg 137 180 delete 4 7;
+#X text 205 181 delete the specified region;
+#X msg 137 200 delete 7 4;
+#X text 208 200 delete all but the specified region;
+#X text 56 39 editing (adding \, modifying \, deleting) the content
+if the [msgfile];
+#X text 237 275 add to the last line (INCOMPATIBLE with [textfile])
+;
+#X text 275 325 add to the previous line (INCOMPATIBLE with [textfile])
+;
+#X text 330 379 add to the current line (INCOMPATIBLE with [textfile])
+;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 7 0 0 0;
+#X connect 10 0 0 0;
+#X connect 12 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 0 0;
+#X connect 16 0 0 0;
+#X connect 17 0 0 0;
+#X connect 20 0 0 0;
+#X connect 22 0 0 0;
+#X restore 443 104 pd editing;
+#N canvas 0 21 576 302 searching 0;
+#X obj 54 272 outlet;
+#X msg 70 180 find test 6;
+#X msg 70 239 find test * 7 *;
+#X text 73 61 searching (and finding) lines within the [msgfile];
+#X text 177 241 you can use '*' as a wildchard for a single atom. '*'
+is the only wildcard supported;
+#X text 174 178 find a matching list \, starting at the current position
+;
+#X msg 72 208 find the new day;
+#X text 76 130 if the search fails \, a 'bang' is emitted at the 2nd
+outlet;
+#X text 77 99 if the searched list is found \, then the linenumber
+and the list is output (via the 2nd and 1st outlet).;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 6 0 0 0;
+#X restore 443 124 pd searching;
+#N canvas 0 0 853 402 file-i/o 0;
+#X obj 54 312 outlet;
+#X text 265 75 read a file;
+#X text 299 96 write one;
+#X text 305 164 write a file \, terminating lines only with carriage
+return (omitting semicolons.) You can read files this way too \, in
+which case carriage returns are mapped to semicolons.;
+#X msg 87 76 read msgfile.txt;
+#X msg 87 168 write /tmp/msgfile2.txt cr;
+#X msg 87 191 read msgfile2.txt cr;
+#X msg 87 97 write /tmp/msgfile.txt;
+#X text 51 26 reading from and writing the contents of [msgfile] to
+files;
+#X msg 111 248 write /tmp/msgfile3.txt $$;
+#X text 331 238 on writing replace every occurence of $$ with a single
+$. This way you can write pd-patches which can handle arguments.;
+#X msg 146 291 add #X obj f $\$1;
+#X msg 92 130 read2 msgfile.txt;
+#X text 264 131 read file and append it to the current buffer;
+#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 9 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 0;
+#X restore 443 144 pd file-i/o;
+#N canvas 0 0 450 397 misc 0;
+#X obj 84 282 outlet;
+#X msg 84 112 print;
+#X text 40 72 miscellaneous functionality of [msgfile];
+#X text 126 114 debugging printout of the contents to the console;
+#X connect 1 0 0 0;
+#X restore 443 164 pd misc;
+#X obj 406 267 print data;
+#X text 9 183 incompatible with [textfile] :;
+#X connect 2 0 6 0;
+#X connect 6 0 25 0;
+#X connect 6 1 0 0;
+#X connect 19 0 6 0;
+#X connect 20 0 6 0;
+#X connect 21 0 6 0;
+#X connect 22 0 6 0;
+#X connect 23 0 6 0;
+#X connect 24 0 6 0;
diff --git a/reference/multiline~-help.pd b/reference/multiline~-help.pd
new file mode 100644
index 0000000..6f6ccb6
--- /dev/null
+++ b/reference/multiline~-help.pd
@@ -0,0 +1,65 @@
+#N canvas 262 397 898 508 10;
+#X obj 67 53 multiline~;
+#X text 209 55 line~d multiplication of multiple signals;
+#X obj 47 201 sig~ 1;
+#X obj 96 201 sig~ 10;
+#X floatatom 57 281 4 0 0 0 - - -;
+#X floatatom 154 282 4 0 0 0 - - -;
+#X msg 153 181 0 -1;
+#X obj 57 261 avg~;
+#X obj 154 262 avg~;
+#X floatatom 215 208 4 0 0 0 - - -;
+#X text 252 209 line-time;
+#X floatatom 121 129 4 0 0 0 - - -;
+#X text 157 132 multiply all signals with the same value;
+#X obj 57 223 multiline~ 1 2 50;
+#X msg 154 154 2 1;
+#X obj 452 235 multiline~ 1 1 1 1 1000;
+#X obj 452 253 avg~;
+#X floatatom 452 272 4 0 0 0 - - -;
+#X obj 452 193 sig~ 1;
+#X obj 496 253 avg~;
+#X floatatom 496 272 4 0 0 0 - - -;
+#X obj 496 193 sig~ 1;
+#X obj 540 253 avg~;
+#X floatatom 540 272 4 0 0 0 - - -;
+#X obj 540 193 sig~ 1;
+#X obj 585 254 avg~;
+#X floatatom 585 273 4 0 0 0 - - -;
+#X obj 585 194 sig~ 1;
+#X msg 653 171 0 0 0 0;
+#X msg 653 207 1 0 2 0;
+#X msg 653 189 0 1 0 2;
+#X msg 653 225 1 1;
+#X text 49 397 creation:;
+#X obj 121 400 multiline~ g1 g2 g3 ... g<n> fade-time;
+#X text 194 166 gain1 gain2 ...;
+#X text 397 394 will make <n> outlets and (n+2) inlets (1 extra for
+the gain-list \, 1 extra for the fade-time);
+#X text 551 18 part of zexy;
+#X connect 2 0 13 0;
+#X connect 3 0 13 1;
+#X connect 6 0 13 2;
+#X connect 7 0 4 0;
+#X connect 8 0 5 0;
+#X connect 9 0 13 3;
+#X connect 11 0 13 2;
+#X connect 13 0 7 0;
+#X connect 13 1 8 0;
+#X connect 14 0 13 2;
+#X connect 15 0 16 0;
+#X connect 15 1 19 0;
+#X connect 15 2 22 0;
+#X connect 15 3 25 0;
+#X connect 16 0 17 0;
+#X connect 18 0 15 0;
+#X connect 19 0 20 0;
+#X connect 21 0 15 1;
+#X connect 22 0 23 0;
+#X connect 24 0 15 2;
+#X connect 25 0 26 0;
+#X connect 27 0 15 3;
+#X connect 28 0 15 4;
+#X connect 29 0 15 4;
+#X connect 30 0 15 4;
+#X connect 31 0 15 4;
diff --git a/reference/multiplex-help.pd b/reference/multiplex-help.pd
new file mode 100644
index 0000000..f4611f8
--- /dev/null
+++ b/reference/multiplex-help.pd
@@ -0,0 +1,38 @@
+#N canvas 170 131 827 407 10;
+#X obj 51 91 metro 320;
+#X msg 51 69 1;
+#X msg 76 69 0;
+#X text 271 237 alias;
+#X text 549 33 part of zexy;
+#X obj 111 12 multiplex;
+#X text 231 10 multiplex the selected inlet to the outlet;
+#X text 277 81 the rightmost inlet specifies \, which inlet is routed
+to the outlet;
+#X text 280 119 inlets number from 0..(n-1);
+#X text 268 166 creation: "multiplex [<in1?> [<in2?> [<in3?> ... ]]]"
+;
+#X obj 51 311 mux 1 2 3 4;
+#X text 303 185 the number of arguments defines the number of inlets
+;
+#X obj 315 236 mux;
+#X obj 51 369 print output;
+#X obj 123 240 vradio 15 1 0 4 empty empty select 20 7 0 8 -262144
+-1 -1 3;
+#X obj 51 111 t b b b b;
+#X msg 69 161 bang;
+#X floatatom 51 143 5 0 0 0 - - -;
+#X msg 87 183 list 4 2;
+#X msg 105 211 symbol coppenrath;
+#X connect 0 0 15 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 10 0 13 0;
+#X connect 14 0 10 4;
+#X connect 15 0 17 0;
+#X connect 15 1 16 0;
+#X connect 15 2 18 0;
+#X connect 15 3 19 0;
+#X connect 16 0 10 1;
+#X connect 17 0 10 0;
+#X connect 18 0 10 2;
+#X connect 19 0 10 3;
diff --git a/reference/multiplex~-help.pd b/reference/multiplex~-help.pd
new file mode 100644
index 0000000..aef58e9
--- /dev/null
+++ b/reference/multiplex~-help.pd
@@ -0,0 +1,24 @@
+#N canvas 386 552 637 304 12;
+#X obj 75 23 multiplex~;
+#X obj 72 193 multiplex~ . . . . .;
+#X text 210 23 multiplex 1-of-n signals to 1 outlet;
+#X obj 72 139 sig~ 1;
+#X obj 110 161 sig~ 0.5;
+#X obj 149 137 sig~ 50;
+#X obj 227 158 sig~ 0.1;
+#X floatatom 110 93 4 0 0 0 - - -;
+#X obj 72 229 env~;
+#X floatatom 72 255 4 0 0 0 - - -;
+#X text 156 93 select a signal;
+#X obj 306 262 mux~;
+#X text 254 261 alias;
+#X text 135 214 the number of arguments specifies the number of inlets
+;
+#X text 510 3 part of zexy;
+#X connect 1 0 8 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 1;
+#X connect 5 0 1 2;
+#X connect 6 0 1 4;
+#X connect 7 0 1 0;
+#X connect 8 0 9 0;
diff --git a/reference/niagara-help.pd b/reference/niagara-help.pd
new file mode 100644
index 0000000..d77e0a7
--- /dev/null
+++ b/reference/niagara-help.pd
@@ -0,0 +1,26 @@
+#N canvas 87 562 895 337 10;
+#X floatatom 134 178 0 0 0 0 - - -;
+#X obj 69 206 niagara 12;
+#X obj 69 288 print LEFT;
+#X obj 124 269 print RIGHT;
+#X msg 69 103 1 2 3 4 5 6 7 all good children go to heaven;
+#X obj 159 25 niagara;
+#X text 374 28 divide a package into 2 sub-packages;
+#X text 241 53 creation : "niagara <n>" creates a niagara-fall with
+a rock at point <n>;
+#X text 169 179 where to divide;
+#X text 420 219 note :;
+#X text 467 233 if <anything> is passed \, then 2 <anything>s appear
+at the outputs;
+#X text 467 219 if a <list> is passed \, then 2 <list>s appear at the
+outputs;
+#X msg 90 122 some water will go down on the left side of the rock
+and the rest will come down on the other side;
+#X text 398 105 a list;
+#X text 492 131 not a list \, but works too;
+#X text 679 12 part of zexy;
+#X connect 0 0 1 1;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 4 0 1 0;
+#X connect 12 0 1 0;
diff --git a/reference/noish~-help.pd b/reference/noish~-help.pd
new file mode 100644
index 0000000..549ab0b
--- /dev/null
+++ b/reference/noish~-help.pd
@@ -0,0 +1,81 @@
+#N canvas 258 181 595 441 10;
+#X text 119 43 draws a random number every n samples and interpolates
+between;
+#X text 121 87 DODGE:JERSE::computer:music::c3:9;
+#X floatatom 91 222 0 0 0 0 - - -;
+#X text 85 199 drawing rate in Hz;
+#X obj 132 302 print~;
+#X msg 132 278 bang;
+#X obj 55 321 env~;
+#X floatatom 55 347 0 0 0 0 - - -;
+#X text 223 219 maybe the input should be fixed to signal;
+#X text 45 44 noish~ ::;
+#X text 120 117 the effect is that you get a bandlimited noise of which
+the bandwidth of which can be conrtolled via the drawing:rate without
+having to use expensive filters;
+#X obj 91 245 noish~ 2756.25;
+#X text 493 13 part of zexy;
+#X floatatom 119 352 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 90 380 pd output;
+#X msg 154 350 MUTE;
+#X text 114 333 output amplitude;
+#X connect 2 0 11 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 11 0 4 0;
+#X connect 11 0 6 0;
+#X connect 11 0 14 0;
+#X connect 13 0 14 1;
+#X connect 14 0 13 0;
+#X connect 15 0 14 2;
diff --git a/reference/noisi~-help.pd b/reference/noisi~-help.pd
new file mode 100644
index 0000000..fa1430d
--- /dev/null
+++ b/reference/noisi~-help.pd
@@ -0,0 +1,81 @@
+#N canvas 282 317 518 467 10;
+#X text 45 44 noisi~ ::;
+#X text 119 43 draws a random number every n samples and interpolates
+between;
+#X text 106 87 DODGE:JERSE::computer:music::c3:9;
+#X floatatom 91 222 0 0 0 0 - - -;
+#X text 85 199 drawing rate in Hz;
+#X obj 132 322 print~;
+#X msg 132 298 bang;
+#X obj 55 321 env~;
+#X floatatom 55 347 0 0 0 0 - - -;
+#X text 223 219 maybe the input should be fixed to signal;
+#X text 107 120 the effect is that you get a bandlimited:noise the
+bandwidth of which can be controlled via the drawing:rate without having
+to use expensive filters;
+#X obj 91 244 noisi~ 2756.25;
+#X floatatom 120 372 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 91 400 pd output;
+#X msg 149 372 MUTE;
+#X text 115 353 output amplitude;
+#X text 409 16 part of zexy;
+#X connect 3 0 11 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 11 0 7 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 12 0;
+#X connect 14 0 13 2;
diff --git a/reference/operating_system-help.pd b/reference/operating_system-help.pd
new file mode 100644
index 0000000..825ee50
--- /dev/null
+++ b/reference/operating_system-help.pd
@@ -0,0 +1,20 @@
+#N canvas 594 494 450 300 10;
+#X obj 77 40 operating_system;
+#X text 200 40 which OS are we running;
+#X symbolatom 75 140 10 0 0 0 - - -;
+#X msg 75 72 bang;
+#X obj 75 164 select linux windows macos;
+#X obj 75 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 134 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 193 191 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 75 108 operating_system;
+#X text 293 8 part of zexy;
+#X connect 2 0 4 0;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 4 2 7 0;
+#X connect 8 0 2 0;
diff --git a/reference/packel-help.pd b/reference/packel-help.pd
new file mode 100644
index 0000000..049be17
--- /dev/null
+++ b/reference/packel-help.pd
@@ -0,0 +1,21 @@
+#N canvas 431 458 720 387 10;
+#X obj 48 34 packel;
+#X text 112 33 get the nth element of a package;
+#X msg 62 161 uno dva drei quattre five;
+#X floatatom 105 219 0 0 0 0 - - -;
+#X obj 62 239 packel 3;
+#X obj 62 268 print ELEMENT;
+#X msg 62 307 uno dva drei quattre five;
+#X obj 62 327 packel -2;
+#X obj 62 351 print REVERSE_ELEMENT;
+#X text 275 210 creation: packel [<n>];
+#X text 140 220 n;
+#X text 314 227 n indicates the index of the element to be output;
+#X text 314 245 n==0 ouputs the whole package;
+#X text 314 262 n<0 ouputs the nth-last element;
+#X text 511 26 part of zexy;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 5 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
diff --git a/reference/pack~-help.pd b/reference/pack~-help.pd
new file mode 100644
index 0000000..297e005
--- /dev/null
+++ b/reference/pack~-help.pd
@@ -0,0 +1,34 @@
+#N canvas 420 353 697 479 10;
+#X floatatom 83 92 0 0 0 0 - - -;
+#X obj 83 111 osc~ 689.062;
+#X obj 83 320 unpack 0 0 0;
+#X obj 240 302 print;
+#X floatatom 83 359 0 0 0 0 - - -;
+#X floatatom 150 339 0 0 0 0 - - -;
+#X obj 83 230 t l l;
+#X obj 240 282 spigot;
+#X msg 271 262 1;
+#X msg 297 262 0;
+#X obj 83 300 spigot;
+#X msg 114 280 1;
+#X msg 140 280 0;
+#X obj 83 162 pack~;
+#X text 154 40 pack~;
+#X text 178 65 convert signals to float-packages;
+#X text 368 189 see also;
+#X obj 369 208 unpack~;
+#X text 98 379 1st and 3rd sample of each signal-vector;
+#X text 434 36 part of zexy;
+#X connect 0 0 1 0;
+#X connect 1 0 13 0;
+#X connect 2 0 4 0;
+#X connect 2 2 5 0;
+#X connect 6 0 10 0;
+#X connect 6 1 7 0;
+#X connect 7 0 3 0;
+#X connect 8 0 7 1;
+#X connect 9 0 7 1;
+#X connect 10 0 2 0;
+#X connect 11 0 10 1;
+#X connect 12 0 10 1;
+#X connect 13 0 6 0;
diff --git a/reference/pdf~-help.pd b/reference/pdf~-help.pd
new file mode 100644
index 0000000..4f83277
--- /dev/null
+++ b/reference/pdf~-help.pd
@@ -0,0 +1,27 @@
+#N canvas 220 418 829 485 10;
+#X obj 90 43 pdf~;
+#X text 175 44 probability density function;
+#X obj 14 166 osc~ 440;
+#X msg 97 193 bang;
+#X obj 14 387 tabwrite array99;
+#X obj 14 303 pdf~ 128;
+#X msg 96 246 clear;
+#X msg 97 215 1;
+#X msg 96 269 0;
+#X text 146 260 clear the buffer;
+#X text 140 203 send the pdf to the outlet;
+#X obj 137 387 print;
+#X text 90 302 creation argument : number of steps;
+#X text 227 315 default is 64;
+#N canvas 0 0 450 300 graph1 0;
+#X array array99 128 float 0;
+#X coords 0 1 128 -1 400 300 1;
+#X restore 428 131 graph;
+#X text 532 42 part of zexy;
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 5 0 4 0;
+#X connect 5 0 11 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 0;
diff --git a/reference/prime-help.pd b/reference/prime-help.pd
new file mode 100644
index 0000000..e10f36f
--- /dev/null
+++ b/reference/prime-help.pd
@@ -0,0 +1,22 @@
+#N canvas 525 238 450 300 10;
+#X obj 34 32 prime;
+#X text 82 34 a prime number detector;
+#X floatatom 51 116 8 0 0 0 - - -;
+#X obj 51 147 prime;
+#X msg 51 75 1;
+#X msg 81 75 2;
+#X msg 111 75 3;
+#X msg 142 74 4;
+#X floatatom 51 187 5 0 0 0 - - -;
+#X msg 175 74 11117;
+#X msg 227 74 1.23457e+06;
+#X text 114 193 1 if input is prime \, 0 otherwise;
+#X text 303 9 part of zexy;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 0;
+#X connect 9 0 2 0;
+#X connect 10 0 2 0;
diff --git a/reference/quantize~-help.pd b/reference/quantize~-help.pd
new file mode 100644
index 0000000..aef3127
--- /dev/null
+++ b/reference/quantize~-help.pd
@@ -0,0 +1,87 @@
+#N canvas 388 370 705 533 10;
+#X text 133 66 quantize a signal with a variable step-number;
+#X msg 119 204 8bit;
+#X msg 119 180 16bit;
+#X msg 119 157 float;
+#X floatatom 120 133 0 0 0 0 - - -;
+#X obj 26 227 osc~ 440;
+#X floatatom 26 203 0 0 0 0 - - -;
+#X obj 87 255 quantize~ 16;
+#X msg 118 228 help;
+#X msg 352 132 \; pd dsp 1;
+#N canvas 0 0 450 300 graph5 0;
+#X array scope 100 float 0;
+#X coords 0 1 100 -1 400 300 1;
+#X restore 298 194 graph;
+#X obj 139 314 tabwrite~ scope;
+#X msg 139 289 bang;
+#X obj 56 65 quantize~;
+#X floatatom 117 422 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 88 450 pd output;
+#X msg 146 422 MUTE;
+#X text 112 403 output amplitude;
+#X text 528 15 part of zexy;
+#X connect 1 0 7 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 11 0;
+#X connect 7 0 15 0;
+#X connect 8 0 7 0;
+#X connect 12 0 11 0;
+#X connect 14 0 15 1;
+#X connect 15 0 14 0;
+#X connect 16 0 15 2;
diff --git a/reference/regex-help-help.pd b/reference/regex-help-help.pd
new file mode 100644
index 0000000..962e1b7
--- /dev/null
+++ b/reference/regex-help-help.pd
@@ -0,0 +1,34 @@
+#N canvas 693 231 454 304 10;
+#X msg 91 86 symbol a;
+#X obj 157 245 print DETAILS;
+#X obj 263 243 print NUMBER_OF_DETAILS;
+#X msg 36 89 123;
+#X obj 163 182 regex [0-9]*;
+#X msg 17 113 5;
+#X msg 246 121 regex [a-z];
+#X msg 110 105 symbol A;
+#X msg 245 147 symbol [A-Z];
+#X text 13 48 test cases;
+#X text 238 97 regex patterns;
+#X msg 193 51 case \$1;
+#X obj 194 26 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 253 50 case sensitivity;
+#X msg 73 66 symbol abcABC;
+#X obj 47 245 print RESULT;
+#X floatatom 140 207 5 0 0 0 - - -;
+#X floatatom 261 206 5 0 0 0 - - -;
+#X connect 0 0 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 15 0;
+#X connect 4 0 16 0;
+#X connect 4 1 1 0;
+#X connect 4 2 2 0;
+#X connect 4 2 17 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 1;
+#X connect 11 0 4 0;
+#X connect 12 0 11 0;
+#X connect 14 0 4 0;
diff --git a/reference/regex-help.pd b/reference/regex-help.pd
new file mode 100644
index 0000000..1784583
--- /dev/null
+++ b/reference/regex-help.pd
@@ -0,0 +1,37 @@
+#N canvas 396 157 628 611 10;
+#X floatatom 71 423 0 0 0 0 - - -;
+#X text 426 24 part of zexy;
+#X obj 90 54 regex;
+#X text 147 54 -- check whether a symbol matches a regular expression
+;
+#X symbolatom 235 406 10 0 0 0 - - -;
+#X msg 93 333 list aba Aa Ac;
+#X symbolatom 137 361 10 0 0 0 - - -;
+#X msg 18 337 case \$1;
+#X obj 24 315 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 60 459 print result;
+#X obj 153 498 print details;
+#X obj 188 465 print num;
+#X obj 71 398 regex;
+#X obj 214 374 symbol;
+#X msg 252 335 Ab;
+#X msg 261 364 bA;
+#X msg 265 385 bAc;
+#X msg 213 339 aba;
+#X msg 72 274 list a a a;
+#X connect 4 0 12 1;
+#X connect 5 0 12 0;
+#X connect 6 0 12 0;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 12 0 0 0;
+#X connect 12 0 9 0;
+#X connect 12 1 10 0;
+#X connect 12 2 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 0;
+#X connect 17 0 13 0;
+#X connect 18 0 12 0;
diff --git a/reference/relay-help.pd b/reference/relay-help.pd
new file mode 100644
index 0000000..cc08b55
--- /dev/null
+++ b/reference/relay-help.pd
@@ -0,0 +1,91 @@
+#N canvas 167 7 778 771 12;
+#X text 625 11 part of;
+#X obj 700 10 zexy;
+#X obj 183 223 print x1;
+#X obj 261 223 print x2;
+#X obj 339 223 print x3;
+#X obj 422 223 print x4;
+#X obj 183 195 relay 23 54 1;
+#X msg 183 165 234 345 456;
+#X msg 308 165 23 34 45;
+#X msg 414 165 54 43;
+#X msg 485 165 1 foo bar;
+#X msg 254 257 impeach ringo starr;
+#X obj 191 285 relay big apple;
+#X msg 435 258 apple pie;
+#X msg 191 257 1 2 3;
+#X msg 523 258 big apple pie;
+#X msg 578 165 walk the dog;
+#X text 45 43 Relay checks the first element of a message against each
+of its arguments \, which may be numbers or symbols (but not a mixture
+of the two.);
+#X text 19 195 numeric arguments:;
+#X text 17 285 symbolic arguments:;
+#X obj 157 499 print z1;
+#X obj 233 499 print z2;
+#X msg 124 434 bang;
+#X msg 170 434 list;
+#X msg 213 434 5;
+#X msg 251 434 float 5;
+#X msg 320 434 list 5;
+#X msg 385 434 symbol pie;
+#X msg 560 434 pie;
+#X msg 483 434 list pie;
+#X msg 70 434 1 2 3;
+#X obj 157 471 relay list float symbol bang;
+#X obj 310 499 print z3;
+#X obj 387 499 print z4;
+#X obj 461 499 print z5;
+#X obj 191 315 print y1;
+#X obj 269 315 print y2;
+#X obj 347 315 print y3;
+#X text 76 354 To avoid confusion between \, say \, the number 5 and
+the list contining only the number 5 \, both messages match "float"
+\, and ditto for symbols. An empty list matches "bang". In Pd these
+are all considered special cases of lists.;
+#X text 97 9 - relay messages according to their first element;
+#X obj 43 8 relay;
+#X text 44 93 If a match is found \, the complete(!) message appears
+on the corresponding outlet. If no match \, the message is repeated
+to the last "rejection" outlet. The number of outlets is the number
+of arguments plus one.;
+#X obj 624 581 route;
+#X text 72 616 the only difference is \, that a matching first element
+is NOT stripped from the message.;
+#X text 76 674 (btw \, this help patch has been taken from [route])
+;
+#X text 72 583 [relay] is very similar to pd's built-in object [route]
+;
+#X text 612 564 see also;
+#X text 72 720 NOTE: "relay" as in "mail relay" \, not as in "reed
+relay";
+#X connect 6 0 2 0;
+#X connect 6 1 3 0;
+#X connect 6 2 4 0;
+#X connect 6 3 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 10 0 6 0;
+#X connect 11 0 12 0;
+#X connect 12 0 35 0;
+#X connect 12 1 36 0;
+#X connect 12 2 37 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 16 0 6 0;
+#X connect 22 0 31 0;
+#X connect 23 0 31 0;
+#X connect 24 0 31 0;
+#X connect 25 0 31 0;
+#X connect 26 0 31 0;
+#X connect 27 0 31 0;
+#X connect 28 0 31 0;
+#X connect 29 0 31 0;
+#X connect 30 0 31 0;
+#X connect 31 0 20 0;
+#X connect 31 1 21 0;
+#X connect 31 2 32 0;
+#X connect 31 3 33 0;
+#X connect 31 4 34 0;
diff --git a/reference/repack-help.pd b/reference/repack-help.pd
new file mode 100644
index 0000000..49fb81b
--- /dev/null
+++ b/reference/repack-help.pd
@@ -0,0 +1,25 @@
+#N canvas 364 364 739 549 10;
+#X obj 78 35 repack;
+#X obj 73 303 print;
+#X floatatom 73 120 0 0 0 0 - - -;
+#X msg 73 138 1 2 3 4 5 6 7 8 9 10;
+#X obj 73 265 repack 7;
+#X msg 73 157 hallo;
+#X text 149 33 (re)packs (packages of) floats/symbols/pointers/anythings
+to packages of a (given) size;
+#X msg 120 187 bang;
+#X floatatom 116 235 0 0 0 0 - - -;
+#X text 172 236 set the package-size;
+#X text 173 191 output the currently made package immediately;
+#X obj 56 501 repack 1;
+#X text 118 502 unfolds packages to atoms \; see also;
+#X obj 337 503 drip;
+#X text 72 407 creation:;
+#X text 140 408 "repack <n>" create packages of the length n;
+#X text 582 11 part of zexy;
+#X connect 2 0 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 1;
diff --git a/reference/repeat-help.pd b/reference/repeat-help.pd
new file mode 100644
index 0000000..a3c251c
--- /dev/null
+++ b/reference/repeat-help.pd
@@ -0,0 +1,23 @@
+#N canvas 429 454 599 332 10;
+#X msg 41 151 bang;
+#X msg 62 177 1 1 2 3 5 8 13 21 44 fibonacchi;
+#X obj 160 14 repeat;
+#X text 210 15 - repeat a message several times.;
+#X text 64 53 similar to [until] but doesn't output [bang( but whatever
+comes in;
+#X floatatom 99 237 5 0 0 0 - - -;
+#X text 76 152 repeat bangs;
+#X text 295 179 repeat a list;
+#X text 162 262 creation argument initializes the number of repeats
+;
+#X msg 82 207 set 5;
+#X text 130 208 repeat anything;
+#X obj 41 262 repeat 3;
+#X text 143 236 reset the number of repetitions;
+#X obj 41 303 print repetitio;
+#X text 471 32 part of zexy;
+#X connect 0 0 11 0;
+#X connect 1 0 11 0;
+#X connect 5 0 11 1;
+#X connect 9 0 11 0;
+#X connect 11 0 13 0;
diff --git a/reference/scalarmult-help.pd b/reference/scalarmult-help.pd
new file mode 100644
index 0000000..1b54456
--- /dev/null
+++ b/reference/scalarmult-help.pd
@@ -0,0 +1,74 @@
+#N canvas 296 375 857 589 10;
+#X obj 83 45 .;
+#X text 130 46 scalar multilicaton ("dot");
+#X msg 71 156 1 2 3;
+#X msg 110 182 4 3 2;
+#X obj 71 241 print;
+#X msg 177 157 1 2 3;
+#X msg 235 185 4 3 2;
+#X obj 177 242 print;
+#X obj 177 216 . 10 10 1;
+#X obj 71 215 .;
+#X msg 375 159 1 2 3;
+#X obj 375 244 print;
+#X msg 481 160 1 2 3;
+#X obj 481 245 print;
+#X obj 375 218 . 0;
+#X floatatom 409 193 4 0 0 0 - - -;
+#X obj 481 219 . 7;
+#X floatatom 514 194 4 0 0 0 - - -;
+#X obj 62 456 .;
+#X msg 62 377 1 2 3;
+#X msg 178 378 1 2 3;
+#X obj 178 454 . 0;
+#X text 58 342 these are NOT the same !!;
+#X obj 178 485 print SCAL;
+#X obj 62 485 print VECT;
+#X msg 78 411 2 2 1;
+#X msg 114 437 3;
+#X msg 207 430 2 2 1;
+#X msg 194 407 3;
+#X text 233 406 good;
+#X text 247 430 bad;
+#X text 126 411 good;
+#X text 140 435 bad;
+#X text 420 334 tricky:;
+#X obj 431 453 print;
+#X msg 447 403 1 2 3;
+#X floatatom 431 377 4 0 0 0 - - -;
+#X obj 431 430 .;
+#X obj 536 460 print;
+#X msg 536 414 1 2 3;
+#X obj 536 437 .;
+#X obj 536 392 t b l;
+#X floatatom 536 368 4 0 0 0 - - -;
+#X text 582 393 note that we "cast" the float to list;
+#X text 589 51 part of zexy;
+#X connect 2 0 9 0;
+#X connect 3 0 9 1;
+#X connect 5 0 8 0;
+#X connect 6 0 8 1;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 14 0;
+#X connect 12 0 16 0;
+#X connect 14 0 11 0;
+#X connect 15 0 14 1;
+#X connect 16 0 13 0;
+#X connect 17 0 16 1;
+#X connect 18 0 24 0;
+#X connect 19 0 18 0;
+#X connect 20 0 21 0;
+#X connect 21 0 23 0;
+#X connect 25 0 18 1;
+#X connect 26 0 18 1;
+#X connect 27 0 21 1;
+#X connect 28 0 21 1;
+#X connect 35 0 37 1;
+#X connect 36 0 37 0;
+#X connect 37 0 34 0;
+#X connect 39 0 40 0;
+#X connect 40 0 38 0;
+#X connect 41 0 39 0;
+#X connect 41 1 40 1;
+#X connect 42 0 41 0;
diff --git a/reference/sf-play_record-help.pd b/reference/sf-play_record-help.pd
new file mode 100644
index 0000000..0a500c6
--- /dev/null
+++ b/reference/sf-play_record-help.pd
@@ -0,0 +1,122 @@
+#N canvas 341 307 588 488 10;
+#X obj 436 382 sfplay 2;
+#X obj 38 385 sfrecord 2;
+#X msg 436 200 help;
+#X msg 436 226 open test.raw l;
+#X msg 436 249 start;
+#X msg 485 249 bang;
+#X msg 525 249 1;
+#X msg 436 272 stop;
+#X msg 525 272 0;
+#X msg 436 321 goto 100;
+#X msg 436 298 rewind;
+#X msg 507 356 done;
+#X obj 507 381 print;
+#X msg 38 201 help;
+#X msg 38 250 start;
+#X msg 38 274 stop;
+#X msg 38 298 close;
+#X msg 38 226 open test.raw l;
+#X msg 38 323 bang;
+#X floatatom 38 411 0 0 0 0 - - -;
+#X text 72 411 status (1-recording / 0-not_recording);
+#X obj 45 361 osc~ 100;
+#X obj 113 361 osc~ 578;
+#X msg 436 347 close;
+#X text 122 47 a little harddisk-recording system;
+#X text 77 324 retrigger status-output;
+#X text 261 224 <name> <endianity>;
+#X text 205 226 open;
+#X text 135 385 sfrecord/sfplay <num. of channels>;
+#X text 53 77 this makes it possible to do multi-track recordings;
+#X text 52 92 up to now \, the "sfrecord" only supports .RAW format
+;
+#X text 51 107 "sfplay" can skip any header \, if you know it's size::
+just call "sfplay <num.of.chan> <skip.bytes>;
+#X floatatom 466 428 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 143 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 259 41 inlet;
+#X text 259 18 level;
+#X msg 156 65 set \$1;
+#X obj 156 89 outlet;
+#X msg 274 64 \; pd dsp 1;
+#X obj 143 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 143 171 pack 0 50;
+#X text 20 158 audio;
+#X text 153 110 show level;
+#X obj 143 42 r \$0master-lvl;
+#X obj 259 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X obj 72 181 inlet~;
+#X obj 72 212 *~;
+#X text 70 158 audio;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 17 0 28 1;
+#X connect 18 0 19 0;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X connect 27 0 28 0;
+#X connect 28 0 19 1;
+#X restore 437 456 pd output;
+#X msg 495 428 MUTE;
+#X text 111 423 output amplitude;
+#X text 435 37 part of zexy;
+#X connect 0 0 33 0;
+#X connect 0 1 33 1;
+#X connect 0 2 11 0;
+#X connect 1 0 19 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 12 0;
+#X connect 13 0 1 0;
+#X connect 14 0 1 0;
+#X connect 15 0 1 0;
+#X connect 16 0 1 0;
+#X connect 17 0 1 0;
+#X connect 18 0 1 0;
+#X connect 21 0 1 0;
+#X connect 22 0 1 1;
+#X connect 23 0 0 0;
+#X connect 32 0 33 2;
+#X connect 33 0 32 0;
+#X connect 34 0 33 3;
diff --git a/reference/sigzero~-help.pd b/reference/sigzero~-help.pd
new file mode 100644
index 0000000..77b4eac
--- /dev/null
+++ b/reference/sigzero~-help.pd
@@ -0,0 +1,110 @@
+#N canvas 325 377 594 494 10;
+#X obj 79 235 sigzero~;
+#X obj 79 187 sig~;
+#X floatatom 79 129 0 0 0 0 - - -;
+#X floatatom 79 262 0 0 0 0 - - -;
+#X obj 117 313 print signal;
+#X obj 117 264 select 0;
+#X msg 117 289 off;
+#X msg 176 288 on;
+#X text 72 42 sigzero~ detects whether there is a signal or not (e.g.
+zeroes throughout);
+#X obj 74 25 sigzero~;
+#X msg 136 161 bang;
+#X msg 135 185 off;
+#X floatatom 135 208 0 0 0 0 - - -;
+#X text 216 163 turn the detector on;
+#X text 216 188 turn it off;
+#X text 217 210 turn it on/off;
+#X text 114 128 try me;
+#N canvas 0 0 594 394 sub 0;
+#X obj 152 104 inlet~;
+#X obj 152 155 nop~;
+#X obj 152 210 outlet~;
+#X text 190 157 imagine we were doing some VERY heavy calcs here;
+#X obj 427 48 inlet;
+#X obj 427 75 switch~;
+#X text 35 272 if the heavy calculations done here are done in vain
+because there is no incoming signal \, it would be better to turn the
+whole sub-patch off...;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 4 0 5 0;
+#X restore 76 393 page sub;
+#X obj 76 343 adc~ 1;
+#X obj 135 370 sigzero~;
+#X text 213 370 that's how i use it;
+#X floatatom 106 442 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 77 470 pd output;
+#X msg 135 442 MUTE;
+#X text 101 423 output amplitude;
+#X text 445 12 part of zexy;
+#X connect 0 0 3 0;
+#X connect 0 0 5 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 0;
+#X connect 17 0 22 0;
+#X connect 18 0 17 0;
+#X connect 18 0 19 0;
+#X connect 19 0 17 1;
+#X connect 21 0 22 1;
+#X connect 22 0 21 0;
+#X connect 23 0 22 2;
diff --git a/reference/sort-help.pd b/reference/sort-help.pd
new file mode 100644
index 0000000..b6d80a4
--- /dev/null
+++ b/reference/sort-help.pd
@@ -0,0 +1,85 @@
+#N canvas 137 350 811 532 10;
+#X obj 95 233 print UNSORTED;
+#X msg 37 107 bang;
+#X obj 198 23 sort;
+#X text 314 87 any package-elements that are non-float will be interpreted
+as "0.0".;
+#X text 270 87 note :;
+#X obj 56 335 sort 1;
+#X obj 56 467 print ASCENDING;
+#X obj 37 377 sort -1;
+#X obj 37 487 print DESCENDING;
+#X text 278 297 creation : "sort [<dir>]";
+#X text 457 310 dir < 0 :: descending sort;
+#X text 456 297 dir >= 0 :: ascending sort;
+#X text 460 328 dir defaults to ascending;
+#N canvas 360 175 475 254 randompackage 0;
+#X obj 37 190 pack 0 0 0 0 0 0 0 0 0 0 0;
+#X obj 170 87 random 15;
+#X obj 156 104 random 15;
+#X obj 143 121 random 15;
+#X obj 130 138 random 15;
+#X obj 116 155 random 15;
+#X obj 103 172 random 15;
+#X obj 90 87 random 15;
+#X obj 76 104 random 15;
+#X obj 63 121 random 15;
+#X obj 50 138 random 15;
+#X obj 37 155 random 15;
+#X obj 37 52 inlet;
+#X obj 37 69 t b b b b b b b b b b b;
+#X obj 37 210 outlet;
+#X connect 0 0 14 0;
+#X connect 1 0 0 10;
+#X connect 2 0 0 9;
+#X connect 3 0 0 8;
+#X connect 4 0 0 7;
+#X connect 5 0 0 6;
+#X connect 6 0 0 5;
+#X connect 7 0 0 4;
+#X connect 8 0 0 3;
+#X connect 9 0 0 2;
+#X connect 10 0 0 1;
+#X connect 11 0 0 0;
+#X connect 12 0 13 0;
+#X connect 13 0 11 0;
+#X connect 13 1 10 0;
+#X connect 13 2 9 0;
+#X connect 13 3 8 0;
+#X connect 13 4 7 0;
+#X connect 13 5 6 0;
+#X connect 13 6 5 0;
+#X connect 13 7 4 0;
+#X connect 13 8 3 0;
+#X connect 13 9 2 0;
+#X connect 13 10 1 0;
+#X restore 37 195 pd randompackage;
+#X msg 72 160 -----;
+#X obj 37 141 t b b;
+#X floatatom 94 268 0 0 0 0 - - -;
+#X text 128 270 direction;
+#X obj 37 213 t l l l l;
+#X obj 75 287 sort;
+#X obj 75 448 print SORTED;
+#X text 237 23 shell-sort a package of floats;
+#X text 553 16 part of zexy;
+#X obj 81 402 print indicesD;
+#X obj 93 357 print indicesA;
+#X obj 72 177 print -----;
+#X text 269 162 the second outlet gives the indices of the input data.
+;
+#X connect 1 0 15 0;
+#X connect 5 0 6 0;
+#X connect 5 1 24 0;
+#X connect 7 0 8 0;
+#X connect 7 1 23 0;
+#X connect 13 0 18 0;
+#X connect 14 0 25 0;
+#X connect 15 0 13 0;
+#X connect 15 1 14 0;
+#X connect 16 0 19 1;
+#X connect 18 0 7 0;
+#X connect 18 1 5 0;
+#X connect 18 2 19 0;
+#X connect 18 3 0 0;
+#X connect 19 0 20 0;
diff --git a/reference/step~-help.pd b/reference/step~-help.pd
new file mode 100644
index 0000000..f036839
--- /dev/null
+++ b/reference/step~-help.pd
@@ -0,0 +1,128 @@
+#N canvas 496 479 634 373 10;
+#X obj 243 283 step~;
+#X obj 243 309 print~;
+#X msg 186 236 bang;
+#X floatatom 283 259 0 0 0 0 - - -;
+#X floatatom 243 237 0 0 0 0 - - -;
+#X obj 186 259 t b b;
+#X obj 243 259 t f b;
+#X text 50 20 step~ ::;
+#X text 50 70 IN1 :;
+#X text 50 110 IN2 :;
+#X text 50 180 note :;
+#X text 100 20 produces a unit:step:sequence or a rectangle:window
+;
+#X text 100 70 define \, how many samples after the float::bang:message
+the rectangle:window will start;
+#X text 100 110 define the length of the rectangle:window choosing
+1 will produce a dirac:impulse :: unit:sample:sequence) choosing 0
+will make the rectangle infinitely long :: unit:step:sequence;
+#X text 100 180 1 sample equals 1:over:samplerate secs;
+#X text 235 217 position;
+#X text 303 239 length;
+#N canvas 169 79 820 553 application 0;
+#X obj 88 188 sig~ 440;
+#X obj 88 211 osc~;
+#X obj 88 235 *~;
+#X obj 149 211 osc~;
+#X obj 149 235 *~;
+#X obj 149 188 sig~ 550;
+#X floatatom 88 163 0 0 0 0 - - -;
+#X floatatom 149 163 0 0 0 0 - - -;
+#X obj 276 189 sig~ -1;
+#X obj 228 189 step~;
+#X msg 258 166 0;
+#X msg 291 166 44100;
+#X floatatom 338 166 0 0 0 0 - - -;
+#X msg 228 142 bang;
+#X text 193 118 toggle::press;
+#X text 38 23 This \, of course \, is a quite barbarious use of the
+step~-object;
+#X text 124 51 but it was fast to do and I do think it illustrates
+the way it works.;
+#X floatatom 178 342 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 149 370 pd output;
+#X msg 207 342 MUTE;
+#X text 173 323 output amplitude;
+#X obj 149 290 +~;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 21 0;
+#X connect 3 0 4 0;
+#X connect 4 0 21 0;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 5 0;
+#X connect 8 0 4 1;
+#X connect 9 0 2 1;
+#X connect 9 0 4 1;
+#X connect 10 0 9 1;
+#X connect 11 0 9 1;
+#X connect 12 0 9 1;
+#X connect 13 0 9 0;
+#X connect 17 0 18 1;
+#X connect 18 0 17 0;
+#X connect 19 0 18 2;
+#X connect 21 0 18 0;
+#X restore 439 186 page application;
+#X msg 186 283 1;
+#X connect 0 0 1 0;
+#X connect 2 0 5 0;
+#X connect 3 0 0 1;
+#X connect 4 0 6 0;
+#X connect 5 0 0 0;
+#X connect 5 1 18 0;
+#X connect 6 0 0 0;
+#X connect 6 1 1 0;
+#X connect 18 0 1 0;
diff --git a/reference/strcmp-help.pd b/reference/strcmp-help.pd
new file mode 100644
index 0000000..7e168d4
--- /dev/null
+++ b/reference/strcmp-help.pd
@@ -0,0 +1,30 @@
+#N canvas 459 236 628 611 10;
+#X obj 90 54 strcmp;
+#X text 147 54 -- compare 2 lists as if they were strings;
+#X obj 71 398 strcmp this is list # 3;
+#X floatatom 71 423 0 0 0 0 - - -;
+#X obj 96 423 print strcmp;
+#X msg 71 184 list this is list # 3;
+#X msg 71 221 list this is list # 4;
+#X msg 71 239 1 2 3 4 5;
+#X msg 71 256 list yet another list;
+#X floatatom 83 286 0 0 0 0 - - -;
+#X msg 204 313 list yet another list;
+#X msg 222 366 list \$1;
+#X floatatom 222 349 0 0 0 0 - - -;
+#X text 278 357 to compare symbols/floats you have to make sure that
+they go to the 2nd inlet as lists;
+#X text 98 442 the output follows the "strcmp" of the C programming
+language;
+#X text 426 24 part of zexy;
+#X text 68 525 probably not very efficient!!;
+#X connect 2 0 4 0;
+#X connect 2 0 3 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 10 0 2 1;
+#X connect 11 0 2 1;
+#X connect 12 0 11 0;
diff --git a/reference/sum-help.pd b/reference/sum-help.pd
new file mode 100644
index 0000000..1be9378
--- /dev/null
+++ b/reference/sum-help.pd
@@ -0,0 +1,13 @@
+#N canvas 231 541 421 294 10;
+#X floatatom 72 206 4 0 0 0 - - -;
+#X text 324 19 part of zexy;
+#X obj 72 186 sum;
+#X obj 77 40 sum;
+#X text 109 41 sum the elements of a list;
+#X msg 72 79 1;
+#X msg 83 108 1 2 3 4 5 6 7 8 9 10;
+#X msg 93 141 1000 3 2 -100 2 12;
+#X connect 2 0 0 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 0;
diff --git a/reference/swap~-help.pd b/reference/swap~-help.pd
new file mode 100644
index 0000000..614fc75
--- /dev/null
+++ b/reference/swap~-help.pd
@@ -0,0 +1,90 @@
+#N canvas 427 339 718 576 10;
+#X obj 97 321 swap~;
+#X text 138 102 this object first converts the signal to 16bit \, then
+swaps upper and lower byte.;
+#X msg 120 233 0;
+#X msg 120 209 1;
+#X msg 119 258 bang;
+#X obj 33 288 osc~ 440;
+#X floatatom 33 264 0 0 0 0 - - -;
+#X msg 119 283 help;
+#X msg 533 54 \; pd dsp 1;
+#N canvas 0 0 450 300 graph5 0;
+#X array scope 100 float 0;
+#X coords 0 1 100 -1 400 300 1;
+#X restore 298 194 graph;
+#X obj 143 345 tabwrite~ scope;
+#X msg 143 320 bang;
+#X text 159 258 toggle;
+#X text 152 208 on;
+#X text 154 232 off;
+#X obj 87 27 swap~;
+#X text 149 25 byte-swap a 16bit signal;
+#X floatatom 126 412 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 97 440 pd output;
+#X msg 155 412 MUTE;
+#X text 121 393 output amplitude;
+#X text 513 29 part of zexy;
+#X connect 0 0 10 0;
+#X connect 0 0 18 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 5 0;
+#X connect 7 0 0 0;
+#X connect 11 0 10 0;
+#X connect 17 0 18 1;
+#X connect 18 0 17 0;
+#X connect 19 0 18 2;
diff --git a/reference/symbol2list-help.pd b/reference/symbol2list-help.pd
new file mode 100644
index 0000000..9b38423
--- /dev/null
+++ b/reference/symbol2list-help.pd
@@ -0,0 +1,47 @@
+#N canvas 60 29 809 570 10;
+#X symbolatom 75 517 22 0 0 0 - - -;
+#X symbolatom 147 393 10 0 0 0 - - -;
+#X obj 135 48 symbol2list;
+#X text 219 48 convert a symbol into a list;
+#X obj 458 50 s2l;
+#X symbolatom 106 500 16 0 0 0 - - -;
+#X symbolatom 137 483 10 0 0 0 - - -;
+#X msg 75 97 symbol a_dash_separated_list;
+#X msg 147 358 symbol -;
+#X obj 348 409 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 170 206 symbol _i;
+#X obj 170 226 t b s;
+#X obj 75 448 unpack s s s s;
+#X symbolatom 168 467 10 0 0 0 - - -;
+#X msg 159 118 symbol what_is-the_de-limiter_i-ask-(_i) ?;
+#X text 336 497 see also:;
+#X obj 447 497 list2symbol;
+#X text 253 189 by default \, list-elements are separated by spaces.
+You can set the separator to any symbol either with an argument or
+by setting the second inlet;
+#X text 250 240 using a zero-symbol as delimiter will break the symbol
+up into its characters.;
+#X msg 256 277 symbol;
+#X obj 256 296 t b s;
+#X text 221 393 delimiter;
+#X text 375 412 banging the object will re-parse the list-symbol;
+#X text 532 498 which does the inverse;
+#X obj 75 428 symbol2list _;
+#X text 600 44 part of zexy;
+#X connect 1 0 24 1;
+#X connect 7 0 24 0;
+#X connect 8 0 1 0;
+#X connect 9 0 24 0;
+#X connect 10 0 11 0;
+#X connect 11 0 24 0;
+#X connect 11 1 1 0;
+#X connect 12 0 0 0;
+#X connect 12 1 5 0;
+#X connect 12 2 6 0;
+#X connect 12 3 13 0;
+#X connect 14 0 24 0;
+#X connect 19 0 20 0;
+#X connect 20 0 24 0;
+#X connect 20 1 1 0;
+#X connect 24 0 12 0;
diff --git a/reference/tabdump-help.pd b/reference/tabdump-help.pd
new file mode 100644
index 0000000..7525a84
--- /dev/null
+++ b/reference/tabdump-help.pd
@@ -0,0 +1,23 @@
+#N canvas 293 375 861 353 10;
+#N canvas 0 0 450 300 graph2 0;
+#X array my_array66 5 float 0;
+#X array my_array77 8 float 0;
+#X coords 0 1 8 -1 200 140 1;
+#X restore 603 117 graph;
+#X obj 283 138 loadbang;
+#X obj 83 168 tabdump my_array66;
+#X msg 83 100 bang;
+#X obj 83 193 print;
+#X msg 133 148 set my_array77;
+#X msg 283 164 \; my_array66 resize 5 \; my_array77 resize 8 \; my_array66
+0.1 0.3 0.2 0.5 0.2 -0.1 \; my_array77 0.1 0.1 0.2 0.3 0.5 0.8 0.13
+0.21 0.34;
+#X obj 176 22 tabdump;
+#X text 273 24 dump the contents of a table as a list;
+#X msg 132 126 set my_array66;
+#X text 648 24 part of zexy;
+#X connect 1 0 6 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 9 0 2 0;
diff --git a/reference/tabminmax-help.pd b/reference/tabminmax-help.pd
new file mode 100644
index 0000000..f2514d0
--- /dev/null
+++ b/reference/tabminmax-help.pd
@@ -0,0 +1,35 @@
+#N canvas 293 375 861 353 10;
+#N canvas 0 0 450 300 graph2 0;
+#X array my_array66 5 float 0;
+#X array my_array77 8 float 0;
+#X coords 0 1 8 -1 200 140 1;
+#X restore 653 87 graph;
+#X obj 493 208 loadbang;
+#X msg 83 100 bang;
+#X msg 133 148 set my_array77;
+#X msg 493 234 \; my_array66 resize 5 \; my_array77 resize 8 \; my_array66
+0.1 0.3 0.2 0.5 0.2 -0.1 \; my_array77 0.1 0.1 0.2 0.3 0.5 0.8 0.13
+0.21 0.34;
+#X msg 132 126 set my_array66;
+#X text 648 24 part of zexy;
+#X obj 176 22 tabminmax;
+#X text 256 24 get the minimum and the maximum of a table;
+#X obj 83 168 tabminmax my_array66;
+#X obj 83 192 unpack;
+#X floatatom 83 217 0 0 0 0 minimum - -;
+#X floatatom 120 218 2 0 0 3 idx - -;
+#X obj 213 192 unpack;
+#X floatatom 213 217 0 0 0 0 maximum - -;
+#X floatatom 250 218 2 0 0 3 idx - -;
+#X text 149 81 additionally this object gets the indices of the maxima.
+;
+#X connect 1 0 4 0;
+#X connect 2 0 9 0;
+#X connect 3 0 9 0;
+#X connect 5 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 13 0;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
diff --git a/reference/tabset-help.pd b/reference/tabset-help.pd
new file mode 100644
index 0000000..9249342
--- /dev/null
+++ b/reference/tabset-help.pd
@@ -0,0 +1,23 @@
+#N canvas 275 479 861 353 10;
+#N canvas 0 0 450 300 graph2 0;
+#X array my_array99 5 float 0;
+#X array my_array97 8 float 0;
+#X coords 0 1 8 -1 200 140 1;
+#X restore 603 117 graph;
+#X obj 283 138 loadbang;
+#X msg 132 126 set my_array99;
+#X msg 133 148 set my_array97;
+#X msg 283 164 \; my_array99 resize 5 \; my_array97 resize 8 \; my_array99
+0.1 0.3 0.2 0.5 0.2 -0.1 \; my_array97 0.1 0.1 0.2 0.3 0.5 0.8 0.13
+0.21 0.34;
+#X obj 176 22 tabdump;
+#X text 273 24 dump the contents of a table as a list;
+#X msg 83 73 1 0.7 0.5 0.3 0.2 0.1;
+#X obj 83 168 tabset my_array99;
+#X floatatom 97 95 4 0 0 0 - - -;
+#X text 631 28 part of zexy;
+#X connect 1 0 4 0;
+#X connect 2 0 8 0;
+#X connect 3 0 8 0;
+#X connect 7 0 8 0;
+#X connect 9 0 8 0;
diff --git a/reference/tavg~-help.pd b/reference/tavg~-help.pd
new file mode 100644
index 0000000..6d59916
--- /dev/null
+++ b/reference/tavg~-help.pd
@@ -0,0 +1,30 @@
+#N canvas 445 479 580 361 10;
+#X floatatom 59 148 0 0 0 0 - - -;
+#X floatatom 59 254 0 0 0 0 - - -;
+#X floatatom 129 255 0 0 0 0 - - -;
+#X obj 59 276 dbtorms;
+#X floatatom 59 299 0 0 0 0 - - -;
+#X text 272 269 see also:;
+#X obj 277 296 env~;
+#X obj 59 233 env~;
+#X obj 315 296 envrms~;
+#X obj 59 173 osc~ 5512.5;
+#X obj 373 296 avg~;
+#X obj 129 234 tavg~;
+#X obj 71 51 tavg~;
+#X text 130 51 calculates the arithmetic mean of a signal between 2
+bangs;
+#X obj 176 195 metro 1000;
+#X msg 176 167 bang;
+#X msg 211 167 stop;
+#X text 392 23 part of zexy;
+#X connect 0 0 9 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 7 0 1 0;
+#X connect 9 0 7 0;
+#X connect 9 0 11 0;
+#X connect 11 0 2 0;
+#X connect 14 0 11 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
diff --git a/reference/test.mtx b/reference/test.mtx
new file mode 100644
index 0000000..04f24f6
--- /dev/null
+++ b/reference/test.mtx
@@ -0,0 +1,4 @@
+matrix 3 4
+1 2 3 4
+1 6 6 1
+4 3 2 10
diff --git a/reference/time-help.pd b/reference/time-help.pd
new file mode 100644
index 0000000..9ee8c09
--- /dev/null
+++ b/reference/time-help.pd
@@ -0,0 +1,32 @@
+#N canvas 613 398 421 378 10;
+#X msg 71 174 bang;
+#X floatatom 86 261 0 0 0 0 - - -;
+#X floatatom 78 284 0 0 0 0 - - -;
+#X floatatom 71 307 0 0 0 0 - - -;
+#X obj 71 203 time;
+#X floatatom 94 238 0 0 0 0 - - -;
+#X text 151 241 msec;
+#X text 152 263 sec;
+#X text 153 284 min;
+#X text 152 306 hours;
+#X msg 219 175 bang;
+#X floatatom 253 259 0 0 0 0 - - -;
+#X floatatom 236 284 0 0 0 0 - - -;
+#X floatatom 219 308 0 0 0 0 - - -;
+#X floatatom 270 234 0 0 0 0 - - -;
+#X obj 219 204 time GMT;
+#X text 91 79 get the system time;
+#X text 64 149 local;
+#X text 222 152 GMT;
+#X obj 73 27 time;
+#X text 233 31 part of zexy;
+#X connect 0 0 4 0;
+#X connect 4 0 3 0;
+#X connect 4 1 2 0;
+#X connect 4 2 1 0;
+#X connect 4 3 5 0;
+#X connect 10 0 15 0;
+#X connect 15 0 13 0;
+#X connect 15 1 12 0;
+#X connect 15 2 11 0;
+#X connect 15 3 14 0;
diff --git a/reference/unpack~-help.pd b/reference/unpack~-help.pd
new file mode 100644
index 0000000..784f291
--- /dev/null
+++ b/reference/unpack~-help.pd
@@ -0,0 +1,117 @@
+#N canvas 321 479 736 292 10;
+#X text 460 14 see also;
+#X obj 461 33 pack~;
+#X text 147 40 unpack~;
+#X text 178 65 convert float-packages to signals;
+#X obj 85 132 unpack~ 512;
+#X text 234 156 creation: "unpack~ [<bufsize>]";
+#X text 255 181 <bufsize>: in samples (defaults to 64) \; could be
+fine if you don't have a constant stream of floats;
+#N canvas 94 221 845 529 example 1;
+#X obj 69 75 osc~ 689.062;
+#X obj 69 123 pack~;
+#X obj 69 94 *~ 0.2;
+#X obj 69 142 unfold;
+#X obj 69 160 t b f;
+#X obj 69 178 +;
+#X obj 69 198 + 1;
+#X obj 69 236 select 0;
+#X obj 69 256 f;
+#X obj 69 312 unpack~;
+#X floatatom 69 50 0 0 0 0 - - -;
+#X obj 69 218 % 8;
+#X text 74 6 a simple samplerate-reducer;
+#X text 116 129 samplerate = 44.1kHz;
+#X text 126 258 samplerate = 5.5125kHz;
+#X text 108 363 reconstructed signal @ 44.1kHz;
+#X obj 127 114 dac~ 2;
+#X msg 69 276 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1;
+#N canvas 0 0 450 300 graph2 0;
+#X array high_rate 100 float 0;
+#X coords 0 1 64 -1 300 200 1;
+#X restore 526 13 graph;
+#N canvas 0 0 450 300 graph3 0;
+#X array low_rate 100 float 0;
+#X coords 0 1 64 -1 300 200 1;
+#X restore 526 241 graph;
+#X obj 170 113 tabsend~ high_rate;
+#X obj 156 344 tabsend~ low_rate;
+#X msg 349 179 \; pd dsp 1;
+#X floatatom 97 412 0 0 0 0 - - -;
+#N canvas 159 26 495 266 output 0;
+#X obj 338 160 t b;
+#X obj 338 110 f;
+#X obj 338 60 inlet;
+#X text 344 29 mute;
+#X obj 338 185 f;
+#X msg 425 178 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 425 153 t b f;
+#X obj 397 117 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 22 181 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X msg 96 65 set \$1;
+#X obj 96 89 outlet;
+#X msg 214 64 \; pd dsp 1;
+#X obj 83 194 line~;
+#X obj 22 212 *~;
+#X obj 22 241 dac~;
+#X obj 83 171 pack 0 50;
+#X text 20 158 audio;
+#X text 93 110 show level;
+#X obj 83 42 r \$0master-lvl;
+#X obj 199 100 s \$0master-lvl;
+#X obj 397 92 r \$0master-lvl;
+#X obj 338 210 s \$0master-lvl;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 26 0;
+#X connect 5 0 26 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 20 0;
+#X connect 11 0 18 0;
+#X connect 12 0 16 0;
+#X connect 12 0 24 0;
+#X connect 14 0 15 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 20 0 17 0;
+#X connect 23 0 10 0;
+#X connect 23 0 14 0;
+#X connect 25 0 1 1;
+#X connect 25 0 9 0;
+#X restore 68 440 pd output;
+#X msg 126 412 MUTE;
+#X text 92 393 output amplitude;
+#X connect 0 0 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 0 16 0;
+#X connect 2 0 20 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 8 1;
+#X connect 5 0 6 0;
+#X connect 6 0 11 0;
+#X connect 7 0 8 0;
+#X connect 8 0 17 0;
+#X connect 9 0 21 0;
+#X connect 9 0 24 0;
+#X connect 10 0 0 0;
+#X connect 11 0 5 1;
+#X connect 11 0 7 0;
+#X connect 17 0 9 0;
+#X connect 23 0 24 1;
+#X connect 24 0 23 0;
+#X connect 25 0 24 2;
+#X restore 85 249 pd example;
+#X text 530 34 part of zexy;
diff --git a/reference/urn-help.pd b/reference/urn-help.pd
new file mode 100644
index 0000000..ce2ac94
--- /dev/null
+++ b/reference/urn-help.pd
@@ -0,0 +1,66 @@
+#N canvas 615 253 529 495 10;
+#X obj 76 35 urn;
+#X text 73 75 generates random numbers without repetition;
+#X obj 25 110 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 25 290 5 0 0 1 urn - -;
+#X obj 25 259 urn 10;
+#X text 97 257 generates integer numbers between 0..(n-1);
+#X text 51 110 do generate!;
+#X floatatom 92 223 5 0 0 0 - - -;
+#X text 132 221 set (n);
+#X msg 80 141 seed 10;
+#X text 134 142 set the seed \, so you can reproduce the random-numbers
+;
+#X msg 82 178 clear;
+#X text 126 177 put all the numbers back.;
+#X obj 62 333 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 106 35 a Unique Random Numbers generator;
+#X text 79 332 when all the numbers have been drawn from the pool \,
+the system is reset (the numbers are put back) and a bang is emitted
+via the second outlet;
+#N canvas 144 58 450 344 lotto 0;
+#X text 44 35 in austria \, lotto is 6-of-45;
+#X obj 88 133 urn 45;
+#X obj 88 161 + 1;
+#X obj 88 184 repack 6;
+#X obj 88 52 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 88 233 unpack 0 0 0 0 0 0;
+#X floatatom 88 253 2 0 0 0 - - -;
+#X floatatom 112 253 2 0 0 0 - - -;
+#X floatatom 136 253 2 0 0 0 - - -;
+#X floatatom 160 253 2 0 0 0 - - -;
+#X floatatom 184 253 2 0 0 0 - - -;
+#X floatatom 209 253 2 0 0 0 - - -;
+#X obj 88 207 sort;
+#X obj 88 112 until;
+#X msg 88 90 6;
+#X obj 88 71 t b b;
+#X msg 118 90 clear;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 12 0;
+#X connect 4 0 15 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 5 2 8 0;
+#X connect 5 3 9 0;
+#X connect 5 4 10 0;
+#X connect 5 5 11 0;
+#X connect 12 0 5 0;
+#X connect 13 0 1 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 15 1 16 0;
+#X connect 16 0 1 0;
+#X restore 74 440 pd lotto;
+#X obj 249 453 random;
+#X text 182 453 see also:;
+#X text 346 21 part of zexy;
+#X connect 2 0 4 0;
+#X connect 4 1 13 0;
+#X connect 7 0 4 1;
+#X connect 9 0 4 0;
+#X connect 11 0 4 0;
diff --git a/reference/wrap-help.pd b/reference/wrap-help.pd
new file mode 100644
index 0000000..304c78c
--- /dev/null
+++ b/reference/wrap-help.pd
@@ -0,0 +1,50 @@
+#N canvas 477 186 738 641 10;
+#X text 118 18 wrap a float between to limits;
+#X obj 71 18 wrap;
+#X obj 42 150 wrap;
+#X floatatom 42 132 5 0 0 0 - - -;
+#X floatatom 42 173 5 0 0 0 - - -;
+#X floatatom 42 242 5 0 0 0 - - -;
+#X floatatom 42 283 5 0 0 0 - - -;
+#X text 32 94 if called without arguments \, [wrap] will wrap the input
+between [0 \, 1);
+#X text 32 204 if called with one argument f \, [wrap] will wrap the
+input between [0 \, f);
+#X text 37 53 (somehow a float-capable modulo-function with some extensions)
+;
+#X floatatom 32 342 5 0 0 0 - - -;
+#X floatatom 32 383 5 0 0 0 - - -;
+#X text 22 306 if called with two arguments f1 f2 \, [wrap] will wrap
+the input between [f1 \, f2);
+#X obj 42 260 wrap 10.5;
+#X floatatom 244 342 5 0 0 0 - - -;
+#X floatatom 244 383 5 0 0 0 - - -;
+#X text 127 361 is the same as;
+#X obj 31 497 wrap;
+#X floatatom 31 471 5 0 0 0 - - -;
+#X floatatom 31 520 5 0 0 0 - - -;
+#X obj 32 360 wrap 1 9.2;
+#X obj 244 360 wrap 9.2 1;
+#X msg 94 455 2 4;
+#X msg 94 478 -8;
+#X text 129 463 you can dynamically set the limits via the second inlet
+;
+#X text 143 502 if only one argument is given \, the second is assumed
+as zero (0).;
+#X text 137 543 wrapping is always done between [f1 \, f2) \, where
+f1 is ALWAYS less than f2.;
+#X text 130 593 if you need wrapping between (f1 \, f2] you have to
+multiply the numbers with -1 before and after wrapping.;
+#X text 458 20 part of zexy;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 5 0 13 0;
+#X connect 10 0 20 0;
+#X connect 13 0 6 0;
+#X connect 14 0 21 0;
+#X connect 17 0 19 0;
+#X connect 18 0 17 0;
+#X connect 20 0 11 0;
+#X connect 21 0 15 0;
+#X connect 22 0 17 1;
+#X connect 23 0 17 1;
diff --git a/reference/zigbinops-help.pd b/reference/zigbinops-help.pd
new file mode 100644
index 0000000..93bbf8d
--- /dev/null
+++ b/reference/zigbinops-help.pd
@@ -0,0 +1,119 @@
+#N canvas 470 149 594 490 10;
+#X obj 62 193 abs~;
+#X obj 120 194 sgn~;
+#X obj 342 191 <~;
+#X obj 376 190 ==~;
+#X obj 410 191 >~;
+#X obj 468 190 &&~;
+#X obj 503 190 ||~;
+#X floatatom 503 238 0 0 0 0 - - -;
+#X floatatom 468 238 0 0 0 0 - - -;
+#X floatatom 410 239 0 0 0 0 - - -;
+#X floatatom 376 239 0 0 0 0 - - -;
+#X floatatom 120 242 0 0 0 0 - - -;
+#X floatatom 62 243 0 0 0 0 - - -;
+#X obj 62 221 avg~;
+#X obj 120 220 avg~;
+#X floatatom 342 239 0 0 0 0 - - -;
+#X obj 342 217 avg~;
+#X obj 376 216 avg~;
+#X obj 410 216 avg~;
+#X obj 468 216 avg~;
+#X obj 503 216 avg~;
+#X obj 62 163 sig~;
+#X floatatom 62 141 0 0 0 0 - - -;
+#X obj 410 126 sig~;
+#X floatatom 410 104 0 0 0 0 - - -;
+#X obj 484 126 sig~;
+#X floatatom 484 104 0 0 0 0 - - -;
+#X floatatom 520 448 0 0 0 0 - - -;
+#X floatatom 480 448 0 0 0 0 - - -;
+#X floatatom 429 448 0 0 0 0 - - -;
+#X floatatom 388 449 0 0 0 0 - - -;
+#X floatatom 354 449 0 0 0 0 - - -;
+#X obj 354 427 avg~;
+#X obj 388 426 avg~;
+#X obj 429 425 avg~;
+#X obj 480 426 avg~;
+#X obj 520 426 avg~;
+#X obj 429 337 sig~;
+#X floatatom 429 315 0 0 0 0 - - -;
+#X floatatom 510 316 0 0 0 0 - - -;
+#X obj 354 401 <~ 2;
+#X obj 388 400 ==~ 2;
+#X obj 429 400 >~ 2;
+#X obj 480 400 &&~ 2;
+#X obj 520 400 ||~ 2;
+#X text 83 30 more math and binary operations for signals;
+#X text 28 263 absolute;
+#X text 50 278 value;
+#X text 112 263 signum;
+#X text 329 267 greater;
+#X text 410 268 less;
+#X text 376 284 equal;
+#X text 473 261 logical;
+#X text 466 274 AND;
+#X text 511 274 OR;
+#X text 430 16 part of zexy;
+#X floatatom 230 242 0 0 0 0 - - -;
+#X floatatom 192 243 0 0 0 0 - - -;
+#X obj 192 221 avg~;
+#X obj 230 220 avg~;
+#X obj 192 193 absgn~;
+#X text 196 267 (both);
+#X text 72 58 (this help-patch might be very CPU-consumptious \, because
+of the float-atoms....);
+#X connect 0 0 13 0;
+#X connect 1 0 14 0;
+#X connect 2 0 16 0;
+#X connect 3 0 17 0;
+#X connect 4 0 18 0;
+#X connect 5 0 19 0;
+#X connect 6 0 20 0;
+#X connect 13 0 12 0;
+#X connect 14 0 11 0;
+#X connect 16 0 15 0;
+#X connect 17 0 10 0;
+#X connect 18 0 9 0;
+#X connect 19 0 8 0;
+#X connect 20 0 7 0;
+#X connect 21 0 0 0;
+#X connect 21 0 1 0;
+#X connect 21 0 60 0;
+#X connect 22 0 21 0;
+#X connect 23 0 2 0;
+#X connect 23 0 3 0;
+#X connect 23 0 4 0;
+#X connect 23 0 5 0;
+#X connect 23 0 6 0;
+#X connect 24 0 23 0;
+#X connect 25 0 6 1;
+#X connect 25 0 5 1;
+#X connect 25 0 4 1;
+#X connect 25 0 3 1;
+#X connect 25 0 2 1;
+#X connect 26 0 25 0;
+#X connect 32 0 31 0;
+#X connect 33 0 30 0;
+#X connect 34 0 29 0;
+#X connect 35 0 28 0;
+#X connect 36 0 27 0;
+#X connect 37 0 40 0;
+#X connect 37 0 41 0;
+#X connect 37 0 42 0;
+#X connect 37 0 43 0;
+#X connect 37 0 44 0;
+#X connect 38 0 37 0;
+#X connect 39 0 43 1;
+#X connect 39 0 42 1;
+#X connect 39 0 41 1;
+#X connect 39 0 40 1;
+#X connect 40 0 32 0;
+#X connect 41 0 33 0;
+#X connect 42 0 34 0;
+#X connect 43 0 35 0;
+#X connect 44 0 36 0;
+#X connect 58 0 57 0;
+#X connect 59 0 56 0;
+#X connect 60 0 58 0;
+#X connect 60 1 59 0;
diff --git a/reference/z~-help.pd b/reference/z~-help.pd
new file mode 100644
index 0000000..9f831f7
--- /dev/null
+++ b/reference/z~-help.pd
@@ -0,0 +1,33 @@
+#N canvas 304 271 597 497 10;
+#X obj 125 42 z~;
+#X text 177 41 samplewise delay;
+#X text 168 89 should make FIR-filter design possible;
+#X obj 65 222 osc~ 440;
+#X floatatom 65 191 0 0 0 0 - - -;
+#X obj 97 270 z~;
+#X obj 127 270 z~ 2;
+#X obj 65 310 +~;
+#X text 235 269 4th order moving average filter;
+#X text 193 298 creation argument : delay in samples (default is 1)
+;
+#X text 167 119 (note that you cannot do IIR-filters easily this way
+!);
+#X text 351 42 z;
+#X text 359 36 -N;
+#X obj 65 336 *~ 0.25;
+#X text 442 11 part of zexy;
+#X obj 167 270 z~ 3;
+#X obj 65 384 tabwrite~ \$0scope;
+#X msg 82 361 bang;
+#X obj 258 388 table \$0scope;
+#X connect 3 0 7 0;
+#X connect 3 0 5 0;
+#X connect 3 0 6 0;
+#X connect 3 0 15 0;
+#X connect 4 0 3 0;
+#X connect 5 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 0;
+#X connect 13 0 16 0;
+#X connect 15 0 7 0;
+#X connect 17 0 16 0;