aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/help/cyclone/Append.pd19
-rw-r--r--doc/help/cyclone/Borax.pd48
-rw-r--r--doc/help/cyclone/Bucket.pd58
-rw-r--r--doc/help/cyclone/Clip.pd37
-rw-r--r--doc/help/cyclone/Decode.pd26
-rw-r--r--doc/help/cyclone/Histo.pd25
-rw-r--r--doc/help/cyclone/MouseState.pd41
-rw-r--r--doc/help/cyclone/Peak.pd34
-rw-r--r--doc/help/cyclone/README6
-rw-r--r--doc/help/cyclone/TODO10
-rw-r--r--doc/help/cyclone/TogEdge.pd28
-rw-r--r--doc/help/cyclone/Trough.pd37
-rw-r--r--doc/help/cyclone/Uzi.pd31
-rw-r--r--doc/help/cyclone/accum.pd28
-rw-r--r--doc/help/cyclone/acos.pd19
-rw-r--r--doc/help/cyclone/active.pd12
-rw-r--r--doc/help/cyclone/allpass~.pd113
-rw-r--r--doc/help/cyclone/anal.pd34
-rw-r--r--doc/help/cyclone/asin.pd19
-rw-r--r--doc/help/cyclone/bangbang.pd28
-rw-r--r--doc/help/cyclone/bondo.pd34
-rw-r--r--doc/help/cyclone/buddy.pd25
-rw-r--r--doc/help/cyclone/capture.pd44
-rw-r--r--doc/help/cyclone/cartopol.pd22
-rw-r--r--doc/help/cyclone/coll.pd253
-rw-r--r--doc/help/cyclone/coll.txt14
-rw-r--r--doc/help/cyclone/comb~.pd112
-rw-r--r--doc/help/cyclone/cosh.pd19
-rw-r--r--doc/help/cyclone/counter.pd155
-rw-r--r--doc/help/cyclone/count~.pd59
-rw-r--r--doc/help/cyclone/cycle.pd78
-rw-r--r--doc/help/cyclone/decide.pd29
-rw-r--r--doc/help/cyclone/delay~.pd100
-rw-r--r--doc/help/cyclone/drunk.pd44
-rw-r--r--doc/help/cyclone/flush.pd31
-rw-r--r--doc/help/cyclone/forward.pd22
-rw-r--r--doc/help/cyclone/fromsymbol.pd44
-rw-r--r--doc/help/cyclone/funbuff.pd129
-rw-r--r--doc/help/cyclone/funnel.pd37
-rw-r--r--doc/help/cyclone/gate.pd44
-rw-r--r--doc/help/cyclone/grab.pd81
-rw-r--r--doc/help/cyclone/index~.pd84
-rw-r--r--doc/help/cyclone/iter.pd18
-rw-r--r--doc/help/cyclone/linedrive.pd50
-rw-r--r--doc/help/cyclone/lookup~.pd93
-rw-r--r--doc/help/cyclone/match.pd56
-rw-r--r--doc/help/cyclone/maximum.pd24
-rw-r--r--doc/help/cyclone/mean.pd20
-rw-r--r--doc/help/cyclone/midiflush.pd21
-rw-r--r--doc/help/cyclone/midiformat.pd77
-rw-r--r--doc/help/cyclone/midiparse.pd77
-rw-r--r--doc/help/cyclone/minimum.pd24
-rw-r--r--doc/help/cyclone/mousefilter.pd15
-rw-r--r--doc/help/cyclone/next.pd43
-rw-r--r--doc/help/cyclone/offer.pd36
-rw-r--r--doc/help/cyclone/onebang.pd20
-rw-r--r--doc/help/cyclone/past.pd64
-rw-r--r--doc/help/cyclone/peek~.pd62
-rw-r--r--doc/help/cyclone/play~.pd93
-rw-r--r--doc/help/cyclone/poltocar.pd22
-rw-r--r--doc/help/cyclone/prepend.pd19
-rw-r--r--doc/help/cyclone/prob.pd54
-rw-r--r--doc/help/cyclone/pv.pd24
-rw-r--r--doc/help/cyclone/rand~.pd72
-rw-r--r--doc/help/cyclone/record~.pd73
-rw-r--r--doc/help/cyclone/sinh.pd19
-rw-r--r--doc/help/cyclone/speedlim.pd21
-rw-r--r--doc/help/cyclone/spell.pd18
-rw-r--r--doc/help/cyclone/split.pd27
-rw-r--r--doc/help/cyclone/spray.pd22
-rw-r--r--doc/help/cyclone/sprintf.pd18
-rw-r--r--doc/help/cyclone/substitute.pd17
-rw-r--r--doc/help/cyclone/sustain.pd42
-rw-r--r--doc/help/cyclone/switch.pd29
-rw-r--r--doc/help/cyclone/tanh.pd19
-rw-r--r--doc/help/cyclone/thresh.pd18
-rw-r--r--doc/help/cyclone/tosymbol.pd44
-rw-r--r--doc/help/cyclone/universal.pd167
-rw-r--r--doc/help/cyclone/urn.pd31
-rw-r--r--doc/help/cyclone/wave~.pd126
-rw-r--r--doc/help/cyclone/xbend.pd56
-rw-r--r--doc/help/cyclone/xbendin.pd56
-rw-r--r--doc/help/cyclone/xbendin2.pd56
-rw-r--r--doc/help/cyclone/xbendout.pd56
-rw-r--r--doc/help/cyclone/xbendout2.pd56
-rw-r--r--doc/help/cyclone/xnote.pd45
-rw-r--r--doc/help/cyclone/xnotein.pd45
-rw-r--r--doc/help/cyclone/xnoteout.pd45
-rw-r--r--doc/help/cyclone/zl.pd207
89 files changed, 4410 insertions, 0 deletions
diff --git a/doc/help/cyclone/Append.pd b/doc/help/cyclone/Append.pd
new file mode 100644
index 0000000..f58ca51
--- /dev/null
+++ b/doc/help/cyclone/Append.pd
@@ -0,0 +1,19 @@
+#N canvas 247 352 570 317 10;
+#X obj 34 129 Append foo;
+#X obj 34 169 print;
+#X msg 34 77 foo;
+#X msg 64 77 foo bar;
+#X msg 131 102 set foo bar;
+#X text 20 247 cyclone is (c) Miller Puckette and others;
+#X text 20 262 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 19 276 ___________________________________________________ ;
+#X obj 36 19 Append;
+#X text 220 102 set message changes value to append;
+#X text 113 131 creation arg sets initial value to append;
+#X text 132 76 message + stored value = output;
+#X text 92 20 append a list to the incoming list;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
diff --git a/doc/help/cyclone/Borax.pd b/doc/help/cyclone/Borax.pd
new file mode 100644
index 0000000..db518bb
--- /dev/null
+++ b/doc/help/cyclone/Borax.pd
@@ -0,0 +1,48 @@
+#N canvas 152 184 662 459 10;
+#X text 16 401 cyclone is (c) Miller Puckette and others;
+#X text 16 416 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 430 ___________________________________________________ ;
+#X obj 39 19 Borax;
+#X text 95 20 reports current info on note on/off;
+#X obj 34 95 notein 1;
+#X obj 34 129 Borax ---------------;
+#X floatatom 34 156 5 0 0 0 - - -;
+#X floatatom 51 179 5 0 0 0 - - -;
+#X floatatom 69 202 5 0 0 0 - - -;
+#X floatatom 87 224 5 0 0 0 - - -;
+#X floatatom 105 247 5 0 0 0 - - -;
+#X floatatom 122 270 5 0 0 0 - - -;
+#X floatatom 140 290 5 0 0 0 - - -;
+#X floatatom 158 313 5 0 0 0 - - -;
+#X floatatom 176 336 5 0 0 0 - - -;
+#X text 78 155 <--------------------- nr of incoming note that is turned
+;
+#X text 492 155 or off;
+#X text 98 177 <------------------ voice nr of incoming note on / off
+;
+#X text 532 200 offs);
+#X text 111 201 <---------------- nr of notes being held (i.e. ons
+without;
+#X text 126 224 <-------------- pitch of current on/off received;
+#X text 147 247 <----------- velocity of current note;
+#X text 167 270 <-------- nr of all completed notes (i.e. nr of note
+;
+#X text 544 269 offs received);
+#X text 181 290 <------ duration of last note completed;
+#X text 217 335 <- delta time of last two note ons;
+#X text 201 312 <--- total count of delta times (see below);
+#X msg 176 95 bang;
+#X text 224 94 reset all values;
+#X connect 5 0 6 0;
+#X connect 5 1 6 1;
+#X connect 6 0 7 0;
+#X connect 6 1 8 0;
+#X connect 6 2 9 0;
+#X connect 6 3 10 0;
+#X connect 6 4 11 0;
+#X connect 6 5 12 0;
+#X connect 6 6 13 0;
+#X connect 6 7 14 0;
+#X connect 6 8 15 0;
+#X connect 28 0 6 2;
diff --git a/doc/help/cyclone/Bucket.pd b/doc/help/cyclone/Bucket.pd
new file mode 100644
index 0000000..e7a0078
--- /dev/null
+++ b/doc/help/cyclone/Bucket.pd
@@ -0,0 +1,58 @@
+#N canvas 139 126 475 345 10;
+#X text 40 280 cyclone is (c) Miller Puckette and others;
+#X text 40 295 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 39 309 ___________________________________________________
+;
+#X obj 36 19 Bucket 3;
+#X obj 82 145 Bucket 3;
+#X floatatom 82 167 5 0 0 0 - - -;
+#X floatatom 107 188 5 0 0 0 - - -;
+#X floatatom 133 208 5 0 0 0 - - -;
+#X text 108 22 pass numbers from outlet to outlet;
+#X msg 82 76 1 2 3 4;
+#X obj 82 100 unpack f f f f;
+#X floatatom 38 78 5 0 0 0 - - -;
+#X text 146 144 creation arg sets nr of outlets;
+#X obj 88 121 r to-bucket;
+#N canvas 354 347 595 273 more... 0;
+#X msg 48 32 bang;
+#X text 93 30 sends out all values without shifting;
+#X msg 48 52 freeze;
+#X text 101 54 suspend output but continue shifting;
+#X msg 48 73 thaw;
+#X text 86 76 resume output;
+#X msg 48 94 set 4;
+#X obj 48 229 s to-bucket;
+#X text 94 95 send the arg out each outlet and set it to the next number
+;
+#X text 505 95 to output;
+#X msg 56 119 L2R;
+#X text 84 120 shift from left to right (default);
+#X msg 66 143 R2L;
+#X text 97 143 shift from right to left;
+#X msg 20 119 l2r;
+#X msg 29 144 r2l;
+#X msg 85 197 roll \$1;
+#X floatatom 85 175 5 0 0 0 - - -;
+#X text 158 188 I don't really get it --- anyone ?;
+#X connect 0 0 7 0;
+#X connect 2 0 7 0;
+#X connect 4 0 7 0;
+#X connect 6 0 7 0;
+#X connect 10 0 7 0;
+#X connect 12 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 16 0;
+#X restore 41 244 pd more...;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 4 2 7 0;
+#X connect 9 0 10 0;
+#X connect 10 0 4 0;
+#X connect 10 1 4 0;
+#X connect 10 2 4 0;
+#X connect 10 3 4 0;
+#X connect 11 0 4 0;
+#X connect 13 0 4 0;
diff --git a/doc/help/cyclone/Clip.pd b/doc/help/cyclone/Clip.pd
new file mode 100644
index 0000000..d77452a
--- /dev/null
+++ b/doc/help/cyclone/Clip.pd
@@ -0,0 +1,37 @@
+#N canvas 233 184 489 347 10;
+#X text 17 293 cyclone is (c) Miller Puckette and others;
+#X text 17 308 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 16 322 ___________________________________________________ ;
+#X floatatom 38 182 5 0 0 0 - - -;
+#X obj 36 18 Clip min max;
+#X text 137 20 limit numbers in a range;
+#X floatatom 67 109 5 0 0 0 - - -;
+#X floatatom 96 136 5 0 0 0 - - -;
+#X text 114 109 lower limit;
+#X text 140 134 upper limit;
+#X text 111 160 creation args set min/max;
+#X floatatom 38 79 5 0 0 0 - - -;
+#X obj 128 177 unpack f f f f f f;
+#X floatatom 128 198 5 0 0 0 - - -;
+#X floatatom 152 217 5 0 0 0 - - -;
+#X floatatom 176 237 5 0 0 0 - - -;
+#X floatatom 200 218 5 0 0 0 - - -;
+#X floatatom 224 200 5 0 0 0 - - -;
+#X floatatom 249 218 5 0 0 0 - - -;
+#X text 218 71 in a list each value is clipped \,;
+#X text 218 83 the result is sent out as a list;
+#X msg 105 76 1 2 3 4 -10 5 6;
+#X obj 38 160 Clip 0 10;
+#X connect 6 0 22 1;
+#X connect 7 0 22 2;
+#X connect 11 0 22 0;
+#X connect 12 0 13 0;
+#X connect 12 1 14 0;
+#X connect 12 2 15 0;
+#X connect 12 3 16 0;
+#X connect 12 4 17 0;
+#X connect 12 5 18 0;
+#X connect 21 0 22 0;
+#X connect 22 0 3 0;
+#X connect 22 0 12 0;
diff --git a/doc/help/cyclone/Decode.pd b/doc/help/cyclone/Decode.pd
new file mode 100644
index 0000000..61a9f73
--- /dev/null
+++ b/doc/help/cyclone/Decode.pd
@@ -0,0 +1,26 @@
+#N canvas 233 184 439 282 10;
+#X text 18 226 cyclone is (c) Miller Puckette and others;
+#X text 18 241 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 17 255 ___________________________________________________
+;
+#X obj 36 18 Decode 4;
+#X text 107 19 send out 1/0 to a specific outlet;
+#X obj 32 132 Decode 3;
+#X floatatom 32 154 5 0 0 0 - - -;
+#X floatatom 57 177 5 0 0 0 - - -;
+#X floatatom 83 154 5 0 0 0 - - -;
+#X floatatom 32 69 5 0 0 0 - - -;
+#X text 80 69 send out 1 to which outlet (0...);
+#X obj 57 94 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 83 111 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 90 91 enable all disabled outlets;
+#X text 110 113 disable all outlets (overrides the above);
+#X text 99 132 creation arg sets nr. of outlets;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 5 2 8 0;
+#X connect 9 0 5 0;
+#X connect 11 0 5 1;
+#X connect 12 0 5 2;
diff --git a/doc/help/cyclone/Histo.pd b/doc/help/cyclone/Histo.pd
new file mode 100644
index 0000000..dc67d93
--- /dev/null
+++ b/doc/help/cyclone/Histo.pd
@@ -0,0 +1,25 @@
+#N canvas 233 184 511 298 10;
+#X text 40 247 cyclone is (c) Miller Puckette and others;
+#X text 40 262 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 39 276 ___________________________________________________
+;
+#X obj 51 18 Histo;
+#X text 109 18 generates a histogram of the received numbers;
+#X obj 49 156 Histo;
+#X msg 23 56 clear;
+#X text 72 57 erases received numbers;
+#X floatatom 49 105 5 0 0 0 - - -;
+#X floatatom 49 211 5 0 0 0 - - -;
+#X floatatom 79 184 5 0 0 0 - - -;
+#X text 96 212 current input;
+#X text 123 184 number of times the current input was received;
+#X floatatom 79 130 5 0 0 0 - - -;
+#X text 121 129 same as left inlet but number is not counted;
+#X msg 24 77 bang;
+#X text 72 77 same as repeating the last number in right inlet;
+#X connect 5 0 9 0;
+#X connect 5 1 10 0;
+#X connect 6 0 5 0;
+#X connect 8 0 5 0;
+#X connect 13 0 5 1;
+#X connect 15 0 5 0;
diff --git a/doc/help/cyclone/MouseState.pd b/doc/help/cyclone/MouseState.pd
new file mode 100644
index 0000000..7247895
--- /dev/null
+++ b/doc/help/cyclone/MouseState.pd
@@ -0,0 +1,41 @@
+#N canvas 233 184 517 395 10;
+#X text 27 347 cyclone is (c) Miller Puckette and others;
+#X text 27 361 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 26 375 ___________________________________________________
+;
+#X obj 33 28 MouseState;
+#X text 127 28 report mouse x/y/deltax/y and buttonpress;
+#X obj 58 187 MouseState;
+#X obj 58 313 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X floatatom 74 294 5 0 0 0 - - -;
+#X floatatom 90 268 5 0 0 0 - - -;
+#X text 114 297 x;
+#X msg 107 88 poll;
+#X text 134 269 y;
+#X floatatom 106 244 5 0 0 0 - - -;
+#X text 156 245 delta x;
+#X floatatom 123 215 5 0 0 0 - - -;
+#X text 173 216 delta y;
+#X text 77 314 button pressed ? (one button of course \, mac you know)
+;
+#X text 149 88 poll the mouse device;
+#X msg 58 64 bang;
+#X text 100 64 update current state;
+#X msg 107 107 nopoll;
+#X text 159 107 come on you guessed it right ...;
+#X msg 107 135 zero;
+#X text 149 137 set current pos to 0 \, 0 of our coordinate system
+;
+#X msg 105 160 reset;
+#X text 155 160 reset 0 \, 0 to upper left corner;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 5 2 8 0;
+#X connect 5 3 12 0;
+#X connect 5 4 14 0;
+#X connect 10 0 5 0;
+#X connect 18 0 5 0;
+#X connect 20 0 5 0;
+#X connect 22 0 5 0;
+#X connect 24 0 5 0;
diff --git a/doc/help/cyclone/Peak.pd b/doc/help/cyclone/Peak.pd
new file mode 100644
index 0000000..993e55d
--- /dev/null
+++ b/doc/help/cyclone/Peak.pd
@@ -0,0 +1,34 @@
+#N canvas 233 184 519 473 10;
+#X text 12 413 cyclone is (c) Miller Puckette and others;
+#X text 12 428 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 11 442 ___________________________________________________ ;
+#X obj 43 23 Peak;
+#X text 102 24 output only numbers greater than the previous;
+#X obj 67 269 Peak;
+#X floatatom 12 195 5 0 0 0 - - -;
+#X floatatom 67 350 5 0 0 0 - - -;
+#X msg 67 98 4 4;
+#X text 99 100 is treated like normal input.;
+#X msg 67 75 6 7;
+#X msg 67 118 3 2;
+#X msg 81 145 bang;
+#X text 124 145 sends current peak value out the left outlet;
+#X floatatom 90 204 5 0 0 0 - - -;
+#X text 141 203 set new peak value;
+#X obj 78 326 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 103 325 new peak value ?;
+#X obj 93 300 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 117 301 !new peak value ?;
+#X text 98 87 first number resets peaks value \, then second one;
+#X connect 5 0 7 0;
+#X connect 5 1 16 0;
+#X connect 5 2 18 0;
+#X connect 6 0 5 0;
+#X connect 8 0 5 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 0;
+#X connect 14 0 5 1;
diff --git a/doc/help/cyclone/README b/doc/help/cyclone/README
new file mode 100644
index 0000000..a554fc0
--- /dev/null
+++ b/doc/help/cyclone/README
@@ -0,0 +1,6 @@
+
+these are help patches for the cyclone objects.
+please read TODO if you want to lend a hand
+
+chris[youknowwhat]deathtospambots.lo-res.org
+
diff --git a/doc/help/cyclone/TODO b/doc/help/cyclone/TODO
new file mode 100644
index 0000000..be52045
--- /dev/null
+++ b/doc/help/cyclone/TODO
@@ -0,0 +1,10 @@
+TODO:
+
+!!!! make sure no object slipped through !!!!
+
+not sure if correct:
+grab - please review .... should maybe add krzysztofs test patch
+next - please review someone .... is this ok ?
+index~ - my example is a bit boring I guess
+linedrive - used an old fts help patch, not ideal I guess ...
+coll - see coll.txt
diff --git a/doc/help/cyclone/TogEdge.pd b/doc/help/cyclone/TogEdge.pd
new file mode 100644
index 0000000..59c3bc0
--- /dev/null
+++ b/doc/help/cyclone/TogEdge.pd
@@ -0,0 +1,28 @@
+#N canvas 233 184 514 257 10;
+#X text 16 202 cyclone is (c) Miller Puckette and others;
+#X text 15 218 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 14 232 ___________________________________________________ ;
+#X obj 43 23 TogEdge;
+#X text 122 23 report zero / nozero transitions;
+#X obj 137 118 TogEdge;
+#X floatatom 137 76 5 0 0 0 - - -;
+#X obj 137 153 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 181 153 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 202 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 230 81 switches 0/nz;
+#X msg 92 76 0;
+#X msg 92 97 1;
+#X obj 208 152 print zero;
+#X obj 41 152 print nonzero;
+#X connect 5 0 7 0;
+#X connect 5 0 14 0;
+#X connect 5 1 8 0;
+#X connect 5 1 13 0;
+#X connect 6 0 5 0;
+#X connect 9 0 5 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 0;
diff --git a/doc/help/cyclone/Trough.pd b/doc/help/cyclone/Trough.pd
new file mode 100644
index 0000000..1a5cfb0
--- /dev/null
+++ b/doc/help/cyclone/Trough.pd
@@ -0,0 +1,37 @@
+#N canvas 99 164 519 473 10;
+#X text 24 419 cyclone is (c) Miller Puckette and others;
+#X text 24 434 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 23 448 ___________________________________________________
+;
+#X floatatom 29 200 5 0 0 0 - - -;
+#X floatatom 84 355 5 0 0 0 - - -;
+#X msg 84 103 4 4;
+#X text 116 105 is treated like normal input.;
+#X msg 84 80 6 7;
+#X msg 84 123 3 2;
+#X msg 98 150 bang;
+#X floatatom 121 211 5 0 0 0 - - -;
+#X obj 102 329 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 121 306 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 43 23 Trough;
+#X text 102 24 output only numbers smaller than the previous;
+#X text 103 42 Opposite of;
+#X obj 192 44 Peak;
+#X obj 84 274 Trough;
+#X text 120 330 new min value ?;
+#X text 138 307 !new min value ?;
+#X text 167 209 set new min value;
+#X text 141 150 sends current min value out the left outlet;
+#X text 115 92 first number resets minimum value \, then second one
+;
+#X connect 3 0 17 0;
+#X connect 5 0 17 0;
+#X connect 7 0 17 0;
+#X connect 8 0 17 0;
+#X connect 9 0 17 0;
+#X connect 10 0 17 1;
+#X connect 17 0 4 0;
+#X connect 17 1 11 0;
+#X connect 17 2 12 0;
diff --git a/doc/help/cyclone/Uzi.pd b/doc/help/cyclone/Uzi.pd
new file mode 100644
index 0000000..6a85108
--- /dev/null
+++ b/doc/help/cyclone/Uzi.pd
@@ -0,0 +1,31 @@
+#N canvas 32 175 469 429 10;
+#X text 26 361 cyclone is (c) Miller Puckette and others;
+#X text 26 376 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 25 390 ___________________________________________________ ;
+#X obj 43 23 Uzi 4;
+#X text 98 24 send a specified nr of bangs as fast as possible;
+#X obj 60 201 Uzi 2;
+#X obj 60 309 print uzi;
+#X obj 60 141 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 90 161 5 0 0 0 - - -;
+#X text 136 161 set number of bangs;
+#X msg 89 86 pause;
+#X text 186 86 pause sending bangs;
+#X msg 132 86 break;
+#X msg 152 110 resume;
+#X msg 88 110 continue;
+#X text 209 111 resume sending;
+#X floatatom 90 226 5 0 0 0 - - -;
+#X obj 75 276 print lastbang;
+#X text 137 228 number of current bang;
+#X connect 5 0 6 0;
+#X connect 5 1 17 0;
+#X connect 5 2 16 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 10 0 5 0;
+#X connect 12 0 5 0;
+#X connect 13 0 5 0;
+#X connect 14 0 5 0;
diff --git a/doc/help/cyclone/accum.pd b/doc/help/cyclone/accum.pd
new file mode 100644
index 0000000..e70b046
--- /dev/null
+++ b/doc/help/cyclone/accum.pd
@@ -0,0 +1,28 @@
+#N canvas 217 155 450 371 10;
+#X text 22 304 cyclone is (c) Miller Puckette and others;
+#X text 22 319 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 21 333 ___________________________________________________ ;
+#X text 98 24 store \, add to \, and multiply a number;
+#X obj 41 22 accum 4;
+#X obj 78 217 accum 4;
+#X text 143 218 arg sets initial value;
+#X floatatom 78 143 5 0 0 0 - - -;
+#X floatatom 78 248 5 0 0 0 - - -;
+#X text 126 144 set new value and output;
+#X floatatom 100 169 5 0 0 0 - - -;
+#X text 144 169 add to current value / no output;
+#X msg 50 116 bang;
+#X text 89 117 output current value;
+#X floatatom 122 194 5 0 0 0 - - -;
+#X text 172 194 multiply with current val / no output;
+#X msg 29 94 set \$1;
+#X floatatom 29 74 5 0 0 0 - - -;
+#X text 90 92 reset current value / no output;
+#X connect 5 0 8 0;
+#X connect 7 0 5 0;
+#X connect 10 0 5 1;
+#X connect 12 0 5 0;
+#X connect 14 0 5 2;
+#X connect 16 0 5 0;
+#X connect 17 0 16 0;
diff --git a/doc/help/cyclone/acos.pd b/doc/help/cyclone/acos.pd
new file mode 100644
index 0000000..47323e7
--- /dev/null
+++ b/doc/help/cyclone/acos.pd
@@ -0,0 +1,19 @@
+#N canvas 217 155 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X obj 41 22 acos 4;
+#X text 98 24 calculate arc cosine function;
+#X floatatom 46 216 8 0 0 0 - - -;
+#X msg 46 83 bang;
+#X obj 46 183 acos 0.2;
+#X obj 67 152 / 100;
+#X floatatom 67 132 5 0 0 0 - - -;
+#X text 96 84 output acos of current val;
+#X text 121 130 calculate and output acos;
+#X text 123 185 arg sets initial value;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
diff --git a/doc/help/cyclone/active.pd b/doc/help/cyclone/active.pd
new file mode 100644
index 0000000..632f9dd
--- /dev/null
+++ b/doc/help/cyclone/active.pd
@@ -0,0 +1,12 @@
+#N canvas 217 155 431 256 10;
+#X text 30 195 cyclone is (c) Miller Puckette and others;
+#X text 31 210 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 224 ___________________________________________________ ;
+#X obj 41 22 active;
+#X text 108 24 report if window is active / inactive;
+#X obj 39 117 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 39 86 active;
+#X text 64 118 focus / unfocus window and watch the toggle;
+#X connect 6 0 5 0;
diff --git a/doc/help/cyclone/allpass~.pd b/doc/help/cyclone/allpass~.pd
new file mode 100644
index 0000000..4a52f4b
--- /dev/null
+++ b/doc/help/cyclone/allpass~.pd
@@ -0,0 +1,113 @@
+#N canvas 196 184 528 447 10;
+#X obj 36 30 allpass~;
+#X text 115 30 allpass filter;
+#X floatatom 154 301 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 125 325 pd output;
+#X msg 183 301 MUTE;
+#X floatatom 192 184 5 0 0 0 - - -;
+#X obj 125 72 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 260 224 / 100;
+#X floatatom 260 205 5 0 0 0 - - -;
+#X text 154 71 generate short noisebursts;
+#N canvas 0 0 290 283 burst 0;
+#X obj 48 173 noise~;
+#X obj 95 172 line~;
+#X obj 79 203 *~;
+#X obj 95 73 metro 300;
+#X msg 43 132 0 20;
+#X msg 95 112 1 10;
+#X obj 44 112 del 20;
+#X obj 95 43 inlet;
+#X obj 79 236 outlet~;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X connect 2 0 8 0;
+#X connect 3 0 5 0;
+#X connect 3 0 6 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X restore 125 100 pd burst;
+#X text 240 184 delay time;
+#X text 305 204 gain;
+#X text 184 125 del time / gain can also be;
+#X text 23 388 cyclone is (c) Miller Puckette and others;
+#X text 22 403 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 21 417 ___________________________________________________ ;
+#X text 273 249 allpass~ accepts up o 4 args:;
+#X text 274 264 1 max del time (default 10ms);
+#X text 274 277 2 initial del time;
+#X text 274 289 3 initial gain;
+#X text 274 301 4 gain coefficient;
+#X text 184 136 specified using signals when;
+#X text 183 148 using a signal to control gain;
+#X text 183 160 the gain coeff is ignored \, see below;
+#X msg 71 179 clear;
+#X text 37 162 clear buffer;
+#X obj 125 252 allpass~ 100 4 0.7 0;
+#X connect 2 0 3 1;
+#X connect 3 0 2 0;
+#X connect 4 0 3 2;
+#X connect 5 0 27 1;
+#X connect 6 0 10 0;
+#X connect 7 0 27 2;
+#X connect 8 0 7 0;
+#X connect 10 0 27 0;
+#X connect 25 0 27 0;
+#X connect 27 0 3 0;
diff --git a/doc/help/cyclone/anal.pd b/doc/help/cyclone/anal.pd
new file mode 100644
index 0000000..ccf6796
--- /dev/null
+++ b/doc/help/cyclone/anal.pd
@@ -0,0 +1,34 @@
+#N canvas 217 155 496 386 10;
+#X text 22 332 cyclone is (c) Miller Puckette and others;
+#X text 23 347 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 22 361 ___________________________________________________ ;
+#X obj 41 22 anal 64;
+#X text 102 22 generate a histogram of number pairs received;
+#X text 108 184 arg sets the number of pairs to store;
+#X obj 48 192 anal 32;
+#X text 107 199 128 is the default 1024 is max;
+#X msg 48 79 clear;
+#X msg 59 101 reset;
+#X text 99 79 erase all numbers;
+#X text 107 102 erase last number received;
+#X floatatom 68 151 5 0 0 0 - - -;
+#X msg 125 138 1;
+#X msg 154 138 2;
+#X msg 181 138 3;
+#X text 171 251 how often did the last two numbers occur ?;
+#X floatatom 48 288 5 0 0 0 - - -;
+#X floatatom 87 267 5 0 0 0 - - -;
+#X obj 48 226 unpack f f f;
+#X floatatom 127 251 5 0 0 0 - - -;
+#X text 134 281 numbers in the pair;
+#X connect 6 0 19 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 12 0 6 0;
+#X connect 13 0 6 0;
+#X connect 14 0 6 0;
+#X connect 15 0 6 0;
+#X connect 19 0 17 0;
+#X connect 19 1 18 0;
+#X connect 19 2 20 0;
diff --git a/doc/help/cyclone/asin.pd b/doc/help/cyclone/asin.pd
new file mode 100644
index 0000000..3e50c4b
--- /dev/null
+++ b/doc/help/cyclone/asin.pd
@@ -0,0 +1,19 @@
+#N canvas 217 155 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X floatatom 46 216 8 0 0 0 - - -;
+#X msg 46 83 bang;
+#X obj 67 152 / 100;
+#X floatatom 67 132 5 0 0 0 - - -;
+#X text 123 185 arg sets initial value;
+#X obj 41 22 asin 0.2;
+#X text 108 24 calculate arc sine function;
+#X obj 46 183 asin 0.2;
+#X text 96 84 output acsin of current val;
+#X text 121 130 calculate and output asin;
+#X connect 4 0 10 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 10 0 3 0;
diff --git a/doc/help/cyclone/bangbang.pd b/doc/help/cyclone/bangbang.pd
new file mode 100644
index 0000000..8bd6280
--- /dev/null
+++ b/doc/help/cyclone/bangbang.pd
@@ -0,0 +1,28 @@
+#N canvas 217 155 423 410 10;
+#X text 22 332 cyclone is (c) Miller Puckette and others;
+#X text 23 347 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 22 361 ___________________________________________________ ;
+#X obj 41 22 bangbang 4;
+#X text 147 21 send a number of bangs in order;
+#X text 148 46 like;
+#X obj 186 41 trigger b b b ...;
+#X obj 48 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 48 117 bangbang 7;
+#X obj 113 142 print one;
+#X obj 102 165 print two;
+#X obj 91 188 print three;
+#X obj 80 212 print t-;
+#X obj 69 234 print t-;
+#X obj 58 256 print testin';
+#X obj 48 280 print done;
+#X text 140 118 arg sets number of outlets;
+#X connect 7 0 8 0;
+#X connect 8 0 15 0;
+#X connect 8 1 14 0;
+#X connect 8 2 13 0;
+#X connect 8 3 12 0;
+#X connect 8 4 11 0;
+#X connect 8 5 10 0;
+#X connect 8 6 9 0;
diff --git a/doc/help/cyclone/bondo.pd b/doc/help/cyclone/bondo.pd
new file mode 100644
index 0000000..196a844
--- /dev/null
+++ b/doc/help/cyclone/bondo.pd
@@ -0,0 +1,34 @@
+#N canvas 276 216 433 404 10;
+#X text 15 343 cyclone is (c) Miller Puckette and others;
+#X text 16 358 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 372 ___________________________________________________ ;
+#X obj 41 22 bondo 4;
+#X text 114 22 synx a group of messages;
+#X text 114 218 arg sets number of in/outlets;
+#X obj 42 215 bondo 3;
+#X obj 64 265 print two;
+#X msg 64 97 brown;
+#X msg 86 121 fox;
+#X msg 86 141 jumps;
+#X obj 86 241 print one;
+#X obj 42 291 print three;
+#X msg 64 78 quick;
+#X msg 42 124 a;
+#X msg 161 140 set newval;
+#X text 246 139 set the value / no output;
+#X msg 162 89 bang;
+#X text 200 84 output all values;
+#X text 199 95 works for all inlets;
+#X connect 6 0 12 0;
+#X connect 6 1 7 0;
+#X connect 6 2 11 0;
+#X connect 8 0 6 1;
+#X connect 9 0 6 2;
+#X connect 10 0 6 2;
+#X connect 13 0 6 1;
+#X connect 14 0 6 0;
+#X connect 15 0 6 1;
+#X connect 15 0 6 2;
+#X connect 15 0 6 0;
+#X connect 17 0 6 2;
diff --git a/doc/help/cyclone/buddy.pd b/doc/help/cyclone/buddy.pd
new file mode 100644
index 0000000..1156115
--- /dev/null
+++ b/doc/help/cyclone/buddy.pd
@@ -0,0 +1,25 @@
+#N canvas 171 195 421 340 10;
+#X text 14 272 cyclone is (c) Miller Puckette and others;
+#X text 15 287 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 14 301 ___________________________________________________ ;
+#X text 100 171 arg sets number of in/outlets;
+#X obj 41 21 buddy 4;
+#X obj 28 168 buddy 3;
+#X floatatom 28 235 5 0 0 0 - - -;
+#X floatatom 50 213 5 0 0 0 - - -;
+#X floatatom 72 193 5 0 0 0 - - -;
+#X floatatom 28 102 5 0 0 0 - - -;
+#X floatatom 50 126 5 0 0 0 - - -;
+#X floatatom 72 146 5 0 0 0 - - -;
+#X msg 106 89 clear;
+#X text 162 89 clear all stored values;
+#X text 105 15 sync incoming data \, output when all;
+#X text 105 27 inlets received data;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 5 2 8 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
+#X connect 11 0 5 2;
+#X connect 12 0 5 0;
diff --git a/doc/help/cyclone/capture.pd b/doc/help/cyclone/capture.pd
new file mode 100644
index 0000000..68d6b10
--- /dev/null
+++ b/doc/help/cyclone/capture.pd
@@ -0,0 +1,44 @@
+#N canvas 171 195 608 419 10;
+#X text 14 369 cyclone is (c) Miller Puckette and others;
+#X text 15 382 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 14 396 ___________________________________________________
+;
+#X obj 41 21 capture;
+#X obj 51 290 capture 64 x;
+#X msg 110 154 open;
+#X text 160 152 open editing window;
+#X floatatom 51 85 5 0 0 0 - - -;
+#X msg 24 62 10 20 30 40;
+#X msg 110 133 dump;
+#X obj 51 315 print dump;
+#X text 160 135 send out all stored values sequentially;
+#X msg 110 112 clear;
+#X text 162 112 clear contents;
+#X text 122 63 list is stored from first to last;
+#X text 143 298 second arg is x - values are in hex;
+#X text 242 311 m - values < 128 decimal \, larger numbers are hex
+;
+#X msg 110 173 wclose;
+#X text 162 171 close editing window;
+#X text 98 85 numbers are stored sequentially;
+#X msg 109 196 count;
+#X text 166 194 print number of items to the console;
+#X msg 109 217 write;
+#X msg 109 241 write /tmp/test.txt;
+#X text 262 241 write to file (no dialog);
+#X text 163 216 save to textfile (dialog box asks for filename);
+#X text 142 286 first arg is number of values to store (default 512)
+;
+#X text 104 22 store and edit numbers;
+#X text 221 337 none - values are decimal \, supports float;
+#X text 242 325 d - decimal \, default max behaviour \, only ints;
+#X connect 4 0 10 0;
+#X connect 5 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 9 0 4 0;
+#X connect 12 0 4 0;
+#X connect 17 0 4 0;
+#X connect 20 0 4 0;
+#X connect 22 0 4 0;
+#X connect 23 0 4 0;
diff --git a/doc/help/cyclone/cartopol.pd b/doc/help/cyclone/cartopol.pd
new file mode 100644
index 0000000..17cb75f
--- /dev/null
+++ b/doc/help/cyclone/cartopol.pd
@@ -0,0 +1,22 @@
+#N canvas 171 195 422 279 10;
+#X text 22 228 cyclone is (c) Miller Puckette and others;
+#X text 23 241 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 22 255 ___________________________________________________
+;
+#X obj 41 21 cartopol;
+#X text 114 15 cartesian to polar conversion;
+#X obj 122 135 cartopol;
+#X floatatom 122 100 5 0 0 0 - - -;
+#X floatatom 173 99 5 0 0 0 - - -;
+#X text 67 98 real->;
+#X text 222 98 <-imaginary;
+#X floatatom 122 171 5 0 0 0 - - -;
+#X floatatom 173 171 5 0 0 0 - - -;
+#X text 31 170 amplitude->;
+#X text 222 169 <-phase;
+#X text 121 39 see also;
+#X obj 185 33 poltocar;
+#X connect 5 0 10 0;
+#X connect 5 1 11 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
diff --git a/doc/help/cyclone/coll.pd b/doc/help/cyclone/coll.pd
new file mode 100644
index 0000000..fa73465
--- /dev/null
+++ b/doc/help/cyclone/coll.pd
@@ -0,0 +1,253 @@
+#N canvas 130 4 792 675 10;
+#X text 11 625 cyclone is (c) Miller Puckette and others;
+#X text 10 637 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 9 651 ___________________________________________________;
+#X text 146 23 store and edit collections of messages;
+#X obj 30 23 coll filename;
+#C restore;
+#X obj 243 501 coll /tmp/test.coll;
+#C restore;
+#X obj 244 61 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 255 124 next;
+#X obj 243 590 print coll;
+#X msg 266 147 prev;
+#X msg 156 142 clear;
+#X floatatom 285 567 5 0 0 0 - - -;
+#X obj 328 547 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 371 529 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 274 170 dump;
+#X msg 283 194 read /tmp/foo;
+#X msg 290 220 read;
+#X msg 316 291 length;
+#X text 354 549 bang when we finished a load or save operation;
+#X text 394 531 bang when finished with a dump operation;
+#X text 329 569 index of the message sent out;
+#X text 389 499 optional arg loads a file into coll;
+#N canvas 79 76 329 260 loadsomeitems 0;
+#X obj -44 53 inlet;
+#X obj -13 220 outlet;
+#X obj -44 75 t b b;
+#X text -70 21 messages prefixed with an index are stored:;
+#X msg -59 110 4 this is a message;
+#X msg 7 180 1 10;
+#X msg -40 132 3 and another one with 12345 in it;
+#X msg -13 155 2 some_symbol;
+#X connect 0 0 2 0;
+#X connect 2 1 4 0;
+#X connect 2 1 6 0;
+#X connect 2 1 7 0;
+#X connect 2 1 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 1 0;
+#X connect 7 0 1 0;
+#X restore 244 95 pd loadsomeitems;
+#X text 276 61 load stuff;
+#X text 153 96 look inside:;
+#X text 305 148 previous;
+#X text 314 171 dump them all;
+#X text 383 195 read a file;
+#X text 324 219 opens a dialog;
+#X msg 298 244 write /tmp/foo;
+#X text 404 246 write a file;
+#X text 354 266 open a dialog;
+#X msg 308 267 write;
+#X floatatom 203 124 5 0 0 0 - - -;
+#X text 85 123 output by index:;
+#X text 46 142 clear contents:;
+#X text 372 291 output nr. of messages stored;
+#X text 295 123 output next =;
+#X msg 392 122 bang;
+#X msg 322 313 delete 2;
+#X text 389 313 delete message \, and decrement larger indexes;
+#X msg 326 359 goto 2;
+#X text 379 361 goto item nr;
+#X msg 332 382 end;
+#X text 363 383 goto last item;
+#X msg 333 404 filetype;
+#X text 407 407 useless on unix it's a dummy function;
+#X msg 338 427 flags 1 0;
+#X text 412 429 save coll's contents with the patch;
+#X msg 338 453 flags 0 0;
+#X text 414 454 don't save (default);
+#N canvas 98 103 484 259 more 0;
+#X obj 129 205 outlet;
+#X msg 50 37 store named_one this works too;
+#X msg 95 67 named_one;
+#X msg 129 112 nstore 5 foobar stored and associated;
+#X msg 146 140 foobar;
+#X text 198 141 =;
+#X msg 214 141 5;
+#X text 127 93 store and associate at once:;
+#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 6 0 0 0;
+#X restore 65 415 pd more ways to store;
+#N canvas 27 85 907 412 complex 0;
+#X obj 100 366 outlet;
+#X msg 44 62 assoc bar 1;
+#X msg 100 88 bar;
+#X msg 118 119 subsym foo bar;
+#X msg 131 149 foo;
+#X msg 138 178 deassoc foo 1;
+#X text 18 10 coll can associate indexes and symbols \, symbols;
+#X text 17 22 can be used just like ints to operate on or re-;
+#X text 16 35 trieve data:;
+#X obj 131 251 r cout;
+#X obj 500 372 s cout;
+#X text 135 63 associate index 1 with 'bar';
+#X text 138 91 retrieve it using association;
+#X text 230 121 change association;
+#X text 163 149 retrieve;
+#X text 239 179 remove association;
+#X msg 315 209 nth 4 3;
+#X text 16 210 retrieve 3rd element of message at index 4;
+#X msg 423 70 merge 2 and this was appended;
+#X msg 448 96 2;
+#X text 419 37 merge appends a message to an;
+#X text 419 50 already stored one:;
+#X msg 500 130 insert 2 a new two;
+#X text 498 102 inserts new message at index;
+#X text 499 113 and increments all indexes >=;
+#X floatatom 520 160 5 0 0 0 - - -;
+#X text 562 159 check it out ...;
+#X text 543 220 or send it out immediately:;
+#X text 536 181 replace an item (silently):;
+#X msg 537 202 nsub 2 3 one;
+#X msg 546 238 sub 2 2 newer;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 9 0 0 0;
+#X connect 16 0 0 0;
+#X connect 18 0 10 0;
+#X connect 19 0 10 0;
+#X connect 22 0 10 0;
+#X connect 25 0 10 0;
+#X connect 29 0 10 0;
+#X connect 30 0 10 0;
+#X restore 64 392 pd complex operations;
+#X text 62 373 for more info:;
+#X msg 120 166 open;
+#X text 33 167 open editor:;
+#X msg 469 193 readagain;
+#X text 542 192 reopens last file read;
+#X msg 325 335 remove 3;
+#X text 391 334 delete message \, leave index alone;
+#X msg 496 243 writeagain;
+#X text 576 245 rewrite last file written;
+#N canvas 116 68 589 315 even 0;
+#X obj 32 207 coll /tmp/new.coll;
+#C restore;
+#X obj 32 236 print more_coll;
+#X text 133 78 load ...;
+#X msg 49 99 dump;
+#X msg 77 146 renumber;
+#X msg 78 169 dump;
+#X msg 67 122 swap 1 2;
+#X msg 32 76 1 100 \, 2 200;
+#X text 21 32 this is not like in the reference \,;
+#X text 22 45 renumber shouldn't be needed:;
+#X text 135 123 swap 1 & 2;
+#X msg 33 268 renumber;
+#X text 30 289 doesn't quite work as expected ...;
+#X obj 301 242 print more_coll;
+#X obj 301 213 coll /tmp/new1.coll;
+#C restore;
+#X msg 301 80 2 2 3 4 \, 1 1 2 3 \, 3 3 4 5;
+#X msg 318 106 sort 1;
+#X msg 325 132 dump;
+#X msg 412 106 sort -1;
+#X text 299 49 sort by index or element \, up or down:;
+#X text 468 108 up;
+#X text 375 107 down;
+#X msg 366 155 sort 1 3;
+#X msg 442 153 sort -1 3;
+#X text 371 137 sort by 3rd element:;
+#X msg 379 182 dump;
+#X text 141 147 order by index*;
+#X text 17 259 *;
+#X connect 0 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
+#X connect 17 0 14 0;
+#X connect 18 0 14 0;
+#X connect 22 0 14 0;
+#X connect 23 0 14 0;
+#X connect 25 0 14 0;
+#X restore 577 93 pd even more things;
+#X msg 111 191 wclose;
+#X text 19 192 close & save:;
+#N canvas 0 0 450 300 problems 0;
+#X obj 121 205 outlet;
+#X msg 93 86 min;
+#X msg 121 114 max;
+#X text 85 33 please look at coll.txt if you think;
+#X text 85 46 you can help...;
+#N canvas 63 144 658 284 refer 0;
+#X msg 45 98 1 1 \, 2 2 \, 3 3;
+#X floatatom 408 135 5 0 0 0 - - -;
+#X floatatom 475 204 5 0 0 0 - - -;
+#X obj 45 132 coll /tmp/1.coll;
+#C restore;
+#X obj 475 167 coll /tmp/2.coll;
+#C restore;
+#X msg 475 99 refer /tmp/1.coll;
+#X text 43 71 load data into 1.coll:;
+#X text 396 73 tell 2.coll to refer to 1.coll:;
+#X text 215 135 retrieve 1.coll's contents:;
+#X text 40 31 I once crashed* pd using this so please use with caution
+...;
+#X text 50 236 * can't reproduce it :(;
+#X connect 0 0 3 0;
+#X connect 1 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 0;
+#X restore 302 250 pd refer;
+#X text 324 100;
+#X text 50 246 I don't consider this to be stable:;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X restore 25 484 pd problems;
+#X text 573 75 swap \, sort \, renumber:;
+#X connect 5 0 8 0;
+#X connect 5 1 11 0;
+#X connect 5 2 12 0;
+#X connect 5 3 13 0;
+#X connect 6 0 22 0;
+#X connect 7 0 5 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 0;
+#X connect 14 0 5 0;
+#X connect 15 0 5 0;
+#X connect 16 0 5 0;
+#X connect 17 0 5 0;
+#X connect 22 0 5 0;
+#X connect 29 0 5 0;
+#X connect 32 0 5 0;
+#X connect 33 0 5 0;
+#X connect 39 0 5 0;
+#X connect 41 0 5 0;
+#X connect 43 0 5 0;
+#X connect 45 0 5 0;
+#X connect 47 0 5 0;
+#X connect 49 0 5 0;
+#X connect 51 0 5 0;
+#X connect 52 0 5 0;
+#X connect 54 0 5 0;
+#X connect 58 0 5 0;
+#X connect 63 0 5 0;
+#X connect 65 0 5 0;
diff --git a/doc/help/cyclone/coll.txt b/doc/help/cyclone/coll.txt
new file mode 100644
index 0000000..5c0c9e7
--- /dev/null
+++ b/doc/help/cyclone/coll.txt
@@ -0,0 +1,14 @@
+
+
+max, min don't work ... I suppose [1 2 ( stores 2 as a symbol not number
+
+I don't understand refer ... is it like read ??? ahem and it segfaults ...
+update: can't reproduce the crash - seems to work fine now ...
+
+renumber does really strange things, loses elements ... hmmmm
+
+
+
+
+
+
diff --git a/doc/help/cyclone/comb~.pd b/doc/help/cyclone/comb~.pd
new file mode 100644
index 0000000..1167d63
--- /dev/null
+++ b/doc/help/cyclone/comb~.pd
@@ -0,0 +1,112 @@
+#N canvas 196 184 702 481 10;
+#X floatatom 235 341 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 206 365 pd output;
+#X msg 264 341 MUTE;
+#X obj 206 94 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 235 93 generate short noisebursts;
+#N canvas 0 0 290 283 burst 0;
+#X obj 48 173 noise~;
+#X obj 95 172 line~;
+#X obj 79 203 *~;
+#X obj 95 73 metro 300;
+#X msg 43 132 0 20;
+#X msg 95 112 1 10;
+#X obj 44 112 del 20;
+#X obj 95 43 inlet;
+#X obj 79 236 outlet~;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X connect 2 0 8 0;
+#X connect 3 0 5 0;
+#X connect 3 0 6 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 4 0;
+#X connect 7 0 3 0;
+#X restore 206 122 pd burst;
+#X text 23 426 cyclone is (c) Miller Puckette and others;
+#X text 22 440 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 21 454 ___________________________________________________ ;
+#X obj 36 30 comb~;
+#X text 110 28 comb filter;
+#X floatatom 248 167 5 0 0 0 - - -;
+#X floatatom 291 191 5 0 0 0 - - -;
+#X floatatom 333 214 5 0 0 0 - - -;
+#X floatatom 376 240 5 0 0 0 - - -;
+#X msg 90 229 clear;
+#X text 53 207 clear buffer;
+#X msg 127 167 10 0.4 0.7;
+#X text 297 167 D = delay time;
+#X text 335 191 a = input (pre delay) amplitude coefficient;
+#X text 381 215 b = input (post delay) amplitude coefficient;
+#X text 421 241 c = outnput amplitude coefficient;
+#X text 132 148 D a b;
+#X text 278 141 D \, a \, b \, c inlets support signals aswell;
+#X obj 206 265 comb~ 100 0.2 0.2 0.3 0.9;
+#X connect 0 0 1 1;
+#X connect 1 0 0 0;
+#X connect 2 0 1 2;
+#X connect 3 0 5 0;
+#X connect 5 0 24 0;
+#X connect 11 0 24 1;
+#X connect 12 0 24 2;
+#X connect 13 0 24 3;
+#X connect 14 0 24 4;
+#X connect 15 0 24 0;
+#X connect 17 0 24 0;
+#X connect 24 0 1 0;
diff --git a/doc/help/cyclone/cosh.pd b/doc/help/cyclone/cosh.pd
new file mode 100644
index 0000000..ea6b620
--- /dev/null
+++ b/doc/help/cyclone/cosh.pd
@@ -0,0 +1,19 @@
+#N canvas 217 155 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X floatatom 46 216 8 0 0 0 - - -;
+#X msg 46 83 bang;
+#X obj 67 152 / 100;
+#X floatatom 67 132 5 0 0 0 - - -;
+#X text 123 185 arg sets initial value;
+#X obj 42 22 cosh 0.2;
+#X text 108 24 calculate hyperbolic cosine function;
+#X obj 46 183 cosh 0.2;
+#X text 95 82 output cosh of current val;
+#X text 121 130 calculate and output cosh;
+#X connect 4 0 10 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 10 0 3 0;
diff --git a/doc/help/cyclone/counter.pd b/doc/help/cyclone/counter.pd
new file mode 100644
index 0000000..422dff9
--- /dev/null
+++ b/doc/help/cyclone/counter.pd
@@ -0,0 +1,155 @@
+#N canvas 7 38 850 620 10;
+#X text -11 558 cyclone is (c) Miller Puckette and others;
+#X text -11 573 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text -12 587 ___________________________________________________
+;
+#X obj 5 20 counter;
+#X text 79 21 count the number of bangs received;
+#X obj 54 94 metro 300;
+#X obj 54 71 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X floatatom 131 217 5 0 0 0 - - -;
+#X text 181 218 number of bangs;
+#X text 163 96 change direction;
+#X obj 142 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 4 71 start;
+#X obj 153 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 176 126 reset to minimum \, wait for next bang before output
+;
+#X obj 164 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 188 151 reset and output imediately;
+#X floatatom 112 73 5 0 0 0 - - -;
+#X obj 175 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 131 191 counter;
+#X text 197 175 reset to max \, wait for next bang before output *
+;
+#X text 436 538 * there seems to be a bug when used with an;
+#X text 451 548 unlimited counter \, sensible behaviour IMO;
+#X text 452 558 would be to reset to 0 aswell ...;
+#X obj 162 490 counter;
+#X floatatom 162 260 5 0 0 0 - - -;
+#X floatatom 162 517 5 0 0 0 - - -;
+#X msg 181 284 0;
+#X msg 191 303 1;
+#X msg 200 323 2;
+#X text 225 287 counter direction;
+#X text 248 299 0 = up;
+#X text 248 311 1 = down;
+#X text 248 323 2 = up and down;
+#X floatatom 209 363 5 0 0 0 - - -;
+#X floatatom 217 380 5 0 0 0 - - -;
+#X floatatom 224 398 5 0 0 0 - - -;
+#X text 254 361 set min;
+#X text 267 399 set max;
+#X text 262 378 set counter value;
+#X obj 572 430 counter;
+#X msg 518 315 set \$1;
+#X floatatom 518 296 5 0 0 0 - - -;
+#X msg 572 316 jam \$1;
+#X floatatom 572 297 5 0 0 0 - - -;
+#X text 463 278 set counter to nr. and output;
+#X text 612 295 immediately;
+#X text 428 295 at next bang;
+#X msg 433 314 goto \$1;
+#X text 494 316 =;
+#X msg 67 374 up;
+#X msg 80 394 down;
+#X msg 101 413 updown;
+#X text 63 357 direction:;
+#X msg 82 315 inc;
+#X msg 63 295 dec;
+#X text -2 266 inc/decrement doesn't;
+#X text -2 277 care about direction;
+#X msg 319 259 next;
+#X text 208 260 number = bang =;
+#X obj 412 391 min \$1;
+#X obj 460 390 max \$1;
+#X floatatom 412 370 5 0 0 0 - - -;
+#X floatatom 460 369 5 0 0 0 - - -;
+#X text 409 352 set min/max;
+#N canvas 0 0 504 163 arguments 0;
+#X obj 62 50 counter max;
+#X obj 62 72 counter min max;
+#X obj 61 95 counter dir min max;
+#X text 58 21 arguments are specified as follows:;
+#X text 195 51 one arg = initial maximum;
+#X text 196 69 two args = initial min/max;
+#X text 208 95 three = direction (0 \, 1 \, 2) min/max;
+#X restore 330 89 pd arguments;
+#N canvas 19 104 733 288 outputs 0;
+#X obj 49 82 metro 100;
+#X obj 49 57 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X floatatom 49 227 5 0 0 0 - - -;
+#X text 88 228 count;
+#X floatatom 80 198 5 0 0 0 - - -;
+#X floatatom 111 169 5 0 0 0 - - -;
+#X obj 49 108 counter 2 0 10;
+#X text 155 171 we reached max when counting up;
+#X text 129 200 we reached min when counting down;
+#X floatatom 142 137 5 0 0 0 - - -;
+#X text 187 139 count of overflows;
+#X obj 468 156 metro 100;
+#X obj 468 73 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 468 183 counter 2 0 10;
+#X msg 412 104 carrybang;
+#X obj 499 230 print down;
+#X obj 530 207 print up;
+#X msg 436 126 carryint;
+#X text 506 127 default (0/1);
+#X text 485 104 bang when up/down overflow;
+#X text 144 17 ok \, wondering what so many outputs are for ? here
+we go!;
+#X text 145 30 please also test the carrybang vs carryint \, to the
+right;
+#X text 144 43 the subtile difference is 2 state changes (int) vs one
+bang;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 6 0 2 0;
+#X connect 6 1 4 0;
+#X connect 6 2 5 0;
+#X connect 6 3 9 0;
+#X connect 11 0 13 0;
+#X connect 12 0 11 0;
+#X connect 13 1 15 0;
+#X connect 13 2 16 0;
+#X connect 14 0 13 0;
+#X connect 17 0 13 0;
+#X restore 428 89 pd outputs;
+#X text 419 252 additional ways to accomplish the same:;
+#X connect 5 0 18 0;
+#X connect 6 0 5 0;
+#X connect 10 0 18 1;
+#X connect 12 0 18 2;
+#X connect 14 0 18 3;
+#X connect 16 0 5 1;
+#X connect 17 0 18 4;
+#X connect 18 0 7 0;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 26 0 23 1;
+#X connect 27 0 23 1;
+#X connect 28 0 23 1;
+#X connect 33 0 23 2;
+#X connect 34 0 23 3;
+#X connect 35 0 23 4;
+#X connect 40 0 39 0;
+#X connect 41 0 40 0;
+#X connect 42 0 39 0;
+#X connect 43 0 42 0;
+#X connect 49 0 23 0;
+#X connect 50 0 23 0;
+#X connect 51 0 23 0;
+#X connect 53 0 23 0;
+#X connect 54 0 23 0;
+#X connect 59 0 39 0;
+#X connect 60 0 39 0;
+#X connect 61 0 59 0;
+#X connect 62 0 60 0;
diff --git a/doc/help/cyclone/count~.pd b/doc/help/cyclone/count~.pd
new file mode 100644
index 0000000..888eb88
--- /dev/null
+++ b/doc/help/cyclone/count~.pd
@@ -0,0 +1,59 @@
+#N canvas 142 76 706 610 10;
+#X text 21 541 cyclone is (c) Miller Puckette and others;
+#X text 20 557 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 19 572 ___________________________________________________ ;
+#X obj 32 17 count~;
+#X text 106 18 sample counter;
+#X obj 135 402 count~;
+#X msg 55 98 stop;
+#X msg 33 72 bang;
+#X text 72 73 start counting;
+#X text 94 99 stop \, you guessed it;
+#X obj 185 458 snapshot~;
+#X obj 185 429 metro 20;
+#X obj 185 403 tgl 15 0 empty start empty 0 -6 64 8 -262144 -1 -1 1
+1;
+#X floatatom 185 485 15 0 0 0 - - -;
+#X text 298 486 samples counted;
+#X floatatom 172 291 5 0 0 0 - - -;
+#X floatatom 135 267 5 0 0 0 - - -;
+#X text 215 291 set a max value \, counter restarts at min;
+#X obj 524 131 tgl 15 0 empty start empty 0 -6 64 8 -262144 -1 -1 1
+1;
+#X msg 524 155 \; pd dsp \$1;
+#X obj 110 134 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 110 159 autoreset \$1;
+#X text 135 135 reset counter to min if dsp is turned off and on again
+;
+#X text 546 134 try it;
+#X msg 182 243 set \$1;
+#X floatatom 182 221 5 0 0 0 - - -;
+#X text 181 266 set a min value (immediately);
+#X obj 590 44 loadbang;
+#X msg 590 69 \; start 1;
+#X msg 536 239 min \$1;
+#X floatatom 536 218 5 0 0 0 - - -;
+#X text 240 244 set a min value for the next loop same as;
+#X msg 413 345 10 100000 1 1;
+#X text 200 325 you can also use a list like :;
+#X msg 413 323 min max on/off? autoreset?;
+#X obj 395 431 count~ 10 10000 0 1;
+#X text 332 412 args mean : min max on/off? autoreset?;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 10 0 13 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 15 0 5 1;
+#X connect 16 0 5 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 21 0 5 0;
+#X connect 24 0 5 0;
+#X connect 25 0 24 0;
+#X connect 27 0 28 0;
+#X connect 30 0 29 0;
+#X connect 32 0 5 0;
diff --git a/doc/help/cyclone/cycle.pd b/doc/help/cyclone/cycle.pd
new file mode 100644
index 0000000..b8e1253
--- /dev/null
+++ b/doc/help/cyclone/cycle.pd
@@ -0,0 +1,78 @@
+#N canvas 259 235 430 366 10;
+#X text 24 319 cyclone is (c) Miller Puckette and others;
+#X text 25 332 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 24 346 ___________________________________________________
+;
+#X obj 34 159 cycle 3;
+#X floatatom 62 133 5 0 0 0 - - -;
+#X floatatom 34 185 5 0 0 0 - - -;
+#X floatatom 56 206 5 0 0 0 - - -;
+#X floatatom 78 185 5 0 0 0 - - -;
+#X msg 34 65 1;
+#X msg 34 83 2;
+#X msg 34 101 3;
+#X obj 20 24 cycle 3;
+#X text 84 25 send data to individual outlets;
+#X obj 308 149 cycle 2;
+#X obj 308 102 metro 300;
+#X obj 308 82 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 308 174 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 352 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 308 125 symbol foo;
+#X text 116 75 sets next outlet;
+#X msg 70 72 set 2;
+#X msg 69 92 thresh;
+#X text 124 94 change output mode*;
+#X text 27 262 * look here:;
+#N canvas 392 290 450 275 more... 0;
+#X obj 239 99 cycle 2 0;
+#X floatatom 239 149 5 0 0 0 - - -;
+#X floatatom 297 148 5 0 0 0 - - -;
+#X floatatom 239 62 5 0 0 0 - - -;
+#X floatatom 72 155 5 0 0 0 - - -;
+#X floatatom 130 155 5 0 0 0 - - -;
+#X floatatom 72 61 5 0 0 0 - - -;
+#X obj 72 108 cycle 2 1;
+#X msg 155 38 1;
+#X msg 155 56 2;
+#X msg 155 74 3;
+#X text 54 211 ok \, so I don't fully understand this but it looks
+;
+#X text 55 226 like new 'events' alway end up in the left outlet;
+#X msg 102 35 1 2 3;
+#X text 55 240 whereas only lists get parted in the expected way.;
+#X msg 22 37 thresh;
+#X msg 300 38 thresh;
+#X msg 309 62 1 2 3 4;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 3 0 0 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
+#X connect 7 1 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 0;
+#X connect 13 0 7 0;
+#X connect 15 0 7 0;
+#X connect 16 0 0 0;
+#X connect 17 0 0 0;
+#X restore 119 257 pd more...;
+#X text 89 160 1st arg sets nr of outlets*;
+#X connect 3 0 5 0;
+#X connect 3 1 6 0;
+#X connect 3 2 7 0;
+#X connect 4 0 3 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 0;
+#X connect 10 0 3 0;
+#X connect 13 0 16 0;
+#X connect 13 1 17 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 18 0 13 0;
+#X connect 20 0 3 0;
+#X connect 21 0 3 0;
diff --git a/doc/help/cyclone/decide.pd b/doc/help/cyclone/decide.pd
new file mode 100644
index 0000000..61f9a9f
--- /dev/null
+++ b/doc/help/cyclone/decide.pd
@@ -0,0 +1,29 @@
+#N canvas 259 235 421 295 10;
+#X text 32 242 cyclone is (c) Miller Puckette and others;
+#X text 33 255 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 32 269 ___________________________________________________
+;
+#X obj 29 16 decide;
+#X text 94 16 output 0/1 randomly;
+#X obj 46 143 decide 12;
+#X obj 265 135 decide;
+#X obj 46 184 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 46 96 metro 300;
+#X obj 46 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 120 143 arg seeds the rng;
+#X floatatom 104 121 5 0 0 0 - - -;
+#X text 151 120 reseed rng;
+#X obj 265 109 metro 300;
+#X obj 265 82 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 265 172 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X connect 5 0 7 0;
+#X connect 6 0 15 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 0;
+#X connect 11 0 5 1;
+#X connect 13 0 6 0;
+#X connect 14 0 13 0;
diff --git a/doc/help/cyclone/delay~.pd b/doc/help/cyclone/delay~.pd
new file mode 100644
index 0000000..df7ddfb
--- /dev/null
+++ b/doc/help/cyclone/delay~.pd
@@ -0,0 +1,100 @@
+#N canvas 269 209 621 419 10;
+#X text 24 359 cyclone is (c) Miller Puckette and others;
+#X text 23 375 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 23 390 ___________________________________________________ ;
+#X obj 32 17 delay~;
+#X text 92 17 delay incoming signal for a number of samples;
+#X text 305 150 arg is max delay in samples (default 512);
+#X obj 61 150 delay~ 22050;
+#X obj 61 80 adc~;
+#X obj 62 116 hip~ 5;
+#X obj 140 113 * 4410;
+#X floatatom 140 83 5 0 0 0 - - -;
+#X floatatom 175 291 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 146 315 pd output;
+#X msg 204 291 MUTE;
+#X obj 207 173 -~;
+#X floatatom 207 83 5 0 0 0 - - -;
+#X obj 223 148 delay~ 100;
+#X floatatom 288 129 5 0 0 0 - - -;
+#X obj 61 184 *~;
+#X obj 94 63 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 207 205 *~;
+#X obj 249 64 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 207 104 phasor~ 100;
+#X text 116 62 try this...;
+#X text 271 62 or this;
+#X connect 6 0 18 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 1;
+#X connect 10 0 9 0;
+#X connect 11 0 12 1;
+#X connect 12 0 11 0;
+#X connect 13 0 12 2;
+#X connect 14 0 20 0;
+#X connect 15 0 22 0;
+#X connect 16 0 14 1;
+#X connect 17 0 16 1;
+#X connect 18 0 12 0;
+#X connect 19 0 18 1;
+#X connect 20 0 12 0;
+#X connect 21 0 20 1;
+#X connect 22 0 14 0;
+#X connect 22 0 16 0;
diff --git a/doc/help/cyclone/drunk.pd b/doc/help/cyclone/drunk.pd
new file mode 100644
index 0000000..011ecef
--- /dev/null
+++ b/doc/help/cyclone/drunk.pd
@@ -0,0 +1,44 @@
+#N canvas 162 57 539 508 10;
+#X text 35 454 cyclone is (c) Miller Puckette and others;
+#X text 36 467 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 35 481 ___________________________________________________
+;
+#X obj 52 23 drunk;
+#X text 109 26 output random numbers in a moving range;
+#X obj 92 383 drunk 10;
+#X floatatom 92 411 5 0 0 0 - - -;
+#X obj 92 82 metro 300;
+#X obj 92 59 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X floatatom 51 118 5 0 0 0 - - -;
+#X msg 104 163 set \$1;
+#X floatatom 104 140 5 0 0 0 - - -;
+#X text 157 163 set new bound without triggering output;
+#X text 172 84 bang triggers output;
+#X msg 181 249 10 20 4;
+#X text 247 249 first sets current value;
+#X text 247 262 second sets bound;
+#X text 247 275 third (if present) limits stepsize;
+#X msg 181 271 5 30;
+#X msg 123 224 seed \$1;
+#X text 188 223 seed rng;
+#X floatatom 123 202 5 0 0 0 - - -;
+#X text 96 119 set new value and output;
+#X floatatom 159 340 5 0 0 0 - - -;
+#X floatatom 164 356 5 0 0 0 - - -;
+#X text 204 338 set upper bound;
+#X text 212 353 set stepsize;
+#X text 155 378 args set initial bound and maximum stepsize;
+#X text 155 389 default 128 2;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 0;
+#X connect 11 0 10 0;
+#X connect 14 0 5 0;
+#X connect 18 0 5 0;
+#X connect 19 0 5 0;
+#X connect 21 0 19 0;
+#X connect 23 0 5 1;
+#X connect 24 0 5 2;
diff --git a/doc/help/cyclone/flush.pd b/doc/help/cyclone/flush.pd
new file mode 100644
index 0000000..b524367
--- /dev/null
+++ b/doc/help/cyclone/flush.pd
@@ -0,0 +1,31 @@
+#N canvas 162 57 564 390 10;
+#X text 25 336 cyclone is (c) Miller Puckette and others;
+#X text 26 349 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 25 363 ___________________________________________________ ;
+#X obj 40 17 flush;
+#X text 96 20 provide note offs for held notes;
+#X obj 95 238 flush;
+#X msg 34 110 clear;
+#X floatatom 95 287 5 0 0 0 - - -;
+#X floatatom 125 266 5 0 0 0 - - -;
+#X text 142 287 pitch;
+#X msg 95 151 64 111;
+#X text 169 265 velocity;
+#X msg 34 90 bang;
+#X text 74 89 send note off for all pitches for which only a noteon
+was;
+#X text 80 110 clear pitch list;
+#X text 477 89 received;
+#X text 154 151 list is treated as pitch/velocity pair;
+#X floatatom 113 196 5 0 0 0 - - -;
+#X floatatom 125 216 5 0 0 0 - - -;
+#X text 157 195 pitch;
+#X text 169 214 velocity;
+#X connect 5 0 7 0;
+#X connect 5 1 8 0;
+#X connect 6 0 5 0;
+#X connect 10 0 5 0;
+#X connect 12 0 5 0;
+#X connect 17 0 5 0;
+#X connect 18 0 5 1;
diff --git a/doc/help/cyclone/forward.pd b/doc/help/cyclone/forward.pd
new file mode 100644
index 0000000..31bd6bb
--- /dev/null
+++ b/doc/help/cyclone/forward.pd
@@ -0,0 +1,22 @@
+#N canvas 162 57 437 208 10;
+#X text 20 154 cyclone is (c) Miller Puckette and others;
+#X text 21 167 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 181 ___________________________________________________ ;
+#X obj 39 17 forward;
+#X text 102 18 send remote messages;
+#X obj 218 78 r foo;
+#X obj 268 78 tgl 15 0 empty bar empty 0 -6 64 8 -262144 -1 -1 1 1
+;
+#X floatatom 218 104 5 0 0 0 - - -;
+#X obj 57 108 forward foo;
+#X floatatom 57 78 5 0 0 0 - - -;
+#X msg 102 76 send bar;
+#X obj 28 77 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 102 57 send foo;
+#X connect 5 0 7 0;
+#X connect 9 0 8 0;
+#X connect 10 0 8 0;
+#X connect 11 0 8 0;
+#X connect 12 0 8 0;
diff --git a/doc/help/cyclone/fromsymbol.pd b/doc/help/cyclone/fromsymbol.pd
new file mode 100644
index 0000000..714b2f8
--- /dev/null
+++ b/doc/help/cyclone/fromsymbol.pd
@@ -0,0 +1,44 @@
+#N canvas 134 92 582 543 10;
+#X obj 29 16 fromsymbol;
+#X obj 53 251 fromsymbol;
+#X obj 29 37 tosymbol;
+#X text 121 22 transform symbol to numbers or messages and vice versa
+;
+#X text 17 488 cyclone is (c) Miller Puckette and others;
+#X text 18 501 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 17 515 ___________________________________________________
+;
+#X obj 94 190 tosymbol;
+#X text 35 72 since pd lacks a quoting mechanism (like `foo bar`) there
+is;
+#X text 36 84 no support for spaces in symbols \, so the original max
+way of;
+#X text 35 96 using from/tosymbol won't work. One has to construct
+symbols;
+#X text 34 109 with other tools like;
+#X obj 185 113 tosymbol;
+#X obj 267 113 makesymbol;
+#X text 248 109 or;
+#X text 342 110 from zexy;
+#X msg 94 164 this is a list of symbols;
+#X obj 94 215 print symbol_with_spaces;
+#X text 271 218 becomes a symbol with spaces;
+#X obj 53 279 print list_again;
+#X text 178 282 and can be transformed back into a list;
+#X text 31 164 so this:;
+#X obj 90 409 tosymbol;
+#X obj 90 434 print separator;
+#X text 50 353 1;
+#X text 57 382 2;
+#X obj 55 317 tosymbol;
+#X msg 90 379 lets place a _ instead of a space inside;
+#X msg 67 354 separator _;
+#X text 117 321 can also be used to generate non space symbols from
+lists:;
+#X connect 1 0 19 0;
+#X connect 7 0 17 0;
+#X connect 7 0 1 0;
+#X connect 16 0 7 0;
+#X connect 22 0 23 0;
+#X connect 27 0 22 0;
+#X connect 28 0 22 0;
diff --git a/doc/help/cyclone/funbuff.pd b/doc/help/cyclone/funbuff.pd
new file mode 100644
index 0000000..fb8f268
--- /dev/null
+++ b/doc/help/cyclone/funbuff.pd
@@ -0,0 +1,129 @@
+#N canvas 52 27 933 630 10;
+#X obj 490 17 offer;
+#X text 155 21 store x \, y pairs of numbers together \, see also:
+;
+#X msg 52 81 1 10 \, 2 20 \, 3 3.33;
+#X floatatom 167 175 5 0 0 0 - - -;
+#X obj 166 520 print funbuff;
+#X msg 99 110 4 4.4;
+#X text 195 98 store x y pairs;
+#X msg 120 136 4 44.4;
+#X text 193 137 replace a previously stored y value;
+#X text 215 173 retrieve corresponding y value;
+#X msg 55 315 clear;
+#X text 23 296 erase contents;
+#X msg 210 228 embed \$1;
+#X obj 210 208 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 279 222 with nonzero arg the contents of the object are;
+#X text 278 233 saved with the patch \, this is the default behaviour
+;
+#X msg 223 283 goto \$1;
+#X floatatom 223 263 5 0 0 0 - - -;
+#X text 285 267 jump to x position;
+#X msg 224 305 next;
+#X text 285 307 and output y val;
+#X text 285 278 or next x > num;
+#X msg 248 349 min;
+#X msg 248 373 max;
+#X text 289 351 output smallest;
+#X text 289 374 or largest stored y val;
+#X msg 52 370 write;
+#X text 23 353 save contents;
+#X msg 40 430 read;
+#X text 22 413 load contents;
+#X msg 312 447 read /tmp/test.funbuff;
+#X msg 312 426 write /tmp/test.funbuff;
+#X text 283 408 with filename as arg no dialog appears:;
+#X obj 684 243 funbuff;
+#C restore;
+#X obj 684 274 print funbuff2;
+#X msg 646 108 bang;
+#X text 686 108 print status info;
+#X msg 604 83 set 1 1 2 2.2 3 3.5;
+#X text 554 65 another way to store pairs:;
+#X msg 696 134 delete 1 1;
+#X text 772 135 delete matching pair;
+#X msg 703 164 delete 2;
+#X text 766 166 delete pair where x=2;
+#X msg 793 208 delete 3 4;
+#X text 722 191 no! we don't have it:;
+#X obj 664 400 funbuff;
+#C restore;
+#X obj 686 426 print funbuffY;
+#X obj 664 453 print funbuffX;
+#X msg 622 340 1 2 \, 3 4 \, 5 6 \, 7 8;
+#X msg 671 368 dump;
+#X text 768 339 load some vals;
+#X text 718 368 and dump them;
+#X obj 31 19 funbuff filename;
+#C restore;
+#X obj 166 494 funbuff /tmp/test.funbuff;
+#C restore;
+#X text 349 492 arg sets initial filename to load;
+#N canvas 28 70 678 307 even 0;
+#X obj 119 161 funbuff;
+#C restore;
+#X msg 43 72 set 1 2 4 5 7 8 11 12 13 14;
+#X text 39 55 load some values:;
+#X msg 119 97 goto 0;
+#X msg 141 128 next;
+#X text 174 98 goto start;
+#X floatatom 119 259 5 0 0 0 - - -;
+#X text 166 258 y value;
+#X floatatom 141 230 5 0 0 0 - - -;
+#X text 189 229 diff between current and prev x vla;
+#X obj 163 194 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 192 194 we reached the end ...;
+#X obj 505 200 funbuff;
+#C restore;
+#X floatatom 549 117 5 0 0 0 - - -;
+#X floatatom 505 170 5 0 0 0 - - -;
+#X floatatom 505 248 5 0 0 0 - - -;
+#X text 405 149 then x \, and use x to retrieve y:;
+#X text 509 98 set y value first:;
+#X text 38 27 the other outlets make sense too:;
+#X text 399 32 and again another way to load data:;
+#X text 185 129 hit this a couple of times;
+#X connect 0 0 6 0;
+#X connect 0 1 8 0;
+#X connect 0 2 10 0;
+#X connect 1 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 12 0 15 0;
+#X connect 13 0 12 1;
+#X connect 14 0 12 0;
+#X restore 626 533 pd even more ...;
+#X text 24 576 cyclone is (c) Miller Puckette and others;
+#X text 24 591 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 23 605 ___________________________________________________ ;
+#X connect 2 0 53 0;
+#X connect 3 0 53 0;
+#X connect 5 0 53 0;
+#X connect 7 0 53 0;
+#X connect 10 0 53 0;
+#X connect 12 0 53 0;
+#X connect 13 0 12 0;
+#X connect 16 0 53 0;
+#X connect 17 0 16 0;
+#X connect 19 0 53 0;
+#X connect 22 0 53 0;
+#X connect 23 0 53 0;
+#X connect 26 0 53 0;
+#X connect 28 0 53 0;
+#X connect 30 0 53 0;
+#X connect 31 0 53 0;
+#X connect 33 0 34 0;
+#X connect 35 0 33 0;
+#X connect 37 0 33 0;
+#X connect 39 0 33 0;
+#X connect 41 0 33 0;
+#X connect 43 0 33 0;
+#X connect 45 0 47 0;
+#X connect 45 1 46 0;
+#X connect 48 0 45 0;
+#X connect 49 0 45 0;
+#X connect 53 0 4 0;
diff --git a/doc/help/cyclone/funnel.pd b/doc/help/cyclone/funnel.pd
new file mode 100644
index 0000000..4826546
--- /dev/null
+++ b/doc/help/cyclone/funnel.pd
@@ -0,0 +1,37 @@
+#N canvas 262 210 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X obj 26 19 funnel 4;
+#X obj 22 149 funnel 4;
+#X floatatom 22 69 5 0 0 0 - - -;
+#X obj 22 180 unpack f f;
+#X floatatom 22 204 5 0 0 0 - - -;
+#X floatatom 87 204 5 0 0 0 - - -;
+#X floatatom 39 87 5 0 0 0 - - -;
+#X floatatom 56 106 5 0 0 0 - - -;
+#X floatatom 73 125 5 0 0 0 - - -;
+#X obj 236 148 funnel 2;
+#X obj 236 185 print;
+#X msg 236 93 list foo;
+#X msg 287 117 list bar;
+#X text 82 149 arg sets nr of inlets;
+#X text 100 19 tag data based on the inlet it arrived in;
+#X obj 102 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 84 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 126 60 repeat last received value of the inlet;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 6 1 8 0;
+#X connect 9 0 4 1;
+#X connect 10 0 4 2;
+#X connect 11 0 4 3;
+#X connect 12 0 13 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 1;
+#X connect 18 0 4 3;
+#X connect 19 0 4 2;
diff --git a/doc/help/cyclone/gate.pd b/doc/help/cyclone/gate.pd
new file mode 100644
index 0000000..d240c9b
--- /dev/null
+++ b/doc/help/cyclone/gate.pd
@@ -0,0 +1,44 @@
+#N canvas 18 57 504 490 10;
+#X text 21 437 cyclone is (c) Miller Puckette and others;
+#X text 21 452 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 466 ___________________________________________________ ;
+#X obj 28 20 gate 3;
+#X text 102 21 send data out the specified output;
+#X obj 164 126 gate 4;
+#X text 220 127 arg = nr of outlets;
+#X floatatom 201 49 5 0 0 0 - - -;
+#X text 206 94 send data to which outlet ? 0 = closed;
+#X floatatom 164 92 5 0 0 0 - - -;
+#X floatatom 164 204 5 0 0 0 - - -;
+#X floatatom 176 185 5 0 0 0 - - -;
+#X floatatom 188 165 5 0 0 0 - - -;
+#X floatatom 201 148 5 0 0 0 - - -;
+#X obj 69 329 gate 3;
+#X obj 69 258 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1
+-1 0;
+#X symbolatom 69 388 10 0 0 0 - - -;
+#X symbolatom 87 368 10 0 0 0 - - -;
+#X symbolatom 106 349 10 0 0 0 - - -;
+#X msg 106 298 symbol foo;
+#X msg 119 278 symbol bar;
+#X text 70 238 works for other data types:;
+#X msg 110 83 bang;
+#X floatatom 108 152 5 0 0 0 - - -;
+#X text 57 107 reports;
+#X text 57 118 the open;
+#X text 57 129 outlet:;
+#X connect 5 0 10 0;
+#X connect 5 0 23 0;
+#X connect 5 1 11 0;
+#X connect 5 2 12 0;
+#X connect 5 3 13 0;
+#X connect 7 0 5 1;
+#X connect 9 0 5 0;
+#X connect 14 0 16 0;
+#X connect 14 1 17 0;
+#X connect 14 2 18 0;
+#X connect 15 0 14 0;
+#X connect 19 0 14 1;
+#X connect 20 0 14 1;
+#X connect 22 0 5 0;
diff --git a/doc/help/cyclone/grab.pd b/doc/help/cyclone/grab.pd
new file mode 100644
index 0000000..cce359c
--- /dev/null
+++ b/doc/help/cyclone/grab.pd
@@ -0,0 +1,81 @@
+#N canvas 134 92 473 546 10;
+#X text 17 488 cyclone is (c) Miller Puckette and others;
+#X text 18 501 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 17 515 ___________________________________________________
+;
+#X obj 26 22 grab;
+#X text 74 24 intercept the output of another object;
+#X msg 63 102 hello;
+#X obj 219 120 r foo;
+#X obj 219 143 print foo;
+#X msg 81 126 set bar;
+#X msg 101 151 let's go;
+#X obj 289 120 r bar;
+#X obj 289 143 print bar;
+#X text 44 103 1;
+#X text 52 128 2;
+#X text 82 153 3;
+#X obj 63 194 grab 0 foo;
+#X text 139 188 arg is number of additional outlets and;
+#X text 139 199 an optional receive object to send it's;
+#X text 139 210 input to;
+#X text 58 71 can be used as a sort of settable send:;
+#X obj 69 318 grab;
+#X obj 92 348 * 10;
+#X floatatom 92 377 5 0 0 0 - - -;
+#X floatatom 69 399 5 0 0 0 - - -;
+#X msg 69 292 2;
+#X text 63 249 or to intercept messages before they are output;
+#X text 64 261 by the receiving object:;
+#X floatatom 115 327 5 0 0 0 - - -;
+#N canvas 474 146 450 300 weird 0;
+#X obj 63 118 grab 3;
+#X floatatom 100 165 5 0 0 0 - - -;
+#X floatatom 63 95 5 0 0 0 - - -;
+#X floatatom 63 226 5 0 0 0 - - -;
+#X floatatom 75 207 5 0 0 0 - - -;
+#X floatatom 87 186 5 0 0 0 - - -;
+#X floatatom 142 165 5 0 0 0 - - -;
+#X obj 142 141 + 10;
+#X obj 100 143 + 1;
+#X floatatom 184 164 5 0 0 0 - - -;
+#X obj 184 140 + 100;
+#X text 65 51 I'm not sure if this works as;
+#X text 65 61 expected \, from what I gathered;
+#X text 65 72 in the reference it should work;
+#X connect 0 0 3 0;
+#X connect 0 1 4 0;
+#X connect 0 2 5 0;
+#X connect 0 3 7 0;
+#X connect 0 3 8 0;
+#X connect 0 3 10 0;
+#X connect 2 0 0 0;
+#X connect 7 0 6 0;
+#X connect 8 0 1 0;
+#X connect 10 0 9 0;
+#X restore 251 430 pd weird;
+#X text 65 435 people who know look here:;
+#X obj 275 348 * 10;
+#X floatatom 275 377 5 0 0 0 - - -;
+#X msg 203 290 2;
+#X floatatom 298 327 5 0 0 0 - - -;
+#X obj 203 316 grab 2 test;
+#X obj 226 347 r test;
+#X floatatom 226 375 5 0 0 0 - - -;
+#X floatatom 203 399 5 0 0 0 - - -;
+#X connect 5 0 15 0;
+#X connect 6 0 7 0;
+#X connect 8 0 15 0;
+#X connect 9 0 15 0;
+#X connect 10 0 11 0;
+#X connect 20 0 23 0;
+#X connect 20 1 21 0;
+#X connect 21 0 22 0;
+#X connect 24 0 20 0;
+#X connect 27 0 21 1;
+#X connect 30 0 31 0;
+#X connect 32 0 34 0;
+#X connect 33 0 30 1;
+#X connect 34 0 37 0;
+#X connect 34 1 30 0;
+#X connect 35 0 36 0;
diff --git a/doc/help/cyclone/index~.pd b/doc/help/cyclone/index~.pd
new file mode 100644
index 0000000..ab7ef51
--- /dev/null
+++ b/doc/help/cyclone/index~.pd
@@ -0,0 +1,84 @@
+#N canvas 196 184 510 300 10;
+#X text 32 255 cyclone is (c) Miller Puckette and others;
+#X text 31 268 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 31 281 ___________________________________________________
+;
+#X text 117 30 sample playback without interpolation;
+#X obj 36 30 index~;
+#X floatatom 267 171 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 238 195 pd output;
+#X msg 296 171 MUTE;
+#X obj 38 184 table sample;
+#X obj 38 110 openpanel;
+#X msg 38 135 read -resize \$1 sample;
+#X obj 38 160 soundfiler;
+#X obj 38 85 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 64 86 load a sample;
+#X obj 238 144 index~ sample;
+#X obj 238 115 count~;
+#X obj 238 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 261 89 playback sample at current srate;
+#X connect 5 0 6 1;
+#X connect 6 0 5 0;
+#X connect 7 0 6 2;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 12 0 9 0;
+#X connect 14 0 6 0;
+#X connect 15 0 14 0;
+#X connect 16 0 15 0;
diff --git a/doc/help/cyclone/iter.pd b/doc/help/cyclone/iter.pd
new file mode 100644
index 0000000..bfe9f9a
--- /dev/null
+++ b/doc/help/cyclone/iter.pd
@@ -0,0 +1,18 @@
+#N canvas 301 256 451 254 10;
+#X obj 40 23 iter;
+#X text 84 24 split a list in a series of numbers;
+#X obj 40 113 iter;
+#X msg 40 71 1 2 3 4;
+#X obj 40 145 print;
+#X text 21 198 cyclone is (c) Miller Puckette and others;
+#X text 22 213 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 21 227 ___________________________________________________
+;
+#X obj 163 112 iter;
+#X floatatom 163 68 5 0 0 0 - - -;
+#X floatatom 163 142 5 0 0 0 - - -;
+#X text 184 88 single floats just pass through;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
diff --git a/doc/help/cyclone/linedrive.pd b/doc/help/cyclone/linedrive.pd
new file mode 100644
index 0000000..5e95f59
--- /dev/null
+++ b/doc/help/cyclone/linedrive.pd
@@ -0,0 +1,50 @@
+#N canvas 118 93 803 559 10;
+#X obj 36 30 linedrive;
+#X text 109 31 scale numnbers exponentially for use with;
+#X obj 402 27 line~;
+#X obj 49 359 snapshot~;
+#X obj 49 334 metro 10;
+#X obj 49 136 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X floatatom 49 386 10 0 0 0 - - -;
+#X text 173 107 integer message as input;
+#X msg 174 135 60;
+#X obj 174 209 linedrive 127 1 1.06 30;
+#X text 230 324 Linedrive converts integers for use with line~. Linedrive
+takes integers ranging from -argument1 to +argument1 and scales them
+to fall within the range -argument2 to +argument2. If the input equals
+argument1 \, the output is equal to argument value2. Output varies
+exponentially with the input depending on argument3. With the arguments
+shown \, input values between 0 and 127 are converted from 2*dB to
+linear amplitude with 127 becoming 1;
+#X text 298 283 outputs two values which can be sent to line~ as a
+destination and a time in milliseconds;
+#X text 372 135 integer message to change last argument \, which is
+time in milliseconds;
+#X text 348 203 argument1 is the reference input (int) \; argument2
+is the reference output (float) \; argument3 is the base value (float)
+\; argument4 is the time value in milliseconds (int);
+#X text 232 444 The output is a list of two values \, the second one
+being equal to argument4 and can be sent directly to a line~ 0;
+#X obj 113 290 line~ 0;
+#X text 42 121;
+#X floatatom 330 142 5 0 0 0 - - -;
+#X msg 113 135 0;
+#X text 12 512 cyclone is (c) Miller Puckette and others;
+#X text 13 525 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 12 539 ___________________________________________________
+;
+#X text 35 76 I guess that's largely millers linedrive help patch:
+;
+#X text 35 63 I found most of this in an older fts help .pat file \,
+;
+#X obj 174 291 print linedrive;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 15 0;
+#X connect 9 0 24 0;
+#X connect 15 0 3 0;
+#X connect 17 0 9 1;
+#X connect 18 0 15 0;
diff --git a/doc/help/cyclone/lookup~.pd b/doc/help/cyclone/lookup~.pd
new file mode 100644
index 0000000..3063b09
--- /dev/null
+++ b/doc/help/cyclone/lookup~.pd
@@ -0,0 +1,93 @@
+#N canvas 145 50 503 539 10;
+#X text 29 477 cyclone is (c) Miller Puckette and others;
+#X text 28 491 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 29 504 ___________________________________________________ ;
+#X obj 36 175 table sample;
+#X obj 36 101 openpanel;
+#X msg 36 126 read -resize \$1 sample;
+#X obj 36 151 soundfiler;
+#X obj 36 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 62 77 load a sample;
+#X floatatom 66 394 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 37 418 pd output;
+#X msg 95 394 MUTE;
+#X floatatom 37 252 5 0 0 0 - - -;
+#X obj 37 361 lookup~ sample 111;
+#X floatatom 97 310 5 0 0 0 - - -;
+#X floatatom 158 331 5 0 0 0 - - -;
+#X obj 37 278 osc~ 0.2;
+#X text 36 225 play with it a little:;
+#X text 156 31 transfer function lookup table;
+#X text 143 309 offset;
+#X text 203 331 scale input;
+#X obj 36 30 lookup~ table;
+#X msg 122 256 set sample;
+#X text 202 258 change array;
+#X text 172 362 arg is an array and an (optional) offset;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 7 0 4 0;
+#X connect 9 0 10 1;
+#X connect 10 0 9 0;
+#X connect 11 0 10 2;
+#X connect 12 0 16 0;
+#X connect 13 0 10 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 2;
+#X connect 16 0 13 0;
+#X connect 22 0 13 0;
diff --git a/doc/help/cyclone/match.pd b/doc/help/cyclone/match.pd
new file mode 100644
index 0000000..6fb0679
--- /dev/null
+++ b/doc/help/cyclone/match.pd
@@ -0,0 +1,56 @@
+#N canvas 18 57 504 490 10;
+#X text 21 437 cyclone is (c) Miller Puckette and others;
+#X text 21 452 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 466 ___________________________________________________ ;
+#X msg 28 67 1 2 3 4;
+#X obj 40 151 match 1 2;
+#X msg 40 91 2 3 4;
+#X msg 52 116 3 4 5 1 2;
+#X obj 40 175 unpack f f;
+#X floatatom 40 207 5 0 0 0 - - -;
+#X floatatom 105 207 5 0 0 0 - - -;
+#X text 92 66 match;
+#X text 130 116 match;
+#X text 92 90 no match;
+#X obj 28 20 match;
+#X text 79 21 look for a series of numbers and output as a list;
+#X obj 326 149 match 100 nn;
+#X obj 326 171 unpack f f;
+#X floatatom 326 203 5 0 0 0 - - -;
+#X floatatom 391 203 5 0 0 0 - - -;
+#X msg 326 80 0 100 2;
+#X msg 347 110 100 5 50;
+#X msg 272 106 clear;
+#X text 197 107 forget all;
+#X floatatom 42 372 5 0 0 0 - - -;
+#X floatatom 81 373 5 0 0 0 - - -;
+#X obj 42 340 unpack f f f;
+#X floatatom 121 373 5 0 0 0 - - -;
+#X obj 42 318 match 100 nn 2;
+#X msg 42 268 100 50 4;
+#X msg 60 292 100 50 2;
+#X msg 80 243 set nn nn 4;
+#X text 168 243 look for a new series;
+#X text 163 315 creation args are the series to look for;
+#X text 162 327 'nn' can be used as a wildcard to match;
+#X text 162 338 any number;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 0;
+#X connect 7 1 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 16 1 18 0;
+#X connect 19 0 15 0;
+#X connect 20 0 15 0;
+#X connect 21 0 15 0;
+#X connect 25 0 23 0;
+#X connect 25 1 24 0;
+#X connect 25 2 26 0;
+#X connect 27 0 25 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 0;
+#X connect 30 0 27 0;
diff --git a/doc/help/cyclone/maximum.pd b/doc/help/cyclone/maximum.pd
new file mode 100644
index 0000000..04c0415
--- /dev/null
+++ b/doc/help/cyclone/maximum.pd
@@ -0,0 +1,24 @@
+#N canvas 158 104 478 384 10;
+#X text 16 328 cyclone is (c) Miller Puckette and others;
+#X text 16 343 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 357 ___________________________________________________ ;
+#X obj 24 36 maximum;
+#X text 99 35 output the greatest in a list of numbers;
+#X text 100 49 see also;
+#X obj 167 53 minimum;
+#X obj 83 251 maximum;
+#X msg 83 114 1 2 3 4 3 2;
+#X floatatom 83 286 5 0 0 0 - - -;
+#X msg 21 144 bang;
+#X text 55 145 send most recent output again;
+#X floatatom 103 170 5 0 0 0 - - -;
+#X floatatom 127 221 5 0 0 0 - - -;
+#X text 174 221 set current value;
+#X text 147 168 output if higher than current value \,;
+#X text 146 180 otherwise output current val;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 10 0 7 0;
+#X connect 12 0 7 0;
+#X connect 13 0 7 1;
diff --git a/doc/help/cyclone/mean.pd b/doc/help/cyclone/mean.pd
new file mode 100644
index 0000000..d568ba3
--- /dev/null
+++ b/doc/help/cyclone/mean.pd
@@ -0,0 +1,20 @@
+#N canvas 158 104 419 351 10;
+#X text 15 298 cyclone is (c) Miller Puckette and others;
+#X text 15 313 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 14 327 ___________________________________________________ ;
+#X floatatom 98 250 5 0 0 0 - - -;
+#X obj 24 27 mean;
+#X text 60 32 find the running average of a stream of numbers;
+#X obj 98 215 mean;
+#X floatatom 44 130 5 0 0 0 - - -;
+#X obj 157 163 line;
+#X msg 98 85 clear;
+#X msg 157 131 0 \, 1 1000;
+#X msg 158 99 1 2 3 4 5;
+#X connect 6 0 3 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 10 0 8 0;
+#X connect 11 0 6 0;
diff --git a/doc/help/cyclone/midiflush.pd b/doc/help/cyclone/midiflush.pd
new file mode 100644
index 0000000..08090cc
--- /dev/null
+++ b/doc/help/cyclone/midiflush.pd
@@ -0,0 +1,21 @@
+#N canvas 158 104 521 282 10;
+#X text 22 227 cyclone is (c) Miller Puckette and others;
+#X text 22 242 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 21 256 ___________________________________________________
+;
+#X obj 32 27 midiflush;
+#X text 104 27 send note offs for all hanging notes in a raw midi stream
+;
+#X obj 62 149 midiflush;
+#X obj 14 111 midiin;
+#X obj 62 176 midiout;
+#X text 145 140 passes data on unchanged \, upon bang sends note;
+#X text 144 155 off for all notes it did not see a note off for;
+#X msg 78 97 bang;
+#X msg 62 72 clear;
+#X text 115 97 send note offs;
+#X text 115 73 forget all previous notes \, no note off;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
diff --git a/doc/help/cyclone/midiformat.pd b/doc/help/cyclone/midiformat.pd
new file mode 100644
index 0000000..7310e9b
--- /dev/null
+++ b/doc/help/cyclone/midiformat.pd
@@ -0,0 +1,77 @@
+#N canvas 85 129 854 461 10;
+#X obj 44 24 midiformat;
+#X text 143 26 de/construct midi messages;
+#X obj 44 45 midiparse;
+#X obj 47 284 midiformat 5;
+#X text 142 285 arg is channelnumber;
+#X msg 47 98 88 127;
+#X obj 47 318 midiout;
+#X msg 60 124 90 88;
+#X text 108 126 aftertouch/pitch pairs make poly aftertouch messages
+;
+#X text 111 152 controller val/ controller nr make control messages
+;
+#X text 101 98 pitch/velocity pairs make noteon messages;
+#X msg 73 152 70 7;
+#X floatatom 86 180 5 0 0 0 - - -;
+#X text 132 179 program change message;
+#X floatatom 99 203 5 0 0 0 - - -;
+#X text 144 201 aftertouch;
+#X floatatom 112 229 5 0 0 0 - - -;
+#X text 157 227 pitch bend;
+#X floatatom 126 255 5 0 0 0 - - -;
+#X text 171 254 channel number (wraps around like n%16);
+#X obj 533 90 midiparse;
+#X obj 533 63 midiin;
+#X obj 533 340 unpack f f;
+#X floatatom 533 370 5 0 0 0 - - -;
+#X floatatom 598 370 5 0 0 0 - - -;
+#X text 532 386 pitch;
+#X text 597 387 velocity;
+#X text 615 340 note on messages;
+#X obj 542 271 unpack f f;
+#X floatatom 542 301 5 0 0 0 - - -;
+#X floatatom 607 301 5 0 0 0 - - -;
+#X text 541 316 aftert;
+#X text 607 318 pitch;
+#X text 620 271 poly aftertouch messages;
+#X obj 552 208 unpack f f;
+#X floatatom 552 238 5 0 0 0 - - -;
+#X floatatom 617 238 5 0 0 0 - - -;
+#X text 551 253 value;
+#X text 617 253 ctrl nr;
+#X text 631 208 controller messages;
+#X floatatom 562 184 5 0 0 0 - - -;
+#X floatatom 571 162 5 0 0 0 - - -;
+#X floatatom 581 139 5 0 0 0 - - -;
+#X floatatom 591 116 5 0 0 0 - - -;
+#X text 609 184 program change;
+#X text 626 140 pitch bend;
+#X text 616 164 aftertouch;
+#X text 634 115 channel number;
+#X text 42 399 cyclone is (c) Miller Puckette and others;
+#X text 42 414 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 41 428 ___________________________________________________ ;
+#X connect 3 0 6 0;
+#X connect 5 0 3 0;
+#X connect 7 0 3 1;
+#X connect 11 0 3 2;
+#X connect 12 0 3 3;
+#X connect 14 0 3 4;
+#X connect 16 0 3 5;
+#X connect 18 0 3 6;
+#X connect 20 0 22 0;
+#X connect 20 1 28 0;
+#X connect 20 2 34 0;
+#X connect 20 3 40 0;
+#X connect 20 4 41 0;
+#X connect 20 5 42 0;
+#X connect 20 6 43 0;
+#X connect 21 0 20 0;
+#X connect 22 0 23 0;
+#X connect 22 1 24 0;
+#X connect 28 0 29 0;
+#X connect 28 1 30 0;
+#X connect 34 0 35 0;
+#X connect 34 1 36 0;
diff --git a/doc/help/cyclone/midiparse.pd b/doc/help/cyclone/midiparse.pd
new file mode 100644
index 0000000..7310e9b
--- /dev/null
+++ b/doc/help/cyclone/midiparse.pd
@@ -0,0 +1,77 @@
+#N canvas 85 129 854 461 10;
+#X obj 44 24 midiformat;
+#X text 143 26 de/construct midi messages;
+#X obj 44 45 midiparse;
+#X obj 47 284 midiformat 5;
+#X text 142 285 arg is channelnumber;
+#X msg 47 98 88 127;
+#X obj 47 318 midiout;
+#X msg 60 124 90 88;
+#X text 108 126 aftertouch/pitch pairs make poly aftertouch messages
+;
+#X text 111 152 controller val/ controller nr make control messages
+;
+#X text 101 98 pitch/velocity pairs make noteon messages;
+#X msg 73 152 70 7;
+#X floatatom 86 180 5 0 0 0 - - -;
+#X text 132 179 program change message;
+#X floatatom 99 203 5 0 0 0 - - -;
+#X text 144 201 aftertouch;
+#X floatatom 112 229 5 0 0 0 - - -;
+#X text 157 227 pitch bend;
+#X floatatom 126 255 5 0 0 0 - - -;
+#X text 171 254 channel number (wraps around like n%16);
+#X obj 533 90 midiparse;
+#X obj 533 63 midiin;
+#X obj 533 340 unpack f f;
+#X floatatom 533 370 5 0 0 0 - - -;
+#X floatatom 598 370 5 0 0 0 - - -;
+#X text 532 386 pitch;
+#X text 597 387 velocity;
+#X text 615 340 note on messages;
+#X obj 542 271 unpack f f;
+#X floatatom 542 301 5 0 0 0 - - -;
+#X floatatom 607 301 5 0 0 0 - - -;
+#X text 541 316 aftert;
+#X text 607 318 pitch;
+#X text 620 271 poly aftertouch messages;
+#X obj 552 208 unpack f f;
+#X floatatom 552 238 5 0 0 0 - - -;
+#X floatatom 617 238 5 0 0 0 - - -;
+#X text 551 253 value;
+#X text 617 253 ctrl nr;
+#X text 631 208 controller messages;
+#X floatatom 562 184 5 0 0 0 - - -;
+#X floatatom 571 162 5 0 0 0 - - -;
+#X floatatom 581 139 5 0 0 0 - - -;
+#X floatatom 591 116 5 0 0 0 - - -;
+#X text 609 184 program change;
+#X text 626 140 pitch bend;
+#X text 616 164 aftertouch;
+#X text 634 115 channel number;
+#X text 42 399 cyclone is (c) Miller Puckette and others;
+#X text 42 414 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 41 428 ___________________________________________________ ;
+#X connect 3 0 6 0;
+#X connect 5 0 3 0;
+#X connect 7 0 3 1;
+#X connect 11 0 3 2;
+#X connect 12 0 3 3;
+#X connect 14 0 3 4;
+#X connect 16 0 3 5;
+#X connect 18 0 3 6;
+#X connect 20 0 22 0;
+#X connect 20 1 28 0;
+#X connect 20 2 34 0;
+#X connect 20 3 40 0;
+#X connect 20 4 41 0;
+#X connect 20 5 42 0;
+#X connect 20 6 43 0;
+#X connect 21 0 20 0;
+#X connect 22 0 23 0;
+#X connect 22 1 24 0;
+#X connect 28 0 29 0;
+#X connect 28 1 30 0;
+#X connect 34 0 35 0;
+#X connect 34 1 36 0;
diff --git a/doc/help/cyclone/minimum.pd b/doc/help/cyclone/minimum.pd
new file mode 100644
index 0000000..cd64504
--- /dev/null
+++ b/doc/help/cyclone/minimum.pd
@@ -0,0 +1,24 @@
+#N canvas 158 104 478 384 10;
+#X text 16 328 cyclone is (c) Miller Puckette and others;
+#X text 16 343 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 357 ___________________________________________________ ;
+#X obj 165 52 maximum;
+#X text 100 49 see also;
+#X obj 38 32 minimum;
+#X msg 83 114 1 2 3 4 3 2;
+#X floatatom 83 286 5 0 0 0 - - -;
+#X msg 21 144 bang;
+#X text 55 145 send most recent output again;
+#X floatatom 103 170 5 0 0 0 - - -;
+#X floatatom 127 221 5 0 0 0 - - -;
+#X text 174 221 set current value;
+#X text 146 180 otherwise output current val;
+#X text 99 35 output the smallest in a list of numbers;
+#X obj 83 251 minimum;
+#X text 147 168 output if lower than current value \,;
+#X connect 6 0 15 0;
+#X connect 8 0 15 0;
+#X connect 10 0 15 0;
+#X connect 11 0 15 1;
+#X connect 15 0 7 0;
diff --git a/doc/help/cyclone/mousefilter.pd b/doc/help/cyclone/mousefilter.pd
new file mode 100644
index 0000000..0321792
--- /dev/null
+++ b/doc/help/cyclone/mousefilter.pd
@@ -0,0 +1,15 @@
+#N canvas 158 104 436 284 10;
+#X text 22 227 cyclone is (c) Miller Puckette and others;
+#X text 22 242 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 21 256 ___________________________________________________ ;
+#X obj 32 27 mousefilter;
+#X text 127 27 passes numbers only when mousebutton is up;
+#X obj 90 85 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 6500 1;
+#X floatatom 44 85 5 0 0 0 - - -;
+#X obj 75 131 mousefilter;
+#X floatatom 75 171 5 0 0 0 - - -;
+#X connect 5 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
diff --git a/doc/help/cyclone/next.pd b/doc/help/cyclone/next.pd
new file mode 100644
index 0000000..b03b53c
--- /dev/null
+++ b/doc/help/cyclone/next.pd
@@ -0,0 +1,43 @@
+#N canvas 359 111 423 391 10;
+#X text 18 335 cyclone is (c) Miller Puckette and others;
+#X text 18 350 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 17 364 ___________________________________________________ ;
+#X obj 19 19 next;
+#X text 67 21 Try to separate messages into logical parts;
+#X obj 104 184 next;
+#X obj 104 264 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 127 214 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 59 118 5 0 0 0 - - -;
+#X obj 104 74 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 104 103 1;
+#X msg 104 120 2;
+#X msg 104 139 3;
+#X text 128 258 bang if the current message is not part;
+#X text 127 271 of the same logical stream;
+#X text 150 221 of the same logical stream;
+#X text 151 208 bang if the current message is part;
+#X msg 167 100 1 2 3 4;
+#X msg 167 150 4 3 2 1;
+#X obj 167 126 spigot;
+#X obj 215 127 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 17 88 1 \, 2 \, 3 \, 4;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 9 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 0;
+#X connect 17 0 5 0;
+#X connect 17 0 19 0;
+#X connect 18 0 5 0;
+#X connect 19 0 18 0;
+#X connect 20 0 19 1;
+#X connect 21 0 5 0;
diff --git a/doc/help/cyclone/offer.pd b/doc/help/cyclone/offer.pd
new file mode 100644
index 0000000..12a3554
--- /dev/null
+++ b/doc/help/cyclone/offer.pd
@@ -0,0 +1,36 @@
+#N canvas 86 120 813 302 10;
+#X text 16 249 cyclone is (c) Miller Puckette and others;
+#X text 16 264 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 278 ___________________________________________________ ;
+#X obj 28 22 offer;
+#X text 87 22 store x \, y pairs of values (x is int only);
+#X obj 111 169 offer;
+#X msg 243 121 clear;
+#X text 285 120 clear contents;
+#X msg 305 66 0 0 \, 1 1.1 \, 2 2.2 \, 3 3.3;
+#X floatatom 111 106 5 0 0 0 - - -;
+#X text 23 68 x(int) y(may be float) pairs are stored:;
+#X obj 111 199 print offer;
+#X text 23 91 read corresponding y value and;
+#X text 23 104 delete pair:;
+#X obj 593 184 offer;
+#X obj 593 206 print offer2;
+#X obj 593 116 t b b;
+#X msg 593 94 bang;
+#X msg 593 163 0;
+#X msg 623 141 0.23;
+#X text 574 165 x:;
+#X text 605 140 y:;
+#X text 519 57 hit bang and then the x value;
+#X text 518 69 again to output stored y:;
+#X connect 5 0 11 0;
+#X connect 6 0 5 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 0;
+#X connect 14 0 15 0;
+#X connect 16 0 18 0;
+#X connect 16 1 19 0;
+#X connect 17 0 16 0;
+#X connect 18 0 14 0;
+#X connect 19 0 14 1;
diff --git a/doc/help/cyclone/onebang.pd b/doc/help/cyclone/onebang.pd
new file mode 100644
index 0000000..f8b7fc4
--- /dev/null
+++ b/doc/help/cyclone/onebang.pd
@@ -0,0 +1,20 @@
+#N canvas 86 120 525 309 10;
+#X text 25 251 cyclone is (c) Miller Puckette and others;
+#X text 25 266 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 24 280 ___________________________________________________ ;
+#X obj 31 24 onebang;
+#X text 108 25 traffic control for bang messages;
+#X obj 75 144 onebang 1;
+#X text 148 145 nonzero arg allows the first bang to get through;
+#X obj 75 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 75 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 133 117 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 95 74 only gets through if a bang was previously received;
+#X text 95 87 in the right inlet;
+#X connect 5 0 8 0;
+#X connect 7 0 5 0;
+#X connect 9 0 5 1;
diff --git a/doc/help/cyclone/past.pd b/doc/help/cyclone/past.pd
new file mode 100644
index 0000000..164af20
--- /dev/null
+++ b/doc/help/cyclone/past.pd
@@ -0,0 +1,64 @@
+#N canvas 285 247 548 293 10;
+#X text 29 238 cyclone is (c) Miller Puckette and others;
+#X text 29 253 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 28 267 ___________________________________________________
+;
+#X obj 35 28 past;
+#X text 81 27 report when input increases beyond a certain number;
+#X obj 59 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 59 138 past 4;
+#X floatatom 59 63 5 0 0 0 - - -;
+#X text 112 140 one arg sets the limit to get past;
+#X msg 102 104 set 8;
+#X text 145 104 (re)set the limit to pass by;
+#X msg 102 77 clear;
+#X text 142 78 forget previous input;
+#N canvas 133 162 577 369 weirdness 0;
+#X obj 97 178 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 27 55 5 0 0 0 - - -;
+#X msg 138 55 set 10 20 30;
+#X obj 27 103 pack f f;
+#X obj 27 79 t f f;
+#X obj 97 147 past 2 5;
+#X msg 177 98 20 30 40;
+#X msg 177 78 0 0 0;
+#X msg 177 118 40 20 wrdlbrnft;
+#X msg 375 72 11 22 33;
+#X obj 375 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 375 150 past 10 20 30;
+#X msg 346 48 0 0 0;
+#X msg 397 93 11 33;
+#X msg 411 113 33;
+#X text 94 19 now theses are a bit strange IMO:;
+#X text 50 259 this is a quote from an email Krzysztof Czaja sent me:
+;
+#X text 49 276 > it's list handling is weird indeed \, it bangs if
+_any_ list;
+#X text 49 288 > item is greater than (>) a corresponding threshold
+\, or if;
+#X text 50 300 > _all_ list elements are greater or equal (>=). That
+is how;
+#X text 50 312 > it looks like in Max but I might be wrong ...;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 4 1 3 1;
+#X connect 5 0 0 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 0;
+#X connect 9 0 11 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 0;
+#X connect 14 0 11 0;
+#X restore 349 187 pd weirdness;
+#X text 33 192 I don't fully understand the list behaviour:;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 9 0 6 0;
+#X connect 11 0 6 0;
diff --git a/doc/help/cyclone/peek~.pd b/doc/help/cyclone/peek~.pd
new file mode 100644
index 0000000..34d3188
--- /dev/null
+++ b/doc/help/cyclone/peek~.pd
@@ -0,0 +1,62 @@
+#N canvas 151 97 848 434 10;
+#X text 24 359 cyclone is (c) Miller Puckette and others;
+#X text 23 375 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 23 390 ___________________________________________________
+;
+#X obj 27 18 peek~;
+#X text 79 19 read and write sample values;
+#X obj 531 278 peek~ table;
+#N canvas 0 0 450 300 graph1 0;
+#X array table 100 float 0;
+#X coords 0 1 99 -1 200 140 1;
+#X restore 44 99 graph;
+#X floatatom 531 75 5 0 0 0 - - -;
+#X floatatom 531 302 5 0 0 0 - - -;
+#X text 43 78 draw something here:;
+#X floatatom 567 126 5 0 0 0 - - -;
+#X msg 464 98 4 1;
+#X msg 497 98 10 1;
+#X text 270 99 store values using a lists:;
+#X text 609 115 or by setting the y val;
+#X text 279 75 read the y value by setting x here:;
+#X text 611 126 here and then setting x;
+#X text 610 137 in the first inlet;
+#X obj 402 127 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 402 149 t b b;
+#X msg 402 174 12;
+#X msg 432 173 1;
+#X text 304 125 or like this:;
+#X msg 597 233 clip \$1;
+#X obj 597 209 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 592 168 set table;
+#X text 621 205 en/disable -1/+1 clipping;
+#X text 668 169 change array;
+#N canvas 292 265 485 231 multichannel 0;
+#X text 77 54 could not get it to work properly as of yet...;
+#X text 76 65 sorry;
+#X text 77 32 in case you were wondering \, that's what the;
+#X text 77 43 third inlet is good for \, unfortunately I;
+#X text 72 96 quoting krzyszzof czaja again:;
+#X text 73 120 > MSP's peek~ is single channel unlike other buffer~
+;
+#X text 73 131 > clients. One may choose a channel with an argument
+;
+#X text 73 142 > or change it via an inlet but I am not sure how to
+;
+#X text 74 154 > emulate this in pd.;
+#X restore 661 279 pd multichannel;
+#X connect 5 0 8 0;
+#X connect 7 0 5 0;
+#X connect 10 0 5 1;
+#X connect 11 0 5 0;
+#X connect 12 0 5 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 19 1 21 0;
+#X connect 20 0 5 0;
+#X connect 21 0 5 1;
+#X connect 23 0 5 0;
+#X connect 24 0 23 0;
+#X connect 25 0 5 0;
diff --git a/doc/help/cyclone/play~.pd b/doc/help/cyclone/play~.pd
new file mode 100644
index 0000000..8c60e2f
--- /dev/null
+++ b/doc/help/cyclone/play~.pd
@@ -0,0 +1,93 @@
+#N canvas 145 50 540 532 10;
+#X text 29 477 cyclone is (c) Miller Puckette and others;
+#X text 28 491 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 29 504 ___________________________________________________ ;
+#X obj 39 168 table sample;
+#X obj 39 94 openpanel;
+#X msg 39 119 read -resize \$1 sample;
+#X obj 39 144 soundfiler;
+#X obj 39 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 65 70 load a sample;
+#X floatatom 72 387 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 43 411 pd output;
+#X msg 101 387 MUTE;
+#X msg 138 274 set sample;
+#X text 219 277 change array;
+#X text 148 31 position based sample playback;
+#X obj 43 264 line~;
+#X msg 43 230 0 \, 441 1000;
+#X obj 43 354 play~ sample;
+#X text 140 352 arg is an array;
+#X text 140 364 if a second arg is given it's treated as a number;
+#X text 140 376 of channels and play~ tries to load 0-sample ....;
+#X text 139 387 to n-sample where n is the number of channels-1;
+#X obj 36 30 play~ table 4;
+#X msg 130 230 441 \, 0 1000;
+#X text 43 213 forward;
+#X text 137 209 backward;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 7 0 4 0;
+#X connect 9 0 10 1;
+#X connect 10 0 9 0;
+#X connect 11 0 10 2;
+#X connect 12 0 17 0;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 17 0 10 0;
+#X connect 23 0 15 0;
diff --git a/doc/help/cyclone/poltocar.pd b/doc/help/cyclone/poltocar.pd
new file mode 100644
index 0000000..2301ebd
--- /dev/null
+++ b/doc/help/cyclone/poltocar.pd
@@ -0,0 +1,22 @@
+#N canvas 171 195 422 279 10;
+#X text 26 230 cyclone is (c) Miller Puckette and others;
+#X text 27 243 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 26 257 ___________________________________________________
+;
+#X floatatom 122 100 5 0 0 0 - - -;
+#X floatatom 173 99 5 0 0 0 - - -;
+#X text 73 168 real->;
+#X text 215 170 <-imaginary;
+#X floatatom 122 171 5 0 0 0 - - -;
+#X floatatom 173 171 5 0 0 0 - - -;
+#X text 38 98 amplitude->;
+#X text 216 98 <-phase;
+#X text 121 39 see also;
+#X obj 41 21 poltocar;
+#X obj 187 34 cartopol;
+#X text 114 15 polar to cartesian conversion;
+#X obj 122 135 poltocar;
+#X connect 3 0 15 0;
+#X connect 4 0 15 1;
+#X connect 15 0 7 0;
+#X connect 15 1 8 0;
diff --git a/doc/help/cyclone/prepend.pd b/doc/help/cyclone/prepend.pd
new file mode 100644
index 0000000..46bfb0f
--- /dev/null
+++ b/doc/help/cyclone/prepend.pd
@@ -0,0 +1,19 @@
+#N canvas 200 160 452 291 10;
+#X text 29 238 cyclone is (c) Miller Puckette and others;
+#X text 29 253 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 28 267 ___________________________________________________ ;
+#X obj 26 16 prepend;
+#X text 94 17 prepend a message with another message:;
+#X msg 139 85 set a quick brown fox;
+#X msg 295 113 jumps;
+#X text 59 63 1;
+#X text 123 85 2;
+#X text 276 114 3;
+#X obj 139 155 prepend typewriters;
+#X msg 76 61 are boring;
+#X obj 139 185 print prepend;
+#X connect 5 0 10 0;
+#X connect 6 0 10 0;
+#X connect 10 0 12 0;
+#X connect 11 0 10 0;
diff --git a/doc/help/cyclone/prob.pd b/doc/help/cyclone/prob.pd
new file mode 100644
index 0000000..c6a409f
--- /dev/null
+++ b/doc/help/cyclone/prob.pd
@@ -0,0 +1,54 @@
+#N canvas 112 40 826 571 10;
+#X text 8 512 cyclone is (c) Miller Puckette and others;
+#X text 7 524 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 6 538 ___________________________________________________;
+#X obj -2 21 prob;
+#X text 137 23 weighted series of random numbers;
+#X text 5 53 coll maintains a probability matrix a.k.a 1st order;
+#X text 5 65 markov chain and outputs a number according to it.;
+#X text 168 94 0 has a 80% chance to be followed by 1 \, and;
+#X text 168 106 a 10% chance to be followed by 2 or 3;
+#X obj 215 217 prob;
+#X floatatom 215 251 5 0 0 0 - - -;
+#X msg 201 128 0 1 80 \, 0 2 10 \, 0 3 10;
+#X obj 215 164 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 237 189 0;
+#X text 235 163 puts out a number and sets prob to this value;
+#X text 267 189 resets prob to 0;
+#X text 181 132 1;
+#X text 136 224;
+#X text -3 164 2 try this a couple of times:;
+#X msg 338 274 0 1 30 \, 0 2 30 \, 0 3 40;
+#X msg 364 301 1 2 30 \, 1 0 70;
+#X floatatom 271 472 5 0 0 0 - - -;
+#X obj 294 451 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 334 253 load probabilities:;
+#X text 315 448 bang when we reach a number for which we have no rule
+;
+#X obj 271 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 178 397 reset 0;
+#X obj 271 426 prob;
+#X msg 197 337 clear;
+#X text 102 339 clear matrix:;
+#X text 14 380 when we get stuck reset to 0:;
+#X msg 378 331 dump;
+#X text 416 332 print out all rules;
+#X msg 386 368 embed;
+#X text 434 367 save matrix with the patch;
+#X connect 9 0 10 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
+#X connect 12 0 13 0;
+#X connect 13 0 9 0;
+#X connect 19 0 27 0;
+#X connect 20 0 27 0;
+#X connect 25 0 27 0;
+#X connect 26 0 27 0;
+#X connect 27 0 21 0;
+#X connect 27 1 22 0;
+#X connect 28 0 27 0;
+#X connect 31 0 27 0;
+#X connect 33 0 27 0;
diff --git a/doc/help/cyclone/pv.pd b/doc/help/cyclone/pv.pd
new file mode 100644
index 0000000..845269a
--- /dev/null
+++ b/doc/help/cyclone/pv.pd
@@ -0,0 +1,24 @@
+#N canvas 200 160 466 273 10;
+#X text 24 213 cyclone is (c) Miller Puckette and others;
+#X text 24 228 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 23 242 ___________________________________________________ ;
+#X obj 36 28 pv foo;
+#X text 97 28 private variables for patch and it's subpatches;
+#X obj 173 50 value;
+#X text 98 49 see also:;
+#X obj 78 119 pv my_private_bar;
+#X msg 78 95 foo;
+#X obj 263 119 pv my_private_bar;
+#X msg 263 93 bang;
+#X obj 263 148 print my_private_bar;
+#N canvas 0 0 353 164 works 0;
+#X obj 32 66 pv my_private_bar;
+#X msg 32 40 bang;
+#X obj 32 95 print my_private_underground_bar;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X restore 48 150 pd works here too of course;
+#X connect 8 0 7 0;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
diff --git a/doc/help/cyclone/rand~.pd b/doc/help/cyclone/rand~.pd
new file mode 100644
index 0000000..87b623f
--- /dev/null
+++ b/doc/help/cyclone/rand~.pd
@@ -0,0 +1,72 @@
+#N canvas 196 184 479 279 10;
+#X text 33 218 cyclone is (c) Miller Puckette and others;
+#X text 32 233 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 31 247 ___________________________________________________ ;
+#X floatatom 65 146 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 36 170 pd output;
+#X msg 94 146 MUTE;
+#X obj 36 30 rand~;
+#X text 102 31 bandlimited random noise;
+#X floatatom 36 74 5 0 0 0 - - -;
+#X text 79 74 frequency;
+#X obj 36 109 rand~ 800;
+#X text 111 111 optional arg sets initial freq;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 5 0 4 2;
+#X connect 8 0 10 0;
+#X connect 10 0 4 0;
diff --git a/doc/help/cyclone/record~.pd b/doc/help/cyclone/record~.pd
new file mode 100644
index 0000000..21ce2a2
--- /dev/null
+++ b/doc/help/cyclone/record~.pd
@@ -0,0 +1,73 @@
+#N canvas 210 61 726 599 10;
+#X text 90 11 read and write sample values;
+#X obj 28 10 record~;
+#X obj 288 320 adc~;
+#X obj 330 43 tgl 15 0 record empty empty 0 -6 128 8 -262144 -1 -1
+0 1;
+#X obj 330 356 record~ table;
+#N canvas 0 0 450 300 graph3 0;
+#X array table 44100 float 0;
+#X coords 0 1 44099 -1 200 140 1;
+#X restore 61 86 graph;
+#X obj 329 445 snapshot~;
+#X obj 348 424 metro 10;
+#X floatatom 329 472 5 0 0 0 - - -;
+#X obj 348 383 r record;
+#X text 378 471 end of table = 1;
+#X text 353 41 start/stop recording;
+#X msg 360 112 append \$1;
+#X obj 360 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X obj 348 404 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 378 164 loop \$1;
+#X obj 378 141 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 403 142 record continously;
+#X text 382 83 in append mode stop/restart will continue;
+#X text 383 94 were it was stopped \, off by default;
+#X msg 400 199 set table;
+#X text 475 200 change table;
+#X floatatom 373 306 5 0 0 0 - - -;
+#X text 421 306 startpoint in the table in msec;
+#X floatatom 416 333 5 0 0 0 - - -;
+#X text 461 332 endpoint in the table in msec;
+#X obj 57 356 record~ smp 2;
+#N canvas 0 0 450 300 graph4 0;
+#X array 0-smp 22050 float 0;
+#X coords 0 1 22049 -1 80 60 1;
+#X restore 64 431 graph;
+#N canvas 0 0 450 300 graph4 0;
+#X array 1-smp 22050 float 0;
+#X coords 0 1 22049 -1 80 60 1;
+#X restore 189 427 graph;
+#X obj 73 318 adc~;
+#X obj 57 283 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 43 261 optional int arg is nr of channels:;
+#X text 155 353;
+#X text 158 356 can be 1 \, 2 or 4;
+#X text 60 394 table naming convention is;
+#X text 61 407 0...4-tablename:;
+#X text 42 248 enable multichannel by using an;
+#X text 28 539 cyclone is (c) Miller Puckette and others;
+#X text 29 552 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 28 566 ___________________________________________________
+;
+#X connect 2 1 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 9 0 14 0;
+#X connect 12 0 4 0;
+#X connect 13 0 12 0;
+#X connect 14 0 7 0;
+#X connect 15 0 4 0;
+#X connect 16 0 15 0;
+#X connect 20 0 4 0;
+#X connect 22 0 4 1;
+#X connect 24 0 4 2;
+#X connect 29 0 26 0;
+#X connect 29 1 26 1;
+#X connect 30 0 26 0;
diff --git a/doc/help/cyclone/sinh.pd b/doc/help/cyclone/sinh.pd
new file mode 100644
index 0000000..215da16
--- /dev/null
+++ b/doc/help/cyclone/sinh.pd
@@ -0,0 +1,19 @@
+#N canvas 217 155 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X floatatom 46 216 8 0 0 0 - - -;
+#X msg 46 83 bang;
+#X obj 67 152 / 100;
+#X floatatom 67 132 5 0 0 0 - - -;
+#X text 123 185 arg sets initial value;
+#X text 121 130 calculate and output cosh;
+#X obj 42 22 sinh 0.2;
+#X text 108 25 calculate hyperbolic sine function;
+#X obj 46 183 sinh 0.2;
+#X text 95 82 output sinh of current val;
+#X connect 4 0 11 0;
+#X connect 5 0 11 0;
+#X connect 6 0 5 0;
+#X connect 11 0 3 0;
diff --git a/doc/help/cyclone/speedlim.pd b/doc/help/cyclone/speedlim.pd
new file mode 100644
index 0000000..ace3b48
--- /dev/null
+++ b/doc/help/cyclone/speedlim.pd
@@ -0,0 +1,21 @@
+#N canvas 200 160 471 309 10;
+#X text 19 253 cyclone is (c) Miller Puckette and others;
+#X text 19 268 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 18 282 ___________________________________________________ ;
+#X obj 26 24 speedlim;
+#X text 113 24 speed limit for incoming messages;
+#X obj 64 131 speedlim 300;
+#X text 158 124 arg is minimum delay between outputs;
+#X text 158 136 in milliseconds;
+#X floatatom 64 172 5 0 0 0 - - -;
+#X floatatom 64 76 5 0 0 0 - - -;
+#X floatatom 143 99 5 0 0 0 - - -;
+#X text 185 98 change delay time;
+#X text 106 74 move fast!!!;
+#X text 22 202 clock message (as in the max version) not supported
+for;
+#X text 22 215 obvious reasons.;
+#X connect 5 0 8 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
diff --git a/doc/help/cyclone/spell.pd b/doc/help/cyclone/spell.pd
new file mode 100644
index 0000000..80931b3
--- /dev/null
+++ b/doc/help/cyclone/spell.pd
@@ -0,0 +1,18 @@
+#N canvas 200 160 411 295 10;
+#X text 16 241 cyclone is (c) Miller Puckette and others;
+#X text 16 256 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 15 270 ___________________________________________________ ;
+#X obj 35 29 spell;
+#X obj 138 159 spell;
+#X obj 138 187 print spell;
+#X msg 99 104 63;
+#X msg 199 83 t h i s;
+#X msg 138 79 34 45;
+#X text 92 28 convert input to ascii values;
+#X msg 213 118 or that;
+#X connect 4 0 5 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 10 0 4 0;
diff --git a/doc/help/cyclone/split.pd b/doc/help/cyclone/split.pd
new file mode 100644
index 0000000..e75cd86
--- /dev/null
+++ b/doc/help/cyclone/split.pd
@@ -0,0 +1,27 @@
+#N canvas 200 160 485 308 10;
+#X text 25 256 cyclone is (c) Miller Puckette and others;
+#X text 25 270 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 24 284 ___________________________________________________
+;
+#X obj 26 26 split;
+#X text 82 28 look for a range of numbers;
+#X obj 230 149 split 10 20;
+#X floatatom 230 205 5 0 0 0 - - -;
+#X floatatom 302 175 5 0 0 0 - - -;
+#X floatatom 230 80 5 0 0 0 - - -;
+#X text 351 174 not in range;
+#X text 275 206 in range;
+#X floatatom 266 104 5 0 0 0 - - -;
+#X floatatom 302 129 5 0 0 0 - - -;
+#X text 309 104 set min;
+#X text 346 127 set max;
+#X msg 108 118 3 0 10;
+#X text 28 72 list means:;
+#X msg 32 90 val_to_compare min max;
+#X text 64 118 i.e.:;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 8 0 5 0;
+#X connect 11 0 5 1;
+#X connect 12 0 5 2;
+#X connect 15 0 5 0;
diff --git a/doc/help/cyclone/spray.pd b/doc/help/cyclone/spray.pd
new file mode 100644
index 0000000..e9f8aa1
--- /dev/null
+++ b/doc/help/cyclone/spray.pd
@@ -0,0 +1,22 @@
+#N canvas 200 160 450 314 10;
+#X text 19 262 cyclone is (c) Miller Puckette and others;
+#X text 19 276 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 18 290 ___________________________________________________
+;
+#X obj 19 24 spray 3;
+#X text 87 24 distribute an integer to a numbered outlet;
+#X obj 119 148 spray 3;
+#X floatatom 119 214 5 0 0 0 - - -;
+#X floatatom 141 196 5 0 0 0 - - -;
+#X floatatom 163 175 5 0 0 0 - - -;
+#X msg 76 100 1 2;
+#X msg 119 92 0 1;
+#X msg 139 117 2 3;
+#X text 178 148 arg sets number of outlets;
+#X text 44 71 outletnumber / value pairs:;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 5 2 8 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
diff --git a/doc/help/cyclone/sprintf.pd b/doc/help/cyclone/sprintf.pd
new file mode 100644
index 0000000..c7bcd80
--- /dev/null
+++ b/doc/help/cyclone/sprintf.pd
@@ -0,0 +1,18 @@
+#N canvas 391 182 495 325 10;
+#X text -17 267 cyclone is (c) Miller Puckette and others;
+#X text -17 281 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text -18 295 ___________________________________________________
+;
+#X obj -18 20 sprintf;
+#X text 41 14 format a message of strings and numbers;
+#X obj 162 145 sprintf foo%s-%d;
+#X obj 162 177 print;
+#X msg 162 101 -bar;
+#X floatatom 269 77 5 0 0 0 - - -;
+#X text 42 27 see the printf(3) manpage for details;
+#X text -15 103 this is the 'hot' inlet;
+#X text 282 144 arg is format string;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
diff --git a/doc/help/cyclone/substitute.pd b/doc/help/cyclone/substitute.pd
new file mode 100644
index 0000000..540e07f
--- /dev/null
+++ b/doc/help/cyclone/substitute.pd
@@ -0,0 +1,17 @@
+#N canvas 342 212 505 299 10;
+#X text -8 245 cyclone is (c) Miller Puckette and others;
+#X text -8 259 docs based on the MAX/MSP reference (c) cycling'74;
+#X text -9 273 ___________________________________________________
+;
+#X obj -2 28 substitute;
+#X text 83 27 substitute a symbol for another symbol in a message;
+#X obj 1 135 substitute foo bar;
+#X msg 1 89 bar foo;
+#X obj 1 180 print;
+#X msg 122 89 bar foo;
+#X msg 192 88 set bar foo;
+#X text 179 90 =;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 5 1;
diff --git a/doc/help/cyclone/sustain.pd b/doc/help/cyclone/sustain.pd
new file mode 100644
index 0000000..732b6a8
--- /dev/null
+++ b/doc/help/cyclone/sustain.pd
@@ -0,0 +1,42 @@
+#N canvas 306 215 644 311 10;
+#X obj 23 19 sustain;
+#X text 92 19 hold note offs and output them on request;
+#X obj 55 164 sustain;
+#X floatatom 55 221 5 0 0 0 - - -;
+#X floatatom 99 195 5 0 0 0 - - -;
+#X msg 55 78 44 127;
+#X text 110 77 note on =;
+#X msg 184 76 pitch velocity;
+#X text 294 76 is passed through;
+#X text 144 195 velocity;
+#X text 101 221 pitch;
+#X text 110 103 note off (i.e. velocity = 0);
+#X obj 99 140 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 69 103 55 0;
+#X text 121 133 when on sustain holds back all note offs;
+#X text 121 144 and outputs them when turned off again.;
+#X text 28 257 cyclone is (c) Miller Puckette and others;
+#X text 28 272 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 27 286 ___________________________________________________ ;
+#X obj 466 178 sustain;
+#X obj 510 148 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X floatatom 466 205 5 0 0 0 - - -;
+#X floatatom 510 204 5 0 0 0 - - -;
+#X floatatom 466 120 5 0 0 0 - - -;
+#X floatatom 488 98 5 0 0 0 - - -;
+#X text 462 74 alternatively:;
+#X text 531 95 set velocity;
+#X text 508 119 then pitch;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 5 0 2 0;
+#X connect 12 0 2 2;
+#X connect 13 0 2 0;
+#X connect 19 0 21 0;
+#X connect 19 1 22 0;
+#X connect 20 0 19 2;
+#X connect 23 0 19 0;
+#X connect 24 0 19 1;
diff --git a/doc/help/cyclone/switch.pd b/doc/help/cyclone/switch.pd
new file mode 100644
index 0000000..9d163ec
--- /dev/null
+++ b/doc/help/cyclone/switch.pd
@@ -0,0 +1,29 @@
+#N canvas 342 212 515 376 10;
+#X text 5 317 cyclone is (c) Miller Puckette and others;
+#X text 5 331 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 4 345 ___________________________________________________;
+#X obj 13 32 switch;
+#X text 85 33 output a message from a specific inlet;
+#X obj 220 216 switch 4;
+#X obj 220 244 print;
+#X floatatom 147 88 5 0 0 0 - - -;
+#X msg 232 115 one;
+#X msg 245 137 two;
+#X msg 258 163 three;
+#X msg 271 188 four;
+#X obj 192 87 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 286 217 arg is nr of inlets;
+#X msg 146 177 bang;
+#X text 15 177 which one's open ?;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 5 2;
+#X connect 10 0 5 3;
+#X connect 11 0 5 4;
+#X connect 12 0 8 0;
+#X connect 12 0 9 0;
+#X connect 12 0 10 0;
+#X connect 12 0 11 0;
+#X connect 14 0 5 0;
diff --git a/doc/help/cyclone/tanh.pd b/doc/help/cyclone/tanh.pd
new file mode 100644
index 0000000..a9257e4
--- /dev/null
+++ b/doc/help/cyclone/tanh.pd
@@ -0,0 +1,19 @@
+#N canvas 217 155 421 323 10;
+#X text 20 263 cyclone is (c) Miller Puckette and others;
+#X text 21 278 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 20 292 ___________________________________________________ ;
+#X floatatom 46 216 8 0 0 0 - - -;
+#X msg 46 83 bang;
+#X obj 67 152 / 100;
+#X floatatom 67 132 5 0 0 0 - - -;
+#X text 123 185 arg sets initial value;
+#X obj 42 22 tanh 0.2;
+#X text 95 82 output tanh of current val;
+#X text 121 130 calculate and output tanh;
+#X obj 46 183 tanh 0.2;
+#X text 108 25 calculate hyperbolic tangent function;
+#X connect 4 0 11 0;
+#X connect 5 0 11 0;
+#X connect 6 0 5 0;
+#X connect 11 0 3 0;
diff --git a/doc/help/cyclone/thresh.pd b/doc/help/cyclone/thresh.pd
new file mode 100644
index 0000000..0fc74b8
--- /dev/null
+++ b/doc/help/cyclone/thresh.pd
@@ -0,0 +1,18 @@
+#N canvas 342 212 559 277 10;
+#X text 11 223 cyclone is (c) Miller Puckette and others;
+#X text 11 237 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 10 251 ___________________________________________________
+;
+#X obj 12 33 thresh;
+#X text 71 35 combine numbers into a list that are received close together
+;
+#X obj 13 151 thresh 100;
+#X obj 13 175 print thresh;
+#X floatatom 13 82 5 0 0 0 - - -;
+#X text 62 83 move fast!!!;
+#X floatatom 78 112 5 0 0 0 - - -;
+#X text 123 111 period length;
+#X text 93 150 inital arg sets period length (default 10msecs);
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 9 0 5 1;
diff --git a/doc/help/cyclone/tosymbol.pd b/doc/help/cyclone/tosymbol.pd
new file mode 100644
index 0000000..714b2f8
--- /dev/null
+++ b/doc/help/cyclone/tosymbol.pd
@@ -0,0 +1,44 @@
+#N canvas 134 92 582 543 10;
+#X obj 29 16 fromsymbol;
+#X obj 53 251 fromsymbol;
+#X obj 29 37 tosymbol;
+#X text 121 22 transform symbol to numbers or messages and vice versa
+;
+#X text 17 488 cyclone is (c) Miller Puckette and others;
+#X text 18 501 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 17 515 ___________________________________________________
+;
+#X obj 94 190 tosymbol;
+#X text 35 72 since pd lacks a quoting mechanism (like `foo bar`) there
+is;
+#X text 36 84 no support for spaces in symbols \, so the original max
+way of;
+#X text 35 96 using from/tosymbol won't work. One has to construct
+symbols;
+#X text 34 109 with other tools like;
+#X obj 185 113 tosymbol;
+#X obj 267 113 makesymbol;
+#X text 248 109 or;
+#X text 342 110 from zexy;
+#X msg 94 164 this is a list of symbols;
+#X obj 94 215 print symbol_with_spaces;
+#X text 271 218 becomes a symbol with spaces;
+#X obj 53 279 print list_again;
+#X text 178 282 and can be transformed back into a list;
+#X text 31 164 so this:;
+#X obj 90 409 tosymbol;
+#X obj 90 434 print separator;
+#X text 50 353 1;
+#X text 57 382 2;
+#X obj 55 317 tosymbol;
+#X msg 90 379 lets place a _ instead of a space inside;
+#X msg 67 354 separator _;
+#X text 117 321 can also be used to generate non space symbols from
+lists:;
+#X connect 1 0 19 0;
+#X connect 7 0 17 0;
+#X connect 7 0 1 0;
+#X connect 16 0 7 0;
+#X connect 22 0 23 0;
+#X connect 27 0 22 0;
+#X connect 28 0 22 0;
diff --git a/doc/help/cyclone/universal.pd b/doc/help/cyclone/universal.pd
new file mode 100644
index 0000000..59876e2
--- /dev/null
+++ b/doc/help/cyclone/universal.pd
@@ -0,0 +1,167 @@
+#N canvas 310 200 556 387 10;
+#X text 11 335 cyclone is (c) Miller Puckette and others;
+#X text 11 349 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 10 363 ___________________________________________________
+;
+#X obj 19 20 universal;
+#X text 91 16 send a message to all instances of the same class in
+;
+#X obj 50 203 universal;
+#X text 90 26 this patch (and it's subpatches if desired);
+#X obj 420 79 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 441 72 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 460 79 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 481 71 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X msg 50 77 tgl bang;
+#X msg 264 78 tgl bang;
+#X obj 264 133 universal 1;
+#N canvas 620 438 290 158 sub 0;
+#X obj -4 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 17 33 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 36 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 57 32 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 50 77 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 71 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 90 77 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 111 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 69 5 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
+#X obj 88 12 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 109 4 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 102 49 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 123 42 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 142 49 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 163 41 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 126 95 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 147 87 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 140 132 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 161 125 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 180 132 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 201 124 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 159 60 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 178 67 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 199 59 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 192 104 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 14 73 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 35 65 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 28 110 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 49 103 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 226 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 221 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 237 85 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 106 106 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 101 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 188 7 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 183 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 48 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 10 98 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 5 123 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 50 9 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -262144
+;
+#X obj -3 2 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -262144
+;
+#X obj 146 17 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 212 8 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 207 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X restore 344 183 pd sub;
+#X text 350 123 nonzero arg means that;
+#X text 349 134 all subpatches get the;
+#X text 350 143 messsage too;
+#X text 261 181 look here:;
+#X obj 21 259 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 21 246 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X msg 71 124 nbx 4;
+#X msg 71 145 nbx 0;
+#X msg 59 101 tgl size 20;
+#X obj 170 203 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 193 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X obj 164 233 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-262144;
+#X msg 276 105 bng color 8;
+#X obj 21 286 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 21 273 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 202 284 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 12700 1;
+#X obj 192 265 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 12700 1;
+#X msg 151 116 hsl \$1;
+#X obj 151 96 line;
+#X msg 151 75 0 \, 127 1000;
+#X obj 427 248 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 437 253 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 448 256 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 458 261 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 384 231 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 394 236 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 405 239 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X obj 415 244 vsl 8 30 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2900 1;
+#X msg 163 137 vsl \$1;
+#X connect 11 0 5 0;
+#X connect 12 0 13 0;
+#X connect 21 0 5 0;
+#X connect 22 0 5 0;
+#X connect 23 0 5 0;
+#X connect 27 0 13 0;
+#X connect 32 0 5 0;
+#X connect 33 0 32 0;
+#X connect 33 0 43 0;
+#X connect 34 0 33 0;
+#X connect 43 0 5 0;
diff --git a/doc/help/cyclone/urn.pd b/doc/help/cyclone/urn.pd
new file mode 100644
index 0000000..71afe91
--- /dev/null
+++ b/doc/help/cyclone/urn.pd
@@ -0,0 +1,31 @@
+#N canvas 334 134 654 371 10;
+#X text 19 318 cyclone is (c) Miller Puckette and others;
+#X text 20 331 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 19 345 ___________________________________________________ ;
+#X obj 30 25 urn;
+#X text 75 26 rng without duplicate numbers;
+#X floatatom 243 249 5 0 0 0 - - -;
+#X obj 243 79 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 243 186 urn 4;
+#X msg 145 154 clear;
+#X floatatom 273 118 5 0 0 0 - - -;
+#X msg 143 113 seed \$1;
+#X floatatom 143 92 5 0 0 0 - - -;
+#X text 291 188 arg is number of different values to produce;
+#X text 318 119 clear rng and set new nr. of values;
+#X text 266 79 send out a random nr.;
+#X text 48 113 (re)seed rng;
+#X text 17 156 clear list of nrs;
+#X text 285 251 random output;
+#X obj 273 218 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 294 219 sent out all different values;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 7 1 18 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 7 0;
+#X connect 11 0 10 0;
diff --git a/doc/help/cyclone/wave~.pd b/doc/help/cyclone/wave~.pd
new file mode 100644
index 0000000..7c89026
--- /dev/null
+++ b/doc/help/cyclone/wave~.pd
@@ -0,0 +1,126 @@
+#N canvas 85 25 887 599 10;
+#X text 31 526 cyclone is (c) Miller Puckette and others;
+#X text 30 542 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 557 ___________________________________________________ ;
+#X floatatom 465 435 0 0 100 0 - - -;
+#N canvas 159 26 532 285 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 426 180 0;
+#X msg 338 85 bang;
+#X obj 338 135 moses 1;
+#X obj 397 110 moses 1;
+#X obj 83 148 dbtorms;
+#X obj 397 85 r master-lvl;
+#X obj 83 42 r master-lvl;
+#X obj 338 210 s master-lvl;
+#X obj 20 155 inlet~;
+#X obj 199 41 inlet;
+#X text 199 18 level;
+#X obj 199 105 s master-lvl;
+#X msg 96 65 set \$1;
+#X obj 96 90 outlet;
+#X msg 214 65 \; pd dsp 1;
+#X obj 83 198 line~;
+#X obj 20 207 *~;
+#X obj 20 232 dac~;
+#X obj 83 173 pack 0 50;
+#X text 20 132 audio;
+#X text 96 114 show level;
+#X obj 426 155 t b;
+#X obj 20 181 hip~ 1;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 26 0;
+#X connect 8 1 4 1;
+#X connect 9 0 23 0;
+#X connect 10 0 1 1;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 11 0 17 0;
+#X connect 13 0 27 0;
+#X connect 14 0 16 0;
+#X connect 14 0 19 0;
+#X connect 17 0 18 0;
+#X connect 20 0 21 1;
+#X connect 21 0 22 0;
+#X connect 21 0 22 1;
+#X connect 23 0 20 0;
+#X connect 26 0 5 0;
+#X connect 27 0 21 0;
+#X restore 436 458 pd output;
+#X msg 494 435 MUTE;
+#X obj 26 18 wave~;
+#X text 90 19 variable size wavetable;
+#X obj 103 137 table sample;
+#X obj 26 87 openpanel;
+#X msg 26 112 read -resize \$1 sample;
+#X obj 26 137 soundfiler;
+#X obj 26 62 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 52 63 load a sample;
+#X obj 436 82 phasor~;
+#X floatatom 436 59 5 0 0 0 - - -;
+#X floatatom 475 110 5 0 0 0 - - -;
+#X floatatom 515 136 5 0 0 0 - - -;
+#X floatatom 26 187 10 0 0 0 - - -;
+#N canvas 0 0 206 239 samples2len 0;
+#X obj 45 25 inlet;
+#X obj 61 86 samplerate~;
+#X obj 45 115 /;
+#X obj 45 59 t f b;
+#X obj 45 140 * 1000;
+#X obj 45 175 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 1;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 3 1 1 0;
+#X connect 4 0 5 0;
+#X restore 26 162 pd samples2len;
+#X text 482 59 frequency (1=normal speed negative is backwards);
+#X text 519 112 startpoint (msec);
+#X text 560 136 endpoint (msec);
+#X text 101 187 length in msec;
+#X obj 436 388 wave~ sample;
+#X obj 527 397 wave~ sample [start] [end] [num_channels];
+#X text 527 378 arg is table name \, you can also use:;
+#X msg 341 82 set sample;
+#X text 247 81 change table:;
+#X msg 305 170 enable \$1;
+#X obj 305 148 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X text 374 171 en/disable object;
+#X obj 263 212 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X msg 263 237 interp \$1;
+#X text 335 237 en/disable interpolation;
+#X text 680 112 signals can also be used;
+#X text 681 125 as start and endpoints;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 5 0 4 2;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 19 0;
+#X connect 12 0 9 0;
+#X connect 14 0 24 0;
+#X connect 15 0 14 0;
+#X connect 16 0 24 1;
+#X connect 17 0 24 2;
+#X connect 19 0 18 0;
+#X connect 24 0 4 0;
+#X connect 27 0 24 0;
+#X connect 29 0 24 0;
+#X connect 30 0 29 0;
+#X connect 32 0 33 0;
+#X connect 33 0 24 0;
diff --git a/doc/help/cyclone/xbend.pd b/doc/help/cyclone/xbend.pd
new file mode 100644
index 0000000..36c51ed
--- /dev/null
+++ b/doc/help/cyclone/xbend.pd
@@ -0,0 +1,56 @@
+#N canvas 70 132 714 373 10;
+#X obj 26 16 xbendin;
+#X obj 97 37 xbendout2;
+#X obj 97 16 xbendout;
+#X obj 26 36 xbendin2;
+#X floatatom 46 248 5 0 0 0 - - -;
+#X obj 46 191 xbendin;
+#X floatatom 90 220 5 0 0 0 - - -;
+#X obj 266 192 xbendin 1;
+#X floatatom 266 249 5 0 0 0 - - -;
+#X text 341 191 arg = channel nr;
+#X text 130 221 channel nr;
+#X obj 46 156 xbendout;
+#X floatatom 46 105 5 0 0 0 - - -;
+#X floatatom 97 133 5 0 0 0 - - -;
+#X text 97 250 14 bit pitchbend value;
+#X floatatom 266 107 5 0 0 0 - - -;
+#X obj 266 161 xbendout 1;
+#X text 98 104 14 bit pitchbend value;
+#X text 136 133 channel nr;
+#X text 462 18 that can handle 14 bit values;
+#X obj 480 197 xbendin2 1;
+#X obj 480 164 xbendout2 1;
+#X floatatom 480 252 5 0 0 0 - - -;
+#X floatatom 480 89 5 0 0 0 - - -;
+#X floatatom 545 226 5 0 0 0 - - -;
+#X floatatom 552 141 5 0 0 0 - - -;
+#X text 594 142 channel;
+#X text 560 116 lsb;
+#X text 523 90 msb;
+#X floatatom 516 114 5 0 0 0 - - -;
+#X text 587 224 lsb;
+#X text 522 252 msb;
+#X text 192 19 extra precision midi pitchbend objects;
+#X text 31 317 cyclone is (c) Miller Puckette and others;
+#X text 31 332 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 346 ___________________________________________________ ;
+#X text 192 34 in/output from;
+#X obj 300 39 midiin;
+#X obj 391 39 midiout;
+#X text 350 34 or to;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 20 0 22 0;
+#X connect 20 1 24 0;
+#X connect 21 0 20 0;
+#X connect 23 0 21 0;
+#X connect 25 0 21 2;
+#X connect 29 0 21 1;
diff --git a/doc/help/cyclone/xbendin.pd b/doc/help/cyclone/xbendin.pd
new file mode 100644
index 0000000..36c51ed
--- /dev/null
+++ b/doc/help/cyclone/xbendin.pd
@@ -0,0 +1,56 @@
+#N canvas 70 132 714 373 10;
+#X obj 26 16 xbendin;
+#X obj 97 37 xbendout2;
+#X obj 97 16 xbendout;
+#X obj 26 36 xbendin2;
+#X floatatom 46 248 5 0 0 0 - - -;
+#X obj 46 191 xbendin;
+#X floatatom 90 220 5 0 0 0 - - -;
+#X obj 266 192 xbendin 1;
+#X floatatom 266 249 5 0 0 0 - - -;
+#X text 341 191 arg = channel nr;
+#X text 130 221 channel nr;
+#X obj 46 156 xbendout;
+#X floatatom 46 105 5 0 0 0 - - -;
+#X floatatom 97 133 5 0 0 0 - - -;
+#X text 97 250 14 bit pitchbend value;
+#X floatatom 266 107 5 0 0 0 - - -;
+#X obj 266 161 xbendout 1;
+#X text 98 104 14 bit pitchbend value;
+#X text 136 133 channel nr;
+#X text 462 18 that can handle 14 bit values;
+#X obj 480 197 xbendin2 1;
+#X obj 480 164 xbendout2 1;
+#X floatatom 480 252 5 0 0 0 - - -;
+#X floatatom 480 89 5 0 0 0 - - -;
+#X floatatom 545 226 5 0 0 0 - - -;
+#X floatatom 552 141 5 0 0 0 - - -;
+#X text 594 142 channel;
+#X text 560 116 lsb;
+#X text 523 90 msb;
+#X floatatom 516 114 5 0 0 0 - - -;
+#X text 587 224 lsb;
+#X text 522 252 msb;
+#X text 192 19 extra precision midi pitchbend objects;
+#X text 31 317 cyclone is (c) Miller Puckette and others;
+#X text 31 332 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 346 ___________________________________________________ ;
+#X text 192 34 in/output from;
+#X obj 300 39 midiin;
+#X obj 391 39 midiout;
+#X text 350 34 or to;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 20 0 22 0;
+#X connect 20 1 24 0;
+#X connect 21 0 20 0;
+#X connect 23 0 21 0;
+#X connect 25 0 21 2;
+#X connect 29 0 21 1;
diff --git a/doc/help/cyclone/xbendin2.pd b/doc/help/cyclone/xbendin2.pd
new file mode 100644
index 0000000..36c51ed
--- /dev/null
+++ b/doc/help/cyclone/xbendin2.pd
@@ -0,0 +1,56 @@
+#N canvas 70 132 714 373 10;
+#X obj 26 16 xbendin;
+#X obj 97 37 xbendout2;
+#X obj 97 16 xbendout;
+#X obj 26 36 xbendin2;
+#X floatatom 46 248 5 0 0 0 - - -;
+#X obj 46 191 xbendin;
+#X floatatom 90 220 5 0 0 0 - - -;
+#X obj 266 192 xbendin 1;
+#X floatatom 266 249 5 0 0 0 - - -;
+#X text 341 191 arg = channel nr;
+#X text 130 221 channel nr;
+#X obj 46 156 xbendout;
+#X floatatom 46 105 5 0 0 0 - - -;
+#X floatatom 97 133 5 0 0 0 - - -;
+#X text 97 250 14 bit pitchbend value;
+#X floatatom 266 107 5 0 0 0 - - -;
+#X obj 266 161 xbendout 1;
+#X text 98 104 14 bit pitchbend value;
+#X text 136 133 channel nr;
+#X text 462 18 that can handle 14 bit values;
+#X obj 480 197 xbendin2 1;
+#X obj 480 164 xbendout2 1;
+#X floatatom 480 252 5 0 0 0 - - -;
+#X floatatom 480 89 5 0 0 0 - - -;
+#X floatatom 545 226 5 0 0 0 - - -;
+#X floatatom 552 141 5 0 0 0 - - -;
+#X text 594 142 channel;
+#X text 560 116 lsb;
+#X text 523 90 msb;
+#X floatatom 516 114 5 0 0 0 - - -;
+#X text 587 224 lsb;
+#X text 522 252 msb;
+#X text 192 19 extra precision midi pitchbend objects;
+#X text 31 317 cyclone is (c) Miller Puckette and others;
+#X text 31 332 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 346 ___________________________________________________ ;
+#X text 192 34 in/output from;
+#X obj 300 39 midiin;
+#X obj 391 39 midiout;
+#X text 350 34 or to;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 20 0 22 0;
+#X connect 20 1 24 0;
+#X connect 21 0 20 0;
+#X connect 23 0 21 0;
+#X connect 25 0 21 2;
+#X connect 29 0 21 1;
diff --git a/doc/help/cyclone/xbendout.pd b/doc/help/cyclone/xbendout.pd
new file mode 100644
index 0000000..36c51ed
--- /dev/null
+++ b/doc/help/cyclone/xbendout.pd
@@ -0,0 +1,56 @@
+#N canvas 70 132 714 373 10;
+#X obj 26 16 xbendin;
+#X obj 97 37 xbendout2;
+#X obj 97 16 xbendout;
+#X obj 26 36 xbendin2;
+#X floatatom 46 248 5 0 0 0 - - -;
+#X obj 46 191 xbendin;
+#X floatatom 90 220 5 0 0 0 - - -;
+#X obj 266 192 xbendin 1;
+#X floatatom 266 249 5 0 0 0 - - -;
+#X text 341 191 arg = channel nr;
+#X text 130 221 channel nr;
+#X obj 46 156 xbendout;
+#X floatatom 46 105 5 0 0 0 - - -;
+#X floatatom 97 133 5 0 0 0 - - -;
+#X text 97 250 14 bit pitchbend value;
+#X floatatom 266 107 5 0 0 0 - - -;
+#X obj 266 161 xbendout 1;
+#X text 98 104 14 bit pitchbend value;
+#X text 136 133 channel nr;
+#X text 462 18 that can handle 14 bit values;
+#X obj 480 197 xbendin2 1;
+#X obj 480 164 xbendout2 1;
+#X floatatom 480 252 5 0 0 0 - - -;
+#X floatatom 480 89 5 0 0 0 - - -;
+#X floatatom 545 226 5 0 0 0 - - -;
+#X floatatom 552 141 5 0 0 0 - - -;
+#X text 594 142 channel;
+#X text 560 116 lsb;
+#X text 523 90 msb;
+#X floatatom 516 114 5 0 0 0 - - -;
+#X text 587 224 lsb;
+#X text 522 252 msb;
+#X text 192 19 extra precision midi pitchbend objects;
+#X text 31 317 cyclone is (c) Miller Puckette and others;
+#X text 31 332 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 346 ___________________________________________________ ;
+#X text 192 34 in/output from;
+#X obj 300 39 midiin;
+#X obj 391 39 midiout;
+#X text 350 34 or to;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 20 0 22 0;
+#X connect 20 1 24 0;
+#X connect 21 0 20 0;
+#X connect 23 0 21 0;
+#X connect 25 0 21 2;
+#X connect 29 0 21 1;
diff --git a/doc/help/cyclone/xbendout2.pd b/doc/help/cyclone/xbendout2.pd
new file mode 100644
index 0000000..36c51ed
--- /dev/null
+++ b/doc/help/cyclone/xbendout2.pd
@@ -0,0 +1,56 @@
+#N canvas 70 132 714 373 10;
+#X obj 26 16 xbendin;
+#X obj 97 37 xbendout2;
+#X obj 97 16 xbendout;
+#X obj 26 36 xbendin2;
+#X floatatom 46 248 5 0 0 0 - - -;
+#X obj 46 191 xbendin;
+#X floatatom 90 220 5 0 0 0 - - -;
+#X obj 266 192 xbendin 1;
+#X floatatom 266 249 5 0 0 0 - - -;
+#X text 341 191 arg = channel nr;
+#X text 130 221 channel nr;
+#X obj 46 156 xbendout;
+#X floatatom 46 105 5 0 0 0 - - -;
+#X floatatom 97 133 5 0 0 0 - - -;
+#X text 97 250 14 bit pitchbend value;
+#X floatatom 266 107 5 0 0 0 - - -;
+#X obj 266 161 xbendout 1;
+#X text 98 104 14 bit pitchbend value;
+#X text 136 133 channel nr;
+#X text 462 18 that can handle 14 bit values;
+#X obj 480 197 xbendin2 1;
+#X obj 480 164 xbendout2 1;
+#X floatatom 480 252 5 0 0 0 - - -;
+#X floatatom 480 89 5 0 0 0 - - -;
+#X floatatom 545 226 5 0 0 0 - - -;
+#X floatatom 552 141 5 0 0 0 - - -;
+#X text 594 142 channel;
+#X text 560 116 lsb;
+#X text 523 90 msb;
+#X floatatom 516 114 5 0 0 0 - - -;
+#X text 587 224 lsb;
+#X text 522 252 msb;
+#X text 192 19 extra precision midi pitchbend objects;
+#X text 31 317 cyclone is (c) Miller Puckette and others;
+#X text 31 332 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 30 346 ___________________________________________________ ;
+#X text 192 34 in/output from;
+#X obj 300 39 midiin;
+#X obj 391 39 midiout;
+#X text 350 34 or to;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 7 0 8 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 20 0 22 0;
+#X connect 20 1 24 0;
+#X connect 21 0 20 0;
+#X connect 23 0 21 0;
+#X connect 25 0 21 2;
+#X connect 29 0 21 1;
diff --git a/doc/help/cyclone/xnote.pd b/doc/help/cyclone/xnote.pd
new file mode 100644
index 0000000..5dab2c8
--- /dev/null
+++ b/doc/help/cyclone/xnote.pd
@@ -0,0 +1,45 @@
+#N canvas 70 132 575 377 10;
+#X text 34 319 cyclone is (c) Miller Puckette and others;
+#X text 34 334 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 33 348 ___________________________________________________ ;
+#X obj 33 20 xnotein;
+#X obj 32 45 xnoteout;
+#X text 116 26 interpret midi messages with release velocity;
+#X obj 67 188 xnotein 1;
+#X obj 346 190 xnoteout 1;
+#X text 135 185 optional arg = midi channel;
+#X floatatom 346 100 5 0 0 0 - - -;
+#X floatatom 367 122 5 0 0 0 - - -;
+#X floatatom 389 144 5 0 0 0 - - -;
+#X floatatom 411 167 5 0 0 0 - - -;
+#X text 454 170 change channel;
+#X floatatom 67 263 5 0 0 0 - - -;
+#X floatatom 96 238 5 0 0 0 - - -;
+#X obj 346 237 print out;
+#X text 398 96 these are;
+#X text 418 109 individual;
+#X text 435 125 bytes of a;
+#X text 450 138 midi stream;
+#X obj 353 215 midiout 1;
+#X text 35 105 note on:;
+#X text 93 143 and off:;
+#X msg 36 123 144 \, 68 \, 120;
+#X msg 94 161 128 \, 68 \, 88;
+#X obj 125 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 147 212 on/off;
+#X text 111 263 note;
+#X text 140 237 velocity;
+#X text 278 218 send out:;
+#X connect 6 0 14 0;
+#X connect 6 1 15 0;
+#X connect 6 2 26 0;
+#X connect 7 0 16 0;
+#X connect 7 0 21 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 1;
+#X connect 11 0 7 2;
+#X connect 12 0 7 3;
+#X connect 24 0 6 0;
+#X connect 25 0 6 0;
diff --git a/doc/help/cyclone/xnotein.pd b/doc/help/cyclone/xnotein.pd
new file mode 100644
index 0000000..5dab2c8
--- /dev/null
+++ b/doc/help/cyclone/xnotein.pd
@@ -0,0 +1,45 @@
+#N canvas 70 132 575 377 10;
+#X text 34 319 cyclone is (c) Miller Puckette and others;
+#X text 34 334 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 33 348 ___________________________________________________ ;
+#X obj 33 20 xnotein;
+#X obj 32 45 xnoteout;
+#X text 116 26 interpret midi messages with release velocity;
+#X obj 67 188 xnotein 1;
+#X obj 346 190 xnoteout 1;
+#X text 135 185 optional arg = midi channel;
+#X floatatom 346 100 5 0 0 0 - - -;
+#X floatatom 367 122 5 0 0 0 - - -;
+#X floatatom 389 144 5 0 0 0 - - -;
+#X floatatom 411 167 5 0 0 0 - - -;
+#X text 454 170 change channel;
+#X floatatom 67 263 5 0 0 0 - - -;
+#X floatatom 96 238 5 0 0 0 - - -;
+#X obj 346 237 print out;
+#X text 398 96 these are;
+#X text 418 109 individual;
+#X text 435 125 bytes of a;
+#X text 450 138 midi stream;
+#X obj 353 215 midiout 1;
+#X text 35 105 note on:;
+#X text 93 143 and off:;
+#X msg 36 123 144 \, 68 \, 120;
+#X msg 94 161 128 \, 68 \, 88;
+#X obj 125 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 147 212 on/off;
+#X text 111 263 note;
+#X text 140 237 velocity;
+#X text 278 218 send out:;
+#X connect 6 0 14 0;
+#X connect 6 1 15 0;
+#X connect 6 2 26 0;
+#X connect 7 0 16 0;
+#X connect 7 0 21 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 1;
+#X connect 11 0 7 2;
+#X connect 12 0 7 3;
+#X connect 24 0 6 0;
+#X connect 25 0 6 0;
diff --git a/doc/help/cyclone/xnoteout.pd b/doc/help/cyclone/xnoteout.pd
new file mode 100644
index 0000000..5dab2c8
--- /dev/null
+++ b/doc/help/cyclone/xnoteout.pd
@@ -0,0 +1,45 @@
+#N canvas 70 132 575 377 10;
+#X text 34 319 cyclone is (c) Miller Puckette and others;
+#X text 34 334 docs based on the MAX/MSP reference (c) cycling'74
+;
+#X text 33 348 ___________________________________________________ ;
+#X obj 33 20 xnotein;
+#X obj 32 45 xnoteout;
+#X text 116 26 interpret midi messages with release velocity;
+#X obj 67 188 xnotein 1;
+#X obj 346 190 xnoteout 1;
+#X text 135 185 optional arg = midi channel;
+#X floatatom 346 100 5 0 0 0 - - -;
+#X floatatom 367 122 5 0 0 0 - - -;
+#X floatatom 389 144 5 0 0 0 - - -;
+#X floatatom 411 167 5 0 0 0 - - -;
+#X text 454 170 change channel;
+#X floatatom 67 263 5 0 0 0 - - -;
+#X floatatom 96 238 5 0 0 0 - - -;
+#X obj 346 237 print out;
+#X text 398 96 these are;
+#X text 418 109 individual;
+#X text 435 125 bytes of a;
+#X text 450 138 midi stream;
+#X obj 353 215 midiout 1;
+#X text 35 105 note on:;
+#X text 93 143 and off:;
+#X msg 36 123 144 \, 68 \, 120;
+#X msg 94 161 128 \, 68 \, 88;
+#X obj 125 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 147 212 on/off;
+#X text 111 263 note;
+#X text 140 237 velocity;
+#X text 278 218 send out:;
+#X connect 6 0 14 0;
+#X connect 6 1 15 0;
+#X connect 6 2 26 0;
+#X connect 7 0 16 0;
+#X connect 7 0 21 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 1;
+#X connect 11 0 7 2;
+#X connect 12 0 7 3;
+#X connect 24 0 6 0;
+#X connect 25 0 6 0;
diff --git a/doc/help/cyclone/zl.pd b/doc/help/cyclone/zl.pd
new file mode 100644
index 0000000..1b1ddab
--- /dev/null
+++ b/doc/help/cyclone/zl.pd
@@ -0,0 +1,207 @@
+#N canvas 31 12 939 613 10;
+#X text 34 559 cyclone is (c) Miller Puckette and others;
+#X text 35 572 docs based on the MAX/MSP reference (c) cycling'74;
+#X text 34 586 ___________________________________________________
+;
+#X obj 25 21 zl;
+#X obj 250 488 zl;
+#X msg 159 403 mode join;
+#X obj 250 510 print join;
+#X msg 280 446 joined together;
+#X obj 250 401 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 250 425 t b b;
+#X text 143 369 in join mode lists are \, well joined:;
+#X text 144 403 1;
+#X text 233 402 2;
+#X msg 250 468 these are;
+#X text 23 49 zl supports multiple modes that perform various useful
+tasks;
+#X text 139 85 modes can be set as an arg or with a;
+#X msg 396 80 mode mode_name [n];
+#X msg 38 154 list a b;
+#X msg 52 179 list c d e f;
+#X obj 38 353 print group;
+#X text 536 85 message.;
+#X text 21 114 in group mode messages are grouped;
+#X text 21 126 in numbers of elements:;
+#X text 20 153 1;
+#X text 20 178 2;
+#X text 121 318 arg sets mode and optionally the;
+#X text 122 329 number of elements to group;
+#X msg 103 211 3;
+#X text 86 211 3;
+#X msg 137 266 list a b c d e;
+#X msg 137 287 list f g;
+#X text 119 265 4;
+#X text 120 288 5;
+#X obj 38 325 zl group 2;
+#X text 209 288 <- click again;
+#X text 129 234 remaining items are stored and;
+#X text 129 246 used for the next group:;
+#X text 130 213 change nr of elements per group;
+#X obj 385 283 zl iter 3;
+#X msg 385 176 1 2 3 4;
+#X msg 358 154 1 2 3 4 5 6;
+#X floatatom 443 258 5 0 0 0 - - -;
+#X text 334 117 iter is similar to group but always;
+#X msg 399 200 1;
+#X text 334 129 sends out all available elements:;
+#X msg 443 236 mode iter 4;
+#X text 440 218 change nr here;
+#X text 485 258 or here;
+#X obj 385 308 print iter;
+#X msg 672 439 this is a list;
+#X msg 702 463 this is another list;
+#X text 669 375 are common to both input lists:;
+#X obj 672 415 t b b;
+#X obj 672 396 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 672 491 zl sect;
+#X obj 672 513 print sect;
+#X text 669 365 sect outputs the elements that;
+#X text 419 368 union sends out the contents of;
+#X msg 452 471 this is another list;
+#X obj 422 430 t b b;
+#X obj 422 412 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 422 492 zl union;
+#X obj 422 513 print union;
+#X msg 422 450 this is a list;
+#X text 420 381 both lists \, without repeating any;
+#X text 420 392 of the elements in both lists:;
+#N canvas 0 0 405 241 but.... 0;
+#X obj 89 95 t b b;
+#X obj 89 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 89 167 zl union;
+#X obj 89 191 print union_but;
+#X msg 89 119 this is a list list list;
+#X msg 119 143 this is is is another list;
+#X text 43 18 I'm not sure if it should be this way ...;
+#X text 42 29 either is is is or one list seems logical.;
+#X text 43 42 how does max do it ?;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 1;
+#X restore 566 514 pd but....;
+#X text 506 519 more...:;
+#N canvas 196 86 643 551 trivial 0;
+#X obj 66 88 zl len;
+#X obj 66 111 print len;
+#X msg 41 40 this produces 3;
+#X msg 66 63 and this should be five;
+#X text 40 18 len outputs the nr. of elements:;
+#X text 301 16 rev reverses:;
+#X obj 303 83 zl rev;
+#X obj 303 108 print rev;
+#X msg 312 59 10 9 8 7 6 5 4 3 2 1 0;
+#X msg 303 36 way this something means this;
+#X text 32 163 reg can be used to store lists:;
+#X obj 33 284 zl reg;
+#X msg 33 186 this is sent out immediately;
+#X obj 33 310 print reg;
+#X msg 39 246 bang;
+#X msg 70 218 this is just stored;
+#X obj 293 308 print rotate;
+#X msg 293 219 sometimes my grammar is all messed up;
+#X obj 293 285 zl rot 3;
+#X text 292 199 master yoda says:;
+#X msg 321 261 1 2 3 4 5 6 7 8;
+#X floatatom 344 241 5 0 0 0 - - -;
+#X text 281 219 1;
+#X text 328 240 2;
+#X text 306 262 3;
+#X text 76 246 output last stored list;
+#X text 290 163 rot rotates:;
+#X text 34 365 nth sends out the nth element:;
+#X obj 39 445 zl nth 3;
+#X obj 39 469 print nth;
+#X floatatom 90 418 5 0 0 0 - - -;
+#X msg 39 393 1 10 11 100 101 110 111 1000;
+#X text 132 419 change 'n';
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 6 0 7 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 11 0 13 0;
+#X connect 12 0 11 0;
+#X connect 14 0 11 0;
+#X connect 15 0 11 1;
+#X connect 17 0 18 0;
+#X connect 18 0 16 0;
+#X connect 20 0 18 0;
+#X connect 21 0 18 1;
+#X connect 28 0 29 0;
+#X connect 30 0 28 1;
+#X connect 31 0 28 0;
+#X restore 778 41 pd trivial ones;
+#X text 506 44 look here for rev \, len \, reg \, rot[ate]:;
+#X obj 610 261 zl slice 3;
+#X msg 610 182 1 2 3 4 5 6 7;
+#X obj 610 315 print slice1;
+#X obj 675 288 print slice2;
+#X floatatom 675 233 5 0 0 0 - - -;
+#X msg 622 206 a b c d e f g i;
+#X text 608 114 slice is the only mode to use the 2nd;
+#X text 609 127 outlet \, it divides the list into two;
+#X text 609 140 lists at the specified element nr:;
+#X text 716 232 change nr;
+#X text 71 21 multi purpose list processing object a.k.a. swiss army
+knife;
+#X text 23 60 on lists. the modes are group \, iter \, join \, len
+\, reg \, rev \,;
+#X msg 780 178 1 2 3 4 5 6 7;
+#X floatatom 845 229 5 0 0 0 - - -;
+#X msg 792 202 a b c d e f g i;
+#X obj 780 257 zl ecils 3;
+#X obj 780 311 print ecils1;
+#X obj 845 284 print ecils2;
+#X text 746 158 ecils is the reverse;
+#X text 23 71 rotate \, sect \, nth \, slice \, ecils or union.;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 7 0 4 1;
+#X connect 8 0 9 0;
+#X connect 9 0 13 0;
+#X connect 9 1 7 0;
+#X connect 13 0 4 0;
+#X connect 17 0 33 0;
+#X connect 18 0 33 0;
+#X connect 27 0 33 1;
+#X connect 29 0 33 0;
+#X connect 30 0 33 0;
+#X connect 33 0 19 0;
+#X connect 38 0 48 0;
+#X connect 39 0 38 0;
+#X connect 40 0 38 0;
+#X connect 41 0 38 1;
+#X connect 43 0 38 0;
+#X connect 45 0 38 0;
+#X connect 49 0 54 0;
+#X connect 50 0 54 1;
+#X connect 52 0 49 0;
+#X connect 52 1 50 0;
+#X connect 53 0 52 0;
+#X connect 54 0 55 0;
+#X connect 58 0 61 1;
+#X connect 59 0 63 0;
+#X connect 59 1 58 0;
+#X connect 60 0 59 0;
+#X connect 61 0 62 0;
+#X connect 63 0 61 0;
+#X connect 70 0 72 0;
+#X connect 70 1 73 0;
+#X connect 71 0 70 0;
+#X connect 74 0 70 1;
+#X connect 75 0 70 0;
+#X connect 82 0 85 0;
+#X connect 83 0 85 1;
+#X connect 84 0 85 0;
+#X connect 85 0 86 0;
+#X connect 85 1 87 0;