aboutsummaryrefslogtreecommitdiff
path: root/help
diff options
context:
space:
mode:
Diffstat (limited to 'help')
-rw-r--r--help/breakpoint-help.pd249
-rw-r--r--help/breakpoint_smooth-help.pd201
-rw-r--r--help/circular_seat-help.pd5
-rw-r--r--help/circular_sigmoid-help.pd121
-rw-r--r--help/elliptic_sigmoid-help.pd131
-rw-r--r--help/exponential_curve-help.pd121
-rw-r--r--help/exponential_seat-help.pd3
-rw-r--r--help/exponential_sigmoid-help.pd (renamed from help/double_linear-help.pd)49
-rw-r--r--help/logistic_sigmoid-help.pd221
9 files changed, 899 insertions, 202 deletions
diff --git a/help/breakpoint-help.pd b/help/breakpoint-help.pd
index 8d48253..1e67b7c 100644
--- a/help/breakpoint-help.pd
+++ b/help/breakpoint-help.pd
@@ -1,65 +1,131 @@
-#N canvas 584 82 885 571 10;
-#X obj 20 38 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+#N canvas 377 72 515 428 10;
+#X obj 384 32 import mapping ggee;
+#X obj 5 2 cnv 15 500 20 empty empty breakpoint 2 11 1 18 -233017 -66577
+0;
+#X msg 471 2 pddp;
+#X text 304 393 released under the GNU GPL;
+#X text 82 358 For more info:;
+#X floatatom 25 127 8 0 0 0 - - -;
+#X floatatom 25 288 8 0 0 0 - - -;
+#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
-1 -1 0 1;
-#X obj 20 213 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 91 156 5 0 0 0 - - -;
-#X floatatom 162 157 5 0 0 0 - - -;
-#X floatatom 144 247 5 0 1 0 - - -;
-#X obj 144 271 t b f;
-#X floatatom 236 247 5 0 1 0 - - -;
-#X obj 236 271 t b f;
-#X obj 82 271 loadbang;
-#X text 111 541 XY relation of the breakpoint object;
-#N canvas 0 0 450 300 float 0;
-#X obj 71 23 inlet;
-#X obj 48 191 outlet;
-#X obj 150 22 inlet;
-#X obj 71 93 list prepend;
-#X obj 71 118 list;
-#X obj 48 141 list;
-#X obj 48 166 list trim;
-#X obj 150 45 t b b;
-#X msg 150 70 list;
-#X connect 0 0 3 0;
-#X connect 2 0 7 0;
+#N canvas 273 69 474 407 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 66 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 254 / 200;
+#X text 96 254 mapping output range: 0 to 1;
+#N canvas 0 22 461 369 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 117 289 receive \$0-x-slider;
+#X floatatom 118 312 5 0 0 0 - - -;
+#X floatatom 279 313 5 0 0 0 - - -;
+#X obj 280 290 receive \$0-y-slider;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 3 0;
#X connect 3 0 4 0;
-#X connect 4 0 3 1;
-#X connect 4 0 5 1;
+#X connect 4 0 19 0;
#X connect 5 0 6 0;
-#X connect 6 0 1 0;
-#X connect 7 0 8 0;
-#X connect 7 1 5 0;
-#X connect 8 0 3 1;
-#X restore 82 353 pd float to list ___________;
-#N canvas 0 0 450 300 generate 0;
-#X obj 55 38 inlet;
-#X msg 55 65 0;
-#X obj 55 91 f;
-#X obj 55 164 + 1;
-#X obj 55 137 t f f;
-#X obj 85 192 outlet;
-#X obj 148 192 outlet;
-#X obj 148 166 t b;
-#X obj 85 164 / 100;
-#X obj 55 114 moses 101;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 0;
-#X connect 4 1 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 5 0;
-#X connect 9 0 4 0;
-#X connect 9 1 7 0;
-#X restore 82 302 pd generate list ___________;
-#X floatatom 513 224 5 0 1 0 - - -;
-#X obj 513 248 t b f;
-#X floatatom 584 223 5 0 0 0 - - -;
-#X obj 584 247 t b f;
-#X obj 451 248 loadbang;
-#N canvas 0 0 450 300 float 0;
+#X connect 6 0 19 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 18 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 18 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 293 12 receive \$0-y-slider;
+#X obj 294 50 trigger bang float;
+#X obj 54 280 breakpoint;
+#X obj 54 108 cyclone/speedlim 100;
+#X connect 0 0 18 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 17 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 17 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X connect 16 1 17 2;
+#X connect 17 0 8 0;
+#X connect 18 0 1 0;
+#X restore 387 71 pd draw_array;
+#X obj 158 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive
+y 5 9 0 11 -204800 -1 -1 2352 0;
+#X floatatom 165 186 7 0 0 0 - - -;
+#X obj 334 359 pddp/open mapping-about;
+#X text 37 392 (C) Copyright 2007 Free Software Foundation;
+#X obj 282 103 gcanvas 200 200;
+#N canvas 0 22 450 300 graph1 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 282 103 graph;
+#X obj 282 308 send \$0-x;
+#X obj 424 307 send \$0-y;
+#X obj 74 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive x
+5 9 0 11 -232576 -1 -1 3700 0;
+#X floatatom 80 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-linear
+interpolator with two control parameters.;
+#X obj 25 217 breakpoint;
+#N canvas 0 22 461 638 usage 0;
+#X floatatom 153 34 5 0 1 0 - - -;
+#X obj 153 58 t b f;
+#X floatatom 224 33 5 0 0 0 - - -;
+#X obj 224 57 t b f;
+#X obj 91 58 loadbang;
+#N canvas 0 22 454 304 float 0;
#X obj 71 23 inlet;
#X obj 48 191 outlet;
#X obj 150 22 inlet;
@@ -79,8 +145,8 @@
#X connect 7 0 8 0;
#X connect 7 1 5 0;
#X connect 8 0 3 1;
-#X restore 451 358 pd float to list ___________;
-#N canvas 0 0 450 300 generate 0;
+#X restore 91 168 pd float to list ___________;
+#N canvas 0 22 450 300 generate 0;
#X obj 55 38 inlet;
#X msg 55 65 0;
#X obj 55 91 f;
@@ -101,39 +167,30 @@
#X connect 8 0 5 0;
#X connect 9 0 4 0;
#X connect 9 1 7 0;
-#X restore 451 279 pd generate list ___________;
-#X text 110 70 for X go thru 0 to \$1 \, Y go thrus 0 to \$2.;
-#X text 109 89 for X go thru \$1 to 1 \, Y go thrus \$2 to 1;
-#X obj 20 180 breakpoint 0.8 0.3;
-#X obj 82 327 breakpoint 0.8 0.3 _____;
-#X obj 82 381 multi_slider 100;
-#X obj 452 388 multi_slider 100;
-#X obj 451 304 breakpoint 0.3 0.5 _____;
-#X obj 451 332 nl 1 ________________;
-#X connect 0 0 21 0;
-#X connect 2 0 21 1;
-#X connect 3 0 21 2;
-#X connect 4 0 5 0;
-#X connect 5 0 11 0;
-#X connect 5 1 22 1;
+#X restore 91 89 pd generate list ___________;
+#X obj 92 198 multi_slider 100;
+#X obj 91 114 breakpoint 0.3 0.5 _____;
+#X obj 91 142 nl 1 ________________;
+#X connect 0 0 1 0;
+#X connect 1 0 6 0;
+#X connect 1 1 8 1;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 3 1 9 1;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 6 1 5 1;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X restore 197 359 pd usage example;
+#X connect 5 0 21 0;
#X connect 6 0 7 0;
-#X connect 7 0 11 0;
-#X connect 7 1 22 2;
-#X connect 8 0 11 0;
-#X connect 10 0 23 0;
-#X connect 11 0 22 0;
-#X connect 11 1 10 1;
-#X connect 12 0 13 0;
-#X connect 13 0 18 0;
-#X connect 13 1 25 1;
-#X connect 14 0 15 0;
-#X connect 15 0 18 0;
-#X connect 15 1 26 1;
-#X connect 16 0 18 0;
-#X connect 17 0 24 0;
-#X connect 18 0 25 0;
-#X connect 18 1 17 1;
-#X connect 21 0 1 0;
-#X connect 22 0 10 0;
-#X connect 25 0 26 0;
-#X connect 26 0 17 0;
+#X connect 8 0 5 0;
+#X connect 10 0 11 0;
+#X connect 10 0 21 2;
+#X connect 14 0 16 0;
+#X connect 14 1 17 0;
+#X connect 18 0 19 0;
+#X connect 18 0 21 1;
+#X connect 21 0 6 0;
diff --git a/help/breakpoint_smooth-help.pd b/help/breakpoint_smooth-help.pd
index d0ace73..7a8110e 100644
--- a/help/breakpoint_smooth-help.pd
+++ b/help/breakpoint_smooth-help.pd
@@ -1,78 +1,131 @@
-#N canvas 230 45 885 734 10;
-#X obj 20 38 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+#N canvas 377 72 526 441 10;
+#X obj 384 32 import mapping ggee;
+#X obj 5 2 cnv 15 500 20 empty empty breakpoint_smooth 2 11 1 18 -233017
+-66577 0;
+#X msg 471 2 pddp;
+#X text 304 393 released under the GNU GPL;
+#X text 179 362 For more info:;
+#X floatatom 25 127 8 0 0 0 - - -;
+#X floatatom 25 288 8 0 0 0 - - -;
+#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
-1 -1 0 1;
-#X obj 20 213 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 91 156 5 0 0 0 - - -;
-#X floatatom 162 157 5 0 0 0 - - -;
-#X floatatom 144 247 5 0 1 0 - - -;
-#X obj 144 271 t b f;
-#X floatatom 236 247 5 0 1 0 - - -;
-#X obj 236 271 t b f;
-#X obj 82 271 loadbang;
-#X text 214 185 XY relation of the breakpoint object;
-#N canvas 0 0 450 300 float 0;
-#X obj 71 23 inlet;
-#X obj 48 191 outlet;
-#X obj 150 22 inlet;
-#X obj 71 93 list prepend;
-#X obj 71 118 list;
-#X obj 48 141 list;
-#X obj 48 166 list trim;
-#X obj 150 45 t b b;
-#X msg 150 70 list;
-#X connect 0 0 3 0;
-#X connect 2 0 7 0;
+#N canvas 273 69 474 407 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 66 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 254 / 200;
+#X text 96 254 mapping output range: 0 to 1;
+#N canvas 0 22 461 369 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 117 289 receive \$0-x-slider;
+#X floatatom 118 312 5 0 0 0 - - -;
+#X floatatom 279 313 5 0 0 0 - - -;
+#X obj 280 290 receive \$0-y-slider;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 3 0;
#X connect 3 0 4 0;
-#X connect 4 0 3 1;
-#X connect 4 0 5 1;
+#X connect 4 0 19 0;
#X connect 5 0 6 0;
-#X connect 6 0 1 0;
-#X connect 7 0 8 0;
-#X connect 7 1 5 0;
-#X connect 8 0 3 1;
-#X restore 82 353 pd float to list ___________;
-#N canvas 0 0 450 300 generate 0;
-#X obj 55 38 inlet;
-#X msg 55 65 0;
-#X obj 55 91 f;
-#X obj 55 164 + 1;
-#X obj 55 137 t f f;
-#X obj 85 192 outlet;
-#X obj 148 192 outlet;
-#X obj 148 166 t b;
-#X obj 85 164 / 100;
-#X obj 55 114 moses 101;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 0;
-#X connect 4 1 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 5 0;
-#X connect 9 0 4 0;
-#X connect 9 1 7 0;
-#X restore 82 302 pd generate list ___________;
-#X text 110 70 for X go thru 0 to \$1 \, Y go thrus 0 to \$2.;
-#X text 109 89 for X go thru \$1 to 1 \, Y go thrus \$2 to 1;
-#X obj 20 180 breakpoint 0.8 0.3;
-#X obj 82 381 multi_slider 100;
-#X obj 82 328 breakpoint_smooth 0.8 0.3 _;
-#X text 216 19 just like breakpoint \, but with a smooth curve (i.e.
-: no breakpoint!). the output value is \$2 for input = \$1.;
-#X connect 0 0 14 0;
-#X connect 2 0 14 1;
-#X connect 3 0 14 2;
-#X connect 4 0 5 0;
-#X connect 5 0 11 0;
-#X connect 5 1 16 1;
-#X connect 6 0 7 0;
+#X connect 6 0 19 0;
#X connect 7 0 11 0;
-#X connect 7 1 16 2;
-#X connect 8 0 11 0;
-#X connect 10 0 15 0;
-#X connect 11 0 16 0;
-#X connect 11 1 10 1;
-#X connect 14 0 1 0;
-#X connect 16 0 10 0;
+#X connect 7 1 8 0;
+#X connect 8 0 18 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 18 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 293 12 receive \$0-y-slider;
+#X obj 294 50 trigger bang float;
+#X obj 54 280 breakpoint_smooth;
+#X obj 54 108 cyclone/speedlim 100;
+#X connect 0 0 18 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 17 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 17 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X connect 16 1 17 2;
+#X connect 17 0 8 0;
+#X connect 18 0 1 0;
+#X restore 387 71 pd draw_array;
+#X obj 158 167 hsl 50 15 0 1 0 0 \$0-y-slider \$0-y-slider-receive
+y 5 9 0 11 -204800 -1 -1 0 0;
+#X floatatom 165 186 7 0 0 0 - - -;
+#X obj 283 360 pddp/open mapping-about;
+#X text 37 392 (C) Copyright 2007 Free Software Foundation;
+#X obj 282 103 gcanvas 200 200;
+#N canvas 0 22 450 300 graph1 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 282 103 graph;
+#X obj 282 308 send \$0-x;
+#X obj 424 307 send \$0-y;
+#X obj 74 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive x
+5 9 0 11 -232576 -1 -1 0 0;
+#X floatatom 80 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-linear
+interpolator with two control parameters.;
+#X obj 25 217 breakpoint_smooth;
+#X connect 5 0 21 0;
+#X connect 6 0 7 0;
+#X connect 8 0 5 0;
+#X connect 10 0 11 0;
+#X connect 10 0 21 2;
+#X connect 14 0 16 0;
+#X connect 14 1 17 0;
+#X connect 18 0 19 0;
+#X connect 18 0 21 1;
+#X connect 21 0 6 0;
diff --git a/help/circular_seat-help.pd b/help/circular_seat-help.pd
index f62e5fb..cb785a1 100644
--- a/help/circular_seat-help.pd
+++ b/help/circular_seat-help.pd
@@ -1,4 +1,4 @@
-#N canvas 107 47 482 425 10;
+#N canvas 107 47 486 429 10;
#X obj 5 2 cnv 15 450 20 empty empty circular_seat 2 11 1 18 -233017
-66577 0;
#X msg 422 3 pddp;
@@ -106,10 +106,11 @@
#X obj 262 308 send \$0-x;
#X obj 404 307 send \$0-y;
#X obj 111 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive
-x 5 9 0 11 -232576 -1 -1 2450 0;
+x 5 9 0 11 -232576 -1 -1 0 0;
#X floatatom 117 187 7 0 0 0 - - -;
#X text 17 39 This object curves the input range using a double-circular
seat controlled by one parameter.;
+#X text 15 71 (click in the gray area to play);
#X connect 4 0 11 0;
#X connect 5 0 6 0;
#X connect 7 0 4 0;
diff --git a/help/circular_sigmoid-help.pd b/help/circular_sigmoid-help.pd
new file mode 100644
index 0000000..871f15e
--- /dev/null
+++ b/help/circular_sigmoid-help.pd
@@ -0,0 +1,121 @@
+#N canvas 453 22 486 429 10;
+#X obj 5 2 cnv 15 450 20 empty empty circular_sigmoid 2 11 1 18 -233017
+-66577 0;
+#X msg 422 3 pddp;
+#X text 273 392 released under the GNU GPL;
+#X text 148 361 For more info:;
+#X floatatom 15 127 8 0 0 0 - - -;
+#X floatatom 15 288 8 0 0 0 - - -;
+#X obj 18 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 18 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
+-1 -1 0 1;
+#N canvas 273 69 470 403 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 53 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 287 / 200;
+#X text 96 287 mapping output range: 0 to 1;
+#N canvas 0 22 461 369 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 117 289 receive \$0-x-slider;
+#X floatatom 118 312 5 0 0 0 - - -;
+#X floatatom 279 313 5 0 0 0 - - -;
+#X obj 280 290 receive \$0-y-slider;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 19 0;
+#X connect 5 0 6 0;
+#X connect 6 0 19 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 18 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 18 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 54 108 speedlim 100;
+#X obj 53 313 circular_sigmoid;
+#X connect 0 0 15 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 16 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 16 0;
+#X connect 14 0 9 0;
+#X connect 15 0 1 0;
+#X connect 16 0 8 0;
+#X restore 367 71 pd draw_array;
+#X obj 252 359 pddp/open mapping-about;
+#X text 6 391 (C) Copyright 2007 Free Software Foundation;
+#X obj 15 217 circular_sigmoid;
+#X obj 262 103 gcanvas 200 200;
+#N canvas 0 22 450 300 graph1 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 262 103 graph;
+#X obj 262 308 send \$0-x;
+#X obj 404 307 send \$0-y;
+#X obj 111 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive
+x 5 9 0 11 -232576 -1 -1 1029 0;
+#X floatatom 117 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-circular
+seat controlled by one parameter.;
+#X text 15 71 (click in the gray area to play);
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 7 0 4 0;
+#X connect 11 0 5 0;
+#X connect 12 0 14 0;
+#X connect 12 1 15 0;
+#X connect 16 0 11 1;
+#X connect 16 0 17 0;
diff --git a/help/elliptic_sigmoid-help.pd b/help/elliptic_sigmoid-help.pd
new file mode 100644
index 0000000..28bbb6f
--- /dev/null
+++ b/help/elliptic_sigmoid-help.pd
@@ -0,0 +1,131 @@
+#N canvas 364 172 519 423 10;
+#X obj 386 30 import mapping ggee;
+#X obj 5 2 cnv 15 500 20 empty empty elliptic_sigmoid 2 11 1 18 -233017
+-66577 0;
+#X msg 471 2 pddp;
+#X text 304 393 released under the GNU GPL;
+#X text 235 359 For more info:;
+#X floatatom 25 127 8 0 0 0 - - -;
+#X floatatom 25 288 8 0 0 0 - - -;
+#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
+-1 -1 0 1;
+#X obj 158 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive
+y 5 9 0 11 -204800 -1 -1 1421 0;
+#X floatatom 165 186 7 0 0 0 - - -;
+#X obj 334 359 pddp/open mapping-about;
+#X text 37 392 (C) Copyright 2007 Free Software Foundation;
+#X obj 74 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive x
+5 9 0 11 -232576 -1 -1 2744 0;
+#X floatatom 80 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-linear
+interpolator with two control parameters.;
+#X obj 25 217 elliptic_sigmoid;
+#N canvas 273 69 478 411 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 66 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 254 / 200;
+#X text 96 254 mapping output range: 0 to 1;
+#N canvas 0 22 461 369 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 117 289 receive \$0-x-slider;
+#X floatatom 118 312 5 0 0 0 - - -;
+#X floatatom 279 313 5 0 0 0 - - -;
+#X obj 280 290 receive \$0-y-slider;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 19 0;
+#X connect 5 0 6 0;
+#X connect 6 0 19 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 18 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 18 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 293 12 receive \$0-y-slider;
+#X obj 294 50 trigger bang float;
+#X obj 54 108 cyclone/speedlim 100;
+#X obj 54 280 elliptic_sigmoid;
+#X connect 0 0 17 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 18 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 18 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X connect 16 1 18 2;
+#X connect 17 0 1 0;
+#X connect 18 0 8 0;
+#X restore 387 71 pd draw_array;
+#X obj 282 103 gcanvas 200 200;
+#N canvas 0 22 450 300 graph1 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 282 103 graph;
+#X obj 282 308 send \$0-x;
+#X obj 424 307 send \$0-y;
+#X connect 5 0 16 0;
+#X connect 6 0 7 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 9 0 16 2;
+#X connect 13 0 14 0;
+#X connect 13 0 16 1;
+#X connect 16 0 6 0;
+#X connect 18 0 20 0;
+#X connect 18 1 21 0;
diff --git a/help/exponential_curve-help.pd b/help/exponential_curve-help.pd
new file mode 100644
index 0000000..e80084e
--- /dev/null
+++ b/help/exponential_curve-help.pd
@@ -0,0 +1,121 @@
+#N canvas 75 55 502 438 10;
+#X obj 5 -3 cnv 15 450 20 empty empty exponential_curve 2 11 1 18 -233017
+-66577 0;
+#X msg 422 -2 pddp;
+#X text 283 387 released under the GNU GPL;
+#X text 158 356 For more info:;
+#X floatatom 25 122 8 0 0 0 - - -;
+#X floatatom 25 283 8 0 0 0 - - -;
+#X obj 28 300 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 28 96 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
+-1 -1 0 1;
+#N canvas 273 69 474 407 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 53 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 287 / 200;
+#X text 96 287 mapping output range: 0 to 1;
+#N canvas 0 22 461 369 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 117 289 receive \$0-x-slider;
+#X floatatom 118 312 5 0 0 0 - - -;
+#X floatatom 279 313 5 0 0 0 - - -;
+#X obj 280 290 receive \$0-y-slider;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 19 0;
+#X connect 5 0 6 0;
+#X connect 6 0 19 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 18 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 18 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 54 108 speedlim 100;
+#X obj 53 313 exponential_curve;
+#X connect 0 0 15 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 16 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 16 0;
+#X connect 14 0 9 0;
+#X connect 15 0 1 0;
+#X connect 16 0 8 0;
+#X restore 377 66 pd draw_array;
+#X obj 262 354 pddp/open mapping-about;
+#X text 16 386 (C) Copyright 2007 Free Software Foundation;
+#X obj 272 98 gcanvas 200 200;
+#N canvas 0 22 450 300 graph1 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 272 98 graph;
+#X obj 272 303 send \$0-x;
+#X obj 414 302 send \$0-y;
+#X obj 127 163 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive
+x 5 9 0 11 -232576 -1 -1 1617 0;
+#X floatatom 133 183 7 0 0 0 - - -;
+#X text 17 34 This object curves the input range using a double-exponential
+seat controlled by one parameter.;
+#X obj 25 212 exponential_curve;
+#X text 15 71 (click in the gray area to play);
+#X connect 4 0 18 0;
+#X connect 5 0 6 0;
+#X connect 7 0 4 0;
+#X connect 11 0 13 0;
+#X connect 11 1 14 0;
+#X connect 15 0 16 0;
+#X connect 15 0 18 1;
+#X connect 18 0 5 0;
diff --git a/help/exponential_seat-help.pd b/help/exponential_seat-help.pd
index 7c853c0..1448747 100644
--- a/help/exponential_seat-help.pd
+++ b/help/exponential_seat-help.pd
@@ -1,4 +1,4 @@
-#N canvas 709 123 502 433 10;
+#N canvas 709 123 506 437 10;
#X obj 5 2 cnv 15 450 20 empty empty exponential_seat 2 11 1 18 -233017
-66577 0;
#X msg 422 3 pddp;
@@ -110,6 +110,7 @@ x 5 9 0 11 -232576 -1 -1 0 0;
#X floatatom 127 187 7 0 0 0 - - -;
#X text 17 39 This object curves the input range using a double-exponential
seat controlled by one parameter.;
+#X text 15 71 (click in the gray area to play);
#X connect 4 0 11 0;
#X connect 5 0 6 0;
#X connect 7 0 4 0;
diff --git a/help/double_linear-help.pd b/help/exponential_sigmoid-help.pd
index 95d4771..48f447a 100644
--- a/help/double_linear-help.pd
+++ b/help/exponential_sigmoid-help.pd
@@ -1,6 +1,6 @@
-#N canvas 568 30 498 429 10;
-#X obj 5 2 cnv 15 450 20 empty empty double_linear 2 11 1 18 -233017
--66577 0;
+#N canvas 130 42 494 421 10;
+#X obj 5 2 cnv 15 450 20 empty empty exponential_sigmoid 2 11 1 18
+-233017 -66577 0;
#X msg 422 3 pddp;
#X text 283 392 released under the GNU GPL;
#X text 158 361 For more info:;
@@ -10,7 +10,7 @@
12 -262144 -1 -1 0 1;
#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
-1 -1 0 1;
-#N canvas 273 69 466 399 draw_array 0;
+#N canvas 273 69 470 403 draw_array 0;
#X msg 54 82 bang;
#X obj 54 133 until;
#X text 85 82 start;
@@ -75,11 +75,9 @@
#X connect 23 0 21 0;
#X restore 265 348 pd receive from gcanvas;
#X obj 138 9 receive \$0-x-slider;
-#X obj 293 12 receive \$0-y-slider;
-#X obj 53 313 double_linear;
-#X obj 294 50 trigger bang float;
#X obj 54 108 speedlim 100;
-#X connect 0 0 18 0;
+#X obj 53 313 exponential_sigmoid;
+#X connect 0 0 15 0;
#X connect 1 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
@@ -94,18 +92,12 @@
#X connect 10 0 7 0;
#X connect 11 0 16 0;
#X connect 14 0 9 0;
-#X connect 15 0 17 0;
+#X connect 15 0 1 0;
#X connect 16 0 8 0;
-#X connect 17 0 0 0;
-#X connect 17 1 16 2;
-#X connect 18 0 1 0;
#X restore 377 71 pd draw_array;
-#X obj 158 167 hsl 50 15 0 1 0 0 \$0-y-slider \$0-y-slider-receive
-y 5 9 0 11 -204800 -1 -1 0 0;
-#X floatatom 165 186 7 0 0 0 - - -;
#X obj 262 359 pddp/open mapping-about;
#X text 16 391 (C) Copyright 2007 Free Software Foundation;
-#X obj 25 217 double_linear;
+#X obj 25 217 exponential_sigmoid;
#X obj 272 103 gcanvas 200 200;
#N canvas 0 22 450 300 graph1 0;
#X array \$0-curve 200 float 0;
@@ -113,18 +105,17 @@ y 5 9 0 11 -204800 -1 -1 0 0;
#X restore 272 103 graph;
#X obj 272 308 send \$0-x;
#X obj 414 307 send \$0-y;
-#X obj 74 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive x
-5 9 0 11 -232576 -1 -1 0 0;
-#X floatatom 80 187 7 0 0 0 - - -;
-#X text 17 39 This object curves the input range using a double-linear
-interpolator with two control parameters.;
-#X connect 4 0 13 0;
+#X obj 139 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive
+x 5 9 0 11 -232576 -1 -1 4900 0;
+#X floatatom 145 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-exponential
+seat controlled by one parameter.;
+#X text 15 71 (click in the gray area to play);
+#X connect 4 0 11 0;
#X connect 5 0 6 0;
#X connect 7 0 4 0;
-#X connect 9 0 13 2;
-#X connect 9 0 10 0;
-#X connect 13 0 5 0;
-#X connect 14 0 16 0;
-#X connect 14 1 17 0;
-#X connect 18 0 13 1;
-#X connect 18 0 19 0;
+#X connect 11 0 5 0;
+#X connect 12 0 14 0;
+#X connect 12 1 15 0;
+#X connect 16 0 11 1;
+#X connect 16 0 17 0;
diff --git a/help/logistic_sigmoid-help.pd b/help/logistic_sigmoid-help.pd
new file mode 100644
index 0000000..c8e57c5
--- /dev/null
+++ b/help/logistic_sigmoid-help.pd
@@ -0,0 +1,221 @@
+#N canvas 440 23 498 425 10;
+#X obj 5 2 cnv 15 450 20 empty empty logistic_sigmoid 2 11 1 18 -233017
+-66577 0;
+#X msg 422 3 pddp;
+#X text 283 392 released under the GNU GPL;
+#X text 158 361 For more info:;
+#X floatatom 25 127 8 0 0 0 - - -;
+#X floatatom 25 288 8 0 0 0 - - -;
+#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1
+12 -262144 -1 -1 0 1;
+#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681
+-1 -1 0 1;
+#N canvas 273 69 474 407 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 133 until;
+#X text 85 82 start;
+#X obj 54 155 f;
+#X obj 83 155 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 210 trigger float float;
+#X obj 127 157 select 0;
+#X obj 53 343 tabwrite \$0-curve;
+#X obj 139 53 trigger bang float;
+#X obj 83 177 mod 200;
+#X obj 54 287 / 200;
+#X text 96 287 mapping output range: 0 to 1;
+#N canvas 739 87 465 373 receive 0;
+#X obj 253 33 receive \$0-y;
+#X obj 253 57 moses;
+#X obj 280 78 moses 201;
+#X obj 331 99 bang;
+#X msg 331 120 200;
+#X obj 238 98 bang;
+#X msg 238 119 0;
+#X obj 91 56 moses;
+#X obj 118 77 moses 201;
+#X obj 169 98 bang;
+#X msg 169 119 200;
+#X obj 76 97 bang;
+#X msg 76 118 0;
+#X obj 91 32 receive \$0-x;
+#X obj 118 169 / 200;
+#X obj 280 170 / 200;
+#X obj 118 249 send \$0-x-slider-receive;
+#X obj 280 250 send \$0-y-slider-receive;
+#X msg 281 193 1 \$1;
+#X obj 280 221 -;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 1 1 2 0;
+#X connect 2 0 15 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 15 0;
+#X connect 5 0 6 0;
+#X connect 6 0 15 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 14 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 14 0;
+#X connect 11 0 12 0;
+#X connect 12 0 14 0;
+#X connect 13 0 7 0;
+#X connect 14 0 16 0;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 19 0 17 0;
+#X restore 265 348 pd receive from gcanvas;
+#X obj 138 9 receive \$0-x-slider;
+#X obj 54 108 speedlim 100;
+#X obj 53 313 logistic_sigmoid;
+#X connect 0 0 15 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 5 0 0 0;
+#X connect 6 0 11 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 0 0;
+#X connect 9 1 16 1;
+#X connect 10 0 3 1;
+#X connect 10 0 7 0;
+#X connect 11 0 16 0;
+#X connect 14 0 9 0;
+#X connect 15 0 1 0;
+#X connect 16 0 8 0;
+#X restore 377 71 pd draw_array;
+#X obj 262 359 pddp/open mapping-about;
+#X text 16 391 (C) Copyright 2007 Free Software Foundation;
+#X obj 25 217 logistic_sigmoid;
+#X obj 139 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive
+x 5 9 0 11 -232576 -1 -1 4900 0;
+#X floatatom 145 187 7 0 0 0 - - -;
+#X text 17 39 This object curves the input range using a double-exponential
+seat controlled by one parameter.;
+#X text 15 71 (click in the gray area to play);
+#N canvas 475 288 686 489 tottest 0;
+#X msg 44 33 capture 1;
+#X obj 169 106 bang;
+#X obj 227 106 bang;
+#X msg 168 130 1;
+#X msg 227 128 0;
+#X obj 110 82 route motion mouse mouseup;
+#X obj 112 161 spigot;
+#X obj 46 9 loadbang;
+#X obj 112 187 unpack float float float;
+#X obj 19 215 moses 273;
+#X obj 353 235 moses 103;
+#X obj 411 255 moses 303;
+#X obj 77 235 moses 473;
+#X obj 77 255 - 273;
+#X obj 411 275 - 103;
+#X obj 411 349 cyclone/speedlim 150;
+#X obj 77 319 cyclone/speedlim 150;
+#X obj 469 285 bang;
+#X msg 469 306 200;
+#X obj 353 285 bang;
+#X msg 353 306 0;
+#X obj 149 268 bang;
+#X msg 149 289 200;
+#X obj 56 267 bang;
+#X msg 56 288 0;
+#X obj 411 375 send \$0-y-slider-receive;
+#X obj 77 343 send \$0-x-slider-receive;
+#N canvas 748 481 466 316 constrain 0;
+#X obj 15 12 inlet;
+#X obj 114 276 outlet;
+#X obj 15 52 unpack float float float float;
+#X obj 45 116 receive \$0-xmin;
+#X obj 75 137 receive \$0-xmax;
+#X obj 15 137 moses;
+#X obj 45 157 moses;
+#X obj 114 247 pack float float;
+#X obj 200 137 moses;
+#X obj 230 157 moses;
+#X obj 137 207 trigger bang float;
+#X obj 260 137 receive \$0-ymax;
+#X obj 230 116 receive \$0-ymin;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 8 0;
+#X connect 3 0 5 1;
+#X connect 4 0 6 1;
+#X connect 5 1 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 0;
+#X connect 8 1 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 7 0;
+#X connect 10 1 7 1;
+#X connect 11 0 9 1;
+#X connect 12 0 8 1;
+#X restore 339 112 pd constrain mouse messages;
+#N canvas 0 22 458 308 set 0;
+#X obj 75 26 inlet;
+#X obj 108 115 send \$0-xmax;
+#X obj 19 115 send \$0-xmin;
+#X obj 200 114 send \$0-ymin;
+#X obj 291 114 send \$0-ymax;
+#X obj 74 52 unpack float float float float;
+#X connect 0 0 5 0;
+#X connect 5 0 2 0;
+#X connect 5 1 1 0;
+#X connect 5 2 3 0;
+#X connect 5 3 4 0;
+#X restore 450 67 pd set xmin xmax ymin ymax;
+#X text 530 26 xmin xmax ymin ymax;
+#X msg 416 26 273 103 473 303;
+#X obj 345 135 print HERE;
+#X obj 39 60 toxy/tot .root;
+#X obj 25 120 print RAW;
+#X connect 0 0 32 0;
+#X connect 1 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 6 1;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 5 1 1 0;
+#X connect 5 1 27 0;
+#X connect 5 1 33 0;
+#X connect 5 2 2 0;
+#X connect 6 0 8 0;
+#X connect 7 0 0 0;
+#X connect 8 0 9 0;
+#X connect 8 1 10 0;
+#X connect 9 1 12 0;
+#X connect 10 0 19 0;
+#X connect 10 1 11 0;
+#X connect 11 0 14 0;
+#X connect 11 1 17 0;
+#X connect 12 0 13 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 15 0 25 0;
+#X connect 16 0 26 0;
+#X connect 17 0 18 0;
+#X connect 18 0 15 0;
+#X connect 19 0 20 0;
+#X connect 20 0 15 0;
+#X connect 21 0 22 0;
+#X connect 23 0 24 0;
+#X connect 27 0 31 0;
+#X connect 30 0 28 0;
+#X connect 32 2 5 0;
+#X restore 177 248 pd tottest;
+#X obj 272 103 cnv 15 200 200 empty empty empty 20 12 0 14 -233017
+-66577 0;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array \$0-curve 200 float 0;
+#X coords 0 1 199 0 200 200 1;
+#X restore 272 103 graph;
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 7 0 4 0;
+#X connect 11 0 5 0;
+#X connect 12 0 11 1;
+#X connect 12 0 13 0;