aboutsummaryrefslogtreecommitdiff
path: root/puremapping
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2009-04-10 17:52:07 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2009-04-10 17:52:07 +0000
commit779b45410e8c76b2984d26823e97310c7601b38f (patch)
treec3fea5dab11bd7b6285f7764efc518657f626eb9 /puremapping
parentbf86048f7010a51cbfe50c9f417f7cf8dbb2b8c0 (diff)
initial commit of the puremapping abstraction collection
svn path=/trunk/abstractions/nusmuk/; revision=11004
Diffstat (limited to 'puremapping')
-rw-r--r--puremapping/amplitude_n-help.pd26
-rw-r--r--puremapping/amplitude_n.pd16
-rw-r--r--puremapping/correlation-help.pd75
-rw-r--r--puremapping/correlation.pd51
-rw-r--r--puremapping/curve_draw-help.pd12
-rw-r--r--puremapping/curve_draw.pd81
-rw-r--r--puremapping/curve_exp-help.pd57
-rw-r--r--puremapping/curve_exp.pd24
-rw-r--r--puremapping/curve_fade-help.pd35
-rw-r--r--puremapping/curve_fade.pd16
-rw-r--r--puremapping/curve_gaussian-help.pd60
-rw-r--r--puremapping/curve_gaussian.pd21
-rw-r--r--puremapping/curve_log-help.pd54
-rw-r--r--puremapping/curve_log.pd44
-rw-r--r--puremapping/curve_pow-help.pd71
-rw-r--r--puremapping/curve_pow.pd35
-rw-r--r--puremapping/curve_sigmoide-help.pd72
-rw-r--r--puremapping/curve_sigmoide.pd17
-rw-r--r--puremapping/debounce-help.pd33
-rw-r--r--puremapping/debounce.pd18
-rw-r--r--puremapping/delay_n-help.pd18
-rw-r--r--puremapping/delay_n.pd17
-rw-r--r--puremapping/desegment-help.pd41
-rw-r--r--puremapping/desegment.pd26
-rw-r--r--puremapping/diff_n-help.pd12
-rw-r--r--puremapping/diff_n.pd13
-rw-r--r--puremapping/disjoin-help.pd27
-rw-r--r--puremapping/disjoin.pd102
-rw-r--r--puremapping/distance-help.pd21
-rw-r--r--puremapping/distance.pd10
-rw-r--r--puremapping/distance2d-help.pd39
-rw-r--r--puremapping/distance2d.pd30
-rw-r--r--puremapping/distance_n-help.pd34
-rw-r--r--puremapping/distance_n.pd101
-rw-r--r--puremapping/downsample-help.pd16
-rw-r--r--puremapping/downsample.pd20
-rw-r--r--puremapping/env+-help.pd26
-rw-r--r--puremapping/env+.pd45
-rw-r--r--puremapping/env--help.pd18
-rw-r--r--puremapping/env-.pd43
-rw-r--r--puremapping/env-help.pd26
-rw-r--r--puremapping/env.pd16
-rw-r--r--puremapping/exemple/pm_mapping_exemple.pd222
-rw-r--r--puremapping/fir-help.pd27
-rw-r--r--puremapping/fir.pd229
-rw-r--r--puremapping/float2mapping-help.pd26
-rw-r--r--puremapping/float2mapping.pd64
-rw-r--r--puremapping/hysteresis-help.pd9
-rw-r--r--puremapping/hysteresis.pd28
-rw-r--r--puremapping/iir-help.pd35
-rw-r--r--puremapping/iir.pd47
-rw-r--r--puremapping/join-help.pd19
-rw-r--r--puremapping/join.pd34
-rw-r--r--puremapping/last_n-help.pd8
-rw-r--r--puremapping/last_n.pd25
-rw-r--r--puremapping/listto-help.pd17
-rw-r--r--puremapping/listto.pd21
-rw-r--r--puremapping/local_max-help.pd8
-rw-r--r--puremapping/local_max.pd23
-rw-r--r--puremapping/local_min-help.pd11
-rw-r--r--puremapping/local_min.pd23
-rw-r--r--puremapping/mapping2float-help.pd13
-rw-r--r--puremapping/mapping2float.pd24
-rw-r--r--puremapping/max_n-help.pd29
-rw-r--r--puremapping/max_n.pd98
-rw-r--r--puremapping/mean_n-help.pd31
-rw-r--r--puremapping/mean_n.pd80
-rw-r--r--puremapping/median_3-help.pd7
-rw-r--r--puremapping/median_3.pd34
-rw-r--r--puremapping/median_5-help.pd7
-rw-r--r--puremapping/median_5.pd72
-rw-r--r--puremapping/median_7-help.pd7
-rw-r--r--puremapping/median_7.pd120
-rw-r--r--puremapping/median_n-help.pd10
-rw-r--r--puremapping/median_n.pd257
-rw-r--r--puremapping/min_n-help.pd29
-rw-r--r--puremapping/min_n.pd98
-rw-r--r--puremapping/multi_slider-help.pd25
-rw-r--r--puremapping/multi_slider.pd26
-rw-r--r--puremapping/oscillo-help.pd10
-rw-r--r--puremapping/oscillo.pd28
-rw-r--r--puremapping/pmattractor_2d-help.pd60
-rw-r--r--puremapping/pmattractor_2d.pd52
-rw-r--r--puremapping/pmattractor_3d-help.pd66
-rw-r--r--puremapping/pmattractor_3d.pd56
-rw-r--r--puremapping/pmcloud_1d-help.pd44
-rw-r--r--puremapping/pmcloud_1d.pd107
-rw-r--r--puremapping/pmcloud_2d-help.pd63
-rw-r--r--puremapping/pmcloud_2d.pd130
-rw-r--r--puremapping/pmcloud_3d-help.pd72
-rw-r--r--puremapping/pmcloud_3d.pd146
-rw-r--r--puremapping/pmcube_3d-help.pd66
-rw-r--r--puremapping/pmcube_3d.pd56
-rw-r--r--puremapping/pmfilter-help.pd35
-rw-r--r--puremapping/pmfilter.pd40
-rw-r--r--puremapping/pmfilter_2d-help.pd35
-rw-r--r--puremapping/pmfilter_2d.pd48
-rw-r--r--puremapping/pmfilter_3d-help.pd27
-rw-r--r--puremapping/pmfilter_3d.pd48
-rw-r--r--puremapping/pmmulti_stable_2d-help.pd79
-rw-r--r--puremapping/pmmulti_stable_2d.pd116
-rw-r--r--puremapping/pmopen_string_1d-help.pd107
-rw-r--r--puremapping/pmopen_string_1d.pd94
-rw-r--r--puremapping/pmrepulsor_1d-help.pd42
-rw-r--r--puremapping/pmrepulsor_1d.pd51
-rw-r--r--puremapping/pmrepulsor_2d-help.pd60
-rw-r--r--puremapping/pmrepulsor_2d.pd52
-rw-r--r--puremapping/pmrepulsor_3d-help.pd66
-rw-r--r--puremapping/pmrepulsor_3d.pd55
-rw-r--r--puremapping/pmrigid_open_string_2d-help.pd58
-rw-r--r--puremapping/pmrigid_open_string_2d.pd144
-rw-r--r--puremapping/pmrigid_string_2d-help.pd57
-rw-r--r--puremapping/pmrigid_string_2d.pd145
-rw-r--r--puremapping/pmsquare_2d-help.pd60
-rw-r--r--puremapping/pmsquare_2d.pd52
-rw-r--r--puremapping/pmstring_1d-help.pd104
-rw-r--r--puremapping/pmstring_1d.pd113
-rw-r--r--puremapping/rec_play-help.pd32
-rw-r--r--puremapping/rec_play.pd79
-rw-r--r--puremapping/resample-help.pd26
-rw-r--r--puremapping/resample.pd18
-rw-r--r--puremapping/rnd-stat-help.pd46
-rw-r--r--puremapping/rnd-stat.pd56
-rw-r--r--puremapping/segment-help.pd35
-rw-r--r--puremapping/segment.pd78
-rw-r--r--puremapping/speedlimiter+-help.pd23
-rw-r--r--puremapping/speedlimiter+.pd19
-rw-r--r--puremapping/speedlimiter--help.pd22
-rw-r--r--puremapping/speedlimiter-.pd21
-rw-r--r--puremapping/speedlimiter-help.pd22
-rw-r--r--puremapping/speedlimiter.pd27
-rw-r--r--puremapping/split_n-help.pd20
-rw-r--r--puremapping/split_n.pd43
-rw-r--r--puremapping/stream_check-help.pd17
-rw-r--r--puremapping/stream_check.pd15
-rw-r--r--puremapping/threshold-help.pd12
-rw-r--r--puremapping/threshold.pd22
-rw-r--r--puremapping/threshold_max-help.pd18
-rw-r--r--puremapping/threshold_max.pd48
-rw-r--r--puremapping/timeroll-help.pd12
-rw-r--r--puremapping/timeroll.pd42
-rw-r--r--puremapping/tolist-help.pd41
-rw-r--r--puremapping/tolist.pd14
-rw-r--r--puremapping/track_max-help.pd32
-rw-r--r--puremapping/track_max.pd42
-rw-r--r--puremapping/track_min-help.pd32
-rw-r--r--puremapping/track_min.pd38
-rw-r--r--puremapping/upsample-help.pd19
-rw-r--r--puremapping/upsample.pd33
-rw-r--r--puremapping/variance-help.pd20
-rw-r--r--puremapping/variance.pd22
-rw-r--r--puremapping/wave-help.pd19
-rw-r--r--puremapping/wave.pd76
-rw-r--r--puremapping/wave_loop-help.pd15
-rw-r--r--puremapping/wave_loop.pd81
155 files changed, 7243 insertions, 0 deletions
diff --git a/puremapping/amplitude_n-help.pd b/puremapping/amplitude_n-help.pd
new file mode 100644
index 0000000..4b7a116
--- /dev/null
+++ b/puremapping/amplitude_n-help.pd
@@ -0,0 +1,26 @@
+#N canvas 159 120 612 569 10;
+#X floatatom 85 92 5 0 1 0 - - -;
+#X text 86 74 data;
+#X msg 92 117 0;
+#X floatatom 310 225 5 0 0 0 - - -;
+#X floatatom 382 177 5 0 0 0 - - -;
+#X text 430 175 size: n (n>=2);
+#X obj 85 172 f;
+#X text 51 32 amplitude_n return the amplitude covered by the last
+n (n>1) values;
+#X msg 120 117 1;
+#X msg 153 117 0.5;
+#X obj 296 198 amplitude_n 5;
+#X obj 85 224 clip 0 1;
+#X obj 85 251 timeroll;
+#X obj 296 251 timeroll;
+#X connect 0 0 6 0;
+#X connect 2 0 6 0;
+#X connect 4 0 10 1;
+#X connect 6 0 10 0;
+#X connect 6 0 11 0;
+#X connect 8 0 6 0;
+#X connect 9 0 6 0;
+#X connect 10 0 3 0;
+#X connect 10 0 13 0;
+#X connect 11 0 12 0;
diff --git a/puremapping/amplitude_n.pd b/puremapping/amplitude_n.pd
new file mode 100644
index 0000000..27b48c4
--- /dev/null
+++ b/puremapping/amplitude_n.pd
@@ -0,0 +1,16 @@
+#N canvas 45 191 288 291 10;
+#X obj 71 44 inlet;
+#X obj 71 178 -;
+#X obj 71 104 t f f;
+#X obj 230 44 inlet;
+#X obj 71 214 outlet;
+#X obj 71 137 max_n \$1;
+#X obj 158 137 min_n \$1;
+#X connect 0 0 2 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 2 1 6 0;
+#X connect 3 0 5 1;
+#X connect 3 0 6 1;
+#X connect 5 0 1 0;
+#X connect 6 0 1 1;
diff --git a/puremapping/correlation-help.pd b/puremapping/correlation-help.pd
new file mode 100644
index 0000000..a2cf8dc
--- /dev/null
+++ b/puremapping/correlation-help.pd
@@ -0,0 +1,75 @@
+#N canvas 344 120 833 405 10;
+#X text 267 23 correlation of 2 diferents streams;
+#X obj 49 192 resample 20;
+#X obj 49 219 t f f;
+#X obj 49 114 metro 500;
+#X obj 49 143 random 100;
+#X floatatom 49 294 5 0 0 0 - - -;
+#X obj 49 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 49 259 correlation 20;
+#X obj 229 192 resample 20;
+#X obj 229 219 t f f;
+#X obj 229 113 metro 500;
+#X obj 229 141 random 100;
+#X floatatom 229 295 5 0 0 0 - - -;
+#X obj 229 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 229 260 correlation 20;
+#X obj 380 142 random 100;
+#X floatatom 380 295 5 0 0 0 - - -;
+#X obj 380 88 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 380 260 correlation 20;
+#X obj 475 142 random 100;
+#X obj 380 113 metro 50;
+#X obj 595 187 resample 20;
+#X obj 595 211 t f f;
+#X obj 595 112 metro 500;
+#X obj 595 137 random 100;
+#X obj 595 161 / 100;
+#X floatatom 627 326 5 0 0 0 - - -;
+#X obj 595 87 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 627 301 correlation 20;
+#X obj 720 254 * -0.3;
+#X obj 720 277 + 2;
+#X obj 49 167 / 100;
+#X obj 229 165 / 100;
+#X obj 380 166 / 100;
+#X obj 475 166 / 100;
+#X text 281 44 0 = no correlation \, 1 ou -1 = high correlation;
+#X connect 1 0 2 0;
+#X connect 2 0 7 0;
+#X connect 2 1 7 1;
+#X connect 3 0 4 0;
+#X connect 4 0 31 0;
+#X connect 6 0 3 0;
+#X connect 7 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 14 1;
+#X connect 9 1 14 0;
+#X connect 10 0 11 0;
+#X connect 11 0 32 0;
+#X connect 13 0 10 0;
+#X connect 14 0 12 0;
+#X connect 15 0 33 0;
+#X connect 17 0 20 0;
+#X connect 18 0 16 0;
+#X connect 19 0 34 0;
+#X connect 20 0 15 0;
+#X connect 20 0 19 0;
+#X connect 21 0 22 0;
+#X connect 22 0 29 0;
+#X connect 22 1 28 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 25 0 21 0;
+#X connect 27 0 23 0;
+#X connect 28 0 26 0;
+#X connect 29 0 30 0;
+#X connect 30 0 28 1;
+#X connect 31 0 1 0;
+#X connect 32 0 8 0;
+#X connect 33 0 18 0;
+#X connect 34 0 18 1;
diff --git a/puremapping/correlation.pd b/puremapping/correlation.pd
new file mode 100644
index 0000000..2c94025
--- /dev/null
+++ b/puremapping/correlation.pd
@@ -0,0 +1,51 @@
+#N canvas 0 0 685 695 10;
+#X obj 28 22 inlet;
+#X obj 28 439 outlet;
+#X obj 284 24 inlet;
+#X obj 28 223 *;
+#X obj 28 398 /;
+#X obj 30 178 t f f f;
+#X obj 52 201 *;
+#X obj 377 225 *;
+#X obj 377 199 t f f;
+#X obj 221 281 *;
+#X obj 221 304 sqrt;
+#X obj 29 259 mean_n \$1;
+#X obj 222 255 mean_n \$1;
+#X obj 377 249 mean_n \$1;
+#X obj 299 119 mean_n \$1;
+#X obj 269 96 t f f;
+#X obj 270 144 -;
+#X obj 57 122 mean_n \$1;
+#X obj 27 99 t f f;
+#X obj 28 147 -;
+#X obj 270 67 f;
+#X obj 29 49 t f b;
+#X connect 0 0 21 0;
+#X connect 2 0 20 1;
+#X connect 3 0 11 0;
+#X connect 4 0 1 0;
+#X connect 5 0 3 0;
+#X connect 5 1 6 0;
+#X connect 5 2 6 1;
+#X connect 6 0 12 0;
+#X connect 7 0 13 0;
+#X connect 8 0 7 0;
+#X connect 8 1 7 1;
+#X connect 9 0 10 0;
+#X connect 10 0 4 1;
+#X connect 11 0 4 0;
+#X connect 12 0 9 0;
+#X connect 13 0 9 1;
+#X connect 14 0 16 1;
+#X connect 15 0 16 0;
+#X connect 15 1 14 0;
+#X connect 16 0 8 0;
+#X connect 16 0 3 1;
+#X connect 17 0 19 1;
+#X connect 18 0 19 0;
+#X connect 18 1 17 0;
+#X connect 19 0 5 0;
+#X connect 20 0 15 0;
+#X connect 21 0 18 0;
+#X connect 21 1 20 0;
diff --git a/puremapping/curve_draw-help.pd b/puremapping/curve_draw-help.pd
new file mode 100644
index 0000000..863a370
--- /dev/null
+++ b/puremapping/curve_draw-help.pd
@@ -0,0 +1,12 @@
+#N canvas 634 355 394 367 10;
+#X floatatom 34 126 5 -1 1 0 - - -;
+#X floatatom 34 280 9 0 0 0 - - -;
+#X obj 34 144 curve_draw test 100;
+#X text 125 15 draw the in / out relation;
+#X text 31 51 arg 1 : name of the file to save the curve;
+#X text 31 64 arg 2 : size of the table;
+#X text 85 125 input (0 to 1);
+#X text 107 277 out (0 to 1);
+#X text 50 320 The mapping curve is symetric. i.e f(-x)=-f(x);
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/curve_draw.pd b/puremapping/curve_draw.pd
new file mode 100644
index 0000000..e012867
--- /dev/null
+++ b/puremapping/curve_draw.pd
@@ -0,0 +1,81 @@
+#N canvas 464 94 635 480 10;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-array 100 float 1;
+#A 0 -0.999998 -0.959998 -0.939998 -0.919998 -0.879999 -0.859999 -0.839999
+-0.799999 -0.779999 -0.759999 -0.739999 -0.679999 -0.639999 -0.559999
+-0.459999 -0.399999 -0.279999 -0.16 -0.0799997 1.2666e-07 0.06 0.16
+0.24 0.28 0.32 0.339999 0.379999 0.379999 0.399999 0.399999 0.399999
+0.399999 0.359999 0.339999 0.3 0.26 0.22 0.2 0.16 0.14 0.0999999 0.06
+0.0400001 1.3411e-07 -0.0199998 -0.0399998 -0.0599998 -0.0699997 -0.0799997
+-0.0999997 -0.12 -0.14 -0.15 -0.16 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18
+-0.18 -0.18 -0.18 -0.16 -0.15 -0.14 -0.12 -0.11 -0.0999997 -0.0899997
+-0.0799997 -0.0599998 -0.0199998 -0.00999985 1.2666e-07 0.0400001 0.06
+0.08 0.12 0.14 0.22 0.24 0.28 0.359999 0.419999 0.459999 0.499999 0.579999
+0.619999 0.659999 0.719999 0.779999 0.819999 0.839999 0.879999 0.879999
+0.919999 0.939999 0.959998 0.999998;
+#X coords 0 1 99 -1 100 100 1;
+#X restore 200 130 graph;
+#X obj 303 130 bng 15 250 50 0 empty empty empty 17 7 0 10 -258113
+-1 -1;
+#X text 319 129 save;
+#X obj 303 148 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X text 318 149 load;
+#X obj 368 50 loadbang;
+#X obj 148 306 tabread \$0-array;
+#X obj 387 271 s \$0-array;
+#X msg 387 250 resize \$1;
+#X obj 387 96 \$2;
+#X msg 387 177 100;
+#X obj 109 57 inlet;
+#X obj 109 257 *;
+#X obj 387 218 f;
+#X obj 109 460 outlet;
+#X obj 148 327 + 1;
+#X obj 148 347 / 2;
+#X obj 109 279 moses 0;
+#X obj 109 366 tabread \$0-array;
+#X obj 109 387 + 1;
+#X obj 109 407 / 2;
+#X obj 109 305 * -1;
+#X obj 109 437 * -1;
+#X obj 357 336 symbol \$1;
+#X obj 426 180 min 100;
+#X obj 303 446 s \$0-array;
+#X obj 368 73 t b b b;
+#X obj 387 123 i;
+#X obj 387 157 moses 0.5;
+#X msg 303 419 read \$1.txt;
+#X obj 303 400 symbol \$1;
+#X msg 357 358 write \$1.txt;
+#X connect 1 0 23 0;
+#X connect 3 0 30 0;
+#X connect 5 0 26 0;
+#X connect 6 0 15 0;
+#X connect 8 0 7 0;
+#X connect 9 0 27 0;
+#X connect 10 0 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 17 0;
+#X connect 13 0 8 0;
+#X connect 13 0 12 1;
+#X connect 15 0 16 0;
+#X connect 16 0 14 0;
+#X connect 17 0 21 0;
+#X connect 17 1 6 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 20 0 22 0;
+#X connect 21 0 18 0;
+#X connect 22 0 14 0;
+#X connect 23 0 31 0;
+#X connect 24 0 13 0;
+#X connect 26 0 3 0;
+#X connect 26 1 9 0;
+#X connect 27 0 28 0;
+#X connect 28 0 10 0;
+#X connect 28 1 24 0;
+#X connect 29 0 25 0;
+#X connect 30 0 29 0;
+#X connect 31 0 25 0;
+#X coords 0 -1 1 1 150 130 1 200 100;
diff --git a/puremapping/curve_exp-help.pd b/puremapping/curve_exp-help.pd
new file mode 100644
index 0000000..c9c6820
--- /dev/null
+++ b/puremapping/curve_exp-help.pd
@@ -0,0 +1,57 @@
+#N canvas 567 104 476 357 10;
+#X obj 5 2 cnv 15 450 20 empty empty curve_exp 2 11 1 18 -233017 -66577
+0;
+#X msg 422 3 pddp;
+#X text 27 300 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X text 244 314 released under the GNU GPL;
+#X text 98 271 For more info:;
+#X obj 202 269 pddp/pddplink ../all_about_curve_mapping.pd -text all_about_curve_mapping;
+#X floatatom 25 123 8 0 0 0 - - -;
+#X floatatom 25 184 8 0 0 0 - - -;
+#X obj 28 201 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -262144
+-1 -1 0 1;
+#X obj 28 103 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -261681
+-1 -1 0 1;
+#N canvas 0 22 450 300 graph1 0;
+#X array curve_exp 100 float 0;
+#X coords 0 1 99 0 100 100 1;
+#X restore 321 111 graph;
+#N canvas 266 69 331 321 draw_array 0;
+#X msg 57 52 bang;
+#X obj 57 73 until;
+#X text 88 52 start;
+#X obj 57 95 f;
+#X obj 86 95 + 1;
+#X obj 132 97 sel 0;
+#X obj 86 117 mod 100;
+#X obj 57 150 t f f;
+#X obj 94 177 s array_index;
+#X obj 170 262 r array_index;
+#X obj 57 13 loadbang;
+#X obj 57 207 / 100;
+#X text 99 207 mapping output range: 0 to 1;
+#X obj 56 283 tabwrite curve_exp;
+#X obj 56 233 curve_exp;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 7 0;
+#X connect 4 0 6 0;
+#X connect 5 0 1 1;
+#X connect 6 0 3 1;
+#X connect 6 0 5 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 9 0 13 1;
+#X connect 10 0 0 0;
+#X connect 11 0 14 0;
+#X connect 14 0 13 0;
+#X restore 321 78 pd draw_array;
+#X text 17 39 This object maps the input range to a exponential curve
+\, the inverse of a logarithmic curve.;
+#X obj 25 153 curve_exp;
+#X connect 6 0 13 0;
+#X connect 7 0 8 0;
+#X connect 9 0 6 0;
+#X connect 13 0 7 0;
diff --git a/puremapping/curve_exp.pd b/puremapping/curve_exp.pd
new file mode 100644
index 0000000..a15e6b5
--- /dev/null
+++ b/puremapping/curve_exp.pd
@@ -0,0 +1,24 @@
+#N canvas 225 325 511 337 10;
+#X obj 37 25 inlet;
+#X obj 37 262 outlet;
+#X obj 38 63 moses 0;
+#X obj 22 189 * -1;
+#X obj 22 168 dbtorms;
+#X obj 22 142 * 100;
+#X obj 83 142 * 100;
+#X obj 83 169 dbtorms;
+#X text 85 25 input range: -1 to 1;
+#X text 93 262 output range: -1 to 1;
+#X text 248 296 released under the GNU GPL;
+#X text 31 282 (C) Copyright 2006 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X obj 22 116 * -1;
+#X connect 0 0 2 0;
+#X connect 2 0 12 0;
+#X connect 2 1 6 0;
+#X connect 3 0 1 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 0;
+#X connect 12 0 5 0;
diff --git a/puremapping/curve_fade-help.pd b/puremapping/curve_fade-help.pd
new file mode 100644
index 0000000..1b5184e
--- /dev/null
+++ b/puremapping/curve_fade-help.pd
@@ -0,0 +1,35 @@
+#N canvas 57 422 778 503 10;
+#X obj 18 168 line;
+#X obj 18 262 timeroll;
+#X obj 18 189 resample 20;
+#X text 377 154 utilisation example :;
+#X obj 376 180 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 376 222 line;
+#X obj 376 308 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 545 303 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X text 439 304 better than :;
+#X text 332 283 smooth fade in and out;
+#X text 144 30 It perform a non-linearity in order to allow the continuity
+of the diferenciate of the signal (assuming the input signal is a ramp
+from 0 to 1). The shape of this non-linearity is a 3d order polygone
+;
+#X obj 18 210 curve_fade;
+#X obj 376 246 curve_fade;
+#X msg 18 144 0 \, 1 5000;
+#X msg 376 199 \$1 3000;
+#X text 144 92 This object is usefull when natural fade in or fade
+out is neaded. (same result can be acheived with the line3 external)
+;
+#X text 148 10 This object input and output range is 0-1;
+#X connect 0 0 2 0;
+#X connect 2 0 11 0;
+#X connect 4 0 14 0;
+#X connect 5 0 7 0;
+#X connect 5 0 12 0;
+#X connect 11 0 1 0;
+#X connect 12 0 6 0;
+#X connect 13 0 0 0;
+#X connect 14 0 5 0;
diff --git a/puremapping/curve_fade.pd b/puremapping/curve_fade.pd
new file mode 100644
index 0000000..e5fc704
--- /dev/null
+++ b/puremapping/curve_fade.pd
@@ -0,0 +1,16 @@
+#N canvas 0 0 450 300 10;
+#X obj 32 14 inlet;
+#X obj 32 177 outlet;
+#X obj 32 40 t f f f;
+#X obj 32 66 *;
+#X obj 32 135 *;
+#X obj 76 66 * -2;
+#X obj 76 93 + 3;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 1 3 1;
+#X connect 2 2 5 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 1;
diff --git a/puremapping/curve_gaussian-help.pd b/puremapping/curve_gaussian-help.pd
new file mode 100644
index 0000000..d5aaf3a
--- /dev/null
+++ b/puremapping/curve_gaussian-help.pd
@@ -0,0 +1,60 @@
+#N canvas 127 78 484 351 10;
+#X obj 5 2 cnv 15 450 20 empty empty curve_log 2 11 1 18 -233017 -66577
+0;
+#X msg 422 3 pddp;
+#X floatatom 25 123 8 0 0 0 - - -;
+#X floatatom 25 214 8 0 0 0 - - -;
+#X obj 28 231 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -262144
+-1 -1 170 1;
+#X obj 28 103 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -261681
+-1 -1 19900 1;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array curve_gaussian 100 float 0;
+#X coords 0 1 99 0 100 100 1;
+#X restore 321 111 graph;
+#N canvas 635 101 347 337 draw_array 0;
+#X msg 57 52 bang;
+#X obj 57 73 until;
+#X text 88 52 start;
+#X obj 57 95 f;
+#X obj 86 95 + 1;
+#X obj 86 117 mod 100;
+#X obj 57 150 t f f;
+#X obj 94 177 s array_index;
+#X obj 170 262 r array_index;
+#X obj 57 13 loadbang;
+#X obj 132 97 select 0;
+#X obj 57 217 / 100;
+#X text 100 217 mapping output range: 0 to 1;
+#X obj 56 283 tabwrite curve_gaussian;
+#X obj 56 244 curve_gaussian 0 0.2;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 1;
+#X connect 5 0 10 0;
+#X connect 6 0 11 0;
+#X connect 6 1 7 0;
+#X connect 8 0 13 1;
+#X connect 9 0 0 0;
+#X connect 10 0 1 1;
+#X connect 11 0 14 0;
+#X connect 14 0 13 0;
+#X restore 321 78 pd draw_array;
+#X text 17 40 This object maps the input range to a logarithmic curve.
+Humans perceive pitch and amplitude on a logarithmic scale.;
+#X text 11 294 (C) Copyright 2006-2007 Free Software Foundation;
+#X text 234 309 released under the GNU GPLv3 or later;
+#X obj 25 183 curve_gaussian;
+#X floatatom 72 143 5 0 0 0 - - -;
+#X floatatom 120 166 5 0 0 0 - - -;
+#X text 114 144 center;
+#X text 163 166 standart deviation;
+#X connect 2 0 11 0;
+#X connect 3 0 4 0;
+#X connect 5 0 2 0;
+#X connect 11 0 3 0;
+#X connect 12 0 11 1;
+#X connect 13 0 11 2;
diff --git a/puremapping/curve_gaussian.pd b/puremapping/curve_gaussian.pd
new file mode 100644
index 0000000..1c51f42
--- /dev/null
+++ b/puremapping/curve_gaussian.pd
@@ -0,0 +1,21 @@
+#N canvas 0 0 450 300 10;
+#X obj 65 26 inlet;
+#X obj 277 22 inlet;
+#X obj 65 218 * -1;
+#X obj 65 244 exp;
+#X obj 66 124 *;
+#X obj 66 91 t f f;
+#X obj 67 271 outlet;
+#X obj 65 187 / \$2;
+#X obj 66 63 - \$1;
+#X obj 142 20 inlet;
+#X connect 0 0 8 0;
+#X connect 1 0 7 1;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 5 1 4 1;
+#X connect 7 0 2 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 1;
diff --git a/puremapping/curve_log-help.pd b/puremapping/curve_log-help.pd
new file mode 100644
index 0000000..2206c30
--- /dev/null
+++ b/puremapping/curve_log-help.pd
@@ -0,0 +1,54 @@
+#N canvas 127 78 484 351 10;
+#X obj 5 2 cnv 15 450 20 empty empty curve_log 2 11 1 18 -233017
+-66577 0;
+#X msg 422 3 pddp;
+#X floatatom 25 123 8 0 0 0 - - -;
+#X floatatom 25 184 8 0 0 0 - - -;
+#X obj 28 201 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -262144
+-1 -1 17512 1;
+#X obj 28 103 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -261681
+-1 -1 5000 1;
+#N canvas 0 22 450 300 graph1 0;
+#X array curve_log 100 float 0;
+#X coords 0 1 99 0 100 100 1;
+#X restore 321 111 graph;
+#N canvas 266 69 347 337 draw_array 0;
+#X msg 57 52 bang;
+#X obj 57 73 until;
+#X text 88 52 start;
+#X obj 57 95 f;
+#X obj 86 95 + 1;
+#X obj 86 117 mod 100;
+#X obj 57 150 t f f;
+#X obj 94 177 s array_index;
+#X obj 170 262 r array_index;
+#X obj 57 13 loadbang;
+#X obj 56 283 tabwrite curve_log;
+#X obj 132 97 select 0;
+#X obj 57 217 / 100;
+#X text 100 217 mapping output range: 0 to 1;
+#X obj 56 243 curve_log;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 1;
+#X connect 5 0 11 0;
+#X connect 6 0 12 0;
+#X connect 6 1 7 0;
+#X connect 8 0 10 1;
+#X connect 9 0 0 0;
+#X connect 11 0 1 1;
+#X connect 12 0 14 0;
+#X connect 14 0 10 0;
+#X restore 321 78 pd draw_array;
+#X text 17 40 This object maps the input range to a logarithmic curve.
+Humans perceive pitch and amplitude on a logarithmic scale.;
+#X obj 25 153 curve_log;
+#X text 11 294 (C) Copyright 2006-2007 Free Software Foundation;
+#X text 234 309 released under the GNU GPLv3 or later;
+#X connect 2 0 9 0;
+#X connect 3 0 4 0;
+#X connect 5 0 2 0;
+#X connect 9 0 3 0;
diff --git a/puremapping/curve_log.pd b/puremapping/curve_log.pd
new file mode 100644
index 0000000..8c415fb
--- /dev/null
+++ b/puremapping/curve_log.pd
@@ -0,0 +1,44 @@
+#N canvas 603 22 443 381 10;
+#X obj 31 8 inlet;
+#X obj 216 110 moses 0;
+#X obj 30 124 abs;
+#X text 79 8 input range: -1 to 1;
+#X text 170 282 output range: -1 to 1;
+#X text 8 310 (C) Copyright 2006-2007 Free Software Foundation;
+#X text 199 327 released under the GNU GPLv3 or later;
+#X obj 87 168 log;
+#X obj 122 149 log;
+#X msg 121 125 10;
+#X obj 122 169 * 2;
+#X obj 87 190 +;
+#X obj 87 214 /;
+#X obj 30 145 moses 0.01;
+#X obj 31 30 trigger float float;
+#X obj 121 104 loadbang;
+#X obj 87 255 *;
+#X obj 87 281 outlet;
+#X obj 255 131 bang;
+#X obj 216 131 bang;
+#X msg 255 151 1;
+#X msg 216 151 -1;
+#X connect 0 0 14 0;
+#X connect 1 0 19 0;
+#X connect 1 1 18 0;
+#X connect 2 0 13 0;
+#X connect 7 0 11 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 11 1;
+#X connect 10 0 12 1;
+#X connect 11 0 12 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 0;
+#X connect 13 1 7 0;
+#X connect 14 0 2 0;
+#X connect 14 1 1 0;
+#X connect 15 0 9 0;
+#X connect 16 0 17 0;
+#X connect 18 0 20 0;
+#X connect 19 0 21 0;
+#X connect 20 0 16 1;
+#X connect 21 0 16 1;
diff --git a/puremapping/curve_pow-help.pd b/puremapping/curve_pow-help.pd
new file mode 100644
index 0000000..acd02c6
--- /dev/null
+++ b/puremapping/curve_pow-help.pd
@@ -0,0 +1,71 @@
+#N canvas 87 98 472 431 10;
+#X obj 5 2 cnv 15 450 20 empty empty curve 2 11 1 18 -233017 -66577
+0;
+#X msg 422 3 pddp;
+#X text 27 390 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X text 244 404 released under the GNU GPL;
+#X text 158 361 For more info:;
+#X floatatom 25 157 8 0 0 0 - - -;
+#X floatatom 25 228 8 0 0 0 - - -;
+#X obj 28 245 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -262144
+-1 -1 12611 1;
+#X obj 28 137 hsl 200 15 0 1 0 0 empty empty empty 22 8 1 12 -261681
+-1 -1 10200 1;
+#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 254 92 graph;
+#N canvas 786 75 427 417 draw_array 0;
+#X msg 54 82 bang;
+#X obj 54 103 until;
+#X text 85 82 start;
+#X obj 54 125 f;
+#X obj 83 125 + 1;
+#X obj 54 43 loadbang;
+#X obj 54 180 trigger float float;
+#X obj 127 127 select 0;
+#X obj 53 313 tabwrite \$0-curve;
+#X obj 138 9 inlet;
+#X obj 153 32 send \$0-to-numbox;
+#X obj 139 53 trigger bang float;
+#X obj 83 147 mod 200;
+#X obj 54 257 / 200;
+#X text 96 257 mapping output range: 0 to 1;
+#X obj 54 283 curve_pow;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 12 0;
+#X connect 5 0 0 0;
+#X connect 6 0 13 0;
+#X connect 6 1 8 1;
+#X connect 7 0 1 1;
+#X connect 9 0 10 0;
+#X connect 9 0 11 0;
+#X connect 11 0 0 0;
+#X connect 11 1 15 1;
+#X connect 12 0 3 1;
+#X connect 12 0 7 0;
+#X connect 13 0 15 0;
+#X connect 15 0 8 0;
+#X restore 127 207 pd draw_array;
+#X text 286 301 related objects:;
+#X obj 342 320 curve_power;
+#X obj 259 338 curve_exp;
+#X obj 342 338 curve_log;
+#X obj 117 166 hsl 128 15 -1 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 6000 0;
+#X floatatom 192 184 7 0 0 0 - #0-to-numbox -;
+#X obj 259 319 sinusoid;
+#X obj 262 359 pddp/open mapping-about;
+#X text 17 39 This object generates a curve based on a -1 to 1 argument
+range.;
+#X obj 25 207 curve_pow;
+#X connect 5 0 20 0;
+#X connect 6 0 7 0;
+#X connect 8 0 5 0;
+#X connect 15 0 10 0;
+#X connect 15 0 20 1;
+#X connect 20 0 6 0;
diff --git a/puremapping/curve_pow.pd b/puremapping/curve_pow.pd
new file mode 100644
index 0000000..fc9c443
--- /dev/null
+++ b/puremapping/curve_pow.pd
@@ -0,0 +1,35 @@
+#N canvas 458 228 472 434 10;
+#X obj 106 325 pow 1;
+#X obj 62 10 inlet;
+#X obj 257 9 inlet;
+#X obj 106 405 outlet;
+#X obj 271 243 exp;
+#X msg 287 177 2;
+#X obj 287 198 log;
+#X obj 271 221 *;
+#X obj 62 248 moses 0;
+#X obj 62 283 * -1;
+#X obj 62 325 pow 1;
+#X obj 62 352 * -1;
+#X obj 265 37 loadbang;
+#X obj 257 155 t f b;
+#X obj 257 119 * 10;
+#X obj 257 66 \$1;
+#X connect 0 0 3 0;
+#X connect 1 0 8 0;
+#X connect 2 0 15 0;
+#X connect 4 0 0 1;
+#X connect 4 0 10 1;
+#X connect 5 0 6 0;
+#X connect 6 0 7 1;
+#X connect 7 0 4 0;
+#X connect 8 0 9 0;
+#X connect 8 1 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 3 0;
+#X connect 12 0 15 0;
+#X connect 13 0 7 0;
+#X connect 13 1 5 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
diff --git a/puremapping/curve_sigmoide-help.pd b/puremapping/curve_sigmoide-help.pd
new file mode 100644
index 0000000..852ed77
--- /dev/null
+++ b/puremapping/curve_sigmoide-help.pd
@@ -0,0 +1,72 @@
+#N canvas 286 139 632 475 10;
+#X floatatom 82 95 5 0 0 0 - - -;
+#X floatatom 82 167 5 0 0 0 - - -;
+#X floatatom 133 95 5 0 0 0 - - -;
+#X floatatom 262 118 5 0 0 0 - - -;
+#X obj 262 142 t b f;
+#X obj 262 47 loadbang;
+#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;
+#X connect 3 0 4 0;
+#X connect 4 0 3 1;
+#X connect 4 0 5 1;
+#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 262 264 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 262 174 pd generate list ___________;
+#X obj 262 73 delay 1000;
+#X obj 262 197 * 2;
+#X obj 262 219 - 1;
+#X obj 262 294 multi_slider 100;
+#X msg 262 96 0.5;
+#X obj 82 125 curve_sigmoide;
+#X obj 262 241 curve_sigmoide;
+#X connect 0 0 13 0;
+#X connect 2 0 13 1;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 4 1 14 1;
+#X connect 5 0 8 0;
+#X connect 6 0 11 0;
+#X connect 7 0 9 0;
+#X connect 7 1 6 1;
+#X connect 8 0 12 0;
+#X connect 9 0 10 0;
+#X connect 10 0 14 0;
+#X connect 12 0 3 0;
+#X connect 13 0 1 0;
+#X connect 14 0 6 0;
diff --git a/puremapping/curve_sigmoide.pd b/puremapping/curve_sigmoide.pd
new file mode 100644
index 0000000..d1569f8
--- /dev/null
+++ b/puremapping/curve_sigmoide.pd
@@ -0,0 +1,17 @@
+#N canvas 0 0 450 300 10;
+#X obj 37 19 inlet;
+#X obj 37 241 outlet;
+#X obj 37 168 expr ( exp($f1)) / ( 1 + exp($f1));
+#X obj 37 138 * 1;
+#X obj 278 18 inlet;
+#X obj 274 103 /;
+#X obj 274 54 t b f;
+#X msg 274 77 2;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 6 0;
+#X connect 5 0 3 1;
+#X connect 6 0 7 0;
+#X connect 6 1 5 1;
+#X connect 7 0 5 0;
diff --git a/puremapping/debounce-help.pd b/puremapping/debounce-help.pd
new file mode 100644
index 0000000..ed6c2ab
--- /dev/null
+++ b/puremapping/debounce-help.pd
@@ -0,0 +1,33 @@
+#N canvas 429 170 470 540 10;
+#X obj 2 2 cnv 15 450 20 empty empty debounce 2 11 1 18 -233017 -66577
+0;
+#X msg 418 3 pddp;
+#X text 234 467 released under the GNU GPL;
+#X text 18 499 $Author: nusmuk $;
+#X text 17 453 (C) Copyright 2005 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X obj 122 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
+-1;
+#X obj 123 102 t b b;
+#X obj 123 142 delay;
+#X obj 63 121 bang;
+#X msg 85 78 stop;
+#X obj 123 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 123 228 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 123 198 debounce 2000;
+#X obj 152 122 random 1000;
+#X text 17 486 $Revision: 1.2 $$Date: 2006-11-10 15:43:46 $;
+#X text 26 388 Every input is converted to a "bang".;
+#X text 26 366 Debounce remove bang is they are to fast.;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 1 13 0;
+#X connect 7 0 8 0;
+#X connect 7 0 10 0;
+#X connect 8 0 6 0;
+#X connect 9 0 7 0;
+#X connect 10 0 12 0;
+#X connect 12 0 11 0;
+#X connect 13 0 7 1;
diff --git a/puremapping/debounce.pd b/puremapping/debounce.pd
new file mode 100644
index 0000000..896a637
--- /dev/null
+++ b/puremapping/debounce.pd
@@ -0,0 +1,18 @@
+#N canvas 439 311 705 322 10;
+#X obj 27 43 inlet;
+#X obj 27 264 outlet;
+#X obj 27 82 spigot 1;
+#X msg 160 158 0;
+#X msg 161 208 1;
+#X obj 161 183 delay \$1;
+#X obj 213 43 inlet;
+#X obj 27 119 t a b b;
+#X connect 0 0 2 0;
+#X connect 2 0 7 0;
+#X connect 3 0 2 1;
+#X connect 4 0 2 1;
+#X connect 5 0 4 0;
+#X connect 6 0 5 1;
+#X connect 7 0 1 0;
+#X connect 7 1 5 0;
+#X connect 7 2 3 0;
diff --git a/puremapping/delay_n-help.pd b/puremapping/delay_n-help.pd
new file mode 100644
index 0000000..b2b7ad0
--- /dev/null
+++ b/puremapping/delay_n-help.pd
@@ -0,0 +1,18 @@
+#N canvas 811 284 661 510 10;
+#X obj 40 36 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 8200 1;
+#X obj 268 221 pipe 500;
+#X obj 138 260 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 8200 1;
+#X obj 268 263 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 8200 1;
+#X obj 40 176 resample 25;
+#X obj 40 262 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 8200 1;
+#X obj 138 219 delay_n 20;
+#X connect 0 0 4 0;
+#X connect 1 0 3 0;
+#X connect 4 0 1 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 6 0 2 0;
diff --git a/puremapping/delay_n.pd b/puremapping/delay_n.pd
new file mode 100644
index 0000000..549264b
--- /dev/null
+++ b/puremapping/delay_n.pd
@@ -0,0 +1,17 @@
+#N canvas 212 243 661 510 10;
+#X obj 160 88 t f b;
+#X obj 159 50 inlet;
+#X obj 49 52 inlet;
+#X obj 92 189 outlet;
+#X obj 49 131 list split \$1;
+#X obj 48 86 list;
+#X obj 92 156 route float;
+#X connect 0 0 4 1;
+#X connect 0 1 5 1;
+#X connect 1 0 0 0;
+#X connect 2 0 5 0;
+#X connect 4 0 5 1;
+#X connect 4 1 6 0;
+#X connect 4 2 5 1;
+#X connect 5 0 4 0;
+#X connect 6 0 3 0;
diff --git a/puremapping/desegment-help.pd b/puremapping/desegment-help.pd
new file mode 100644
index 0000000..dbc36aa
--- /dev/null
+++ b/puremapping/desegment-help.pd
@@ -0,0 +1,41 @@
+#N canvas 490 146 676 322 10;
+#X obj 66 28 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 12700 1;
+#X obj 199 28 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 12700 1;
+#X obj 332 28 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 12700 1;
+#X obj 465 28 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 10800 1;
+#X obj 62 248 hsl 527 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 40987 1;
+#X msg 331 138 2;
+#X msg 392 137 6;
+#X msg 361 137 4;
+#X floatatom 74 50 5 0 0 0 - - -;
+#X floatatom 210 50 5 0 0 0 - - -;
+#X floatatom 339 49 5 0 0 0 - - -;
+#X floatatom 472 50 5 0 0 0 - - -;
+#X floatatom 46 271 5 0 0 0 - - -;
+#X obj 242 166 desegment 4;
+#X msg 56 76 0 \$1;
+#X msg 190 71 1 \$1;
+#X msg 331 70 2 \$1;
+#X msg 462 69 3 \$1;
+#X connect 0 0 8 0;
+#X connect 0 0 14 0;
+#X connect 1 0 9 0;
+#X connect 1 0 15 0;
+#X connect 2 0 10 0;
+#X connect 2 0 16 0;
+#X connect 3 0 11 0;
+#X connect 3 0 17 0;
+#X connect 4 0 12 0;
+#X connect 5 0 13 1;
+#X connect 6 0 13 1;
+#X connect 7 0 13 1;
+#X connect 13 0 4 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 0;
+#X connect 17 0 13 0;
diff --git a/puremapping/desegment.pd b/puremapping/desegment.pd
new file mode 100644
index 0000000..095e5fd
--- /dev/null
+++ b/puremapping/desegment.pd
@@ -0,0 +1,26 @@
+#N canvas 98 301 426 336 10;
+#X obj 21 15 inlet;
+#X obj 126 279 outlet;
+#X obj 198 15 inlet;
+#X obj 231 44 loadbang;
+#X obj 21 113 unpack float float;
+#X obj 126 184 +;
+#X obj 126 224 /;
+#X obj 198 83 \$1;
+#X obj 198 105 i;
+#X obj 198 129 moses 1;
+#X obj 198 176 f;
+#X msg 198 152 1;
+#X connect 0 0 4 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 4 1 5 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 0;
+#X connect 9 1 10 0;
+#X connect 10 0 6 1;
+#X connect 11 0 10 0;
diff --git a/puremapping/diff_n-help.pd b/puremapping/diff_n-help.pd
new file mode 100644
index 0000000..af1ebe8
--- /dev/null
+++ b/puremapping/diff_n-help.pd
@@ -0,0 +1,12 @@
+#N canvas 615 164 468 358 10;
+#X obj 63 47 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X floatatom 63 301 5 0 0 0 - - -;
+#X text 145 64 diferentiate of the input;
+#X obj 63 218 resample 30;
+#X obj 63 265 diff_n 5;
+#X obj 5 2 cnv 15 450 20 empty empty diff_n 2 11 1 18 -233017 -66577
+0;
+#X connect 0 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
diff --git a/puremapping/diff_n.pd b/puremapping/diff_n.pd
new file mode 100644
index 0000000..c3fd06f
--- /dev/null
+++ b/puremapping/diff_n.pd
@@ -0,0 +1,13 @@
+#N canvas 246 155 294 362 10;
+#X obj 59 49 inlet;
+#X obj 59 184 outlet;
+#X obj 175 93 inlet;
+#X obj 59 93 t f f;
+#X obj 59 152 -;
+#X obj 89 119 delay_n \$1;
+#X connect 0 0 3 0;
+#X connect 2 0 5 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 1;
diff --git a/puremapping/disjoin-help.pd b/puremapping/disjoin-help.pd
new file mode 100644
index 0000000..77eeb83
--- /dev/null
+++ b/puremapping/disjoin-help.pd
@@ -0,0 +1,27 @@
+#N canvas 221 44 440 577 10;
+#X obj 62 58 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 62 219 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 12700 1;
+#X obj 148 219 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 900 1;
+#X floatatom 69 356 5 0 0 0 - - -;
+#X floatatom 154 358 5 0 0 0 - - -;
+#X floatatom 88 169 5 0 0 0 - - -;
+#X obj 62 430 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 900 1;
+#X floatatom 93 434 5 0 0 0 - - -;
+#X text 16 16 split a range into two. The input and output ranges are
+always 0-to-1.;
+#X obj 62 196 disjoin 0.2;
+#X obj 62 388 join 0.2;
+#X connect 0 0 5 0;
+#X connect 0 0 9 0;
+#X connect 1 0 3 0;
+#X connect 1 0 10 0;
+#X connect 2 0 4 0;
+#X connect 2 0 10 1;
+#X connect 9 0 1 0;
+#X connect 9 1 2 0;
+#X connect 10 0 6 0;
+#X connect 10 0 7 0;
diff --git a/puremapping/disjoin.pd b/puremapping/disjoin.pd
new file mode 100644
index 0000000..ea15fc5
--- /dev/null
+++ b/puremapping/disjoin.pd
@@ -0,0 +1,102 @@
+#N canvas 564 172 579 438 10;
+#X obj 176 97 inlet;
+#X obj 166 371 outlet;
+#X obj 217 370 outlet;
+#X obj 217 345 / 1;
+#X msg 391 262 1;
+#X obj 276 8 inlet;
+#X obj 289 27 loadbang;
+#X obj 391 286 -;
+#X obj 217 323 -;
+#X obj 166 322 /;
+#X obj 176 160 moses;
+#X obj 391 240 trigger bang float;
+#X text 280 146 default to splitting down the middle (0.5);
+#X obj 276 265 float;
+#X obj 76 265 float;
+#N canvas 0 0 450 300 once 0;
+#X obj 58 65 inlet;
+#X obj 58 251 outlet;
+#X obj 262 73 bang;
+#X msg 262 92 1;
+#X obj 58 176 spigot;
+#X msg 230 93 0;
+#X text 13 289 (c) 2006 IOhannes m zmoelnig \, licensed under GnuGPL
+v2.0;
+#X obj 262 53 inlet reset;
+#X text 48 12 [once]: better than [oneshot];
+#X obj 200 133 int 1;
+#X obj 58 94 trigger anything bang;
+#X obj 58 202 trigger anything bang;
+#X connect 0 0 10 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 11 0;
+#X connect 5 0 9 1;
+#X connect 7 0 2 0;
+#X connect 9 0 4 1;
+#X connect 10 0 4 0;
+#X connect 10 1 9 0;
+#X connect 11 0 1 0;
+#X connect 11 1 5 0;
+#X restore 76 239 pd once;
+#N canvas 0 0 450 300 once 0;
+#X obj 58 65 inlet;
+#X obj 58 251 outlet;
+#X obj 262 73 bang;
+#X msg 262 92 1;
+#X obj 58 176 spigot;
+#X msg 230 93 0;
+#X text 13 289 (c) 2006 IOhannes m zmoelnig \, licensed under GnuGPL
+v2.0;
+#X obj 262 53 inlet reset;
+#X text 48 12 [once]: better than [oneshot];
+#X obj 200 133 int 1;
+#X obj 58 94 trigger anything bang;
+#X obj 58 202 trigger anything bang;
+#X connect 0 0 10 0;
+#X connect 2 0 3 0;
+#X connect 3 0 9 1;
+#X connect 4 0 11 0;
+#X connect 5 0 9 1;
+#X connect 7 0 2 0;
+#X connect 9 0 4 1;
+#X connect 10 0 4 0;
+#X connect 10 1 9 0;
+#X connect 11 0 1 0;
+#X connect 11 1 5 0;
+#X restore 276 239 pd once;
+#X obj 276 125 f;
+#X obj 276 50 \$1;
+#X obj 276 72 sel 0;
+#X msg 276 95 0.5;
+#X connect 0 0 10 0;
+#X connect 3 0 2 0;
+#X connect 4 0 7 0;
+#X connect 5 0 18 0;
+#X connect 6 0 18 0;
+#X connect 7 0 3 1;
+#X connect 8 0 3 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 10 0 15 1;
+#X connect 10 0 16 0;
+#X connect 10 1 8 0;
+#X connect 10 1 15 0;
+#X connect 10 1 16 1;
+#X connect 11 0 4 0;
+#X connect 11 1 7 1;
+#X connect 13 0 8 0;
+#X connect 14 0 9 0;
+#X connect 15 0 14 0;
+#X connect 16 0 13 0;
+#X connect 17 0 8 1;
+#X connect 17 0 9 1;
+#X connect 17 0 10 1;
+#X connect 17 0 11 0;
+#X connect 17 0 13 1;
+#X connect 17 0 14 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 19 1 17 0;
+#X connect 20 0 17 0;
diff --git a/puremapping/distance-help.pd b/puremapping/distance-help.pd
new file mode 100644
index 0000000..dbaa7be
--- /dev/null
+++ b/puremapping/distance-help.pd
@@ -0,0 +1,21 @@
+#N canvas 525 336 463 447 10;
+#X obj 132 232 distance 0.3;
+#X obj 132 260 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 8890 1;
+#X obj 132 69 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -204786
+-1 -1 12700 0;
+#X floatatom 141 204 5 0 0 0 - - -;
+#X obj 204 202 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -204800
+-1 -1 0 0;
+#X floatatom 218 222 5 0 0 0 - - -;
+#X text 154 149 <-- the argument "0.3" sets the point here;
+#X floatatom 142 397 5 0 0 0 - - -;
+#X obj 5 2 cnv 15 450 20 empty empty distance 2 11 1 18 -233017 -66577
+0;
+#X text 17 34 Measure the distance from a point and a stream;
+#X connect 0 0 1 0;
+#X connect 1 0 7 0;
+#X connect 2 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 5 0;
+#X connect 4 0 0 1;
diff --git a/puremapping/distance.pd b/puremapping/distance.pd
new file mode 100644
index 0000000..73a6c09
--- /dev/null
+++ b/puremapping/distance.pd
@@ -0,0 +1,10 @@
+#N canvas 0 0 450 300 10;
+#X obj 80 47 inlet;
+#X obj 150 49 inlet;
+#X obj 80 129 abs;
+#X obj 80 195 outlet;
+#X obj 80 95 - \$1;
+#X connect 0 0 4 0;
+#X connect 1 0 4 1;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
diff --git a/puremapping/distance2d-help.pd b/puremapping/distance2d-help.pd
new file mode 100644
index 0000000..e0a7ee9
--- /dev/null
+++ b/puremapping/distance2d-help.pd
@@ -0,0 +1,39 @@
+#N canvas 443 111 675 756 10;
+#X obj 54 541 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4348 1;
+#X obj 54 96 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 1900 1;
+#X floatatom 175 457 5 0 0 0 - - -;
+#X obj 54 503 distance2d 0.3 0.5;
+#X obj 175 478 pack f f;
+#X floatatom 226 457 5 0 0 0 - - -;
+#X text 126 29 distance from a point and a stream in 2d;
+#X obj 75 96 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4400 1;
+#X obj 54 278 pack f f;
+#X obj 75 243 t b f;
+#X obj 121 69 gcanvas 100 100;
+#X obj 121 179 / 100;
+#X obj 214 181 / 100;
+#X obj 121 205 pack f f;
+#X obj 175 317 gcanvas 100 100;
+#X obj 175 427 / 100;
+#X obj 268 429 / 100;
+#X connect 1 0 8 0;
+#X connect 2 0 4 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 1;
+#X connect 5 0 4 1;
+#X connect 7 0 9 0;
+#X connect 8 0 3 0;
+#X connect 9 0 8 0;
+#X connect 9 1 8 1;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 3 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 15 0 2 0;
+#X connect 16 0 5 0;
diff --git a/puremapping/distance2d.pd b/puremapping/distance2d.pd
new file mode 100644
index 0000000..6fc1d3d
--- /dev/null
+++ b/puremapping/distance2d.pd
@@ -0,0 +1,30 @@
+#N canvas 0 0 450 505 10;
+#X obj 80 47 inlet;
+#X obj 91 285 outlet;
+#X obj 80 80 unpack f f;
+#X obj 216 44 inlet;
+#X obj 216 77 unpack f f;
+#X obj 144 180 t f f;
+#X obj 143 205 *;
+#X obj 82 177 t f f;
+#X obj 81 202 *;
+#X obj 89 238 +;
+#X obj 92 263 sqrt;
+#X obj 84 151 - \$1;
+#X obj 144 152 - \$2;
+#X connect 0 0 2 0;
+#X connect 2 0 11 0;
+#X connect 2 1 12 0;
+#X connect 3 0 4 0;
+#X connect 4 0 11 1;
+#X connect 4 1 12 1;
+#X connect 5 0 6 0;
+#X connect 5 1 6 1;
+#X connect 6 0 9 1;
+#X connect 7 0 8 0;
+#X connect 7 1 8 1;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 1 0;
+#X connect 11 0 7 0;
+#X connect 12 0 5 0;
diff --git a/puremapping/distance_n-help.pd b/puremapping/distance_n-help.pd
new file mode 100644
index 0000000..8e0ae57
--- /dev/null
+++ b/puremapping/distance_n-help.pd
@@ -0,0 +1,34 @@
+#N canvas 443 111 675 756 10;
+#X obj 54 428 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 396 1;
+#X obj 54 96 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4100 1;
+#X obj 76 97 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4000 1;
+#X obj 76 244 t b f;
+#X obj 54 390 distance_n;
+#X msg 119 365 0.3 0.3 0.5 0.4;
+#X obj 119 342 loadbang;
+#X obj 54 279 pack f f f f;
+#X obj 116 97 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6500 1;
+#X obj 116 244 t b f;
+#X obj 156 97 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5200 1;
+#X obj 156 244 t b f;
+#X text 126 29 distance from a point and a stream in nd;
+#X text 173 53 n is the min size of the list send on the inlets;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 7 1;
+#X connect 4 0 0 0;
+#X connect 5 0 4 1;
+#X connect 6 0 5 0;
+#X connect 7 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 1 7 2;
+#X connect 10 0 11 0;
+#X connect 11 0 7 0;
+#X connect 11 1 7 3;
diff --git a/puremapping/distance_n.pd b/puremapping/distance_n.pd
new file mode 100644
index 0000000..85f6a70
--- /dev/null
+++ b/puremapping/distance_n.pd
@@ -0,0 +1,101 @@
+#N canvas 872 510 450 424 10;
+#N canvas 640 117 487 367 drip-two-lists 0;
+#X obj 64 243 outlet;
+#X obj 64 57 inlet;
+#X obj 157 240 outlet;
+#X obj 225 242 outlet;
+#X obj 321 95 inlet;
+#X text 272 240 End;
+#X obj 64 156 t a b;
+#N canvas 0 0 533 407 drip 0;
+#X obj 64 206 list split 1;
+#X obj 64 123 until;
+#X obj 64 181 list append;
+#X obj 194 206 bang;
+#X text 146 90 First store list \, then start the loop;
+#X text 163 118 "until" bangs its output until told to stop by a "bang"
+to its right inlet.;
+#X text 182 160 Store the remaining list.;
+#X text 239 205 third outlet of "split" tells us to stop.;
+#X obj 64 243 outlet;
+#X obj 64 57 inlet;
+#X text 237 44 From list-help.pd;
+#X obj 143 243 outlet;
+#X obj 64 86 t b a;
+#X connect 0 0 8 0;
+#X connect 0 1 2 1;
+#X connect 0 2 3 0;
+#X connect 0 2 11 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 1 1;
+#X connect 9 0 12 0;
+#X connect 12 0 1 0;
+#X connect 12 1 2 1;
+#X restore 64 122 pd drip;
+#N canvas 0 0 533 407 dripslow 0;
+#X obj 87 232 list split 1;
+#X obj 87 207 list append;
+#X obj 87 283 outlet;
+#X obj 87 83 inlet;
+#X obj 166 283 outlet;
+#X obj 159 81 inlet;
+#X obj 87 118 b;
+#X text 202 82 list;
+#X text 42 83 bang;
+#X text 210 283 EOL;
+#X text 28 282 element;
+#X obj 166 253 b;
+#X connect 0 0 2 0;
+#X connect 0 1 1 1;
+#X connect 0 2 11 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 5 0 1 1;
+#X connect 6 0 1 0;
+#X connect 11 0 4 0;
+#X restore 158 191 pd dripslow;
+#X connect 1 0 7 0;
+#X connect 4 0 8 1;
+#X connect 6 0 0 0;
+#X connect 6 1 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 3 0;
+#X connect 8 0 2 0;
+#X restore 133 139 pd drip-two-lists;
+#X obj 113 27 inlet;
+#X obj 287 20 inlet;
+#X obj 133 167 -;
+#X obj 133 195 t f f;
+#X obj 133 224 *;
+#X obj 134 278 f;
+#X obj 133 256 +;
+#X msg 196 197 0;
+#X obj 118 300 f;
+#X obj 119 325 sqrt;
+#X obj 118 349 outlet;
+#X msg 313 61 1 2 3 5 7 8;
+#X msg 134 62 1 2 3 4 5 6;
+#X obj 246 99 list;
+#X obj 115 98 t b a b b;
+#X connect 0 0 3 0;
+#X connect 0 1 3 1;
+#X connect 1 0 15 0;
+#X connect 2 0 14 1;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 5 1;
+#X connect 5 0 7 0;
+#X connect 6 0 7 1;
+#X connect 6 0 9 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 12 0 14 1;
+#X connect 13 0 15 0;
+#X connect 14 0 0 1;
+#X connect 15 0 9 0;
+#X connect 15 1 0 0;
+#X connect 15 2 8 0;
+#X connect 15 3 14 0;
diff --git a/puremapping/downsample-help.pd b/puremapping/downsample-help.pd
new file mode 100644
index 0000000..bb2881b
--- /dev/null
+++ b/puremapping/downsample-help.pd
@@ -0,0 +1,16 @@
+#N canvas 0 0 444 426 10;
+#X floatatom 43 52 5 0 0 0 - - -;
+#X floatatom 43 257 5 0 0 0 - - -;
+#X obj 84 168 t b b;
+#X obj 84 195 timer;
+#X floatatom 84 221 5 0 0 0 - - -;
+#X obj 43 77 resample 30;
+#X obj 43 108 downsample 3;
+#X text 120 25 output 1 over n data.;
+#X connect 0 0 5 0;
+#X connect 2 0 3 0;
+#X connect 2 1 3 1;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 6 0 1 0;
diff --git a/puremapping/downsample.pd b/puremapping/downsample.pd
new file mode 100644
index 0000000..acb12bc
--- /dev/null
+++ b/puremapping/downsample.pd
@@ -0,0 +1,20 @@
+#N canvas 0 0 444 426 10;
+#X obj 51 52 inlet;
+#X obj 51 267 outlet;
+#X obj 104 51 inlet;
+#X obj 51 110 t f b;
+#X obj 81 134 f;
+#X obj 81 157 + 1;
+#X obj 81 180 % \$1;
+#X obj 51 236 spigot;
+#X obj 81 205 == 0;
+#X connect 0 0 3 0;
+#X connect 2 0 6 1;
+#X connect 3 0 7 0;
+#X connect 3 1 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 1;
+#X connect 6 0 8 0;
+#X connect 7 0 1 0;
+#X connect 8 0 7 1;
diff --git a/puremapping/env+-help.pd b/puremapping/env+-help.pd
new file mode 100644
index 0000000..1696687
--- /dev/null
+++ b/puremapping/env+-help.pd
@@ -0,0 +1,26 @@
+#N canvas 346 116 686 528 10;
+#X obj 253 359 timeroll;
+#X obj 46 162 random 1000;
+#X obj 46 136 metro 30;
+#X obj 46 112 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 46 363 timeroll;
+#X obj 72 112 loadbang;
+#X obj 253 253 env+ 110;
+#X text 131 26 positiv envelope follower;
+#X floatatom 279 173 5 0 0 0 - - -;
+#X msg 306 227 0;
+#X text 343 227 reset to this value (in case of overflow);
+#X obj 46 187 / 1000;
+#X obj 46 220 pow 4;
+#X text 327 172 time coef;
+#X connect 1 0 11 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 0 0;
+#X connect 8 0 6 1;
+#X connect 9 0 6 2;
+#X connect 11 0 12 0;
+#X connect 12 0 4 0;
+#X connect 12 0 6 0;
diff --git a/puremapping/env+.pd b/puremapping/env+.pd
new file mode 100644
index 0000000..a40f17b
--- /dev/null
+++ b/puremapping/env+.pd
@@ -0,0 +1,45 @@
+#N canvas 788 247 294 499 10;
+#X obj 59 42 inlet;
+#X obj 59 432 outlet;
+#X obj 59 349 +;
+#X obj 130 317 + 1;
+#X obj 130 42 inlet;
+#X obj 130 185 1;
+#X obj 90 69 loadbang;
+#X obj 130 160 /;
+#X msg 130 139 1 \$1;
+#X obj 90 90 \$1;
+#X obj 90 112 sel 0;
+#X obj 77 375 / 2;
+#X obj 59 325 * 1;
+#X obj 59 218 moses;
+#X obj 102 266 f;
+#X obj 59 406 t f f;
+#X obj 59 134 t f f;
+#X obj 102 244 b;
+#X msg 102 288 \$1 0;
+#X obj 235 42 inlet;
+#X connect 0 0 16 0;
+#X connect 2 0 11 0;
+#X connect 2 0 15 0;
+#X connect 3 0 11 1;
+#X connect 4 0 8 0;
+#X connect 5 0 3 0;
+#X connect 5 0 12 1;
+#X connect 6 0 9 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 10 0;
+#X connect 10 1 8 0;
+#X connect 11 0 2 1;
+#X connect 12 0 2 0;
+#X connect 13 0 12 0;
+#X connect 13 1 17 0;
+#X connect 14 0 18 0;
+#X connect 15 0 1 0;
+#X connect 15 1 13 1;
+#X connect 16 0 13 0;
+#X connect 16 1 14 1;
+#X connect 17 0 14 0;
+#X connect 18 0 2 0;
+#X connect 19 0 2 1;
diff --git a/puremapping/env--help.pd b/puremapping/env--help.pd
new file mode 100644
index 0000000..9979a86
--- /dev/null
+++ b/puremapping/env--help.pd
@@ -0,0 +1,18 @@
+#N canvas 729 175 748 542 10;
+#X obj 264 366 timeroll;
+#X obj 42 162 random 1000;
+#X obj 42 136 metro 30;
+#X obj 42 112 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 42 365 timeroll;
+#X obj 68 112 loadbang;
+#X text 130 26 negativ envelope follower;
+#X obj 265 264 env- 80;
+#X obj 42 187 / 1000;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 7 0 0 0;
+#X connect 8 0 4 0;
+#X connect 8 0 7 0;
diff --git a/puremapping/env-.pd b/puremapping/env-.pd
new file mode 100644
index 0000000..3c4a48a
--- /dev/null
+++ b/puremapping/env-.pd
@@ -0,0 +1,43 @@
+#N canvas 788 247 294 499 10;
+#X obj 48 42 inlet;
+#X obj 80 431 outlet;
+#X obj 80 348 +;
+#X obj 128 324 + 1;
+#X obj 130 42 inlet;
+#X obj 128 185 1;
+#X obj 90 69 loadbang;
+#X obj 130 160 /;
+#X msg 130 139 1 \$1;
+#X obj 90 90 \$1;
+#X obj 90 112 sel 0;
+#X obj 98 376 / 2;
+#X obj 80 324 * 1;
+#X obj 48 225 moses;
+#X obj 48 271 f;
+#X obj 80 405 t f f;
+#X obj 48 142 t f f;
+#X obj 48 249 b;
+#X msg 48 293 \$1 0;
+#X connect 0 0 16 0;
+#X connect 2 0 11 0;
+#X connect 2 0 15 0;
+#X connect 3 0 11 1;
+#X connect 4 0 8 0;
+#X connect 5 0 3 0;
+#X connect 5 0 12 1;
+#X connect 6 0 9 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 10 0;
+#X connect 10 1 8 0;
+#X connect 11 0 2 1;
+#X connect 12 0 2 0;
+#X connect 13 0 17 0;
+#X connect 13 1 12 0;
+#X connect 14 0 18 0;
+#X connect 15 0 1 0;
+#X connect 15 1 13 1;
+#X connect 16 0 13 0;
+#X connect 16 1 14 1;
+#X connect 17 0 14 0;
+#X connect 18 0 2 0;
diff --git a/puremapping/env-help.pd b/puremapping/env-help.pd
new file mode 100644
index 0000000..c06598e
--- /dev/null
+++ b/puremapping/env-help.pd
@@ -0,0 +1,26 @@
+#N canvas 765 126 748 541 10;
+#X obj 267 297 timeroll;
+#X obj 43 97 random 1000;
+#X obj 43 71 metro 30;
+#X obj 43 47 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 43 300 timeroll;
+#X obj 69 47 loadbang;
+#X obj 267 241 env 80;
+#X text 284 5 envelope follower;
+#X floatatom 73 166 5 0 0 0 - - -;
+#X obj 43 126 / 1000;
+#X obj 43 187 * 0.5;
+#X floatatom 59 215 5 0 0 0 - - -;
+#X obj 43 233 + 0;
+#X connect 1 0 9 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 0 0;
+#X connect 8 0 10 1;
+#X connect 9 0 10 0;
+#X connect 10 0 6 0;
+#X connect 10 0 12 0;
+#X connect 11 0 12 1;
+#X connect 12 0 4 0;
diff --git a/puremapping/env.pd b/puremapping/env.pd
new file mode 100644
index 0000000..02d5e6d
--- /dev/null
+++ b/puremapping/env.pd
@@ -0,0 +1,16 @@
+#N canvas 788 247 294 499 10;
+#X obj 59 42 inlet;
+#X obj 80 431 outlet;
+#X obj 130 42 inlet;
+#X obj 90 132 t f f;
+#X obj 91 218 -;
+#X obj 131 165 env- \$1;
+#X obj 78 164 env+ \$1;
+#X connect 0 0 3 0;
+#X connect 2 0 6 1;
+#X connect 2 0 5 1;
+#X connect 3 0 6 0;
+#X connect 3 1 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 0;
diff --git a/puremapping/exemple/pm_mapping_exemple.pd b/puremapping/exemple/pm_mapping_exemple.pd
new file mode 100644
index 0000000..9db68c6
--- /dev/null
+++ b/puremapping/exemple/pm_mapping_exemple.pd
@@ -0,0 +1,222 @@
+#N canvas 203 104 1128 552 10;
+#X obj 30 327 loadbang;
+#X obj 30 354 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X obj 30 375 metro 10;
+#X obj 30 398 s metro;
+#X obj 787 -59 gcanvas 300 300;
+#X obj 32 -59 cnv 15 220 300 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#N canvas 0 0 507 357 2dimentional_input_for_the_system_______ 0;
+#X obj 14 159 pack f f;
+#X obj 99 164 b;
+#X obj 129 194 delay 100;
+#X msg 99 218 1;
+#X msg 129 218 0;
+#X obj 99 246 f;
+#X obj 14 188 s position;
+#X obj 99 299 s grab;
+#X obj 307 23 inlet;
+#X obj 14 15 inlet;
+#X obj 14 103 min 1;
+#X obj 307 109 min 1;
+#X obj 99 270 change;
+#X text 162 256 this should be replace by a more robust detection of
+the mouses click;
+#X obj 14 38 / 150;
+#X obj 307 44 / 150;
+#X obj 307 70 - 1;
+#X obj 14 63 - 1;
+#X obj 14 126 max -1;
+#X obj 307 132 max -1;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 5 0 12 0;
+#X connect 8 0 15 0;
+#X connect 9 0 14 0;
+#X connect 10 0 18 0;
+#X connect 11 0 19 0;
+#X connect 12 0 7 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 16 0 11 0;
+#X connect 17 0 10 0;
+#X connect 18 0 1 0;
+#X connect 18 0 0 0;
+#X connect 19 0 0 1;
+#X restore 787 249 pd 2dimentional_input_for_the_system_______;
+#X obj 262 -59 cnv 15 325 400 empty empty empty 20 12 0 14 -233017
+-66577 0;
+#X obj 264 361 cnv 15 200 60 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 596 -59 cnv 15 180 400 empty empty empty 20 12 0 14 -233017
+-66577 0;
+#X obj 601 84 unpack f f;
+#X obj 271 83 unpack f f;
+#X obj 271 131 abs;
+#X obj 427 131 abs;
+#X obj 272 399 dac~;
+#X obj 272 371 *~;
+#X obj 601 316 line~;
+#X obj 426 372 *~;
+#X obj 666 317 line~;
+#X obj 601 137 min 1;
+#X obj 666 139 min 1;
+#X obj 601 160 max 0;
+#X obj 666 162 max 0;
+#X obj 36 194 noise~;
+#X obj 44 70 unpack f f;
+#X obj 44 -29 t b b;
+#X obj 36 217 bp~;
+#X obj 145 193 noise~;
+#X obj 153 73 unpack f f;
+#X obj 145 216 bp~;
+#X obj 44 93 * 40;
+#X obj 44 139 mtof;
+#X obj 153 96 * 40;
+#X obj 153 142 mtof;
+#X obj 109 99 + 1;
+#X obj 218 96 + 1;
+#X obj 109 122 * 15;
+#X obj 218 119 * 15;
+#X obj 271 223 vd~ del1;
+#X obj 271 200 line~;
+#X msg 601 183 \$1 11;
+#X msg 666 185 \$1 11;
+#X msg 271 177 \$1 11;
+#X obj 427 200 line~;
+#X msg 427 177 \$1 11;
+#X obj 427 223 vd~ del2;
+#X obj 288 318 delwrite~ del2 1000;
+#X obj 444 318 delwrite~ del1 1000;
+#X obj 271 296 *~ -0.9;
+#X obj 44 -52 r metro;
+#X obj 271 -53 r metro;
+#X obj 54 -7 r position;
+#X obj 287 -29 r position;
+#X msg 287 -8 grab \$1 \$2;
+#X msg 306 36 grab_on \$1;
+#X obj 306 14 r grab;
+#X obj 601 -55 r metro;
+#X obj 617 -31 r position;
+#X msg 617 -8 grab \$1 \$2;
+#X msg 636 38 grab_on \$1;
+#X obj 636 15 r grab;
+#X text 32 -80 Audio input;
+#X text 264 -81 Karplus-Strong system;
+#X text 595 -81 Amplitude emvelope;
+#X text 789 -81 User input;
+#N canvas 0 0 214 277 1each2 0;
+#X obj 19 20 inlet;
+#X obj 50 65 f;
+#X obj 50 87 + 1;
+#X obj 19 238 outlet;
+#X obj 66 239 outlet;
+#X obj 66 216 spigot;
+#X obj 19 41 t a b;
+#X obj 19 215 spigot;
+#X obj 81 18 inlet;
+#X msg 81 42 0;
+#X obj 50 115 == 1;
+#X obj 90 115 == 2;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 2 0 1 1;
+#X connect 2 0 10 0;
+#X connect 2 0 11 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 6 0 5 0;
+#X connect 6 1 1 0;
+#X connect 7 0 3 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 1;
+#X connect 10 0 7 1;
+#X connect 11 0 5 1;
+#X restore 44 37 pd 1each2;
+#X obj 601 111 abs;
+#X obj 666 110 abs;
+#X obj 271 154 * 30;
+#X obj 427 155 * 30;
+#X obj 427 296 *~ -0.9;
+#X obj 44 116 + 70;
+#X obj 153 119 + 70;
+#X obj 44 14 pmcloud_2d 2 0.1 0.3;
+#X obj 270 61 pmrepulsor_2d 0.3 0.1;
+#X obj 601 62 pmattractor_2d 0.03 0.2;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 4 0 6 0;
+#X connect 4 1 6 1;
+#X connect 10 0 66 0;
+#X connect 10 1 67 0;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 12 0 68 0;
+#X connect 13 0 69 0;
+#X connect 15 0 14 0;
+#X connect 16 0 15 1;
+#X connect 17 0 14 1;
+#X connect 18 0 17 1;
+#X connect 19 0 21 0;
+#X connect 20 0 22 0;
+#X connect 21 0 40 0;
+#X connect 22 0 41 0;
+#X connect 23 0 26 0;
+#X connect 24 0 30 0;
+#X connect 24 1 34 0;
+#X connect 25 0 73 0;
+#X connect 25 1 65 1;
+#X connect 26 0 48 0;
+#X connect 27 0 29 0;
+#X connect 28 0 32 0;
+#X connect 28 1 35 0;
+#X connect 29 0 70 0;
+#X connect 30 0 71 0;
+#X connect 31 0 26 1;
+#X connect 32 0 72 0;
+#X connect 33 0 29 1;
+#X connect 34 0 36 0;
+#X connect 35 0 37 0;
+#X connect 36 0 26 2;
+#X connect 37 0 29 2;
+#X connect 38 0 48 0;
+#X connect 39 0 38 0;
+#X connect 40 0 16 0;
+#X connect 41 0 18 0;
+#X connect 42 0 39 0;
+#X connect 43 0 45 0;
+#X connect 44 0 43 0;
+#X connect 45 0 70 0;
+#X connect 48 0 46 0;
+#X connect 48 0 15 0;
+#X connect 49 0 25 0;
+#X connect 50 0 74 0;
+#X connect 51 0 73 0;
+#X connect 52 0 53 0;
+#X connect 53 0 74 0;
+#X connect 54 0 74 0;
+#X connect 55 0 54 0;
+#X connect 56 0 75 0;
+#X connect 57 0 58 0;
+#X connect 58 0 75 0;
+#X connect 59 0 75 0;
+#X connect 60 0 59 0;
+#X connect 65 0 24 0;
+#X connect 65 1 28 0;
+#X connect 66 0 19 0;
+#X connect 67 0 20 0;
+#X connect 68 0 42 0;
+#X connect 69 0 44 0;
+#X connect 70 0 47 0;
+#X connect 70 0 17 0;
+#X connect 71 0 31 0;
+#X connect 72 0 33 0;
+#X connect 73 0 65 0;
+#X connect 74 0 11 0;
+#X connect 75 0 10 0;
diff --git a/puremapping/fir-help.pd b/puremapping/fir-help.pd
new file mode 100644
index 0000000..a5e4105
--- /dev/null
+++ b/puremapping/fir-help.pd
@@ -0,0 +1,27 @@
+#N canvas 390 53 630 490 10;
+#X obj 174 76 loadbang;
+#X text 97 58 data;
+#X obj 93 161 t f f;
+#X msg 102 128 0;
+#X msg 185 127 0.2 0.2 0.2 0.2 0.2;
+#X msg 132 128 1;
+#X msg 174 98 0.4 0.3 0.1 0.1 0.1;
+#X obj 93 248 timeroll 10;
+#X obj 345 247 timeroll 10;
+#X obj 77 10 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 300 1;
+#X obj 116 423 pddp/pddplink http://www.dspguru.com/info/faqs/firfaq.htm
+;
+#X text 67 407 For more info on FIR:;
+#X obj 123 188 fir;
+#X text 168 188 filter order is set regarding list lenght size;
+#X text 328 113 these are a list of coefficients;
+#X connect 0 0 6 0;
+#X connect 2 0 7 0;
+#X connect 2 1 12 0;
+#X connect 3 0 2 0;
+#X connect 4 0 12 1;
+#X connect 5 0 2 0;
+#X connect 6 0 12 1;
+#X connect 9 0 2 0;
+#X connect 12 0 8 0;
diff --git a/puremapping/fir.pd b/puremapping/fir.pd
new file mode 100644
index 0000000..74cc504
--- /dev/null
+++ b/puremapping/fir.pd
@@ -0,0 +1,229 @@
+#N canvas 778 146 455 393 10;
+#X obj 187 61 inlet;
+#X text 72 34 flux donnees;
+#X obj 85 57 inlet;
+#X obj 85 298 outlet;
+#X obj 85 269 * \$1;
+#N canvas 198 25 616 543 list_emath_* 1;
+#X obj 59 31 inlet;
+#X obj 287 28 inlet;
+#X obj 59 437 outlet;
+#X obj 264 131 list;
+#X obj 78 287 route float;
+#X obj 178 261 route float;
+#X obj 78 162 t a b b;
+#X obj 78 379 list prepend;
+#X obj 176 379 t a;
+#X obj 59 404 list;
+#X obj 136 57 s \$0-reset;
+#X obj 157 343 r \$0-reset;
+#X obj 59 58 t b a b b;
+#X obj 325 232 f 1;
+#N canvas 0 0 782 506 list-drip 0;
+#X obj 63 84 t a a;
+#X obj 63 241 spigot;
+#X obj 102 149 bang;
+#X obj 102 168 1;
+#X obj 223 149 route bang;
+#X obj 183 150 bang;
+#X obj 183 169 0;
+#X obj 102 114 list split 2;
+#X obj 232 379 list split;
+#X obj 299 328 list length;
+#X obj 299 350 >> 1;
+#X obj 63 260 t a a a a;
+#X obj 63 446 list split;
+#X obj 130 398 list length;
+#X obj 130 423 >> 1;
+#X obj 31 19 inlet;
+#X obj 290 175 outlet;
+#X text 73 19 Copyright 2009 by Mathieu Bouchard;
+#X obj 31 53 t b a;
+#X obj 465 119 outlet;
+#X text 520 121 signal end of list;
+#X text 381 23 made compatible with [list-drip]: fbar 2009;
+#X connect 0 0 1 0;
+#X connect 0 1 7 0;
+#X connect 1 0 11 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 1 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 1;
+#X connect 7 0 2 0;
+#X connect 7 2 4 0;
+#X connect 7 2 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 8 0;
+#X connect 11 3 9 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 1;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 0 0;
+#X restore 78 138 pd list-drip;
+#N canvas 0 0 450 300 list-dripslow 0;
+#X obj 148 186 list split 1;
+#X obj 148 161 list append;
+#X obj 148 237 outlet;
+#X obj 148 37 inlet;
+#X obj 229 237 outlet;
+#X obj 222 35 inlet;
+#X obj 148 72 b;
+#X text 265 36 list;
+#X text 103 37 bang;
+#X text 273 237 EOL;
+#X text 89 236 element;
+#X obj 229 207 b;
+#X connect 0 0 2 0;
+#X connect 0 1 1 1;
+#X connect 0 2 11 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 5 0 1 1;
+#X connect 6 0 1 0;
+#X connect 11 0 4 0;
+#X restore 178 232 pd list-dripslow;
+#X obj 78 322 *;
+#X connect 0 0 12 0;
+#X connect 1 0 3 1;
+#X connect 3 0 15 1;
+#X connect 4 0 16 0;
+#X connect 4 1 7 0;
+#X connect 5 0 16 1;
+#X connect 6 0 4 0;
+#X connect 6 1 15 0;
+#X connect 6 2 13 0;
+#X connect 7 0 8 0;
+#X connect 7 0 9 1;
+#X connect 8 0 7 1;
+#X connect 9 0 2 0;
+#X connect 11 0 7 1;
+#X connect 12 0 9 0;
+#X connect 12 1 14 0;
+#X connect 12 2 3 0;
+#X connect 12 3 10 0;
+#X connect 13 0 16 1;
+#X connect 14 0 6 0;
+#X connect 15 0 5 0;
+#X connect 16 0 7 0;
+#X restore 85 207 pd list_emath_*;
+#N canvas 0 0 450 300 list-mean 0;
+#X obj 127 69 inlet;
+#X obj 127 337 outlet;
+#X obj 146 164 route float;
+#X obj 127 274 f;
+#N canvas 425 298 450 300 count 0;
+#X obj 133 59 b;
+#X obj 133 35 inlet;
+#X obj 183 35 inlet;
+#X obj 164 111 + 1;
+#X obj 133 133 outlet;
+#X msg 183 71 1;
+#X obj 133 110 f 1;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 5 0;
+#X connect 3 0 6 1;
+#X connect 5 0 6 1;
+#X connect 6 0 3 0;
+#X connect 6 0 4 0;
+#X restore 222 226 pd count;
+#X obj 127 308 /;
+#X obj 146 189 t a b;
+#N canvas 370 313 450 300 accum 0;
+#X obj 182 102 0;
+#X obj 135 79 inlet;
+#X obj 182 79 inlet;
+#X obj 135 169 outlet;
+#X obj 135 137 +;
+#X obj 168 138 f;
+#X connect 0 0 4 1;
+#X connect 1 0 4 0;
+#X connect 2 0 0 0;
+#X connect 4 0 3 0;
+#X connect 4 0 5 0;
+#X connect 5 0 4 1;
+#X restore 146 224 pd accum;
+#X obj 127 105 t b a b b;
+#N canvas 0 0 450 300 list-drip 0;
+#X obj 63 84 t a a;
+#X obj 63 241 spigot;
+#X obj 102 149 bang;
+#X obj 102 168 1;
+#X obj 223 149 route bang;
+#X obj 183 150 bang;
+#X obj 183 169 0;
+#X obj 102 114 list split 2;
+#X obj 232 379 list split;
+#X obj 299 328 list length;
+#X obj 299 350 >> 1;
+#X obj 63 260 t a a a a;
+#X obj 63 446 list split;
+#X obj 130 398 list length;
+#X obj 130 423 >> 1;
+#X obj 31 19 inlet;
+#X obj 290 175 outlet;
+#X text 73 19 Copyright 2009 by Mathieu Bouchard;
+#X obj 31 53 t b a;
+#X obj 465 119 outlet;
+#X text 520 121 signal end of list;
+#X text 381 23 made compatible with [list-drip]: fbar 2009;
+#X connect 0 0 1 0;
+#X connect 0 1 7 0;
+#X connect 1 0 11 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 1 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 1;
+#X connect 7 0 2 0;
+#X connect 7 2 4 0;
+#X connect 7 2 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 8 0;
+#X connect 11 3 9 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 1;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 0 0;
+#X restore 146 138 pd list-drip;
+#X connect 0 0 8 0;
+#X connect 2 0 6 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 1;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 6 1 4 0;
+#X connect 7 0 3 1;
+#X connect 8 0 3 0;
+#X connect 8 1 9 0;
+#X connect 8 2 7 1;
+#X connect 8 3 4 1;
+#X connect 9 0 2 0;
+#X restore 85 237 pd list-mean;
+#X text 235 60 list coef filtre;
+#X obj 165 89 list length;
+#X obj 85 124 last_n;
+#X floatatom 172 119 5 0 0 0 - - -;
+#X connect 0 0 5 1;
+#X connect 0 0 8 0;
+#X connect 2 0 9 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 8 0 9 1;
+#X connect 8 0 10 0;
+#X connect 8 0 4 1;
+#X connect 9 0 5 0;
diff --git a/puremapping/float2mapping-help.pd b/puremapping/float2mapping-help.pd
new file mode 100644
index 0000000..49af248
--- /dev/null
+++ b/puremapping/float2mapping-help.pd
@@ -0,0 +1,26 @@
+#N canvas 92 136 319 447 10;
+#X obj 90 90 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 51 38 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5900 1;
+#X floatatom 104 229 5 0 0 0 - - -;
+#X obj 51 234 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4180 1;
+#X floatatom 158 230 5 0 0 0 - - -;
+#X text 108 249 min;
+#X text 165 250 max;
+#X floatatom 122 171 5 0 0 0 - - -;
+#X floatatom 176 172 5 0 0 0 - - -;
+#X text 126 151 min;
+#X text 183 152 max;
+#X text 112 90 learn;
+#X msg 90 112 calibrate \$1;
+#X obj 51 195 float2mapping 0.3 0.8;
+#X connect 0 0 12 0;
+#X connect 1 0 13 0;
+#X connect 7 0 13 1;
+#X connect 8 0 13 2;
+#X connect 12 0 13 0;
+#X connect 13 0 3 0;
+#X connect 13 1 2 0;
+#X connect 13 2 4 0;
diff --git a/puremapping/float2mapping.pd b/puremapping/float2mapping.pd
new file mode 100644
index 0000000..dd7dd5d
--- /dev/null
+++ b/puremapping/float2mapping.pd
@@ -0,0 +1,64 @@
+#N canvas 778 253 785 630 10;
+#X obj 80 17 inlet;
+#X obj 195 579 outlet;
+#X obj 461 30 inlet;
+#X obj 539 36 inlet;
+#X text 283 67 test;
+#X obj 286 218 min;
+#X obj 225 165 spigot;
+#X obj 352 221 max;
+#X obj 262 87 t f f;
+#X obj 292 110 sel 0;
+#X obj 322 132 b;
+#X obj 292 587 outlet;
+#X obj 355 585 outlet;
+#X obj 292 436 f;
+#X obj 355 432 f;
+#X text 481 56 min;
+#X text 558 55 max;
+#X obj 265 397 t b f;
+#X obj 195 468 /;
+#X obj 456 220 loadbang;
+#X obj 196 413 - \$1;
+#X obj 245 429 - \$1;
+#X obj 348 292 \$2;
+#X obj 264 311 f;
+#X msg 325 192 1e+30;
+#X msg 368 193 -1e+30;
+#X obj 78 39 route calibrate;
+#X connect 0 0 26 0;
+#X connect 2 0 13 0;
+#X connect 2 0 23 0;
+#X connect 3 0 14 0;
+#X connect 3 0 22 0;
+#X connect 5 0 23 0;
+#X connect 6 0 5 0;
+#X connect 6 0 7 0;
+#X connect 7 0 22 0;
+#X connect 8 0 6 1;
+#X connect 8 1 9 0;
+#X connect 9 0 13 0;
+#X connect 9 0 14 0;
+#X connect 9 1 10 0;
+#X connect 10 0 24 0;
+#X connect 10 0 25 0;
+#X connect 13 0 11 0;
+#X connect 14 0 12 0;
+#X connect 17 0 21 0;
+#X connect 17 1 21 1;
+#X connect 18 0 1 0;
+#X connect 19 0 22 0;
+#X connect 20 0 18 0;
+#X connect 21 0 18 1;
+#X connect 22 0 7 1;
+#X connect 22 0 14 1;
+#X connect 22 0 21 0;
+#X connect 23 0 5 1;
+#X connect 23 0 13 1;
+#X connect 23 0 17 0;
+#X connect 23 0 20 1;
+#X connect 24 0 5 1;
+#X connect 25 0 7 1;
+#X connect 26 0 8 0;
+#X connect 26 1 6 0;
+#X connect 26 1 20 0;
diff --git a/puremapping/hysteresis-help.pd b/puremapping/hysteresis-help.pd
new file mode 100644
index 0000000..b461f8a
--- /dev/null
+++ b/puremapping/hysteresis-help.pd
@@ -0,0 +1,9 @@
+#N canvas 456 266 382 458 10;
+#X obj 30 61 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4200 1;
+#X obj 30 255 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4840 1;
+#X obj 30 218 hysteresis 0.2;
+#X text 84 28 add hysteresys to input data;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/hysteresis.pd b/puremapping/hysteresis.pd
new file mode 100644
index 0000000..0557b90
--- /dev/null
+++ b/puremapping/hysteresis.pd
@@ -0,0 +1,28 @@
+#N canvas 456 266 266 359 10;
+#X obj 117 144 moses 0;
+#X obj 87 92 t f f;
+#X obj 117 121 -;
+#X obj 87 251 -;
+#X obj 133 304 outlet;
+#X obj 87 66 inlet;
+#X obj 117 167 * -1;
+#X obj 117 211 * -1;
+#X obj 133 277 f;
+#X obj 117 189 min \$1;
+#X obj 161 211 min \$1;
+#X obj 198 67 inlet;
+#X connect 0 0 6 0;
+#X connect 0 1 10 0;
+#X connect 1 0 3 0;
+#X connect 1 1 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 8 0;
+#X connect 5 0 1 0;
+#X connect 6 0 9 0;
+#X connect 7 0 3 1;
+#X connect 8 0 2 1;
+#X connect 8 0 4 0;
+#X connect 9 0 7 0;
+#X connect 10 0 3 1;
+#X connect 11 0 9 1;
+#X connect 11 0 10 1;
diff --git a/puremapping/iir-help.pd b/puremapping/iir-help.pd
new file mode 100644
index 0000000..b1ec944
--- /dev/null
+++ b/puremapping/iir-help.pd
@@ -0,0 +1,35 @@
+#N canvas 386 71 683 513 10;
+#X floatatom 266 204 5 0 0 0 - - -;
+#X text 22 11 data;
+#X obj 27 172 t f f;
+#X msg 67 100 0;
+#X msg 68 121 1;
+#X obj 440 294 timeroll;
+#X obj 234 294 timeroll;
+#X obj 234 234 iir 5;
+#X obj 27 294 timeroll;
+#X obj 27 30 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5400 1;
+#X text 504 276 high-pass;
+#X text 240 276 low-pass;
+#X text 83 441 original;
+#X text 67 467 For more info on IIR:;
+#X obj 116 483 pddp/pddplink http://www.dspguru.com/info/faqs/iirfaq.htm
+;
+#X text 89 27 [iir] computes a infinite impulse response low-pass filter.
+;
+#X msg 234 124 reset;
+#X text 293 126 reset internal state;
+#X text 313 145 reset internal state to a specific value;
+#X msg 242 147 reset 0.3;
+#X text 322 203 ilter coef;
+#X connect 0 0 7 1;
+#X connect 2 0 8 0;
+#X connect 2 1 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 7 0 6 0;
+#X connect 7 1 5 0;
+#X connect 9 0 2 0;
+#X connect 16 0 7 0;
+#X connect 19 0 7 0;
diff --git a/puremapping/iir.pd b/puremapping/iir.pd
new file mode 100644
index 0000000..9c88c76
--- /dev/null
+++ b/puremapping/iir.pd
@@ -0,0 +1,47 @@
+#N canvas 246 155 413 448 10;
+#X obj 18 40 inlet;
+#X obj 159 396 outlet;
+#X obj 159 247 +;
+#X obj 230 240 + 1;
+#X obj 230 46 inlet;
+#X obj 230 183 1;
+#X obj 190 69 loadbang;
+#X obj 230 160 /;
+#X msg 230 139 1 \$1;
+#X obj 190 90 \$1;
+#X obj 190 112 sel 0;
+#X obj 159 285 / 2;
+#X obj 159 223 * 1;
+#X obj 246 348 -;
+#X obj 159 186 t f f;
+#X obj 159 315 t f f;
+#X obj 245 399 outlet;
+#X obj 245 373 * -1;
+#X obj 18 62 route float reset;
+#X obj 76 86 route float;
+#X msg 150 108 0;
+#X connect 0 0 18 0;
+#X connect 2 0 11 0;
+#X connect 3 0 11 1;
+#X connect 4 0 8 0;
+#X connect 5 0 3 0;
+#X connect 5 0 12 1;
+#X connect 6 0 9 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 10 0;
+#X connect 10 1 8 0;
+#X connect 11 0 2 1;
+#X connect 11 0 15 0;
+#X connect 12 0 2 0;
+#X connect 13 0 17 0;
+#X connect 14 0 12 0;
+#X connect 14 1 13 1;
+#X connect 15 0 1 0;
+#X connect 15 1 13 0;
+#X connect 17 0 16 0;
+#X connect 18 0 14 0;
+#X connect 18 1 19 0;
+#X connect 19 0 2 1;
+#X connect 19 1 20 0;
+#X connect 20 0 2 1;
diff --git a/puremapping/join-help.pd b/puremapping/join-help.pd
new file mode 100644
index 0000000..778cdc2
--- /dev/null
+++ b/puremapping/join-help.pd
@@ -0,0 +1,19 @@
+#N canvas 972 276 508 607 10;
+#X obj 82 37 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 82 208 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 161 208 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 82 399 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X floatatom 197 342 5 0 0 0 - - -;
+#X obj 82 175 disjoin 0.3;
+#X obj 82 368 join 0.3;
+#X connect 0 0 5 0;
+#X connect 1 0 6 0;
+#X connect 2 0 6 1;
+#X connect 4 0 6 2;
+#X connect 5 0 1 0;
+#X connect 5 1 2 0;
+#X connect 6 0 3 0;
diff --git a/puremapping/join.pd b/puremapping/join.pd
new file mode 100644
index 0000000..cb39d46
--- /dev/null
+++ b/puremapping/join.pd
@@ -0,0 +1,34 @@
+#N canvas 622 237 449 372 10;
+#X obj 32 14 inlet;
+#X obj 78 14 inlet;
+#X obj 32 295 outlet;
+#X obj 145 141 t b f;
+#X msg 145 163 1;
+#X obj 78 219 *;
+#X obj 135 15 inlet;
+#X obj 177 15 loadbang;
+#X obj 32 199 *;
+#X obj 78 260 +;
+#X obj 145 187 -;
+#X obj 135 105 f;
+#X obj 135 40 \$1;
+#X obj 135 60 sel 0;
+#X msg 135 83 0.5;
+#X connect 0 0 8 0;
+#X connect 1 0 5 0;
+#X connect 3 0 4 0;
+#X connect 3 1 10 1;
+#X connect 4 0 10 0;
+#X connect 5 0 9 0;
+#X connect 6 0 12 0;
+#X connect 7 0 12 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 10 0 5 1;
+#X connect 11 0 3 0;
+#X connect 11 0 8 1;
+#X connect 11 0 9 1;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 13 1 11 0;
+#X connect 14 0 11 0;
diff --git a/puremapping/last_n-help.pd b/puremapping/last_n-help.pd
new file mode 100644
index 0000000..72d2607
--- /dev/null
+++ b/puremapping/last_n-help.pd
@@ -0,0 +1,8 @@
+#N canvas 649 496 268 257 10;
+#X floatatom 40 56 5 0 0 0 - - -;
+#X floatatom 112 77 5 0 0 0 - - -;
+#X obj 40 155 print;
+#X obj 40 99 last_n 5;
+#X connect 0 0 3 0;
+#X connect 1 0 3 1;
+#X connect 3 0 2 0;
diff --git a/puremapping/last_n.pd b/puremapping/last_n.pd
new file mode 100644
index 0000000..8278ebc
--- /dev/null
+++ b/puremapping/last_n.pd
@@ -0,0 +1,25 @@
+#N canvas 263 138 723 395 10;
+#X obj 326 152 t f b;
+#X text 378 150 first reset (b) \, then set new length (f).;
+#X text 311 235 Right outlet is responsible to first fill the list
+;
+#X text 322 257 Left outlet then only lets the smaller list pass.;
+#X obj 180 223 list;
+#X obj 326 61 inlet;
+#X obj 180 189 inlet;
+#X obj 180 342 outlet;
+#X obj 180 268 list split \$1;
+#X obj 326 126 max 2;
+#X obj 342 82 loadbang;
+#X obj 342 103 \$1;
+#X connect 0 0 8 1;
+#X connect 0 1 4 1;
+#X connect 4 0 8 0;
+#X connect 5 0 9 0;
+#X connect 6 0 4 0;
+#X connect 8 0 4 1;
+#X connect 8 0 7 0;
+#X connect 8 2 4 1;
+#X connect 9 0 0 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
diff --git a/puremapping/listto-help.pd b/puremapping/listto-help.pd
new file mode 100644
index 0000000..477cbcb
--- /dev/null
+++ b/puremapping/listto-help.pd
@@ -0,0 +1,17 @@
+#N canvas 122 268 469 354 10;
+#X obj 60 211 listto;
+#X msg 60 92 1 2 3 4;
+#X obj 60 276 print list;
+#X obj 97 236 print end;
+#X text 45 49 separate a list into a stream of atoms;
+#X text 166 237 outputs a bang at the end of the list;
+#X msg 75 113 list uno dos tres quatro;
+#X msg 75 168 one two three four;
+#X text 191 168 must be a "list" \, so this doesn't work;
+#X obj 5 2 cnv 15 450 20 empty empty listto 2 11 1 18 -233017 -66577
+0;
+#X connect 0 0 2 0;
+#X connect 0 1 3 0;
+#X connect 1 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
diff --git a/puremapping/listto.pd b/puremapping/listto.pd
new file mode 100644
index 0000000..44aba17
--- /dev/null
+++ b/puremapping/listto.pd
@@ -0,0 +1,21 @@
+#N canvas 257 144 408 313 10;
+#X obj 25 18 inlet;
+#X obj 55 271 outlet;
+#X obj 330 269 outlet;
+#X obj 25 46 t b a;
+#X obj 55 230 list split 1;
+#X obj 55 154 until;
+#X obj 55 185 list append;
+#X obj 55 115 t b l;
+#X obj 170 186 bang;
+#X connect 0 0 3 0;
+#X connect 3 0 2 0;
+#X connect 3 1 7 0;
+#X connect 4 0 1 0;
+#X connect 4 1 6 1;
+#X connect 4 2 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 5 0;
+#X connect 7 1 6 1;
+#X connect 8 0 5 1;
diff --git a/puremapping/local_max-help.pd b/puremapping/local_max-help.pd
new file mode 100644
index 0000000..0c3c4b2
--- /dev/null
+++ b/puremapping/local_max-help.pd
@@ -0,0 +1,8 @@
+#N canvas 552 108 525 298 10;
+#X floatatom 22 86 5 0 0 0 - - -;
+#X floatatom 22 133 5 0 0 0 - - -;
+#X obj 22 109 local_max;
+#X text 49 27 give the value of every local maximum whenever there
+is a change in direction.;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/local_max.pd b/puremapping/local_max.pd
new file mode 100644
index 0000000..155e0f4
--- /dev/null
+++ b/puremapping/local_max.pd
@@ -0,0 +1,23 @@
+#N canvas 609 111 302 364 10;
+#X obj 50 244 f;
+#X obj 25 101 t f f;
+#X obj 50 139 -;
+#X obj 50 218 sel 0;
+#X obj 67 100 f;
+#X obj 25 62 t f f b;
+#X obj 50 191 change;
+#X obj 50 279 outlet;
+#X obj 25 22 inlet;
+#X obj 50 165 >= 0;
+#X connect 0 0 7 0;
+#X connect 1 0 2 1;
+#X connect 1 1 2 0;
+#X connect 2 0 9 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 1;
+#X connect 5 0 1 0;
+#X connect 5 1 4 1;
+#X connect 5 2 4 0;
+#X connect 6 0 3 0;
+#X connect 8 0 5 0;
+#X connect 9 0 6 0;
diff --git a/puremapping/local_min-help.pd b/puremapping/local_min-help.pd
new file mode 100644
index 0000000..49b3694
--- /dev/null
+++ b/puremapping/local_min-help.pd
@@ -0,0 +1,11 @@
+#N canvas 552 108 535 356 10;
+#X floatatom 48 102 5 0 0 0 - - -;
+#X floatatom 48 151 5 0 0 0 - - -;
+#X obj 48 125 local_min;
+#X obj 30 151 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 54 39 gives the value of every local minimum whenever there
+is a change in direction;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 2 0 3 0;
diff --git a/puremapping/local_min.pd b/puremapping/local_min.pd
new file mode 100644
index 0000000..2f6db60
--- /dev/null
+++ b/puremapping/local_min.pd
@@ -0,0 +1,23 @@
+#N canvas 552 108 250 310 10;
+#X obj 78 218 f;
+#X obj 53 69 t f f;
+#X obj 78 107 -;
+#X obj 78 192 sel 0;
+#X obj 94 69 f;
+#X obj 53 44 t f f b;
+#X obj 78 166 change;
+#X obj 78 243 outlet;
+#X obj 53 16 inlet;
+#X obj 78 140 <= 0;
+#X connect 0 0 7 0;
+#X connect 1 0 2 1;
+#X connect 1 1 2 0;
+#X connect 2 0 9 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 1;
+#X connect 5 0 1 0;
+#X connect 5 1 4 1;
+#X connect 5 2 4 0;
+#X connect 6 0 3 0;
+#X connect 8 0 5 0;
+#X connect 9 0 6 0;
diff --git a/puremapping/mapping2float-help.pd b/puremapping/mapping2float-help.pd
new file mode 100644
index 0000000..5f3a4e7
--- /dev/null
+++ b/puremapping/mapping2float-help.pd
@@ -0,0 +1,13 @@
+#N canvas 0 0 450 300 10;
+#X obj 46 23 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X floatatom 45 208 5 0 0 0 - - -;
+#X obj 46 168 mapping2float 20 30;
+#X text 122 25 convert 0 1 range to whatever float interval;
+#X floatatom 111 135 5 0 0 0 - - -;
+#X floatatom 176 135 5 0 0 0 - - -;
+#X text 230 136 set output range;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 4 0 2 1;
+#X connect 5 0 2 2;
diff --git a/puremapping/mapping2float.pd b/puremapping/mapping2float.pd
new file mode 100644
index 0000000..7e02c3d
--- /dev/null
+++ b/puremapping/mapping2float.pd
@@ -0,0 +1,24 @@
+#N canvas 796 236 280 351 10;
+#X obj 32 32 inlet;
+#X obj 32 273 outlet;
+#X obj 93 31 inlet;
+#X obj 148 32 inlet;
+#X text 113 57 min;
+#X text 167 51 max;
+#X obj 93 112 t b f;
+#X obj 93 164 - \$1;
+#X obj 93 138 \$2;
+#X obj 133 81 loadbang;
+#X obj 32 205 *;
+#X obj 32 235 + \$1;
+#X connect 0 0 10 0;
+#X connect 2 0 6 0;
+#X connect 2 0 11 1;
+#X connect 3 0 8 0;
+#X connect 6 0 8 0;
+#X connect 6 1 7 1;
+#X connect 7 0 10 1;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
diff --git a/puremapping/max_n-help.pd b/puremapping/max_n-help.pd
new file mode 100644
index 0000000..144e7cf
--- /dev/null
+++ b/puremapping/max_n-help.pd
@@ -0,0 +1,29 @@
+#N canvas 397 193 534 486 10;
+#X text 41 58 data;
+#X obj 40 155 t f f;
+#X msg 57 120 0;
+#X floatatom 271 249 5 0 0 0 - - -;
+#X floatatom 318 197 5 2 150 0 - - -;
+#X text 366 195 size: n (n>=2);
+#X text 51 32 min_n return the minimum from the last n (n>1) values
+;
+#X msg 85 120 1;
+#X msg 118 120 0.5;
+#X obj 40 271 timeroll;
+#X obj 246 271 timeroll;
+#X obj 43 75 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -262130
+-1 -1 0 1;
+#X floatatom 48 96 5 0 0 0 - - -;
+#X obj 246 219 max_n 20;
+#X obj 5 2 cnv 15 450 20 empty empty max_n 2 11 1 18 -233017 -66577
+0;
+#X connect 1 0 9 0;
+#X connect 1 1 13 0;
+#X connect 2 0 1 0;
+#X connect 4 0 13 1;
+#X connect 7 0 1 0;
+#X connect 8 0 1 0;
+#X connect 11 0 12 0;
+#X connect 11 0 1 0;
+#X connect 13 0 3 0;
+#X connect 13 0 10 0;
diff --git a/puremapping/max_n.pd b/puremapping/max_n.pd
new file mode 100644
index 0000000..748787d
--- /dev/null
+++ b/puremapping/max_n.pd
@@ -0,0 +1,98 @@
+#N canvas 257 252 462 312 10;
+#X obj 64 57 inlet;
+#X obj 144 57 inlet;
+#X obj 64 207 outlet;
+#X obj 64 148 last_n \$1;
+#N canvas 0 0 703 492 list-maximum 0;
+#X obj 129 120 route float;
+#X obj 106 366 f;
+#X obj 106 393 outlet;
+#X obj 106 10 inlet;
+#N canvas 0 0 450 300 once 0;
+#X obj 110 75 inlet;
+#X obj 105 187 spigot 1;
+#X obj 110 104 t b f;
+#X msg 125 151 0;
+#X msg 165 99 1;
+#X obj 165 63 inlet;
+#X obj 102 219 outlet;
+#X connect 0 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 2 1 1 0;
+#X connect 3 0 1 1;
+#X connect 4 0 1 1;
+#X connect 5 0 4 0;
+#X restore 263 183 pd once;
+#X obj 276 258 f;
+#X obj 245 257 max;
+#X obj 129 150 t a a a;
+#X obj 106 30 t b a b;
+#X text 324 183 prime [min] and [max] with first item once;
+#N canvas 0 0 450 300 list-drip 0;
+#X obj 63 84 t a a;
+#X obj 63 241 spigot;
+#X obj 102 149 bang;
+#X obj 102 168 1;
+#X obj 223 149 route bang;
+#X obj 183 150 bang;
+#X obj 183 169 0;
+#X obj 102 114 list split 2;
+#X obj 232 379 list split;
+#X obj 299 328 list length;
+#X obj 299 350 >> 1;
+#X obj 63 260 t a a a a;
+#X obj 63 446 list split;
+#X obj 130 398 list length;
+#X obj 130 423 >> 1;
+#X obj 31 19 inlet;
+#X obj 290 175 outlet;
+#X text 73 19 Copyright 2009 by Mathieu Bouchard;
+#X obj 31 53 t b a;
+#X obj 465 119 outlet;
+#X text 520 121 signal end of list;
+#X text 381 23 made compatible with [list-drip]: fbar 2009;
+#X connect 0 0 1 0;
+#X connect 0 1 7 0;
+#X connect 1 0 11 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 1 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 1;
+#X connect 7 0 2 0;
+#X connect 7 2 4 0;
+#X connect 7 2 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 8 0;
+#X connect 11 3 9 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 1;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 0 0;
+#X restore 129 97 pd list-drip;
+#X text 427 286 from foobar/list-abs;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 3 0 8 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 1;
+#X connect 6 0 5 0;
+#X connect 6 0 1 1;
+#X connect 7 1 6 0;
+#X connect 7 2 4 0;
+#X connect 8 0 1 0;
+#X connect 8 1 10 0;
+#X connect 8 2 4 1;
+#X connect 10 0 0 0;
+#X restore 64 179 pd list-maximum;
+#X connect 0 0 3 0;
+#X connect 1 0 3 1;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
diff --git a/puremapping/mean_n-help.pd b/puremapping/mean_n-help.pd
new file mode 100644
index 0000000..6c2697b
--- /dev/null
+++ b/puremapping/mean_n-help.pd
@@ -0,0 +1,31 @@
+#N canvas 423 121 821 592 10;
+#X obj 68 174 t f f;
+#X floatatom 338 197 5 0 0 0 - - -;
+#X text 333 174 order: n;
+#X text 49 37 Fir_mean_n computes a fir low pass mean filter of order
+n;
+#X obj 499 307 -;
+#X floatatom 68 126 5 0 1 0 - - -;
+#X obj 68 148 resample 30;
+#X obj 68 336 timeroll;
+#X obj 280 336 timeroll;
+#X obj 499 335 timeroll;
+#X obj 280 220 mean_n 25;
+#X msg 280 148 mode \$1;
+#X obj 280 125 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 310 131 mode 1 : slow \, but accurate;
+#X text 310 115 mode 0 (defult) : fast but inanuracy can grow with
+time;
+#X text 541 304 high pass;
+#X connect 0 0 4 0;
+#X connect 0 0 7 0;
+#X connect 0 1 10 0;
+#X connect 1 0 10 1;
+#X connect 4 0 9 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 10 0 4 1;
+#X connect 10 0 8 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
diff --git a/puremapping/mean_n.pd b/puremapping/mean_n.pd
new file mode 100644
index 0000000..7e40f60
--- /dev/null
+++ b/puremapping/mean_n.pd
@@ -0,0 +1,80 @@
+#N canvas 18 293 477 444 10;
+#N canvas 0 0 450 300 mean1 0;
+#X obj 46 26 inlet;
+#X obj 125 26 inlet;
+#X obj 46 357 outlet;
+#X obj 62 190 list split 1;
+#X obj 101 213 list;
+#X obj 62 238 +;
+#X obj 62 263 f;
+#X obj 46 145 t b a b;
+#X msg 90 169 0;
+#X obj 46 290 f;
+#X obj 46 323 / \$1;
+#X obj 46 117 last_n \$1;
+#X connect 0 0 11 0;
+#X connect 1 0 10 1;
+#X connect 1 0 11 1;
+#X connect 3 0 5 0;
+#X connect 3 1 4 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 5 1;
+#X connect 6 0 9 1;
+#X connect 7 0 9 0;
+#X connect 7 1 3 0;
+#X connect 7 2 8 0;
+#X connect 8 0 5 1;
+#X connect 9 0 10 0;
+#X connect 10 0 2 0;
+#X connect 11 0 7 0;
+#X restore 115 244 pd mean1;
+#N canvas 0 0 450 300 mean2 0;
+#X obj 60 12 inlet;
+#X obj 55 239 outlet;
+#X obj 85 119 delay_n \$1;
+#X obj 55 120 +;
+#X obj 55 145 -;
+#X obj 54 172 / \$1;
+#X obj 152 15 inlet;
+#X obj 59 37 t f f f;
+#X obj 55 202 t f f;
+#X msg 148 64 0;
+#X obj 151 37 t b f;
+#X connect 0 0 7 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 0;
+#X connect 4 0 3 1;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 10 0;
+#X connect 7 0 3 0;
+#X connect 7 1 2 0;
+#X connect 8 0 1 0;
+#X connect 9 0 3 1;
+#X connect 9 0 4 1;
+#X connect 10 0 9 0;
+#X connect 10 1 2 1;
+#X connect 10 1 5 1;
+#X restore 202 245 pd mean2;
+#X obj 50 17 inlet;
+#X obj 50 45 route mode;
+#X obj 166 133 == 1;
+#X obj 253 134 == 0;
+#X obj 179 22 inlet;
+#X obj 115 305 outlet;
+#X obj 115 171 spigot 0;
+#X obj 202 173 spigot 1;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 5 0;
+#X connect 3 1 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 8 1;
+#X connect 5 0 9 1;
+#X connect 6 0 0 1;
+#X connect 6 0 1 1;
+#X connect 8 0 0 0;
+#X connect 9 0 1 0;
diff --git a/puremapping/median_3-help.pd b/puremapping/median_3-help.pd
new file mode 100644
index 0000000..ba99235
--- /dev/null
+++ b/puremapping/median_3-help.pd
@@ -0,0 +1,7 @@
+#N canvas 28 3 711 500 12;
+#X floatatom 88 202 5 0 0 0 - - -;
+#X floatatom 94 264 5 0 0 0 - - -;
+#X obj 95 234 median_3;
+#X text 238 31 output the median value of the 3 last samples;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/median_3.pd b/puremapping/median_3.pd
new file mode 100644
index 0000000..ecce80b
--- /dev/null
+++ b/puremapping/median_3.pd
@@ -0,0 +1,34 @@
+#N canvas 260 82 799 525 10;
+#X obj 74 53 inlet;
+#X obj 111 435 outlet;
+#X obj 228 312 max;
+#X obj 168 285 min;
+#X obj 95 341 max;
+#X obj 111 368 min;
+#X text 341 167 on classe les 2 plus vieux nombres;
+#X text 339 184 du plus petit au plus grand;
+#X text 361 36 principe du median 3 : classer les 3 dernieres mesures
+de la plus petite valeur a la plus grande valeur et renvoyer la 2 ieme
+valeur (appelee mediane) de la liste (dans cette liste classee de 3
+elements \, 1 est plus petit que la mediane et 1 est plus grand);
+#X text 332 300 Francis Bras;
+#X text 334 329 interface-z.com;
+#X obj 88 112 trigger float bang bang;
+#X obj 89 140 float;
+#X obj 167 191 float;
+#X obj 244 251 float;
+#X connect 0 0 11 0;
+#X connect 2 0 5 1;
+#X connect 3 0 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 1 0;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 14 0;
+#X connect 12 0 4 0;
+#X connect 12 0 13 1;
+#X connect 13 0 3 0;
+#X connect 13 0 2 0;
+#X connect 13 0 14 1;
+#X connect 14 0 3 1;
+#X connect 14 0 2 1;
diff --git a/puremapping/median_5-help.pd b/puremapping/median_5-help.pd
new file mode 100644
index 0000000..d56431e
--- /dev/null
+++ b/puremapping/median_5-help.pd
@@ -0,0 +1,7 @@
+#N canvas 28 3 711 500 12;
+#X floatatom 88 202 5 0 0 0 - - -;
+#X floatatom 94 264 5 0 0 0 - - -;
+#X obj 94 234 median_5;
+#X text 187 44 output median value of the last 5 samples;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/median_5.pd b/puremapping/median_5.pd
new file mode 100644
index 0000000..f30723e
--- /dev/null
+++ b/puremapping/median_5.pd
@@ -0,0 +1,72 @@
+#N canvas 0 0 711 500 12;
+#X obj 47 19 inlet;
+#X obj 133 172 max;
+#X obj 107 172 min;
+#X obj 81 312 min;
+#X obj 34 100 t f b b b b;
+#X obj 116 208 max;
+#X obj 78 236 min;
+#X obj 92 279 max;
+#X obj 134 236 max;
+#X obj 106 236 min;
+#X obj 120 279 max;
+#X obj 109 312 min;
+#X obj 96 379 min;
+#X obj 76 345 max;
+#X obj 95 422 outlet;
+#X text 137 312 max;
+#X text 54 312 min;
+#X text 175 315 les 2 extremes n ont plus d influence;
+#X obj 24 138 f;
+#X obj 51 138 f;
+#X obj 77 138 f;
+#X obj 103 138 f;
+#X obj 130 138 f;
+#X text 474 315 donc on ne les calcule pas;
+#X text 138 300 les 4 plus anciens classes;
+#X text 165 236 les 3 plus anciens classes du petit au grand;
+#X text 170 172 les deux plus anciens classes;
+#X text 145 351 il reste a tester la mesure la plus recente pour garder
+au final la valeur du milieu.;
+#X text 221 42 principe du median 5 : classer les 5 dernieres mesures
+de la plus petite valeur a la plus grande valeur et renvoyer la 3 ieme
+valeur (appelee mediane) de la liste (dans cette liste classee de 5
+elements \, 2 sont plus petits que la mediane et 2 sont plus grands)
+;
+#X text 470 426 Francis Bras;
+#X text 472 455 interface-z.com;
+#X connect 0 0 4 0;
+#X connect 1 0 9 1;
+#X connect 1 0 8 1;
+#X connect 2 0 6 1;
+#X connect 2 0 5 1;
+#X connect 3 0 13 1;
+#X connect 4 0 18 0;
+#X connect 4 1 19 0;
+#X connect 4 2 20 0;
+#X connect 4 3 21 0;
+#X connect 4 4 22 0;
+#X connect 5 0 9 0;
+#X connect 5 0 8 0;
+#X connect 6 0 7 1;
+#X connect 7 0 3 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 1;
+#X connect 9 0 3 1;
+#X connect 9 0 10 1;
+#X connect 10 0 11 0;
+#X connect 11 0 12 1;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 18 0 13 0;
+#X connect 18 0 19 1;
+#X connect 19 0 7 0;
+#X connect 19 0 20 1;
+#X connect 20 0 5 0;
+#X connect 20 0 6 0;
+#X connect 20 0 21 1;
+#X connect 21 0 2 0;
+#X connect 21 0 1 0;
+#X connect 21 0 22 1;
+#X connect 22 0 2 1;
+#X connect 22 0 1 1;
diff --git a/puremapping/median_7-help.pd b/puremapping/median_7-help.pd
new file mode 100644
index 0000000..1908e41
--- /dev/null
+++ b/puremapping/median_7-help.pd
@@ -0,0 +1,7 @@
+#N canvas 28 3 711 500 12;
+#X floatatom 88 202 5 0 0 0 - - -;
+#X floatatom 94 264 5 0 0 0 - - -;
+#X obj 95 234 median_7;
+#X text 131 39 output median value of the last 7 samples;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/puremapping/median_7.pd b/puremapping/median_7.pd
new file mode 100644
index 0000000..47e654a
--- /dev/null
+++ b/puremapping/median_7.pd
@@ -0,0 +1,120 @@
+#N canvas 0 0 784 546 12;
+#X obj 36 18 inlet;
+#X obj 166 178 max;
+#X obj 139 178 min;
+#X obj 113 289 min;
+#X obj 125 205 max;
+#X obj 113 235 min;
+#X obj 97 263 max;
+#X obj 168 235 max;
+#X obj 140 235 min;
+#X obj 152 263 max;
+#X obj 141 289 min;
+#X obj 74 319 max;
+#X obj 103 471 outlet;
+#X obj 14 98 t f b b b b b b;
+#X obj 85 289 min;
+#X obj 169 289 max;
+#X obj 86 351 min;
+#X obj 128 319 max;
+#X obj 114 351 min;
+#X obj 157 319 max;
+#X obj 142 351 min;
+#X text 55 351 min;
+#X text 173 351 max;
+#X obj 103 381 max;
+#X obj 85 410 min;
+#X obj 132 381 max;
+#X obj 113 410 min;
+#X obj 73 446 max;
+#X obj 101 446 min;
+#X obj 0 132 f;
+#X obj 27 132 f;
+#X obj 54 132 f;
+#X obj 81 132 f;
+#X obj 108 132 f;
+#X obj 135 132 f;
+#X obj 162 132 f;
+#X text 197 177 les deux plus anciens classes;
+#X text 200 234 les 3 plus anciens classes du petit au grand;
+#X text 202 289 les 4 plus anciens classes du petit au grand;
+#X text 142 410 max1;
+#X text 178 410 max2;
+#X text 18 410 min1;
+#X text 53 410 min2;
+#X text 211 351 les 5 plus anciens classes du petit au grand;
+#X text 217 411 les 6 plus anciens classes du petit au grand;
+#X text 184 372 les 2 extremes n ont plus d influence donc on ne cherche
+pas a les identifier;
+#X text 184 426 les 4 extremes n ont plus d influence donc on ne calcule
+pas leur position relative et on ne les identifie pas;
+#X text 264 33 principe du median 7 : classer les 7 dernieres mesures
+de la plus petite valeur a la plus grande valeur et renvoyer la 4 ieme
+valeur (appelee mediane) de la liste (dans cette liste classee de 7
+elements \, 3 sont plus petits que la mediane et 3 sont plus grands)
+;
+#X text 535 463 Francis Bras;
+#X text 537 492 interface-z.com;
+#X connect 0 0 13 0;
+#X connect 1 0 8 1;
+#X connect 1 0 7 1;
+#X connect 2 0 5 1;
+#X connect 2 0 4 1;
+#X connect 3 0 16 1;
+#X connect 3 0 17 1;
+#X connect 4 0 8 0;
+#X connect 4 0 7 0;
+#X connect 5 0 6 1;
+#X connect 5 0 14 1;
+#X connect 6 0 3 0;
+#X connect 6 0 9 0;
+#X connect 7 0 10 1;
+#X connect 7 0 15 1;
+#X connect 8 0 3 1;
+#X connect 8 0 9 1;
+#X connect 9 0 10 0;
+#X connect 9 0 15 0;
+#X connect 10 0 18 1;
+#X connect 10 0 19 1;
+#X connect 11 0 16 0;
+#X connect 11 0 17 0;
+#X connect 13 0 29 0;
+#X connect 13 1 30 0;
+#X connect 13 2 31 0;
+#X connect 13 3 32 0;
+#X connect 13 4 33 0;
+#X connect 13 5 34 0;
+#X connect 13 6 35 0;
+#X connect 14 0 11 1;
+#X connect 15 0 20 1;
+#X connect 16 0 23 1;
+#X connect 17 0 18 0;
+#X connect 17 0 19 0;
+#X connect 18 0 24 1;
+#X connect 18 0 25 1;
+#X connect 19 0 20 0;
+#X connect 20 0 26 1;
+#X connect 23 0 24 0;
+#X connect 23 0 25 0;
+#X connect 24 0 27 1;
+#X connect 25 0 26 0;
+#X connect 26 0 28 1;
+#X connect 27 0 28 0;
+#X connect 28 0 12 0;
+#X connect 29 0 27 0;
+#X connect 29 0 30 1;
+#X connect 30 0 23 0;
+#X connect 30 0 31 1;
+#X connect 31 0 11 0;
+#X connect 31 0 32 1;
+#X connect 32 0 6 0;
+#X connect 32 0 14 0;
+#X connect 32 0 33 1;
+#X connect 33 0 4 0;
+#X connect 33 0 5 0;
+#X connect 33 0 34 1;
+#X connect 34 0 2 0;
+#X connect 34 0 1 0;
+#X connect 34 0 35 1;
+#X connect 35 0 2 1;
+#X connect 35 0 1 1;
diff --git a/puremapping/median_n-help.pd b/puremapping/median_n-help.pd
new file mode 100644
index 0000000..73600ed
--- /dev/null
+++ b/puremapping/median_n-help.pd
@@ -0,0 +1,10 @@
+#N canvas 198 49 524 276 12;
+#X floatatom 50 110 5 0 0 0 - - -;
+#X floatatom 50 163 5 0 0 0 - - -;
+#X text 44 20 output median value of the last n samples;
+#X text 46 39 n must be odd;
+#X obj 50 133 median_n 5;
+#X msg 127 83 2 \, 3 \, 4 \, 5 \, 6 \, 7 \, 8;
+#X connect 0 0 4 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
diff --git a/puremapping/median_n.pd b/puremapping/median_n.pd
new file mode 100644
index 0000000..45fe7eb
--- /dev/null
+++ b/puremapping/median_n.pd
@@ -0,0 +1,257 @@
+#N canvas 609 51 652 617 10;
+#X obj 52 30 inlet;
+#X obj 364 33 inlet;
+#X obj 85 401 outlet;
+#X obj 364 98 \$1;
+#X obj 383 73 loadbang;
+#X obj 364 142 i;
+#X obj 364 166 max 1;
+#X obj 364 186 * 2;
+#X obj 364 119 / 2;
+#X obj 364 207 + 1;
+#N canvas 225 25 822 600 list_sort 0;
+#X obj 129 310 list split 1;
+#X obj 163 331 list split 1;
+#X obj 129 373 list append;
+#X obj 57 347 list;
+#X obj 57 287 > 0;
+#X obj 150 472 outlet;
+#X obj 57 308 sel 1 0;
+#X obj 163 49 inlet;
+#X text 55 513 2008 Michal Seta;
+#X obj 233 393 list prepend;
+#X obj 150 450 list append;
+#X obj 452 140 loadbang;
+#X obj 387 52 inlet;
+#N canvas 0 0 552 424 mux 0;
+#X obj 40 52 inlet;
+#X obj 153 52 inlet;
+#X obj 255 49 inlet;
+#X obj 40 266 spigot 1;
+#X obj 153 266 spigot;
+#X obj 255 223 unpack 0 0;
+#X msg 255 177 1 0;
+#X msg 306 195 0 1;
+#X obj 357 92 select 0;
+#X obj 255 70 select asc desc;
+#X obj 40 317 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 4 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 4 0 10 0;
+#X connect 5 0 3 1;
+#X connect 5 1 4 1;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 6 0;
+#X connect 8 1 7 0;
+#X connect 9 0 6 0;
+#X connect 9 1 7 0;
+#X connect 9 2 8 0;
+#X restore 200 252 pd mux;
+#X obj 387 201 list append \$1;
+#X obj 387 171 t b a;
+#X obj 330 392 t a;
+#X obj 163 163 t a a a a b;
+#X obj 163 120 t a b;
+#X text 292 283 [list-sort] sort an incoming list of numerical values
+in an ascending or descending order;
+#N canvas 294 34 842 667 minmaxpos 0;
+#X obj 128 120 route float;
+#X obj 159 256 f;
+#X obj 106 664 outlet;
+#X obj 165 639 f;
+#X obj 165 666 outlet;
+#X obj 106 575 t b b;
+#X obj 106 10 inlet;
+#X obj 106 636 f;
+#N canvas 0 0 450 300 once 0;
+#X obj 110 75 inlet;
+#X obj 105 187 spigot 1;
+#X obj 110 104 t b f;
+#X msg 125 151 0;
+#X msg 165 99 1;
+#X obj 165 63 inlet;
+#X obj 102 219 outlet;
+#X connect 0 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 2 1 1 0;
+#X connect 3 0 1 1;
+#X connect 4 0 1 1;
+#X connect 5 0 4 0;
+#X restore 262 183 pd once;
+#X obj 275 258 f;
+#X obj 244 257 max;
+#X obj 128 256 min;
+#X text 323 183 prime [min] and [max] with first item once;
+#N canvas 0 0 450 300 count 0;
+#X obj 120 148 f 0;
+#X obj 148 149 + 1;
+#X obj 163 100 0;
+#X obj 117 24 inlet;
+#X obj 119 176 outlet;
+#X obj 181 25 inlet;
+#X obj 114 47 b;
+#X connect 0 0 1 0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 1;
+#X connect 2 0 0 1;
+#X connect 3 0 6 0;
+#X connect 5 0 2 0;
+#X connect 6 0 0 0;
+#X restore 168 371 pd count;
+#X obj 128 470 change;
+#X obj 244 472 change;
+#X obj 128 527 f;
+#X obj 244 525 f;
+#X obj 128 495 b;
+#X obj 244 496 b;
+#X msg 429 356 set \$1;
+#X msg 601 357 0;
+#X obj 106 30 t b a b b;
+#X obj 128 150 t a a b a;
+#X text 637 358 reset positions;
+#X text 483 356 set change;
+#X text 302 475 if min or max changes \, store the new positions.;
+#X text 227 24 output positions of min and max float in a list (zero-based)
+;
+#N canvas 0 0 450 300 list-drip 0;
+#X obj 63 84 t a a;
+#X obj 63 241 spigot;
+#X obj 102 149 bang;
+#X obj 102 168 1;
+#X obj 223 149 route bang;
+#X obj 183 150 bang;
+#X obj 183 169 0;
+#X obj 102 114 list split 2;
+#X obj 232 379 list split;
+#X obj 299 328 list length;
+#X obj 299 350 >> 1;
+#X obj 63 260 t a a a a;
+#X obj 63 446 list split;
+#X obj 130 398 list length;
+#X obj 130 423 >> 1;
+#X obj 31 19 inlet;
+#X obj 290 175 outlet;
+#X text 73 19 Copyright 2009 by Mathieu Bouchard;
+#X obj 31 53 t b a;
+#X obj 465 119 outlet;
+#X text 520 121 signal end of list;
+#X text 381 23 made compatible with [list-drip]: fbar 2009;
+#X connect 0 0 1 0;
+#X connect 0 1 7 0;
+#X connect 1 0 11 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 1 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 1;
+#X connect 7 0 2 0;
+#X connect 7 2 4 0;
+#X connect 7 2 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 8 0;
+#X connect 11 3 9 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 1;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 0 0;
+#X restore 128 97 pd list-drip;
+#X connect 0 0 23 0;
+#X connect 1 0 11 1;
+#X connect 3 0 4 0;
+#X connect 5 0 7 0;
+#X connect 5 1 3 0;
+#X connect 6 0 22 0;
+#X connect 7 0 2 0;
+#X connect 8 0 10 1;
+#X connect 8 0 11 1;
+#X connect 8 0 20 0;
+#X connect 8 0 21 0;
+#X connect 9 0 10 1;
+#X connect 10 0 9 0;
+#X connect 10 0 15 0;
+#X connect 11 0 1 0;
+#X connect 11 0 14 0;
+#X connect 13 0 17 1;
+#X connect 13 0 16 1;
+#X connect 14 0 18 0;
+#X connect 15 0 19 0;
+#X connect 16 0 7 1;
+#X connect 17 0 3 1;
+#X connect 18 0 16 0;
+#X connect 19 0 17 0;
+#X connect 20 0 15 0;
+#X connect 20 0 14 0;
+#X connect 21 0 3 1;
+#X connect 21 0 7 1;
+#X connect 22 0 5 0;
+#X connect 22 1 28 0;
+#X connect 22 2 13 1;
+#X connect 22 3 8 1;
+#X connect 23 0 11 0;
+#X connect 23 1 10 0;
+#X connect 23 2 13 0;
+#X connect 23 3 8 0;
+#X connect 28 0 0 0;
+#X restore 200 215 pd minmaxpos;
+#X obj 57 260 list length;
+#X obj 57 236 list;
+#X connect 0 0 2 0;
+#X connect 0 1 1 0;
+#X connect 1 0 9 0;
+#X connect 1 1 2 1;
+#X connect 2 0 3 1;
+#X connect 3 0 17 0;
+#X connect 4 0 6 0;
+#X connect 6 0 3 0;
+#X connect 6 1 10 0;
+#X connect 7 0 18 0;
+#X connect 9 0 10 1;
+#X connect 9 0 16 0;
+#X connect 10 0 5 0;
+#X connect 11 0 14 0;
+#X connect 12 0 15 0;
+#X connect 13 0 0 1;
+#X connect 14 0 13 2;
+#X connect 15 0 14 0;
+#X connect 15 1 14 1;
+#X connect 16 0 9 1;
+#X connect 17 0 22 0;
+#X connect 17 1 0 0;
+#X connect 17 2 20 0;
+#X connect 18 0 17 0;
+#X connect 18 1 9 1;
+#X connect 20 0 13 0;
+#X connect 20 1 13 1;
+#X connect 21 0 4 0;
+#X connect 22 0 21 0;
+#X restore 52 156 pd list_sort;
+#X obj 85 375 list trim;
+#X obj 52 322 list split;
+#X obj 85 347 list split 1;
+#X obj 52 83 last_n;
+#X text 113 464 based on Alexandre Quessy object;
+#X connect 0 0 14 0;
+#X connect 1 0 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 0 12 1;
+#X connect 7 0 9 0;
+#X connect 8 0 5 0;
+#X connect 9 0 14 1;
+#X connect 10 0 12 0;
+#X connect 11 0 2 0;
+#X connect 12 1 13 0;
+#X connect 13 0 11 0;
+#X connect 14 0 10 0;
diff --git a/puremapping/min_n-help.pd b/puremapping/min_n-help.pd
new file mode 100644
index 0000000..6c94b4b
--- /dev/null
+++ b/puremapping/min_n-help.pd
@@ -0,0 +1,29 @@
+#N canvas 397 193 534 486 10;
+#X text 41 58 data;
+#X obj 40 155 t f f;
+#X msg 57 120 0;
+#X floatatom 271 249 5 0 0 0 - - -;
+#X floatatom 318 197 5 2 150 0 - - -;
+#X text 366 195 size: n (n>=2);
+#X text 51 32 min_n return the minimum from the last n (n>1) values
+;
+#X msg 85 120 1;
+#X msg 118 120 0.5;
+#X obj 40 271 timeroll;
+#X obj 246 271 timeroll;
+#X obj 246 219 min_n 20;
+#X obj 43 75 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -262144
+-1 -1 6400 1;
+#X floatatom 48 96 5 0 0 0 - - -;
+#X obj 5 2 cnv 15 450 20 empty empty min_n 2 11 1 18 -233017 -66577
+0;
+#X connect 1 0 9 0;
+#X connect 1 1 11 0;
+#X connect 2 0 1 0;
+#X connect 4 0 11 1;
+#X connect 7 0 1 0;
+#X connect 8 0 1 0;
+#X connect 11 0 3 0;
+#X connect 11 0 10 0;
+#X connect 12 0 13 0;
+#X connect 12 0 1 0;
diff --git a/puremapping/min_n.pd b/puremapping/min_n.pd
new file mode 100644
index 0000000..57c1fe6
--- /dev/null
+++ b/puremapping/min_n.pd
@@ -0,0 +1,98 @@
+#N canvas 26 291 365 247 10;
+#X obj 64 175 outlet;
+#X obj 64 27 inlet;
+#X obj 144 26 inlet;
+#N canvas 0 0 703 492 list-minimum 0;
+#X obj 129 120 route float;
+#X obj 106 366 f;
+#X obj 106 393 outlet;
+#X obj 106 10 inlet;
+#N canvas 0 0 450 300 once 0;
+#X obj 110 75 inlet;
+#X obj 105 187 spigot 1;
+#X obj 110 104 t b f;
+#X msg 125 151 0;
+#X msg 165 99 1;
+#X obj 165 63 inlet;
+#X obj 102 219 outlet;
+#X connect 0 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 2 1 1 0;
+#X connect 3 0 1 1;
+#X connect 4 0 1 1;
+#X connect 5 0 4 0;
+#X restore 263 183 pd once;
+#X obj 276 258 f;
+#X obj 129 150 t a a a;
+#X obj 106 30 t b a b;
+#X text 324 183 prime [min] and [max] with first item once;
+#N canvas 0 0 450 300 list-drip 0;
+#X obj 63 84 t a a;
+#X obj 63 241 spigot;
+#X obj 102 149 bang;
+#X obj 102 168 1;
+#X obj 223 149 route bang;
+#X obj 183 150 bang;
+#X obj 183 169 0;
+#X obj 102 114 list split 2;
+#X obj 232 379 list split;
+#X obj 299 328 list length;
+#X obj 299 350 >> 1;
+#X obj 63 260 t a a a a;
+#X obj 63 446 list split;
+#X obj 130 398 list length;
+#X obj 130 423 >> 1;
+#X obj 31 19 inlet;
+#X obj 290 175 outlet;
+#X text 73 19 Copyright 2009 by Mathieu Bouchard;
+#X obj 31 53 t b a;
+#X obj 465 119 outlet;
+#X text 520 121 signal end of list;
+#X text 381 23 made compatible with [list-drip]: fbar 2009;
+#X connect 0 0 1 0;
+#X connect 0 1 7 0;
+#X connect 1 0 11 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 1 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 1;
+#X connect 7 0 2 0;
+#X connect 7 2 4 0;
+#X connect 7 2 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 11 2 8 0;
+#X connect 11 3 9 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 1;
+#X connect 15 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 0 0;
+#X restore 129 97 pd list-drip;
+#X text 427 286 from foobar/list-abs;
+#X obj 245 257 min;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 3 0 7 0;
+#X connect 4 0 11 1;
+#X connect 5 0 11 1;
+#X connect 6 1 11 0;
+#X connect 6 2 4 0;
+#X connect 7 0 1 0;
+#X connect 7 1 9 0;
+#X connect 7 2 4 1;
+#X connect 9 0 0 0;
+#X connect 11 0 5 0;
+#X connect 11 0 1 1;
+#X restore 64 146 pd list-minimum;
+#X obj 64 118 last_n \$1;
+#X connect 1 0 4 0;
+#X connect 2 0 4 1;
+#X connect 3 0 0 0;
+#X connect 4 0 3 0;
diff --git a/puremapping/multi_slider-help.pd b/puremapping/multi_slider-help.pd
new file mode 100644
index 0000000..be340e5
--- /dev/null
+++ b/puremapping/multi_slider-help.pd
@@ -0,0 +1,25 @@
+#N canvas 0 0 703 472 10;
+#X obj 36 -76 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6000 1;
+#X obj 36 64 last_n 30;
+#X obj 36 112 multi_slider 30;
+#X obj 244 -77 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 3100 1;
+#X obj 244 111 multi_slider 3;
+#X obj 244 87 pack f f f;
+#X obj 276 57 t b f;
+#X obj 276 -77 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 9800 1;
+#X obj 317 57 t b f;
+#X obj 317 -77 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4600 1;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 5 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 6 1 5 1;
+#X connect 7 0 6 0;
+#X connect 8 0 5 0;
+#X connect 8 1 5 2;
+#X connect 9 0 8 0;
diff --git a/puremapping/multi_slider.pd b/puremapping/multi_slider.pd
new file mode 100644
index 0000000..c606969
--- /dev/null
+++ b/puremapping/multi_slider.pd
@@ -0,0 +1,26 @@
+#N canvas 481 123 719 206 10;
+#N canvas 0 0 450 300 graph2 0;
+#X array \$0-_ 8 float 2;
+#X coords 0 0.77 8 -0.01 200 100 1;
+#X restore 10 55 graph;
+#X obj 272 14 inlet;
+#X obj 388 13 inlet;
+#X obj 388 124 pack f \$0;
+#X obj 272 142 s \$0-_;
+#X msg 388 151 \; \$2-_ resize \$1;
+#X text 315 14 data;
+#X text 430 15 size of the array (default = 100);
+#X obj 272 72 list prepend 0;
+#X obj 418 78 \$1;
+#X obj 418 99 max 2;
+#X obj 418 55 loadbang;
+#X obj 11 29 cnv 15 198 125 empty empty empty 20 12 0 14 -262144 -66577
+0;
+#X connect 1 0 8 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 8 0 4 0;
+#X connect 9 0 10 0;
+#X connect 10 0 3 0;
+#X connect 11 0 9 0;
+#X coords 0 -1 1 1 200 145 1 10 10;
diff --git a/puremapping/oscillo-help.pd b/puremapping/oscillo-help.pd
new file mode 100644
index 0000000..b8b107b
--- /dev/null
+++ b/puremapping/oscillo-help.pd
@@ -0,0 +1,10 @@
+#N canvas 0 0 293 276 10;
+#X obj 5 6 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144 -1
+-1 11900 1;
+#X floatatom 43 -78 5 0 0 0 - - -;
+#X text 89 -80 from 0 to 1;
+#X obj 43 -60 resample 30;
+#X obj 43 -10 oscillo;
+#X connect 0 0 3 0;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
diff --git a/puremapping/oscillo.pd b/puremapping/oscillo.pd
new file mode 100644
index 0000000..b423b1f
--- /dev/null
+++ b/puremapping/oscillo.pd
@@ -0,0 +1,28 @@
+#N canvas 510 170 719 206 10;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-_ 100 float 2;
+#X coords 0 1 100 0 200 127 1;
+#X restore 10 28 graph;
+#X obj 272 14 inlet;
+#X obj 388 13 inlet;
+#X obj 388 100 pack f \$0;
+#X obj 272 142 s \$0-_;
+#X msg 388 127 \; \$2-_ resize \$1;
+#X text 315 14 data;
+#X obj 272 121 pack f f;
+#X text 430 15 size of the array (default = 100);
+#X obj 271 99 % 100;
+#X obj 272 57 f;
+#X obj 271 77 + 1;
+#X obj 272 36 t b f;
+#X connect 1 0 12 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 7 0 4 0;
+#X connect 9 0 10 1;
+#X connect 10 0 11 0;
+#X connect 10 0 7 0;
+#X connect 11 0 9 0;
+#X connect 12 0 10 0;
+#X connect 12 1 7 1;
+#X coords 0 -1 1 1 200 145 2 10 10;
diff --git a/puremapping/pmattractor_2d-help.pd b/puremapping/pmattractor_2d-help.pd
new file mode 100644
index 0000000..9e590aa
--- /dev/null
+++ b/puremapping/pmattractor_2d-help.pd
@@ -0,0 +1,60 @@
+#N canvas 535 89 583 724 10;
+#X obj 161 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 44 418 unpack f f;
+#X obj 368 21 gcanvas 100 100;
+#X floatatom 193 370 5 0 0 0 - - -;
+#X floatatom 118 369 5 0 0 0 - - -;
+#X obj 44 538 timeroll;
+#X obj 44 491 min 1;
+#X obj 44 511 max 0;
+#X obj 368 129 - 50;
+#X obj 461 127 - 50;
+#X obj 44 442 + 1;
+#X obj 44 466 / 2;
+#X obj 368 151 / 100;
+#X obj 461 149 / 100;
+#X obj 212 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X msg 368 220 grab \$1 \$2;
+#X obj 368 174 pack f f;
+#X obj 368 197 t l b;
+#X msg 398 270 0;
+#X msg 398 295 grab_on \$1;
+#X msg 161 190 force \$1 0;
+#X msg 212 212 force 0 \$1;
+#X obj 44 283 metro 50;
+#X obj 44 259 loadbang;
+#X obj 44 391 pmattractor_2d 0.3 0.3;
+#X obj 398 244 delay 200;
+#X msg 432 271 0.3;
+#X connect 0 0 20 0;
+#X connect 1 0 10 0;
+#X connect 1 1 10 0;
+#X connect 2 0 8 0;
+#X connect 2 1 9 0;
+#X connect 3 0 24 2;
+#X connect 4 0 24 1;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 8 0 12 0;
+#X connect 9 0 13 0;
+#X connect 10 0 11 0;
+#X connect 11 0 6 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 1;
+#X connect 14 0 21 0;
+#X connect 15 0 24 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 26 0;
+#X connect 17 1 25 0;
+#X connect 18 0 19 0;
+#X connect 19 0 24 0;
+#X connect 20 0 24 0;
+#X connect 21 0 24 0;
+#X connect 22 0 24 0;
+#X connect 23 0 22 0;
+#X connect 24 0 1 0;
+#X connect 25 0 18 0;
+#X connect 26 0 19 0;
diff --git a/puremapping/pmattractor_2d.pd b/puremapping/pmattractor_2d.pd
new file mode 100644
index 0000000..f08630d
--- /dev/null
+++ b/puremapping/pmattractor_2d.pd
@@ -0,0 +1,52 @@
+#N canvas 736 156 871 573 10;
+#X obj 46 21 inlet;
+#X obj 174 278 loadbang;
+#X obj 46 495 outlet;
+#X obj 174 304 pack \$1 \$2;
+#X obj 526 16 inlet;
+#X msg 526 115 setK lnk \$1;
+#X obj 619 17 inlet;
+#X msg 619 115 setD lnk \$1;
+#X msg 194 110 bang \, get massesPos out \, get massesForces out;
+#X obj 46 467 route out;
+#X obj 155 496 outlet;
+#X obj 155 467 route out;
+#X obj 46 443 route massesPosId massesForcesId;
+#X obj 46 421 msd2D;
+#X msg 145 89 forceX out \$1 \, forceY out \$2;
+#X obj 254 273 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 174 330 reset \, mass border 0 1 -1 0 \, mass border 0 1 1 0
+\, mass border 0 1 0 -1 \, mass border 0 1 0 1 \, mass out 1 1 0 0
+\, link lnk border out \$1 \$2 \, mass grab 0 1 0 0 \, link lgrab out
+grab 0 0;
+#X obj 46 89 unpack f f;
+#X msg 46 113 posX grab \$1;
+#X msg 95 166 setK lgrab \$1;
+#X msg 111 135 posY grab \$1;
+#X obj 46 56 route grab grab_on force bang;
+#X connect 0 0 21 0;
+#X connect 1 0 3 0;
+#X connect 3 0 16 0;
+#X connect 4 0 5 0;
+#X connect 5 0 13 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 0;
+#X connect 8 0 13 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 15 0 3 0;
+#X connect 16 0 13 0;
+#X connect 17 0 18 0;
+#X connect 17 1 20 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 13 0;
+#X connect 21 0 17 0;
+#X connect 21 1 19 0;
+#X connect 21 2 14 0;
+#X connect 21 3 8 0;
diff --git a/puremapping/pmattractor_3d-help.pd b/puremapping/pmattractor_3d-help.pd
new file mode 100644
index 0000000..54d6ee1
--- /dev/null
+++ b/puremapping/pmattractor_3d-help.pd
@@ -0,0 +1,66 @@
+#N canvas 809 60 642 776 10;
+#X floatatom 194 377 5 0 0 0 - - -;
+#X floatatom 119 376 5 0 0 0 - - -;
+#X obj 45 500 min 1;
+#X obj 45 520 max 0;
+#X obj 45 427 unpack f f f;
+#X obj 162 45 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 12700 0;
+#X obj 369 28 gcanvas 100 100;
+#X obj 369 136 - 50;
+#X obj 462 134 - 50;
+#X obj 369 158 / 100;
+#X obj 462 156 / 100;
+#X obj 213 45 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 12700 0;
+#X obj 369 181 pack f f;
+#X obj 369 204 t l b;
+#X msg 399 277 0;
+#X msg 399 302 grab_on \$1;
+#X obj 45 290 metro 50;
+#X obj 45 266 loadbang;
+#X obj 399 251 delay 200;
+#X msg 433 278 0.3;
+#X msg 369 227 grab \$1 \$2 0;
+#X obj 258 47 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 12700 0;
+#X msg 162 197 force \$1 0 0;
+#X msg 213 219 force 0 \$1 0;
+#X msg 259 250 force 0 0 \$1;
+#X obj 45 451 + 1;
+#X obj 45 475 / 2;
+#X obj 45 547 timeroll;
+#X obj 45 400 pmattractor_3d 0.3 0.3;
+#X connect 0 0 28 2;
+#X connect 1 0 28 1;
+#X connect 2 0 3 0;
+#X connect 3 0 27 0;
+#X connect 4 0 25 0;
+#X connect 4 1 25 0;
+#X connect 4 2 25 0;
+#X connect 5 0 22 0;
+#X connect 6 0 7 0;
+#X connect 6 1 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 12 0;
+#X connect 10 0 12 1;
+#X connect 11 0 23 0;
+#X connect 12 0 13 0;
+#X connect 13 0 20 0;
+#X connect 13 1 19 0;
+#X connect 13 1 18 0;
+#X connect 14 0 15 0;
+#X connect 15 0 28 0;
+#X connect 16 0 28 0;
+#X connect 17 0 16 0;
+#X connect 18 0 14 0;
+#X connect 19 0 15 0;
+#X connect 20 0 28 0;
+#X connect 21 0 24 0;
+#X connect 22 0 28 0;
+#X connect 23 0 28 0;
+#X connect 24 0 28 0;
+#X connect 25 0 26 0;
+#X connect 26 0 2 0;
+#X connect 28 0 4 0;
diff --git a/puremapping/pmattractor_3d.pd b/puremapping/pmattractor_3d.pd
new file mode 100644
index 0000000..0f6cd4e
--- /dev/null
+++ b/puremapping/pmattractor_3d.pd
@@ -0,0 +1,56 @@
+#N canvas 522 233 697 573 10;
+#X obj 31 34 inlet;
+#X obj 76 286 loadbang;
+#X obj 31 511 outlet;
+#X obj 76 312 pack \$1 \$2;
+#X obj 341 24 inlet;
+#X msg 341 71 setK lnk \$1;
+#X obj 434 25 inlet;
+#X msg 434 71 setD lnk \$1;
+#X msg 276 246 bang \, get massesPos out \, get massesForces out;
+#X obj 31 483 route out;
+#X obj 140 512 outlet;
+#X obj 140 484 route out;
+#X obj 31 459 route massesPosId massesForcesId;
+#X obj 156 281 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 209 217 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
+#X obj 31 437 msd3D;
+#X msg 31 112 posX grab \$1;
+#X msg 145 192 setK lgrab \$1;
+#X msg 70 136 posY grab \$1;
+#X obj 31 55 route grab grab_on force bang;
+#X obj 31 88 unpack f f f;
+#X msg 111 159 posZ grab \$1;
+#X msg 76 338 reset \, mass border 0 1 -1 0 0 \, mass border 0 1 1
+0 0 \, mass border 0 1 0 -1 0 \, mass border 0 1 0 1 0 \, mass border
+0 1 0 0 1 \, mass border 0 1 0 0 -1 \, mass out 1 1 0 0 0 \, link lnk
+border out \$1 \$2 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0
+0;
+#X connect 0 0 19 0;
+#X connect 1 0 3 0;
+#X connect 3 0 22 0;
+#X connect 4 0 5 0;
+#X connect 5 0 15 0;
+#X connect 6 0 7 0;
+#X connect 7 0 15 0;
+#X connect 8 0 15 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 12 0;
+#X connect 16 0 15 0;
+#X connect 17 0 15 0;
+#X connect 18 0 15 0;
+#X connect 19 0 20 0;
+#X connect 19 1 17 0;
+#X connect 19 2 14 0;
+#X connect 19 3 8 0;
+#X connect 20 0 16 0;
+#X connect 20 1 18 0;
+#X connect 20 2 21 0;
+#X connect 21 0 15 0;
+#X connect 22 0 15 0;
diff --git a/puremapping/pmcloud_1d-help.pd b/puremapping/pmcloud_1d-help.pd
new file mode 100644
index 0000000..3efd9ec
--- /dev/null
+++ b/puremapping/pmcloud_1d-help.pd
@@ -0,0 +1,44 @@
+#N canvas 23 56 665 645 10;
+#X text 106 339 outlet 1 : position of masses;
+#X obj 38 451 gemhead;
+#X obj 38 369 t b l;
+#X obj 38 546 translateXYZ;
+#X obj 96 499 - 0.5;
+#X obj 249 490 gemwin;
+#X msg 249 438 create \, 1;
+#X msg 266 461 destroy;
+#X obj 54 395 loadbang;
+#X msg 54 418 0;
+#X obj 38 571 square 0.1;
+#X obj 89 203 gemhead;
+#X obj 89 227 b;
+#X obj 95 519 * 2;
+#X floatatom 87 286 5 0 0 0 - - -;
+#X floatatom 187 285 5 0 0 0 - - -;
+#X floatatom 137 286 5 0 0 0 - - -;
+#X msg 25 13 reset;
+#X msg 61 77 force 0.2;
+#X obj 89 252 f;
+#X obj 147 105 vsl 15 128 -1 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 7900 1;
+#X obj 38 307 pmcloud_1d 16 0.02 0.01;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 4 0;
+#X connect 3 0 10 0;
+#X connect 4 0 13 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X connect 11 0 12 0;
+#X connect 12 0 19 0;
+#X connect 13 0 3 1;
+#X connect 14 0 21 1;
+#X connect 15 0 21 3;
+#X connect 16 0 21 2;
+#X connect 17 0 21 0;
+#X connect 18 0 21 0;
+#X connect 19 0 21 0;
+#X connect 20 0 19 1;
+#X connect 21 0 2 0;
diff --git a/puremapping/pmcloud_1d.pd b/puremapping/pmcloud_1d.pd
new file mode 100644
index 0000000..08854a2
--- /dev/null
+++ b/puremapping/pmcloud_1d.pd
@@ -0,0 +1,107 @@
+#N canvas 374 197 743 397 10;
+#X obj 45 9 inlet;
+#X obj 42 350 outlet;
+#X obj 468 7 inlet;
+#X msg 468 54 setK lnk \$1;
+#X obj 561 8 inlet;
+#X obj 379 3 inlet;
+#N canvas 670 136 639 733 create_clouds 0;
+#X obj 70 30 loadbang;
+#X obj 175 649 t a;
+#X obj 173 677 outlet;
+#X obj 32 50 t b b b b b b;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 85 126 pd loop;
+#X obj 85 103 \$1;
+#X obj 145 229 random 1000;
+#X obj 145 253 / 1000;
+#X msg 126 419 link lnk cloud in \$1 0;
+#X msg 89 471 link lnk cloud cloud \$1 0;
+#X obj 126 391 \$2;
+#X obj 85 446 \$2;
+#X obj 48 421 \$3;
+#X obj 145 177 * 654543;
+#X msg 85 156 bang;
+#X msg 145 201 seed \$1;
+#X obj 145 145 \$1;
+#X obj 39 12 inlet;
+#X msg 145 312 mass cloud 1 1 \$1;
+#X msg 175 94 reset \, mass in 0 1 0 \, mass fixe 0 0 0;
+#X msg 48 504 link damp fixe cloud 0 \$1;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 3 1 11 0;
+#X connect 3 1 12 0;
+#X connect 3 2 10 0;
+#X connect 3 3 5 0;
+#X connect 3 4 19 0;
+#X connect 3 5 16 0;
+#X connect 4 0 14 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 18 0;
+#X connect 8 0 1 0;
+#X connect 9 0 1 0;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 12 0 20 0;
+#X connect 13 0 15 0;
+#X connect 14 0 6 0;
+#X connect 15 0 6 0;
+#X connect 16 0 13 0;
+#X connect 17 0 3 0;
+#X connect 18 0 1 0;
+#X connect 19 0 1 0;
+#X connect 20 0 1 0;
+#X restore 46 169 pd create_clouds;
+#X obj 42 300 route massesPosId;
+#X obj 42 324 route cloud;
+#X obj 161 90 t b l;
+#X msg 192 138 posX in \$1;
+#X msg 561 54 setD damp \$1;
+#X msg 380 54 setL lnk \$1;
+#X msg 161 114 bang \, get massesPos cloud;
+#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 99 61 forceX cloud \$1;
+#X obj 42 278 msd;
+#X obj 46 30 route reset force;
+#X connect 0 0 17 0;
+#X connect 2 0 3 0;
+#X connect 3 0 16 0;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 6 0 16 0;
+#X connect 7 0 8 0;
+#X connect 8 0 1 0;
+#X connect 9 0 13 0;
+#X connect 9 1 10 0;
+#X connect 10 0 16 0;
+#X connect 11 0 16 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 0;
+#X connect 14 0 6 0;
+#X connect 15 0 16 0;
+#X connect 16 0 7 0;
+#X connect 17 0 6 0;
+#X connect 17 1 15 0;
+#X connect 17 2 9 0;
diff --git a/puremapping/pmcloud_2d-help.pd b/puremapping/pmcloud_2d-help.pd
new file mode 100644
index 0000000..aab85fb
--- /dev/null
+++ b/puremapping/pmcloud_2d-help.pd
@@ -0,0 +1,63 @@
+#N canvas 555 77 665 645 10;
+#X text 106 339 outlet 1 : position of masses;
+#X obj 38 451 gemhead;
+#X obj 38 369 t b l;
+#X obj 38 546 translateXYZ;
+#X obj 96 499 - 0.5;
+#X obj 161 499 - 0.5;
+#X obj 249 490 gemwin;
+#X msg 249 438 create \, 1;
+#X msg 266 461 destroy;
+#X obj 54 395 loadbang;
+#X msg 54 418 0;
+#X obj 38 571 square 0.1;
+#X obj 89 203 gemhead;
+#X obj 89 227 b;
+#X obj 96 477 unpack f f;
+#X obj 174 57 gcanvas 100 100;
+#X obj 174 165 - 50;
+#X obj 267 163 - 50;
+#X obj 174 187 / 100;
+#X obj 174 212 pack f f;
+#X obj 95 519 * 2;
+#X obj 160 519 * 2;
+#X obj 267 185 / -100;
+#X floatatom 87 286 5 0 0 0 - - -;
+#X floatatom 187 285 5 0 0 0 - - -;
+#X floatatom 137 286 5 0 0 0 - - -;
+#X msg 25 13 reset;
+#X obj 38 307 pmcloud_2d 16 0.1 0.05;
+#X msg 42 36 forceX 0.1;
+#X msg 61 77 force 0.2 0.1;
+#X msg 50 56 forceY -0.1;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 14 0;
+#X connect 3 0 11 0;
+#X connect 4 0 20 0;
+#X connect 5 0 21 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 1 0;
+#X connect 12 0 13 0;
+#X connect 13 0 27 0;
+#X connect 14 0 4 0;
+#X connect 14 1 5 0;
+#X connect 15 0 16 0;
+#X connect 15 1 17 0;
+#X connect 16 0 18 0;
+#X connect 17 0 22 0;
+#X connect 18 0 19 0;
+#X connect 19 0 27 0;
+#X connect 20 0 3 1;
+#X connect 21 0 3 2;
+#X connect 22 0 19 1;
+#X connect 23 0 27 1;
+#X connect 24 0 27 3;
+#X connect 25 0 27 2;
+#X connect 26 0 27 0;
+#X connect 27 0 2 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 0;
+#X connect 30 0 27 0;
diff --git a/puremapping/pmcloud_2d.pd b/puremapping/pmcloud_2d.pd
new file mode 100644
index 0000000..242a731
--- /dev/null
+++ b/puremapping/pmcloud_2d.pd
@@ -0,0 +1,130 @@
+#N canvas 605 196 743 397 10;
+#X obj 45 9 inlet;
+#X obj 42 350 outlet;
+#X obj 643 48 inlet;
+#X msg 643 95 setK lnk \$1;
+#X obj 736 49 inlet;
+#X obj 554 44 inlet;
+#X obj 42 278 msd2D;
+#N canvas 801 117 639 733 create_clouds 0;
+#X obj 70 30 loadbang;
+#X obj 175 649 t a;
+#X obj 173 677 outlet;
+#X obj 32 50 t b b b b b b;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 85 126 pd loop;
+#X obj 85 103 \$1;
+#X obj 145 229 random 1000;
+#X obj 145 253 / 1000;
+#X msg 145 312 mass cloud 1 1 \$1 \$2;
+#X obj 274 230 random 1000;
+#X obj 274 254 / 1000;
+#X obj 145 283 pack f f;
+#X msg 126 419 link lnk cloud in \$1 0;
+#X msg 175 94 reset \, mass in 0 1 0 0 \, mass fixe 0 0 0 0;
+#X msg 89 471 link lnk cloud cloud \$1 0;
+#X obj 126 391 \$2;
+#X obj 85 446 \$2;
+#X obj 48 421 \$3;
+#X obj 274 179 * 243354;
+#X obj 145 177 * 654543;
+#X msg 85 156 bang;
+#X msg 145 201 seed \$1;
+#X msg 274 202 seed \$1;
+#X obj 145 145 \$1;
+#X obj 39 12 inlet;
+#X msg 48 504 tLink damp fixe cloud 0 \$1 0 1 \, tLink damp fixe cloud
+0 \$1 1 0;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 3 1 16 0;
+#X connect 3 1 17 0;
+#X connect 3 2 15 0;
+#X connect 3 3 5 0;
+#X connect 3 4 13 0;
+#X connect 3 5 23 0;
+#X connect 4 0 20 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 11 0;
+#X connect 8 0 1 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 1;
+#X connect 11 0 8 0;
+#X connect 12 0 1 0;
+#X connect 13 0 1 0;
+#X connect 14 0 1 0;
+#X connect 15 0 12 0;
+#X connect 16 0 14 0;
+#X connect 17 0 25 0;
+#X connect 18 0 22 0;
+#X connect 19 0 21 0;
+#X connect 20 0 6 0;
+#X connect 20 0 9 0;
+#X connect 21 0 6 0;
+#X connect 22 0 9 0;
+#X connect 23 0 19 0;
+#X connect 23 0 18 0;
+#X connect 24 0 3 0;
+#X connect 25 0 1 0;
+#X restore 46 169 pd create_clouds;
+#X obj 91 69 unpack f f;
+#X msg 346 141 posY in \$1;
+#X obj 42 300 route massesPosId;
+#X obj 42 324 route cloud;
+#X obj 282 98 unpack f f;
+#X msg 282 121 posX in \$1;
+#X msg 736 95 setD damp \$1;
+#X msg 555 95 setL lnk \$1;
+#X msg 251 75 bang \, get massesPos cloud;
+#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 91 96 forceX cloud \$1;
+#X msg 155 119 forceY cloud \$1;
+#X obj 46 30 route reset force forceX forceY bang;
+#X connect 0 0 20 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 14 0;
+#X connect 5 0 15 0;
+#X connect 6 0 10 0;
+#X connect 7 0 6 0;
+#X connect 8 0 18 0;
+#X connect 8 1 19 0;
+#X connect 9 0 6 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
+#X connect 12 0 13 0;
+#X connect 12 1 9 0;
+#X connect 13 0 6 0;
+#X connect 14 0 6 0;
+#X connect 15 0 6 0;
+#X connect 16 0 6 0;
+#X connect 17 0 7 0;
+#X connect 18 0 6 0;
+#X connect 19 0 6 0;
+#X connect 20 0 7 0;
+#X connect 20 1 8 0;
+#X connect 20 2 18 0;
+#X connect 20 3 19 0;
+#X connect 20 4 16 0;
+#X connect 20 5 12 0;
diff --git a/puremapping/pmcloud_3d-help.pd b/puremapping/pmcloud_3d-help.pd
new file mode 100644
index 0000000..d47a054
--- /dev/null
+++ b/puremapping/pmcloud_3d-help.pd
@@ -0,0 +1,72 @@
+#N canvas 23 56 665 645 10;
+#X text 106 339 outlet 1 : position of masses;
+#X obj 38 451 gemhead;
+#X obj 38 369 t b l;
+#X obj 38 546 translateXYZ;
+#X obj 96 499 - 0.5;
+#X obj 142 500 - 0.5;
+#X obj 249 490 gemwin;
+#X msg 249 438 create \, 1;
+#X msg 266 461 destroy;
+#X obj 54 395 loadbang;
+#X msg 54 418 0;
+#X obj 38 571 square 0.1;
+#X obj 89 203 gemhead;
+#X obj 89 227 b;
+#X obj 174 57 gcanvas 100 100;
+#X obj 174 165 - 50;
+#X obj 267 163 - 50;
+#X obj 174 187 / 100;
+#X obj 95 519 * 2;
+#X obj 141 520 * 2;
+#X obj 267 185 / -100;
+#X floatatom 87 286 5 0 0 0 - - -;
+#X floatatom 187 285 5 0 0 0 - - -;
+#X floatatom 137 286 5 0 0 0 - - -;
+#X msg 25 13 reset;
+#X msg 42 36 forceX 0.1;
+#X msg 50 56 forceY -0.1;
+#X obj 38 307 pmcloud_3d 16 0.1 0.05;
+#X msg 58 80 forceZ -0.1;
+#X msg 60 111 force 0.2 0 0.1;
+#X obj 96 477 unpack f f f;
+#X obj 184 501 - 0.5;
+#X obj 183 521 * 2;
+#X obj 174 212 pack f f 0;
+#X obj 89 252 list;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 30 0;
+#X connect 3 0 11 0;
+#X connect 4 0 18 0;
+#X connect 5 0 19 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 1 0;
+#X connect 12 0 13 0;
+#X connect 13 0 34 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 15 0 17 0;
+#X connect 16 0 20 0;
+#X connect 17 0 33 0;
+#X connect 18 0 3 1;
+#X connect 19 0 3 2;
+#X connect 20 0 33 1;
+#X connect 21 0 27 1;
+#X connect 22 0 27 3;
+#X connect 23 0 27 2;
+#X connect 24 0 27 0;
+#X connect 25 0 27 0;
+#X connect 26 0 27 0;
+#X connect 27 0 2 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 0;
+#X connect 30 0 4 0;
+#X connect 30 1 5 0;
+#X connect 30 2 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 3 3;
+#X connect 33 0 34 1;
+#X connect 34 0 27 0;
diff --git a/puremapping/pmcloud_3d.pd b/puremapping/pmcloud_3d.pd
new file mode 100644
index 0000000..1564793
--- /dev/null
+++ b/puremapping/pmcloud_3d.pd
@@ -0,0 +1,146 @@
+#N canvas 605 196 743 397 10;
+#X obj 45 9 inlet;
+#X obj 42 350 outlet;
+#X obj 643 48 inlet;
+#X msg 643 95 setK lnk \$1;
+#X obj 736 49 inlet;
+#X obj 554 44 inlet;
+#N canvas 801 117 639 733 create_clouds 0;
+#X obj 70 30 loadbang;
+#X obj 175 649 t a;
+#X obj 173 677 outlet;
+#X obj 32 50 t b b b b b b;
+#X obj 85 103 \$1;
+#X obj 145 229 random 1000;
+#X obj 145 253 / 1000;
+#X obj 274 230 random 1000;
+#X obj 274 254 / 1000;
+#X msg 126 419 link lnk cloud in \$1 0;
+#X msg 89 471 link lnk cloud cloud \$1 0;
+#X obj 126 391 \$2;
+#X obj 85 446 \$2;
+#X obj 48 421 \$3;
+#X obj 274 179 * 243354;
+#X obj 145 177 * 654543;
+#X msg 85 156 bang;
+#X msg 145 201 seed \$1;
+#X msg 274 202 seed \$1;
+#X obj 145 145 \$1;
+#X obj 39 12 inlet;
+#X msg 175 95 reset \, mass in 0 1 0 0 0 \, mass fixe 0 0 0 0 0;
+#X obj 145 283 pack f f f;
+#X obj 367 230 random 1000;
+#X obj 367 254 / 1000;
+#X msg 367 202 seed \$1;
+#X obj 367 179 * 2.42455e+06;
+#X msg 145 312 mass cloud 1 1 \$1 \$2 \$3;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 85 126 pd loop;
+#X msg 48 504 tLink damp fixe cloud 0 \$1 0 0 1 \, tLink damp fixe
+cloud 0 \$1 0 1 0 \, tLink damp fixe cloud 0 \$1 1 0 0;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 3 1 12 0;
+#X connect 3 1 13 0;
+#X connect 3 2 11 0;
+#X connect 3 3 4 0;
+#X connect 3 4 21 0;
+#X connect 3 5 19 0;
+#X connect 4 0 28 0;
+#X connect 5 0 6 0;
+#X connect 6 0 22 0;
+#X connect 7 0 8 0;
+#X connect 8 0 22 1;
+#X connect 9 0 1 0;
+#X connect 10 0 1 0;
+#X connect 11 0 9 0;
+#X connect 12 0 10 0;
+#X connect 13 0 29 0;
+#X connect 14 0 18 0;
+#X connect 15 0 17 0;
+#X connect 16 0 5 0;
+#X connect 16 0 7 0;
+#X connect 16 0 23 0;
+#X connect 17 0 5 0;
+#X connect 18 0 7 0;
+#X connect 19 0 15 0;
+#X connect 19 0 14 0;
+#X connect 19 0 26 0;
+#X connect 20 0 3 0;
+#X connect 21 0 1 0;
+#X connect 22 0 27 0;
+#X connect 23 0 24 0;
+#X connect 24 0 22 2;
+#X connect 25 0 23 0;
+#X connect 26 0 25 0;
+#X connect 27 0 1 0;
+#X connect 28 0 16 0;
+#X connect 29 0 1 0;
+#X restore 46 169 pd create_clouds;
+#X msg 400 149 posY in \$1;
+#X obj 42 300 route massesPosId;
+#X obj 42 324 route cloud;
+#X obj 305 59 t b l;
+#X obj 336 106 unpack f f;
+#X msg 336 129 posX in \$1;
+#X msg 736 95 setD damp \$1;
+#X msg 555 95 setL lnk \$1;
+#X msg 305 83 bang \, get massesPos cloud;
+#X obj 68 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 91 96 forceX cloud \$1;
+#X msg 131 117 forceY cloud \$1;
+#X obj 46 30 route reset force forceX forceY forceZ;
+#X obj 91 69 unpack f f f;
+#X msg 173 139 forceZ cloud \$1;
+#X obj 42 278 msd3D;
+#X connect 0 0 19 0;
+#X connect 2 0 3 0;
+#X connect 3 0 22 0;
+#X connect 4 0 13 0;
+#X connect 5 0 14 0;
+#X connect 6 0 22 0;
+#X connect 7 0 22 0;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X connect 10 0 15 0;
+#X connect 10 1 11 0;
+#X connect 11 0 12 0;
+#X connect 11 1 7 0;
+#X connect 12 0 22 0;
+#X connect 13 0 22 0;
+#X connect 14 0 22 0;
+#X connect 15 0 22 0;
+#X connect 16 0 6 0;
+#X connect 17 0 22 0;
+#X connect 18 0 22 0;
+#X connect 19 0 6 0;
+#X connect 19 1 20 0;
+#X connect 19 2 17 0;
+#X connect 19 3 18 0;
+#X connect 19 4 21 0;
+#X connect 19 5 10 0;
+#X connect 20 0 17 0;
+#X connect 20 1 18 0;
+#X connect 20 2 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 8 0;
diff --git a/puremapping/pmcube_3d-help.pd b/puremapping/pmcube_3d-help.pd
new file mode 100644
index 0000000..06244d6
--- /dev/null
+++ b/puremapping/pmcube_3d-help.pd
@@ -0,0 +1,66 @@
+#N canvas 331 29 611 832 10;
+#X floatatom 199 344 5 0 0 0 - - -;
+#X floatatom 119 343 5 0 0 0 - - -;
+#X obj 44 514 timeroll;
+#X obj 44 467 min 1;
+#X obj 44 487 max 0;
+#X obj 44 418 + 1;
+#X obj 44 442 / 2;
+#X obj 44 394 unpack f f f;
+#X obj 44 367 pmcube_3d 0.3 0.3;
+#X obj 162 45 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6300 0;
+#X obj 369 28 gcanvas 100 100;
+#X obj 369 136 - 50;
+#X obj 462 134 - 50;
+#X obj 369 158 / 100;
+#X obj 462 156 / 100;
+#X obj 213 45 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 9500 0;
+#X obj 369 181 pack f f;
+#X obj 369 204 t l b;
+#X msg 399 277 0;
+#X msg 399 302 grab_on \$1;
+#X obj 44 290 metro 50;
+#X obj 44 266 loadbang;
+#X obj 399 251 delay 200;
+#X msg 433 278 0.3;
+#X msg 369 227 grab \$1 \$2 0;
+#X obj 258 47 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 9500 0;
+#X msg 162 197 force \$1 0 0;
+#X msg 213 219 force 0 \$1 0;
+#X msg 259 250 force 0 0 \$1;
+#X connect 0 0 8 2;
+#X connect 1 0 8 1;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 7 0 5 0;
+#X connect 7 1 5 0;
+#X connect 7 2 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 26 0;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 14 0;
+#X connect 13 0 16 0;
+#X connect 14 0 16 1;
+#X connect 15 0 27 0;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 17 1 23 0;
+#X connect 17 1 22 0;
+#X connect 18 0 19 0;
+#X connect 19 0 8 0;
+#X connect 20 0 8 0;
+#X connect 21 0 20 0;
+#X connect 22 0 18 0;
+#X connect 23 0 19 0;
+#X connect 24 0 8 0;
+#X connect 25 0 28 0;
+#X connect 26 0 8 0;
+#X connect 27 0 8 0;
+#X connect 28 0 8 0;
diff --git a/puremapping/pmcube_3d.pd b/puremapping/pmcube_3d.pd
new file mode 100644
index 0000000..e2c551b
--- /dev/null
+++ b/puremapping/pmcube_3d.pd
@@ -0,0 +1,56 @@
+#N canvas 146 213 871 573 10;
+#X obj 49 58 inlet;
+#X obj 79 291 loadbang;
+#X obj 39 524 outlet;
+#X obj 79 317 pack \$1 \$2;
+#X obj 436 59 inlet;
+#X msg 436 106 setK lnk \$1;
+#X obj 529 60 inlet;
+#X msg 529 106 setD lnk \$1;
+#X msg 267 296 bang \, get massesPos out \, get massesForces out;
+#X obj 39 496 route out;
+#X obj 148 525 outlet;
+#X obj 148 497 route out;
+#X obj 39 472 route massesPosId massesForcesId;
+#X obj 159 286 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 202 257 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
+#X obj 40 450 msd3D;
+#X msg 80 343 reset \, mass border 0 1 -1 -1 -1 \, mass border 0 1
+-1 -1 1 \, mass border 0 1 -1 1 -1 \, mass border 0 1 -1 1 1 \, mass
+border 0 1 1 -1 -1 \, mass border 0 1 1 -1 1 \, mass border 0 1 1 1
+-1 \, mass border 0 1 1 1 1 \, mass out 1 1 0 0 0 \, link lnk border
+out \$1 \$2 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0 0;
+#X msg 56 151 posX grab \$1;
+#X msg 170 231 setK lgrab \$1;
+#X msg 95 175 posY grab \$1;
+#X obj 56 94 route grab grab_on force bang;
+#X obj 56 127 unpack f f f;
+#X msg 136 198 posZ grab \$1;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 3 0 16 0;
+#X connect 4 0 5 0;
+#X connect 5 0 15 0;
+#X connect 6 0 7 0;
+#X connect 7 0 15 0;
+#X connect 8 0 15 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 12 0;
+#X connect 16 0 15 0;
+#X connect 17 0 15 0;
+#X connect 18 0 15 0;
+#X connect 19 0 15 0;
+#X connect 20 0 21 0;
+#X connect 20 1 18 0;
+#X connect 20 2 14 0;
+#X connect 20 3 8 0;
+#X connect 21 0 17 0;
+#X connect 21 1 19 0;
+#X connect 21 2 22 0;
+#X connect 22 0 15 0;
diff --git a/puremapping/pmfilter-help.pd b/puremapping/pmfilter-help.pd
new file mode 100644
index 0000000..6c59c55
--- /dev/null
+++ b/puremapping/pmfilter-help.pd
@@ -0,0 +1,35 @@
+#N canvas 300 138 676 449 10;
+#X obj 44 43 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6500 0;
+#X obj 44 238 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6500 1;
+#X floatatom 172 234 9 0 0 0 - - -;
+#X msg 86 157 1;
+#X obj 319 35 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6700 0;
+#X obj 319 230 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6700 1;
+#X floatatom 447 226 9 0 0 0 - - -;
+#X msg 361 149 0.5;
+#X obj 44 183 resample 30;
+#X obj 44 210 pmfilter 0.3 0.8;
+#X obj 93 235 clip 0 1;
+#X obj 93 259 timeroll;
+#X obj 368 251 timeroll;
+#X obj 368 227 clip 0 1;
+#X obj 319 198 pmfilter 0.3 0.3;
+#X obj 319 175 resample 30;
+#X connect 0 0 8 0;
+#X connect 3 0 9 1;
+#X connect 4 0 15 0;
+#X connect 7 0 14 1;
+#X connect 8 0 9 0;
+#X connect 9 0 1 0;
+#X connect 9 0 10 0;
+#X connect 9 1 2 0;
+#X connect 10 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 5 0;
+#X connect 14 0 13 0;
+#X connect 14 1 6 0;
+#X connect 15 0 14 0;
diff --git a/puremapping/pmfilter.pd b/puremapping/pmfilter.pd
new file mode 100644
index 0000000..801ec8c
--- /dev/null
+++ b/puremapping/pmfilter.pd
@@ -0,0 +1,40 @@
+#N canvas 838 215 702 349 10;
+#X obj 31 216 msd;
+#X obj 31 34 inlet;
+#X obj 31 57 t b f;
+#X obj 80 130 loadbang;
+#X msg 61 104 posX in \$1;
+#X obj 31 290 outlet;
+#X obj 80 156 pack \$1 \$2;
+#X msg 80 182 reset \, mass in 0 1 0 \, mass out 1 1 0 \, link lnk
+in out \$1 \$2;
+#X obj 358 34 inlet;
+#X obj 459 34 inlet;
+#X msg 459 81 setK lnk \$1;
+#X obj 552 35 inlet;
+#X msg 552 81 setD lnk \$1;
+#X msg 31 81 bang \, get massesPos out \, get massesForces out;
+#X obj 31 262 route out;
+#X obj 140 291 outlet;
+#X obj 140 263 route out;
+#X obj 31 238 route massesPosId massesForcesId;
+#X msg 358 81 forceX out \$1;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 0 13 0;
+#X connect 2 1 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 0 0;
+#X connect 6 0 7 0;
+#X connect 7 0 0 0;
+#X connect 8 0 18 0;
+#X connect 9 0 10 0;
+#X connect 10 0 0 0;
+#X connect 11 0 12 0;
+#X connect 12 0 0 0;
+#X connect 13 0 0 0;
+#X connect 14 0 5 0;
+#X connect 16 0 15 0;
+#X connect 17 0 14 0;
+#X connect 17 1 16 0;
+#X connect 18 0 0 0;
diff --git a/puremapping/pmfilter_2d-help.pd b/puremapping/pmfilter_2d-help.pd
new file mode 100644
index 0000000..4057dc6
--- /dev/null
+++ b/puremapping/pmfilter_2d-help.pd
@@ -0,0 +1,35 @@
+#N canvas 181 195 583 629 10;
+#X obj 44 43 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 94 44 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 44 212 pack f f;
+#X obj 44 302 unpack f f;
+#X msg 81 256 1 2;
+#X obj 187 24 gcanvas 100 100;
+#X obj 187 132 / 100;
+#X obj 279 131 / 100;
+#X floatatom 155 257 5 0 0 0 - - -;
+#X floatatom 118 257 5 0 0 0 - - -;
+#X floatatom 193 232 5 0 0 0 - - -;
+#X obj 44 183 resample 50;
+#X obj 44 279 pmfilter_2d 0.3 0.3;
+#X obj 44 360 timeroll;
+#X obj 44 333 clip 0 1;
+#X text 348 44 physical modeling filter (2nd order);
+#X connect 0 0 11 0;
+#X connect 1 0 2 1;
+#X connect 2 0 12 0;
+#X connect 3 0 14 0;
+#X connect 3 1 14 0;
+#X connect 4 0 12 1;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 6 0 11 0;
+#X connect 7 0 2 1;
+#X connect 8 0 12 3;
+#X connect 9 0 12 2;
+#X connect 10 0 12 4;
+#X connect 11 0 2 0;
+#X connect 12 0 3 0;
+#X connect 14 0 13 0;
diff --git a/puremapping/pmfilter_2d.pd b/puremapping/pmfilter_2d.pd
new file mode 100644
index 0000000..91ff6c6
--- /dev/null
+++ b/puremapping/pmfilter_2d.pd
@@ -0,0 +1,48 @@
+#N canvas 738 11 702 349 10;
+#X obj 31 34 inlet;
+#X obj 80 130 loadbang;
+#X obj 31 290 outlet;
+#X obj 80 156 pack \$1 \$2;
+#X obj 259 34 inlet;
+#X obj 360 34 inlet;
+#X msg 360 81 setK lnk \$1;
+#X obj 453 35 inlet;
+#X msg 31 81 bang \, get massesPos out \, get massesForces out;
+#X obj 31 262 route out;
+#X obj 140 291 outlet;
+#X obj 140 263 route out;
+#X obj 31 238 route massesPosId massesForcesId;
+#X obj 31 216 msd2D;
+#X msg 61 104 posX in \$1 \, posY in \$2;
+#X obj 31 57 t b l;
+#X msg 259 108 forceX out \$1 \, forceY out \$2;
+#X msg 453 81 setD damp \$1;
+#X obj 156 128 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 552 35 inlet;
+#X msg 552 81 setL lnk \$1;
+#X msg 80 182 reset \, mass in 0 1 0 0 \, mass out 1 1 0 0 \, link
+lnk in out \$1 0 \, tLink damp in out 0 \$2 0 1 \, tLink damp in out
+0 \$2 1 0;
+#X connect 0 0 15 0;
+#X connect 1 0 3 0;
+#X connect 3 0 21 0;
+#X connect 4 0 16 0;
+#X connect 5 0 6 0;
+#X connect 6 0 13 0;
+#X connect 7 0 17 0;
+#X connect 8 0 13 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 15 0 8 0;
+#X connect 15 1 14 0;
+#X connect 16 0 13 0;
+#X connect 17 0 13 0;
+#X connect 18 0 3 0;
+#X connect 19 0 20 0;
+#X connect 20 0 13 0;
+#X connect 21 0 13 0;
diff --git a/puremapping/pmfilter_3d-help.pd b/puremapping/pmfilter_3d-help.pd
new file mode 100644
index 0000000..281cd2c
--- /dev/null
+++ b/puremapping/pmfilter_3d-help.pd
@@ -0,0 +1,27 @@
+#N canvas 181 195 296 555 10;
+#X obj 44 44 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 75 43 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 44 211 pack f f f;
+#X obj 44 299 unpack f f f;
+#X obj 109 42 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X msg 86 243 1 0.5 0.3;
+#X floatatom 198 245 5 0 0 0 - - -;
+#X obj 44 184 resample 50;
+#X obj 43 269 pmfilter_3d 0.3 0.3;
+#X obj 44 345 clip 0 1;
+#X obj 44 369 timeroll;
+#X connect 0 0 7 0;
+#X connect 1 0 2 1;
+#X connect 2 0 8 0;
+#X connect 3 0 9 0;
+#X connect 3 1 9 0;
+#X connect 3 2 9 0;
+#X connect 4 0 2 2;
+#X connect 5 0 8 1;
+#X connect 6 0 8 4;
+#X connect 7 0 2 0;
+#X connect 8 0 3 0;
+#X connect 9 0 10 0;
diff --git a/puremapping/pmfilter_3d.pd b/puremapping/pmfilter_3d.pd
new file mode 100644
index 0000000..7114c33
--- /dev/null
+++ b/puremapping/pmfilter_3d.pd
@@ -0,0 +1,48 @@
+#N canvas 738 24 702 349 10;
+#X obj 31 34 inlet;
+#X obj 80 130 loadbang;
+#X obj 31 314 outlet;
+#X obj 80 156 pack \$1 \$2;
+#X obj 259 34 inlet;
+#X obj 360 34 inlet;
+#X msg 360 81 setK lnk \$1;
+#X obj 453 35 inlet;
+#X msg 31 81 bang \, get massesPos out \, get massesForces out;
+#X obj 31 286 route out;
+#X obj 140 315 outlet;
+#X obj 140 287 route out;
+#X obj 31 262 route massesPosId massesForcesId;
+#X obj 31 57 t b l;
+#X msg 453 81 setD damp \$1;
+#X obj 156 128 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 31 240 msd3D;
+#X msg 259 130 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
+#X msg 61 104 posX in \$1 \, posY in \$2 \, posZ in \$3;
+#X obj 552 35 inlet;
+#X msg 552 81 setL lnk \$1;
+#X msg 80 182 reset \, mass in 0 1 0 0 0 \, mass out 1 1 0 0 0 \, link
+lnk in out \$1 0 \, tLink damp in out 0 \$2 0 0 1 \, tLink damp in
+out 0 \$2 0 1 0 \, tLink damp in out 0 \$2 1 0 0;
+#X connect 0 0 13 0;
+#X connect 1 0 3 0;
+#X connect 3 0 21 0;
+#X connect 4 0 17 0;
+#X connect 5 0 6 0;
+#X connect 6 0 16 0;
+#X connect 7 0 14 0;
+#X connect 8 0 16 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 8 0;
+#X connect 13 1 18 0;
+#X connect 14 0 16 0;
+#X connect 15 0 3 0;
+#X connect 16 0 12 0;
+#X connect 17 0 16 0;
+#X connect 18 0 16 0;
+#X connect 19 0 20 0;
+#X connect 20 0 16 0;
+#X connect 21 0 16 0;
diff --git a/puremapping/pmmulti_stable_2d-help.pd b/puremapping/pmmulti_stable_2d-help.pd
new file mode 100644
index 0000000..3c20621
--- /dev/null
+++ b/puremapping/pmmulti_stable_2d-help.pd
@@ -0,0 +1,79 @@
+#N canvas 604 59 724 667 10;
+#X text 122 399 outlet 1 : position of masses;
+#X obj 54 511 gemhead;
+#X obj 54 429 t b l;
+#X obj 54 606 translateXYZ;
+#X obj 112 537 unpack f f f;
+#X obj 112 582 * 4;
+#X obj 151 583 * 4;
+#X obj 458 526 gemwin;
+#X msg 458 474 create \, 1;
+#X msg 475 497 destroy;
+#X obj 70 455 loadbang;
+#X msg 70 478 0;
+#X obj 54 632 square 0.1;
+#X obj 164 30 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X obj 371 13 gcanvas 100 100;
+#X obj 371 121 - 50;
+#X obj 464 119 - 50;
+#X obj 371 143 / 100;
+#X obj 464 141 / 100;
+#X obj 215 30 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 0;
+#X msg 371 212 grab \$1 \$2;
+#X obj 371 166 pack f f;
+#X obj 371 189 t l b;
+#X msg 401 262 0;
+#X msg 401 287 grab_on \$1;
+#X msg 164 182 force \$1 0;
+#X msg 215 204 force 0 \$1;
+#X obj 47 275 metro 50;
+#X obj 47 251 loadbang;
+#X obj 401 236 delay 200;
+#X msg 435 263 0.3;
+#X text 262 366 arguments : number of stable point \, rigidity \, damping
+;
+#X obj 96 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 115 481 1;
+#X obj 32 299 gemhead;
+#X obj 34 323 b;
+#X obj 54 367 pmmulti_stable_2d 9 0.1 0.1;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 4 0;
+#X connect 3 0 12 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 5 0 3 1;
+#X connect 6 0 3 2;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
+#X connect 13 0 25 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 15 0 17 0;
+#X connect 16 0 18 0;
+#X connect 17 0 21 0;
+#X connect 18 0 21 1;
+#X connect 19 0 26 0;
+#X connect 20 0 36 0;
+#X connect 21 0 22 0;
+#X connect 22 0 20 0;
+#X connect 22 1 30 0;
+#X connect 22 1 29 0;
+#X connect 23 0 24 0;
+#X connect 24 0 36 0;
+#X connect 25 0 36 0;
+#X connect 26 0 36 0;
+#X connect 28 0 27 0;
+#X connect 29 0 23 0;
+#X connect 30 0 24 0;
+#X connect 32 0 27 0;
+#X connect 33 0 1 0;
+#X connect 34 0 35 0;
+#X connect 35 0 36 0;
+#X connect 36 0 2 0;
diff --git a/puremapping/pmmulti_stable_2d.pd b/puremapping/pmmulti_stable_2d.pd
new file mode 100644
index 0000000..742841f
--- /dev/null
+++ b/puremapping/pmmulti_stable_2d.pd
@@ -0,0 +1,116 @@
+#N canvas 835 203 726 492 10;
+#X obj 42 34 inlet;
+#X obj 41 435 outlet;
+#X obj 510 34 inlet;
+#X msg 510 81 setK lnk \$1;
+#X obj 603 35 inlet;
+#X msg 603 81 setD lnk \$1;
+#X obj 41 363 msd2D;
+#N canvas 866 113 421 804 creation_multi_stable 0;
+#X obj 32 23 loadbang;
+#X obj 175 649 t a;
+#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 201 150 \$1;
+#X obj 145 198 /;
+#X obj 173 677 outlet;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 145 174 pd loop;
+#X obj 145 124 \$1;
+#X msg 145 361 mass fixe 0 1 \$1 \$2;
+#X obj 145 149 max 2;
+#X obj 201 173 max 2;
+#X obj 145 220 * 6.28;
+#X obj 145 241 t f f;
+#X obj 145 337 pack f f;
+#X obj 196 267 sin;
+#X obj 145 267 cos;
+#X obj 79 428 pack \$2 \$3;
+#X obj 145 290 * 0.5;
+#X obj 196 292 * 0.5;
+#X msg 79 450 link lnk fixe out \$1 \$2;
+#X obj 32 50 t b b b b b b b;
+#X msg 161 81 reset;
+#X msg 115 394 mass out 1 1 1 0;
+#X msg 63 481 setL lnk 1;
+#X msg 35 511 mass grab 0 1 1 0 \, link lgrab out grab 0 0;
+#X connect 0 0 20 0;
+#X connect 1 0 5 0;
+#X connect 2 0 20 0;
+#X connect 3 0 10 0;
+#X connect 4 0 11 0;
+#X connect 6 0 4 0;
+#X connect 7 0 9 0;
+#X connect 8 0 1 0;
+#X connect 9 0 6 0;
+#X connect 10 0 4 1;
+#X connect 11 0 12 0;
+#X connect 12 0 15 0;
+#X connect 12 1 14 0;
+#X connect 13 0 8 0;
+#X connect 14 0 18 0;
+#X connect 15 0 17 0;
+#X connect 16 0 19 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 1;
+#X connect 19 0 1 0;
+#X connect 20 0 24 0;
+#X connect 20 1 23 0;
+#X connect 20 2 16 0;
+#X connect 20 3 22 0;
+#X connect 20 4 7 0;
+#X connect 20 5 3 0;
+#X connect 20 6 21 0;
+#X connect 21 0 1 0;
+#X connect 22 0 1 0;
+#X connect 23 0 1 0;
+#X connect 24 0 1 0;
+#X restore 195 310 pd creation_multi_stable;
+#X msg 140 90 forceX out \$1 \, forceY out \$2;
+#X obj 41 90 unpack f f;
+#X msg 41 114 posX grab \$1;
+#X msg 90 167 setK lgrab \$1;
+#X msg 106 136 posY grab \$1;
+#X obj 41 57 route grab grab_on force bang;
+#X obj 41 412 route out;
+#X obj 41 385 route massesPosId;
+#X msg 189 112 bang \, get massesPos out;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 9 1 12 0;
+#X connect 10 0 6 0;
+#X connect 11 0 6 0;
+#X connect 12 0 6 0;
+#X connect 13 0 9 0;
+#X connect 13 1 11 0;
+#X connect 13 2 8 0;
+#X connect 13 3 16 0;
+#X connect 14 0 1 0;
+#X connect 15 0 14 0;
+#X connect 16 0 6 0;
diff --git a/puremapping/pmopen_string_1d-help.pd b/puremapping/pmopen_string_1d-help.pd
new file mode 100644
index 0000000..37af3f8
--- /dev/null
+++ b/puremapping/pmopen_string_1d-help.pd
@@ -0,0 +1,107 @@
+#N canvas 209 108 665 618 10;
+#X obj 39 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6093 1;
+#X obj 56 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 3535 1;
+#X obj 73 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 1392 1;
+#X obj 90 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 107 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 124 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 141 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 502 1;
+#X obj 158 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 1464 1;
+#X obj 175 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2322 1;
+#X obj 192 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2911 1;
+#X obj 39 456 route 0 1 2 3 4 5 6 7 8 9 10;
+#X obj 209 487 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 3217 1;
+#X text 256 307 arguments : number of moving masses \, rigidity \,
+damping;
+#X text 210 19 simple Physical model of "string";
+#X text 164 40 usefull to create different correlated output with few
+input.;
+#X msg 102 232 3 1;
+#X text 133 234 mass 3 \, force = 1;
+#X obj 306 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 323 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 10458 1;
+#X obj 340 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 12700 1;
+#X obj 357 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 12700 1;
+#X obj 374 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 12700 1;
+#X obj 391 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 12549 1;
+#X obj 408 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 8554 1;
+#X obj 425 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 5166 1;
+#X obj 442 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 3326 1;
+#X obj 459 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2782 1;
+#X obj 306 437 route 0 1 2 3 4 5 6 7 8 9 10;
+#X obj 476 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2670 1;
+#X obj 306 342 unpack f f;
+#X obj 306 412 pack f f;
+#X obj 371 367 * 100;
+#X obj 371 391 + 64;
+#X text 105 351 2 : forces apply to masses;
+#X text 57 334 outlet 1 : position of masses;
+#X obj 38 365 unpack f f;
+#X obj 102 390 + 64;
+#X obj 38 414 pack f f;
+#X text 123 113 inlet : 1 : metro;
+#X text 180 136 2 : forces apply to masses;
+#X text 180 158 3 : rigidity;
+#X text 180 178 4 : damping;
+#X obj 39 109 vsl 15 128 -30 30 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 5700 1;
+#X obj 39 307 pmopen_string_1d 10 0.1 0.01;
+#X obj 39 285 resample 22;
+#X connect 10 0 0 0;
+#X connect 10 1 1 0;
+#X connect 10 2 2 0;
+#X connect 10 3 3 0;
+#X connect 10 4 4 0;
+#X connect 10 5 5 0;
+#X connect 10 6 6 0;
+#X connect 10 7 7 0;
+#X connect 10 8 8 0;
+#X connect 10 9 9 0;
+#X connect 10 10 11 0;
+#X connect 15 0 43 1;
+#X connect 27 0 17 0;
+#X connect 27 1 18 0;
+#X connect 27 2 19 0;
+#X connect 27 3 20 0;
+#X connect 27 4 21 0;
+#X connect 27 5 22 0;
+#X connect 27 6 23 0;
+#X connect 27 7 24 0;
+#X connect 27 8 25 0;
+#X connect 27 9 26 0;
+#X connect 27 10 28 0;
+#X connect 29 0 30 0;
+#X connect 29 1 31 0;
+#X connect 30 0 27 0;
+#X connect 31 0 32 0;
+#X connect 32 0 30 1;
+#X connect 35 0 37 0;
+#X connect 35 1 36 0;
+#X connect 36 0 37 1;
+#X connect 37 0 10 0;
+#X connect 42 0 44 0;
+#X connect 43 0 35 0;
+#X connect 43 1 29 0;
+#X connect 44 0 43 0;
diff --git a/puremapping/pmopen_string_1d.pd b/puremapping/pmopen_string_1d.pd
new file mode 100644
index 0000000..aad7eba
--- /dev/null
+++ b/puremapping/pmopen_string_1d.pd
@@ -0,0 +1,94 @@
+#N canvas 267 388 662 400 10;
+#X obj 31 227 msd;
+#X obj 31 34 inlet;
+#X obj 31 301 outlet;
+#X obj 453 39 inlet;
+#X msg 453 86 setK lnk \$1;
+#X obj 546 40 inlet;
+#X msg 546 86 setD lnk \$1;
+#X obj 126 300 outlet;
+#N canvas 327 184 457 717 creation_corde 0;
+#X msg 143 117 0;
+#X obj 143 142 f;
+#X obj 143 193 + 1;
+#X obj 143 169 moses \$1;
+#X obj 165 220 t f f;
+#X obj 175 649 t a;
+#X obj 195 366 pack f f;
+#X obj 195 247 t f f;
+#X obj 241 248 \$1;
+#X msg 195 389 mass M-\$1 1 1 \$2;
+#X obj 225 300 /;
+#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
+#X obj 121 552 pack f f \$2 \$3;
+#X obj 69 418 f;
+#X obj 69 445 moses \$1;
+#X obj 173 677 outlet;
+#X msg 31 578 setL lnk 0;
+#X obj 43 50 t b b b b b b;
+#X obj 43 23 inlet;
+#X msg 163 94 reset \, mass M-0 0 1 0;
+#X msg 69 392 0;
+#X obj 152 525 + 1;
+#X obj 69 495 + 1;
+#X obj 69 470 t f f f;
+#X obj 91 522 t f;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 1 0;
+#X connect 4 1 7 0;
+#X connect 5 0 15 0;
+#X connect 6 0 9 0;
+#X connect 7 0 6 0;
+#X connect 7 1 10 0;
+#X connect 8 0 10 1;
+#X connect 9 0 5 0;
+#X connect 10 0 6 1;
+#X connect 11 0 5 0;
+#X connect 12 0 11 0;
+#X connect 13 0 14 0;
+#X connect 14 0 23 0;
+#X connect 16 0 5 0;
+#X connect 17 0 16 0;
+#X connect 17 1 20 0;
+#X connect 17 3 0 0;
+#X connect 17 4 19 0;
+#X connect 17 5 8 0;
+#X connect 18 0 17 0;
+#X connect 19 0 5 0;
+#X connect 20 0 13 0;
+#X connect 21 0 12 1;
+#X connect 22 0 24 0;
+#X connect 23 0 22 0;
+#X connect 23 1 12 0;
+#X connect 23 2 21 0;
+#X connect 24 0 13 0;
+#X restore 69 174 pd creation_corde;
+#X msg 317 84 forceX M-\$1 \$2;
+#X obj 31 249 route massesPos massesForces;
+#X obj 70 151 loadbang;
+#X obj 136 154 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 31 81 bang \, get massesPos \, get massesForces;
+#X obj 317 42 inlet;
+#X obj 31 57 t b f;
+#X msg 61 104 posX M-0 \$1;
+#X connect 0 0 10 0;
+#X connect 1 0 15 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 2 0;
+#X connect 10 1 7 0;
+#X connect 11 0 8 0;
+#X connect 12 0 8 0;
+#X connect 13 0 0 0;
+#X connect 14 0 9 0;
+#X connect 15 0 13 0;
+#X connect 15 1 16 0;
+#X connect 16 0 0 0;
diff --git a/puremapping/pmrepulsor_1d-help.pd b/puremapping/pmrepulsor_1d-help.pd
new file mode 100644
index 0000000..5645db5
--- /dev/null
+++ b/puremapping/pmrepulsor_1d-help.pd
@@ -0,0 +1,42 @@
+#N canvas 71 107 520 753 10;
+#X floatatom 196 374 5 0 0 0 - - -;
+#X floatatom 116 373 5 0 0 0 - - -;
+#X obj 41 397 pmrepulsor_1d 0.3 0.3;
+#X obj 41 523 timeroll 100;
+#X obj 41 475 min 1;
+#X obj 41 497 max 0;
+#X obj 41 451 + 0.5;
+#X obj 161 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 5900 0;
+#X msg 315 252 0;
+#X msg 315 277 grab_on \$1;
+#X obj 41 283 metro 50;
+#X obj 41 259 loadbang;
+#X obj 315 226 delay 200;
+#X msg 349 253 0.3;
+#X msg 161 190 force \$1;
+#X obj 285 43 vsl 15 128 -1 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 1100 1;
+#X obj 285 179 t f b;
+#X msg 285 202 grab \$1;
+#X obj 41 427 / 2;
+#X connect 0 0 2 2;
+#X connect 1 0 2 1;
+#X connect 2 0 18 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 4 0;
+#X connect 7 0 14 0;
+#X connect 8 0 9 0;
+#X connect 9 0 2 0;
+#X connect 10 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 8 0;
+#X connect 13 0 9 0;
+#X connect 14 0 2 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 16 1 13 0;
+#X connect 16 1 12 0;
+#X connect 17 0 2 0;
+#X connect 18 0 6 0;
diff --git a/puremapping/pmrepulsor_1d.pd b/puremapping/pmrepulsor_1d.pd
new file mode 100644
index 0000000..88b77ac
--- /dev/null
+++ b/puremapping/pmrepulsor_1d.pd
@@ -0,0 +1,51 @@
+#N canvas 127 228 633 573 10;
+#X obj 31 34 inlet;
+#X obj 79 317 loadbang;
+#X obj 24 506 outlet;
+#X obj 79 343 pack \$1 \$2;
+#X obj 368 37 inlet;
+#X msg 368 84 setK lnk \$1;
+#X obj 461 38 inlet;
+#X msg 461 84 setD lnk \$1;
+#X obj 24 478 route out;
+#X obj 133 507 outlet;
+#X obj 133 479 route out;
+#X obj 24 454 route massesPosId massesForcesId;
+#X obj 159 312 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 24 432 msd;
+#X msg 79 369 reset \, mass border 0 1 0 \, mass out 1 1 0.5 \, link
+lnk border out \$1 \$2 \, mass grab 0 1 0 \, link lgrab out grab 0
+0;
+#X msg 213 129 bang \, get massesPos out \, get massesForces out;
+#X obj 29 88 unpack f f;
+#X msg 29 112 posX grab \$1;
+#X msg 78 165 setK lgrab \$1;
+#X msg 94 134 posY grab \$1;
+#X obj 29 55 route grab grab_on force bang;
+#X msg 132 89 forceX out \$1;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 3 0 14 0;
+#X connect 4 0 5 0;
+#X connect 5 0 13 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 0;
+#X connect 8 0 2 0;
+#X connect 10 0 9 0;
+#X connect 11 0 8 0;
+#X connect 11 1 10 0;
+#X connect 12 0 3 0;
+#X connect 13 0 11 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 17 0;
+#X connect 16 1 19 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 16 0;
+#X connect 20 1 18 0;
+#X connect 20 2 21 0;
+#X connect 20 3 15 0;
+#X connect 21 0 13 0;
diff --git a/puremapping/pmrepulsor_2d-help.pd b/puremapping/pmrepulsor_2d-help.pd
new file mode 100644
index 0000000..46182ba
--- /dev/null
+++ b/puremapping/pmrepulsor_2d-help.pd
@@ -0,0 +1,60 @@
+#N canvas 33 89 639 826 10;
+#X obj 44 460 unpack f f;
+#X floatatom 186 413 5 0 0 0 - - -;
+#X floatatom 115 412 5 0 0 0 - - -;
+#X obj 44 580 timeroll;
+#X obj 44 533 min 1;
+#X obj 44 553 max 0;
+#X obj 44 484 + 1;
+#X obj 44 508 / 2;
+#X obj 161 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 1200 0;
+#X obj 368 21 gcanvas 100 100;
+#X obj 368 129 - 50;
+#X obj 461 127 - 50;
+#X obj 368 151 / 100;
+#X obj 461 149 / 100;
+#X obj 212 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 7900 0;
+#X msg 368 220 grab \$1 \$2;
+#X obj 368 174 pack f f;
+#X obj 368 197 t l b;
+#X msg 398 270 0;
+#X msg 398 295 grab_on \$1;
+#X msg 161 190 force \$1 0;
+#X msg 212 212 force 0 \$1;
+#X obj 44 283 metro 50;
+#X obj 44 259 loadbang;
+#X obj 398 244 delay 200;
+#X msg 432 271 0.3;
+#X obj 44 433 pmrepulsor_2d 0.3 0.3;
+#X connect 0 0 6 0;
+#X connect 0 1 6 0;
+#X connect 1 0 26 2;
+#X connect 2 0 26 1;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
+#X connect 8 0 20 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 1;
+#X connect 14 0 21 0;
+#X connect 15 0 26 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 25 0;
+#X connect 17 1 24 0;
+#X connect 18 0 19 0;
+#X connect 19 0 26 0;
+#X connect 20 0 26 0;
+#X connect 21 0 26 0;
+#X connect 22 0 26 0;
+#X connect 23 0 22 0;
+#X connect 24 0 18 0;
+#X connect 25 0 19 0;
+#X connect 26 0 0 0;
diff --git a/puremapping/pmrepulsor_2d.pd b/puremapping/pmrepulsor_2d.pd
new file mode 100644
index 0000000..f4b6ac4
--- /dev/null
+++ b/puremapping/pmrepulsor_2d.pd
@@ -0,0 +1,52 @@
+#N canvas 316 249 871 573 10;
+#X obj 31 34 inlet;
+#X obj 76 214 loadbang;
+#X obj 31 428 outlet;
+#X obj 76 240 pack \$1 \$2;
+#X obj 592 23 inlet;
+#X msg 592 70 setK lnk \$1;
+#X obj 685 24 inlet;
+#X msg 685 70 setD lnk \$1;
+#X msg 213 129 bang \, get massesPos out \, get massesForces out;
+#X obj 31 400 route out;
+#X obj 140 429 outlet;
+#X obj 140 401 route out;
+#X obj 31 376 route massesPosId massesForcesId;
+#X obj 31 354 msd2D;
+#X msg 132 89 forceX out \$1 \, forceY out \$2;
+#X obj 156 209 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 29 88 unpack f f;
+#X msg 29 112 posX grab \$1;
+#X msg 78 165 setK lgrab \$1;
+#X msg 94 134 posY grab \$1;
+#X obj 29 55 route grab grab_on force bang;
+#X msg 76 266 reset \, mass center 0 1 0 0 \, mass out 1 1 0.5 0 \,
+link lnk center out \$1 0 \, tLink damp center out 0 \$2 0 1 \, tLink
+damp center out 0 \$2 1 0 \, mass grab 0 1 0 0 \, link lgrab out grab
+0 0;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 3 0 21 0;
+#X connect 4 0 5 0;
+#X connect 5 0 13 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 0;
+#X connect 8 0 13 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 15 0 3 0;
+#X connect 16 0 17 0;
+#X connect 16 1 19 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 16 0;
+#X connect 20 1 18 0;
+#X connect 20 2 14 0;
+#X connect 20 3 8 0;
+#X connect 21 0 13 0;
diff --git a/puremapping/pmrepulsor_3d-help.pd b/puremapping/pmrepulsor_3d-help.pd
new file mode 100644
index 0000000..144d461
--- /dev/null
+++ b/puremapping/pmrepulsor_3d-help.pd
@@ -0,0 +1,66 @@
+#N canvas 377 76 579 769 10;
+#X floatatom 157 380 5 0 0 0 - - -;
+#X floatatom 100 379 5 0 0 0 - - -;
+#X obj 43 550 timeroll;
+#X obj 43 503 min 1;
+#X obj 43 523 max 0;
+#X obj 43 454 + 1;
+#X obj 43 478 / 2;
+#X obj 43 430 unpack f f f;
+#X obj 160 54 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 4400 0;
+#X obj 367 37 gcanvas 100 100;
+#X obj 367 145 - 50;
+#X obj 460 143 - 50;
+#X obj 367 167 / 100;
+#X obj 460 165 / 100;
+#X obj 211 54 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 700 0;
+#X obj 367 190 pack f f;
+#X obj 367 213 t l b;
+#X msg 397 286 0;
+#X msg 397 311 grab_on \$1;
+#X obj 43 299 metro 50;
+#X obj 43 275 loadbang;
+#X obj 397 260 delay 200;
+#X msg 431 287 0.3;
+#X msg 367 236 grab \$1 \$2 0;
+#X obj 256 56 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 10100 0;
+#X msg 160 206 force \$1 0 0;
+#X msg 211 228 force 0 \$1 0;
+#X msg 257 259 force 0 0 \$1;
+#X obj 43 403 pmrepulsor_3d 0.3 0.3;
+#X connect 0 0 28 2;
+#X connect 1 0 28 1;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 7 0 5 0;
+#X connect 7 1 5 0;
+#X connect 7 2 5 0;
+#X connect 8 0 25 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 15 0;
+#X connect 13 0 15 1;
+#X connect 14 0 26 0;
+#X connect 15 0 16 0;
+#X connect 16 0 23 0;
+#X connect 16 1 22 0;
+#X connect 16 1 21 0;
+#X connect 17 0 18 0;
+#X connect 18 0 28 0;
+#X connect 19 0 28 0;
+#X connect 20 0 19 0;
+#X connect 21 0 17 0;
+#X connect 22 0 18 0;
+#X connect 23 0 28 0;
+#X connect 24 0 27 0;
+#X connect 25 0 28 0;
+#X connect 26 0 28 0;
+#X connect 27 0 28 0;
+#X connect 28 0 7 0;
diff --git a/puremapping/pmrepulsor_3d.pd b/puremapping/pmrepulsor_3d.pd
new file mode 100644
index 0000000..e0771f7
--- /dev/null
+++ b/puremapping/pmrepulsor_3d.pd
@@ -0,0 +1,55 @@
+#N canvas 146 213 871 573 10;
+#X obj 31 34 inlet;
+#X obj 59 326 loadbang;
+#X obj 32 535 outlet;
+#X obj 59 352 pack \$1 \$2;
+#X obj 368 37 inlet;
+#X msg 368 84 setK lnk \$1;
+#X obj 461 38 inlet;
+#X msg 461 84 setD lnk \$1;
+#X msg 206 239 bang \, get massesPos out \, get massesForces out;
+#X obj 32 507 route out;
+#X obj 141 536 outlet;
+#X obj 141 508 route out;
+#X obj 32 483 route massesPosId massesForcesId;
+#X obj 139 321 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 32 461 msd3D;
+#X msg 171 216 forceX out \$1 \, forceY out \$2 \, forceZ out \$3;
+#X msg 31 112 posX grab \$1;
+#X msg 145 192 setK lgrab \$1;
+#X msg 70 136 posY grab \$1;
+#X obj 31 55 route grab grab_on force bang;
+#X obj 31 88 unpack f f f;
+#X msg 111 159 posZ grab \$1;
+#X msg 60 378 reset \, mass center 0 1 0 0 0 \, mass out 1 1 0.5 0
+0 \, link lnk center out \$1 0 \, tLink damp center out 0 \$2 0 1 0
+\, tLink damp center out 0 \$2 1 0 0 \, tLink damp center out 0 \$2
+0 0 1 \, mass grab 0 1 0 0 0 \, link lgrab out grab 0 0;
+#X connect 0 0 19 0;
+#X connect 1 0 3 0;
+#X connect 3 0 22 0;
+#X connect 4 0 5 0;
+#X connect 5 0 14 0;
+#X connect 6 0 7 0;
+#X connect 7 0 14 0;
+#X connect 8 0 14 0;
+#X connect 9 0 2 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 12 1 11 0;
+#X connect 13 0 3 0;
+#X connect 14 0 12 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 19 0 20 0;
+#X connect 19 1 17 0;
+#X connect 19 2 15 0;
+#X connect 19 3 8 0;
+#X connect 20 0 16 0;
+#X connect 20 1 18 0;
+#X connect 20 2 21 0;
+#X connect 21 0 14 0;
+#X connect 22 0 14 0;
diff --git a/puremapping/pmrigid_open_string_2d-help.pd b/puremapping/pmrigid_open_string_2d-help.pd
new file mode 100644
index 0000000..984f3ec
--- /dev/null
+++ b/puremapping/pmrigid_open_string_2d-help.pd
@@ -0,0 +1,58 @@
+#N canvas 556 69 665 645 10;
+#X obj 54 92 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2800 1;
+#X obj 75 92 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 5200 1;
+#X text 289 306 arguments : number of moving masses \, rigidity \,
+damping;
+#X text 210 19 simple Physical model of "string";
+#X text 164 40 usefull to create different correlated output with few
+input.;
+#X text 111 113 inlet : 1 \, 2 : position of 1st mass and last mass
+;
+#X text 180 136 3 : forces apply to masses;
+#X text 180 158 4 : rigidity;
+#X text 180 178 5 : damping;
+#X text 171 279 mass 3 \, force = 1;
+#X text 106 339 outlet 1 : position of masses;
+#X msg 116 280 3 0.01;
+#X obj 38 451 gemhead;
+#X obj 38 369 t b l;
+#X obj 38 546 translateXYZ;
+#X obj 96 477 unpack f f f;
+#X obj 38 286 f;
+#X obj 135 500 - 0.5;
+#X obj 134 520 * 4;
+#X obj 175 500 - 0.5;
+#X obj 174 520 * 4;
+#X obj 249 490 gemwin;
+#X msg 249 438 create \, 1;
+#X msg 266 461 destroy;
+#X obj 54 395 loadbang;
+#X msg 54 418 0;
+#X obj 38 571 square 0.1;
+#X obj 38 236 gemhead;
+#X obj 38 260 b;
+#X obj 38 309 pmrigid_open_string_2d 9 0.1 0.01;
+#X obj 38 338 route 0 1;
+#X connect 0 0 16 1;
+#X connect 11 0 29 1;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 13 1 15 0;
+#X connect 14 0 26 0;
+#X connect 15 1 17 0;
+#X connect 15 2 19 0;
+#X connect 16 0 29 0;
+#X connect 17 0 18 0;
+#X connect 18 0 14 1;
+#X connect 19 0 20 0;
+#X connect 20 0 14 2;
+#X connect 22 0 21 0;
+#X connect 23 0 21 0;
+#X connect 24 0 25 0;
+#X connect 25 0 12 0;
+#X connect 27 0 28 0;
+#X connect 28 0 16 0;
+#X connect 29 0 30 0;
+#X connect 30 2 13 0;
diff --git a/puremapping/pmrigid_open_string_2d.pd b/puremapping/pmrigid_open_string_2d.pd
new file mode 100644
index 0000000..37ec7e9
--- /dev/null
+++ b/puremapping/pmrigid_open_string_2d.pd
@@ -0,0 +1,144 @@
+#N canvas 870 255 743 397 10;
+#X obj 42 34 inlet;
+#X obj 42 57 t b f;
+#X obj 42 350 outlet;
+#X obj 510 34 inlet;
+#X msg 510 81 setK lnk \$1;
+#X obj 603 35 inlet;
+#X msg 603 81 setD lnk \$1;
+#N canvas 746 115 421 804 creation_corde 0;
+#X obj 32 23 loadbang;
+#X msg 141 212 0;
+#X obj 141 237 f;
+#X obj 141 288 + 1;
+#X obj 141 264 moses \$1;
+#X obj 163 315 t f f;
+#X obj 175 649 t a;
+#X obj 239 366 + 1;
+#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 193 424 pack f f;
+#X obj 193 342 t f f;
+#X obj 239 343 \$1;
+#X obj 223 395 /;
+#X obj 205 168 + 1;
+#X obj 205 145 \$1;
+#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
+#X obj 121 552 pack f f \$2 \$3;
+#X obj 173 677 outlet;
+#X msg 31 578 setL lnk 0;
+#X obj 32 50 t b b b b b b;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 70 417 pd loop;
+#X obj 71 361 \$1;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 71 477 pd loop;
+#X obj 71 451 t f f;
+#X obj 71 386 + 2;
+#X msg 175 94 reset \, mass M-0 0 1 0 0;
+#X msg 193 447 mass M-\$1 1 1 \$2 0;
+#X msg 205 192 mass M-\$1 0 1 -0.1 0;
+#X connect 0 0 19 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 5 0 2 0;
+#X connect 5 1 10 0;
+#X connect 6 0 17 0;
+#X connect 7 0 12 1;
+#X connect 8 0 19 0;
+#X connect 9 0 26 0;
+#X connect 10 0 9 0;
+#X connect 10 1 12 0;
+#X connect 11 0 7 0;
+#X connect 12 0 9 1;
+#X connect 13 0 27 0;
+#X connect 14 0 13 0;
+#X connect 15 0 6 0;
+#X connect 16 0 15 0;
+#X connect 19 0 18 0;
+#X connect 19 1 21 0;
+#X connect 19 2 1 0;
+#X connect 19 3 14 0;
+#X connect 19 4 25 0;
+#X connect 19 5 11 0;
+#X connect 20 0 23 0;
+#X connect 21 0 24 0;
+#X connect 22 0 16 0;
+#X connect 23 0 22 0;
+#X connect 23 1 16 1;
+#X connect 24 0 20 0;
+#X connect 25 0 6 0;
+#X connect 26 0 6 0;
+#X connect 27 0 6 0;
+#X restore 87 175 pd creation_corde;
+#X obj 395 31 inlet;
+#X obj 42 278 msd2D;
+#X msg 395 80 forceY M-\$1 \$2;
+#X msg 72 104 posY M-0 \$1;
+#X msg 169 130 posY M-\$2 \$1;
+#X obj 42 300 route massesPos;
+#X msg 42 81 bang \, get massesPos;
+#X obj 169 107 pack f f;
+#X obj 220 59 \$1;
+#X obj 220 81 + 1;
+#X obj 220 37 loadbang;
+#X connect 0 0 1 0;
+#X connect 1 0 14 0;
+#X connect 1 1 11 0;
+#X connect 1 1 15 0;
+#X connect 3 0 4 0;
+#X connect 4 0 9 0;
+#X connect 5 0 6 0;
+#X connect 6 0 9 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
+#X connect 13 0 2 0;
+#X connect 14 0 9 0;
+#X connect 15 0 12 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 1;
+#X connect 18 0 16 0;
diff --git a/puremapping/pmrigid_string_2d-help.pd b/puremapping/pmrigid_string_2d-help.pd
new file mode 100644
index 0000000..1e774a8
--- /dev/null
+++ b/puremapping/pmrigid_string_2d-help.pd
@@ -0,0 +1,57 @@
+#N canvas 657 101 665 645 10;
+#X obj 54 92 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 7400 1;
+#X obj 75 92 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 2000 1;
+#X text 227 308 arguments : number of moving masses \, rigidity \,
+damping;
+#X text 210 19 simple Physical model of "string";
+#X text 164 40 usefull to create different correlated output with few
+input.;
+#X text 111 113 inlet : 1 \, 2 : position of 1st mass and last mass
+;
+#X text 180 136 3 : forces apply to masses;
+#X text 180 158 4 : rigidity;
+#X text 180 178 5 : damping;
+#X text 171 279 mass 3 \, force = 1;
+#X text 106 339 outlet 1 : position of masses;
+#X msg 116 280 3 0.01;
+#X obj 38 451 gemhead;
+#X obj 38 369 t b l;
+#X obj 38 546 translateXYZ;
+#X obj 96 477 unpack f f f;
+#X obj 38 286 f;
+#X obj 135 500 - 0.5;
+#X obj 134 520 * 4;
+#X obj 175 500 - 0.5;
+#X obj 174 520 * 4;
+#X obj 249 490 gemwin;
+#X msg 249 438 create \, 1;
+#X msg 266 461 destroy;
+#X obj 54 395 loadbang;
+#X msg 54 418 0;
+#X obj 38 571 square 0.1;
+#X obj 38 236 gemhead;
+#X obj 38 260 b;
+#X obj 38 307 pmrigid_string_2d 9 0.1 0.01;
+#X connect 0 0 16 1;
+#X connect 1 0 29 1;
+#X connect 11 0 29 2;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 13 1 15 0;
+#X connect 14 0 26 0;
+#X connect 15 1 17 0;
+#X connect 15 2 19 0;
+#X connect 16 0 29 0;
+#X connect 17 0 18 0;
+#X connect 18 0 14 1;
+#X connect 19 0 20 0;
+#X connect 20 0 14 2;
+#X connect 22 0 21 0;
+#X connect 23 0 21 0;
+#X connect 24 0 25 0;
+#X connect 25 0 12 0;
+#X connect 27 0 28 0;
+#X connect 28 0 16 0;
+#X connect 29 0 13 0;
diff --git a/puremapping/pmrigid_string_2d.pd b/puremapping/pmrigid_string_2d.pd
new file mode 100644
index 0000000..52d36ea
--- /dev/null
+++ b/puremapping/pmrigid_string_2d.pd
@@ -0,0 +1,145 @@
+#N canvas 605 196 743 397 10;
+#X obj 42 34 inlet;
+#X obj 42 57 t b f;
+#X obj 42 350 outlet;
+#X obj 269 31 inlet;
+#X obj 510 34 inlet;
+#X msg 510 81 setK lnk \$1;
+#X obj 603 35 inlet;
+#X msg 603 81 setD lnk \$1;
+#N canvas 746 115 421 804 creation_corde 0;
+#X obj 32 23 loadbang;
+#X msg 143 117 0;
+#X obj 143 142 f;
+#X obj 143 193 + 1;
+#X obj 143 169 moses \$1;
+#X obj 165 220 t f f;
+#X obj 175 649 t a;
+#X obj 241 271 + 1;
+#X obj 118 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 195 329 pack f f;
+#X obj 195 247 t f f;
+#X obj 241 248 \$1;
+#X obj 225 300 /;
+#X obj 119 291 + 1;
+#X obj 119 268 \$1;
+#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
+#X obj 121 552 pack f f \$2 \$3;
+#X obj 173 677 outlet;
+#X msg 31 578 setL lnk 0;
+#X obj 32 50 t b b b b b b;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 70 417 pd loop;
+#X obj 71 361 \$1;
+#N canvas 0 0 259 330 loop 0;
+#X obj 74 149 f;
+#X obj 74 213 + 1;
+#X obj 74 171 moses \$1;
+#X obj 74 104 t b f;
+#X obj 104 281 outlet;
+#X obj 74 82 inlet;
+#X msg 74 126 0;
+#X obj 74 191 t f f;
+#X obj 96 240 t f;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 1 2 1;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 1 0;
+#X connect 7 1 4 0;
+#X connect 8 0 0 0;
+#X restore 71 477 pd loop;
+#X obj 71 451 t f f;
+#X obj 71 386 + 2;
+#X msg 175 94 reset \, mass M-0 0 1 0 0;
+#X msg 195 352 mass M-\$1 1 1 \$2 0;
+#X msg 119 400 mass M-\$1 0 1 1 0;
+#X connect 0 0 19 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 5 0 2 0;
+#X connect 5 1 10 0;
+#X connect 6 0 17 0;
+#X connect 7 0 12 1;
+#X connect 8 0 19 0;
+#X connect 9 0 26 0;
+#X connect 10 0 9 0;
+#X connect 10 1 12 0;
+#X connect 11 0 7 0;
+#X connect 12 0 9 1;
+#X connect 13 0 27 0;
+#X connect 14 0 13 0;
+#X connect 15 0 6 0;
+#X connect 16 0 15 0;
+#X connect 19 0 18 0;
+#X connect 19 1 21 0;
+#X connect 19 2 14 0;
+#X connect 19 3 1 0;
+#X connect 19 4 25 0;
+#X connect 19 5 11 0;
+#X connect 20 0 23 0;
+#X connect 21 0 24 0;
+#X connect 22 0 16 0;
+#X connect 23 0 22 0;
+#X connect 23 1 16 1;
+#X connect 24 0 20 0;
+#X connect 25 0 6 0;
+#X connect 26 0 6 0;
+#X connect 27 0 6 0;
+#X restore 87 175 pd creation_corde;
+#X obj 269 96 pack f f;
+#X obj 320 30 loadbang;
+#X obj 320 72 + 1;
+#X obj 320 51 \$1;
+#X obj 395 31 inlet;
+#X obj 42 278 msd2D;
+#X msg 395 80 forceY M-\$1 \$2;
+#X msg 72 104 posY M-0 \$1;
+#X msg 268 124 posY M-\$2 \$1;
+#X obj 42 300 route massesPos;
+#X msg 42 81 bang \, get massesPos;
+#X connect 0 0 1 0;
+#X connect 1 0 19 0;
+#X connect 1 1 16 0;
+#X connect 3 0 9 0;
+#X connect 4 0 5 0;
+#X connect 5 0 14 0;
+#X connect 6 0 7 0;
+#X connect 7 0 14 0;
+#X connect 8 0 14 0;
+#X connect 9 0 17 0;
+#X connect 10 0 12 0;
+#X connect 11 0 9 1;
+#X connect 12 0 11 0;
+#X connect 13 0 15 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
+#X connect 17 0 14 0;
+#X connect 18 0 2 0;
+#X connect 19 0 14 0;
diff --git a/puremapping/pmsquare_2d-help.pd b/puremapping/pmsquare_2d-help.pd
new file mode 100644
index 0000000..d2b9e6a
--- /dev/null
+++ b/puremapping/pmsquare_2d-help.pd
@@ -0,0 +1,60 @@
+#N canvas 127 86 677 796 10;
+#X obj 44 444 unpack f f;
+#X floatatom 199 394 5 0 0 0 - - -;
+#X floatatom 119 393 5 0 0 0 - - -;
+#X obj 44 564 timeroll;
+#X obj 44 517 min 1;
+#X obj 44 537 max 0;
+#X obj 44 468 + 1;
+#X obj 44 417 pmsquare_2d 0.3 0.3;
+#X obj 161 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 10700 0;
+#X obj 368 21 gcanvas 100 100;
+#X obj 368 129 - 50;
+#X obj 461 127 - 50;
+#X obj 368 151 / 100;
+#X obj 461 149 / 100;
+#X obj 212 38 vsl 15 128 -1 1 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 2500 0;
+#X msg 368 220 grab \$1 \$2;
+#X obj 368 174 pack f f;
+#X obj 368 197 t l b;
+#X msg 398 270 0;
+#X msg 398 295 grab_on \$1;
+#X msg 161 190 force \$1 0;
+#X msg 212 212 force 0 \$1;
+#X obj 44 283 metro 50;
+#X obj 44 259 loadbang;
+#X obj 398 244 delay 200;
+#X msg 432 271 0.3;
+#X obj 44 493 / 2;
+#X connect 0 0 6 0;
+#X connect 0 1 6 0;
+#X connect 1 0 7 2;
+#X connect 2 0 7 1;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 26 0;
+#X connect 7 0 0 0;
+#X connect 8 0 20 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 1;
+#X connect 14 0 21 0;
+#X connect 15 0 7 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 25 0;
+#X connect 17 1 24 0;
+#X connect 18 0 19 0;
+#X connect 19 0 7 0;
+#X connect 20 0 7 0;
+#X connect 21 0 7 0;
+#X connect 22 0 7 0;
+#X connect 23 0 22 0;
+#X connect 24 0 18 0;
+#X connect 25 0 19 0;
+#X connect 26 0 4 0;
diff --git a/puremapping/pmsquare_2d.pd b/puremapping/pmsquare_2d.pd
new file mode 100644
index 0000000..0c6e1f4
--- /dev/null
+++ b/puremapping/pmsquare_2d.pd
@@ -0,0 +1,52 @@
+#N canvas 222 210 871 573 10;
+#X obj 31 34 inlet;
+#X obj 82 304 loadbang;
+#X obj 48 508 outlet;
+#X obj 82 330 pack \$1 \$2;
+#X obj 368 37 inlet;
+#X msg 368 84 setK lnk \$1;
+#X obj 461 38 inlet;
+#X msg 461 84 setD lnk \$1;
+#X obj 48 480 route out;
+#X obj 157 509 outlet;
+#X obj 157 481 route out;
+#X obj 48 456 route massesPosId massesForcesId;
+#X obj 49 434 msd2D;
+#X obj 162 299 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 179 116 bang \, get massesPos out \, get massesForces out;
+#X msg 130 95 forceX out \$1 \, forceY out \$2;
+#X obj 31 95 unpack f f;
+#X msg 31 119 posX grab \$1;
+#X msg 80 172 setK lgrab \$1;
+#X msg 96 141 posY grab \$1;
+#X obj 31 62 route grab grab_on force bang;
+#X msg 82 356 reset \, mass corner 0 1 -1 -1 \, mass corner 0 1 1 -1
+\, mass corner 0 1 1 1 \, mass corner 0 1 -1 1 \, mass out 1 1 0 0
+\, link lnk corner out \$1 \$2 \, mass grab 0 1 0 0 \, link lgrab out
+grab 0 0;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 3 0 21 0;
+#X connect 4 0 5 0;
+#X connect 5 0 12 0;
+#X connect 6 0 7 0;
+#X connect 7 0 12 0;
+#X connect 8 0 2 0;
+#X connect 10 0 9 0;
+#X connect 11 0 8 0;
+#X connect 11 1 10 0;
+#X connect 12 0 11 0;
+#X connect 13 0 3 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 16 0 17 0;
+#X connect 16 1 19 0;
+#X connect 17 0 12 0;
+#X connect 18 0 12 0;
+#X connect 19 0 12 0;
+#X connect 20 0 16 0;
+#X connect 20 1 18 0;
+#X connect 20 2 15 0;
+#X connect 20 3 14 0;
+#X connect 21 0 12 0;
diff --git a/puremapping/pmstring_1d-help.pd b/puremapping/pmstring_1d-help.pd
new file mode 100644
index 0000000..898b6e2
--- /dev/null
+++ b/puremapping/pmstring_1d-help.pd
@@ -0,0 +1,104 @@
+#N canvas 209 108 665 618 10;
+#X obj 39 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 56 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 10 1;
+#X obj 73 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 20 1;
+#X obj 90 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 30 1;
+#X obj 107 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 40 1;
+#X obj 124 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 50 1;
+#X obj 141 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 60 1;
+#X obj 158 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 70 1;
+#X obj 175 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 80 1;
+#X obj 192 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 90 1;
+#X obj 39 106 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 78 106 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 39 436 route 0 1 2 3 4 5 6 7 8 9 10;
+#X obj 209 467 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 100 1;
+#X text 207 308 arguments : number of moving masses \, rigidity \,
+damping;
+#X text 210 19 simple Physical model of "string";
+#X text 164 40 usefull to create different correlated output with few
+input.;
+#X text 111 113 inlet : 1 \, 2 : position of 1st mass and last mass
+;
+#X text 180 136 3 : forces apply to masses;
+#X text 180 158 4 : rigidity;
+#X text 180 178 5 : damping;
+#X msg 117 279 3 1;
+#X text 148 281 mass 3 \, force = 1;
+#X obj 306 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 323 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 340 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 357 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 374 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 391 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 408 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 425 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 442 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 459 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 306 437 route 0 1 2 3 4 5 6 7 8 9 10;
+#X obj 476 468 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 6400 1;
+#X obj 39 245 resample 5;
+#X obj 306 342 unpack f f;
+#X obj 306 412 pack f f;
+#X obj 371 367 * 100;
+#X obj 371 391 + 64;
+#X text 99 361 2 : forces apply to masses;
+#X text 51 344 outlet 1 : position of masses;
+#X obj 39 307 pmstring_1d 9 0.01 0.01;
+#X connect 10 0 35 0;
+#X connect 11 0 42 1;
+#X connect 12 0 0 0;
+#X connect 12 1 1 0;
+#X connect 12 2 2 0;
+#X connect 12 3 3 0;
+#X connect 12 4 4 0;
+#X connect 12 5 5 0;
+#X connect 12 6 6 0;
+#X connect 12 7 7 0;
+#X connect 12 8 8 0;
+#X connect 12 9 9 0;
+#X connect 12 10 13 0;
+#X connect 21 0 42 2;
+#X connect 33 0 23 0;
+#X connect 33 1 24 0;
+#X connect 33 2 25 0;
+#X connect 33 3 26 0;
+#X connect 33 4 27 0;
+#X connect 33 5 28 0;
+#X connect 33 6 29 0;
+#X connect 33 7 30 0;
+#X connect 33 8 31 0;
+#X connect 33 9 32 0;
+#X connect 33 10 34 0;
+#X connect 35 0 42 0;
+#X connect 36 0 37 0;
+#X connect 36 1 38 0;
+#X connect 37 0 33 0;
+#X connect 38 0 39 0;
+#X connect 39 0 37 1;
+#X connect 42 0 12 0;
+#X connect 42 1 36 0;
diff --git a/puremapping/pmstring_1d.pd b/puremapping/pmstring_1d.pd
new file mode 100644
index 0000000..58c4017
--- /dev/null
+++ b/puremapping/pmstring_1d.pd
@@ -0,0 +1,113 @@
+#N canvas 590 84 962 400 10;
+#X obj 42 278 msd;
+#X obj 31 34 inlet;
+#X obj 31 57 t b f;
+#X obj 42 352 outlet;
+#X obj 358 34 inlet;
+#X obj 710 41 inlet;
+#X msg 710 88 setK lnk \$1;
+#X obj 803 42 inlet;
+#X msg 803 88 setD lnk \$1;
+#X obj 137 351 outlet;
+#N canvas 795 187 457 717 creation_corde 0;
+#X obj 43 23 loadbang;
+#X msg 163 94 reset \, mass M-0 0 1 0;
+#X msg 143 117 0;
+#X obj 143 142 f;
+#X obj 143 193 + 1;
+#X obj 143 169 moses \$1;
+#X obj 165 220 t f f;
+#X obj 175 649 t a;
+#X obj 241 271 + 1;
+#X obj 129 19 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 123 404 mass M-\$1 0 1 1;
+#X obj 195 329 pack f f;
+#X obj 195 247 t f f;
+#X obj 241 248 \$1;
+#X msg 195 352 mass M-\$1 1 1 \$2;
+#X obj 225 300 /;
+#X obj 123 378 + 1;
+#X obj 123 355 \$1;
+#X msg 121 580 link lnk M-\$1 M-\$2 \$3 \$4;
+#X obj 121 552 pack f f \$2 \$3;
+#X obj 69 418 f;
+#X obj 69 495 + 1;
+#X obj 69 445 moses \$1;
+#X obj 91 522 t f f;
+#X obj 69 470 t f f;
+#X msg 69 391 -1;
+#X obj 152 524 + 2;
+#X obj 173 677 outlet;
+#X msg 31 578 setL lnk 0;
+#X obj 43 50 t b b b b b b;
+#X connect 0 0 29 0;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 6 0 3 0;
+#X connect 6 1 12 0;
+#X connect 7 0 27 0;
+#X connect 8 0 15 1;
+#X connect 9 0 29 0;
+#X connect 10 0 7 0;
+#X connect 11 0 14 0;
+#X connect 12 0 11 0;
+#X connect 12 1 15 0;
+#X connect 13 0 8 0;
+#X connect 14 0 7 0;
+#X connect 15 0 11 1;
+#X connect 16 0 10 0;
+#X connect 17 0 16 0;
+#X connect 18 0 7 0;
+#X connect 19 0 18 0;
+#X connect 20 0 22 0;
+#X connect 21 0 23 0;
+#X connect 22 0 24 0;
+#X connect 23 0 20 0;
+#X connect 23 1 19 0;
+#X connect 24 0 21 0;
+#X connect 24 1 26 0;
+#X connect 25 0 20 0;
+#X connect 26 0 19 1;
+#X connect 28 0 7 0;
+#X connect 29 0 28 0;
+#X connect 29 1 25 0;
+#X connect 29 2 17 0;
+#X connect 29 3 2 0;
+#X connect 29 4 1 0;
+#X connect 29 5 13 0;
+#X restore 105 149 pd creation_corde;
+#X msg 61 104 posX M-0 \$1;
+#X obj 358 99 pack f f;
+#X obj 409 33 loadbang;
+#X obj 409 75 + 1;
+#X msg 358 127 posX M-\$2 \$1;
+#X obj 409 54 \$1;
+#X obj 540 41 inlet;
+#X msg 540 115 forceX M-\$1 \$2;
+#X obj 42 300 route massesPos massesForces;
+#X msg 31 81 bang \, get massesPos \, get massesForces;
+#X connect 0 0 19 0;
+#X connect 1 0 2 0;
+#X connect 2 0 20 0;
+#X connect 2 1 11 0;
+#X connect 4 0 12 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 7 0 8 0;
+#X connect 8 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 15 0;
+#X connect 13 0 16 0;
+#X connect 14 0 12 1;
+#X connect 15 0 0 0;
+#X connect 16 0 14 0;
+#X connect 17 0 18 0;
+#X connect 18 0 0 0;
+#X connect 19 0 3 0;
+#X connect 19 1 9 0;
+#X connect 20 0 0 0;
diff --git a/puremapping/rec_play-help.pd b/puremapping/rec_play-help.pd
new file mode 100644
index 0000000..9f7ae65
--- /dev/null
+++ b/puremapping/rec_play-help.pd
@@ -0,0 +1,32 @@
+#N canvas 729 51 701 508 10;
+#X obj 41 41 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 41 327 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
+-1 -1 0 1;
+#X obj 41 179 / 127;
+#X obj 41 303 * 127;
+#X obj 76 202 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 96 202 rec;
+#X obj 112 219 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 148 238 write test;
+#X msg 161 258 read test;
+#X text 346 152 arg1 : number of sample to record;
+#X text 346 172 arg2 : time between sample (ms);
+#X text 190 16 record and play stream of float;
+#X text 141 45 Warning : the save fonctionality work only if data are
+:;
+#X text 478 69 -1 < data < 1;
+#X text 255 242 write and load in a wave file;
+#X text 132 219 play (loop);
+#X obj 41 279 rec_play 1000 10;
+#X text 168 280 10s at 100 samples/s;
+#X connect 0 0 2 0;
+#X connect 2 0 16 0;
+#X connect 3 0 1 0;
+#X connect 4 0 16 1;
+#X connect 6 0 16 2;
+#X connect 7 0 16 3;
+#X connect 8 0 16 3;
+#X connect 16 0 3 0;
diff --git a/puremapping/rec_play.pd b/puremapping/rec_play.pd
new file mode 100644
index 0000000..7bd1290
--- /dev/null
+++ b/puremapping/rec_play.pd
@@ -0,0 +1,79 @@
+#N canvas 342 400 1018 507 10;
+#X obj 41 469 outlet;
+#X obj 79 217 table \$0-rec \$1;
+#X obj 199 21 inlet;
+#X obj 109 134 f;
+#X obj 109 155 + 1;
+#X obj 79 106 t f b;
+#X obj 354 27 inlet;
+#X obj 79 195 tabwrite \$0-rec;
+#X text 84 21 data;
+#X text 244 24 rec;
+#X text 401 29 play;
+#X obj 79 78 spigot 0;
+#X obj 41 256 spigot 1;
+#X obj 290 87 == 0;
+#X obj 180 394 tabread \$0-rec;
+#X obj 180 315 f;
+#X obj 192 342 + 1;
+#X obj 180 259 spigot 0;
+#X obj 375 89 sel 1;
+#X msg 375 114 0;
+#X obj 229 70 sel 1;
+#X msg 229 95 0;
+#X obj 180 284 b;
+#X text 716 54 arg1 : number of sample to record;
+#X text 716 74 arg2 : time between sample (ms);
+#X obj 491 283 soundfiler;
+#X obj 491 186 pack s s;
+#X obj 542 158 symbol \$0-rec;
+#X obj 542 130 loadbang;
+#X obj 491 69 route read write;
+#X obj 491 31 inlet;
+#X text 550 34 read / write;
+#X obj 632 200 pack s s;
+#X obj 192 370 mod \$1;
+#X obj 199 47 t f f;
+#X obj 59 45 resample \$2;
+#X obj 41 21 inlet;
+#X msg 632 226 write \$1 \$2;
+#X msg 491 220 read \$1.wav \$2;
+#X connect 2 0 34 0;
+#X connect 3 0 4 0;
+#X connect 4 0 3 1;
+#X connect 4 0 7 1;
+#X connect 5 0 7 0;
+#X connect 5 1 3 0;
+#X connect 6 0 13 0;
+#X connect 6 0 17 1;
+#X connect 6 0 18 0;
+#X connect 11 0 5 0;
+#X connect 12 0 0 0;
+#X connect 13 0 12 1;
+#X connect 14 0 0 0;
+#X connect 15 0 16 0;
+#X connect 15 0 14 0;
+#X connect 16 0 33 0;
+#X connect 17 0 22 0;
+#X connect 18 0 19 0;
+#X connect 19 0 15 1;
+#X connect 20 0 21 0;
+#X connect 21 0 3 1;
+#X connect 22 0 15 0;
+#X connect 26 0 38 0;
+#X connect 27 0 26 1;
+#X connect 27 0 32 1;
+#X connect 28 0 27 0;
+#X connect 29 0 26 0;
+#X connect 29 1 32 0;
+#X connect 30 0 29 0;
+#X connect 32 0 37 0;
+#X connect 33 0 15 1;
+#X connect 34 0 11 1;
+#X connect 34 1 20 0;
+#X connect 35 0 11 0;
+#X connect 35 0 17 0;
+#X connect 36 0 35 0;
+#X connect 36 0 12 0;
+#X connect 37 0 25 0;
+#X connect 38 0 25 0;
diff --git a/puremapping/resample-help.pd b/puremapping/resample-help.pd
new file mode 100644
index 0000000..bc9d2a8
--- /dev/null
+++ b/puremapping/resample-help.pd
@@ -0,0 +1,26 @@
+#N canvas 0 0 276 383 10;
+#X floatatom 43 52 5 0 0 0 - - -;
+#X floatatom 43 319 5 0 0 0 - - -;
+#X obj 67 177 timer;
+#X obj 67 154 t b b;
+#X floatatom 67 200 5 0 0 0 - - -;
+#X obj 66 272 timer;
+#X obj 66 250 t b b;
+#X floatatom 66 296 5 0 0 0 - - -;
+#X floatatom 64 82 5 0 0 0 - - -;
+#X msg 64 104 \$1 1;
+#X obj 43 128 resample 10;
+#X obj 43 224 resample 100;
+#X connect 0 0 10 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 3 1 2 1;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 6 1 5 1;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 3 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
+#X connect 11 0 6 0;
diff --git a/puremapping/resample.pd b/puremapping/resample.pd
new file mode 100644
index 0000000..3a34fc0
--- /dev/null
+++ b/puremapping/resample.pd
@@ -0,0 +1,18 @@
+#N canvas 382 381 450 300 10;
+#X obj 46 140 metro \$1;
+#X obj 46 42 loadbang;
+#X obj 85 17 inlet;
+#X obj 46 197 outlet;
+#X obj 153 16 inlet;
+#X obj 46 89 != 0;
+#X obj 46 112 sel 1;
+#X obj 46 67 \$1;
+#X obj 46 169 list 0;
+#X connect 0 0 8 0;
+#X connect 1 0 7 0;
+#X connect 2 0 8 1;
+#X connect 4 0 0 1;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 7 0 5 0;
+#X connect 8 0 3 0;
diff --git a/puremapping/rnd-stat-help.pd b/puremapping/rnd-stat-help.pd
new file mode 100644
index 0000000..4ff1580
--- /dev/null
+++ b/puremapping/rnd-stat-help.pd
@@ -0,0 +1,46 @@
+#N canvas 937 442 450 389 10;
+#X msg 335 23 1 1 5;
+#X obj 97 88 metro 20;
+#X obj 113 204 sel 0 1 2 3;
+#X obj 116 269 + 1;
+#X obj 111 241 f;
+#X floatatom 106 301 5 0 0 0 - - -;
+#X obj 159 272 + 1;
+#X obj 154 244 f;
+#X floatatom 156 299 5 0 0 0 - - -;
+#X obj 199 271 + 1;
+#X obj 194 243 f;
+#X floatatom 196 298 5 0 0 0 - - -;
+#X obj 100 63 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 280 156 0;
+#X obj 239 276 + 1;
+#X obj 234 248 f;
+#X floatatom 236 303 5 0 0 0 - - -;
+#X msg 339 56 1 1 0 2;
+#X obj 111 135 rnd-stat;
+#X connect 0 0 18 1;
+#X connect 1 0 18 0;
+#X connect 2 0 4 0;
+#X connect 2 1 7 0;
+#X connect 2 2 10 0;
+#X connect 2 3 15 0;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 4 0 5 0;
+#X connect 6 0 7 1;
+#X connect 7 0 6 0;
+#X connect 7 0 8 0;
+#X connect 9 0 10 1;
+#X connect 10 0 9 0;
+#X connect 10 0 11 0;
+#X connect 12 0 1 0;
+#X connect 13 0 4 0;
+#X connect 13 0 7 0;
+#X connect 13 0 10 0;
+#X connect 13 0 15 0;
+#X connect 14 0 15 1;
+#X connect 15 0 14 0;
+#X connect 15 0 16 0;
+#X connect 17 0 18 1;
+#X connect 18 0 2 0;
diff --git a/puremapping/rnd-stat.pd b/puremapping/rnd-stat.pd
new file mode 100644
index 0000000..d538785
--- /dev/null
+++ b/puremapping/rnd-stat.pd
@@ -0,0 +1,56 @@
+#N canvas 403 154 683 759 10;
+#X obj 269 26 inlet;
+#X obj 55 27 inlet;
+#X obj 238 363 list;
+#X obj 239 486 f;
+#X obj 265 511 + 1;
+#X obj 221 544 f;
+#X msg 104 425 0;
+#X obj 58 316 t b f b;
+#X obj 240 433 >;
+#X obj 241 461 sel 0;
+#X obj 224 616 outlet;
+#X obj 57 262 random;
+#X obj 95 242 * 100000;
+#X obj 57 287 / 100000;
+#X obj 269 49 t a b;
+#X msg 298 71 0;
+#X obj 271 151 f;
+#X obj 266 125 +;
+#X obj 74 157 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 224 574 - 1;
+#X obj 267 242 tolist;
+#X obj 270 95 listto;
+#X obj 239 387 listto;
+#X connect 0 0 14 0;
+#X connect 1 0 11 0;
+#X connect 2 0 22 0;
+#X connect 3 0 4 0;
+#X connect 3 0 5 1;
+#X connect 4 0 3 1;
+#X connect 5 0 19 0;
+#X connect 6 0 3 0;
+#X connect 7 0 2 0;
+#X connect 7 1 8 1;
+#X connect 7 2 6 0;
+#X connect 8 0 9 0;
+#X connect 9 0 3 0;
+#X connect 11 0 13 0;
+#X connect 12 0 11 1;
+#X connect 13 0 7 0;
+#X connect 14 0 21 0;
+#X connect 14 1 15 0;
+#X connect 15 0 17 1;
+#X connect 15 0 20 0;
+#X connect 16 0 17 1;
+#X connect 16 0 12 0;
+#X connect 16 0 20 0;
+#X connect 17 0 16 0;
+#X connect 18 0 11 0;
+#X connect 19 0 10 0;
+#X connect 20 0 2 1;
+#X connect 21 0 17 0;
+#X connect 21 1 20 1;
+#X connect 22 0 8 0;
+#X connect 22 1 5 0;
diff --git a/puremapping/segment-help.pd b/puremapping/segment-help.pd
new file mode 100644
index 0000000..6e4e926
--- /dev/null
+++ b/puremapping/segment-help.pd
@@ -0,0 +1,35 @@
+#N canvas 389 127 680 326 10;
+#X obj 66 238 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 199 238 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 332 238 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 465 238 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 62 28 hsl 527 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X msg 189 88 2;
+#X msg 250 87 6;
+#X msg 219 87 4;
+#X floatatom 64 262 5 0 0 0 - - -;
+#X floatatom 200 260 5 0 0 0 - - -;
+#X floatatom 332 262 5 0 0 0 - - -;
+#X floatatom 463 260 5 0 0 0 - - -;
+#X floatatom 46 51 5 0 0 0 - - -;
+#X obj 153 182 route 0 1 2 3;
+#X obj 154 123 segment 4;
+#X connect 0 0 8 0;
+#X connect 1 0 9 0;
+#X connect 2 0 10 0;
+#X connect 3 0 11 0;
+#X connect 4 0 12 0;
+#X connect 4 0 14 0;
+#X connect 5 0 14 1;
+#X connect 6 0 14 1;
+#X connect 7 0 14 1;
+#X connect 13 0 0 0;
+#X connect 13 1 1 0;
+#X connect 13 2 2 0;
+#X connect 13 3 3 0;
+#X connect 14 0 13 0;
diff --git a/puremapping/segment.pd b/puremapping/segment.pd
new file mode 100644
index 0000000..9fdb823
--- /dev/null
+++ b/puremapping/segment.pd
@@ -0,0 +1,78 @@
+#N canvas 252 375 511 415 10;
+#X obj 94 24 inlet;
+#X obj 182 353 outlet;
+#X obj 245 23 inlet;
+#X obj 278 42 loadbang;
+#X obj 94 151 *;
+#X obj 94 305 pack float float;
+#X obj 94 177 trigger bang float float;
+#X obj 94 246 float;
+#X obj 235 199 int;
+#X obj 201 245 -;
+#N canvas 222 41 308 537 reset 0;
+#X obj 89 12 inlet;
+#X obj 98 489 outlet;
+#X obj 89 68 change;
+#X obj 119 156 float;
+#X obj 98 417 pack float float;
+#X obj 187 201 -;
+#X obj 187 235 moses;
+#X msg 216 378 0;
+#X msg 187 378 1;
+#X obj 46 327 float;
+#X obj 86 327 +;
+#X msg 114 298 1;
+#X msg 145 298 -1;
+#X obj 46 287 until;
+#X obj 46 266 abs;
+#X obj 89 93 trigger bang float bang float;
+#X obj 46 244 float;
+#X connect 0 0 2 0;
+#X connect 2 0 15 0;
+#X connect 3 0 5 0;
+#X connect 3 0 9 1;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 5 0 16 1;
+#X connect 6 0 8 0;
+#X connect 6 0 11 0;
+#X connect 6 1 7 0;
+#X connect 6 1 12 0;
+#X connect 7 0 4 1;
+#X connect 8 0 4 1;
+#X connect 9 0 10 0;
+#X connect 9 0 4 0;
+#X connect 10 0 9 1;
+#X connect 11 0 10 1;
+#X connect 12 0 10 1;
+#X connect 13 0 9 0;
+#X connect 14 0 13 0;
+#X connect 15 0 16 0;
+#X connect 15 1 3 1;
+#X connect 15 2 3 0;
+#X connect 15 3 5 1;
+#X connect 16 0 14 0;
+#X restore 279 270 pd reset previous segments;
+#X obj 245 69 \$1;
+#X msg 245 134 2;
+#X obj 245 91 i;
+#X obj 245 112 moses 2;
+#X connect 0 0 4 0;
+#X connect 2 0 11 0;
+#X connect 3 0 11 0;
+#X connect 4 0 6 0;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 6 1 9 0;
+#X connect 6 2 8 0;
+#X connect 7 0 5 0;
+#X connect 8 0 9 1;
+#X connect 8 0 7 1;
+#X connect 8 0 10 0;
+#X connect 9 0 5 1;
+#X connect 10 0 1 0;
+#X connect 11 0 13 0;
+#X connect 12 0 4 1;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X connect 14 1 4 1;
diff --git a/puremapping/speedlimiter+-help.pd b/puremapping/speedlimiter+-help.pd
new file mode 100644
index 0000000..b3497a3
--- /dev/null
+++ b/puremapping/speedlimiter+-help.pd
@@ -0,0 +1,23 @@
+#N canvas 344 120 748 542 10;
+#X obj 249 328 timeroll;
+#X obj 46 164 random 1000;
+#X obj 46 138 metro 30;
+#X obj 46 114 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 46 328 timeroll;
+#X obj 72 114 loadbang;
+#X floatatom 363 208 5 0 0 0 - - -;
+#X obj 363 230 / 100;
+#X obj 46 191 / 1000;
+#X obj 249 253 speedlimiter+ 0.1;
+#X text 202 11 limit the positive variation to \$1 at every samples
+;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 1;
+#X connect 8 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 0 0;
diff --git a/puremapping/speedlimiter+.pd b/puremapping/speedlimiter+.pd
new file mode 100644
index 0000000..ea339df
--- /dev/null
+++ b/puremapping/speedlimiter+.pd
@@ -0,0 +1,19 @@
+#N canvas 1011 215 305 353 10;
+#X obj 88 43 inlet;
+#X obj 87 258 outlet;
+#X obj 169 42 inlet;
+#X obj 88 107 -;
+#X obj 88 198 +;
+#X obj 88 136 moses 0;
+#X obj 132 161 min \$1;
+#X obj 87 227 f;
+#X connect 0 0 3 0;
+#X connect 2 0 6 1;
+#X connect 3 0 5 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 1;
+#X connect 7 0 3 1;
+#X connect 7 0 1 0;
diff --git a/puremapping/speedlimiter--help.pd b/puremapping/speedlimiter--help.pd
new file mode 100644
index 0000000..7371937
--- /dev/null
+++ b/puremapping/speedlimiter--help.pd
@@ -0,0 +1,22 @@
+#N canvas 344 120 748 542 10;
+#X obj 244 209 timeroll;
+#X obj 41 45 random 1000;
+#X obj 41 19 metro 30;
+#X obj 41 -5 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 41 209 timeroll;
+#X obj 67 -5 loadbang;
+#X floatatom 365 89 5 0 0 0 - - -;
+#X obj 365 111 / 100;
+#X obj 41 72 / 1000;
+#X obj 244 134 speedlimiter- -0.1;
+#X text 211 -89 limit negative variation to \$1 for every samples;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 1;
+#X connect 8 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 0 0;
diff --git a/puremapping/speedlimiter-.pd b/puremapping/speedlimiter-.pd
new file mode 100644
index 0000000..cf6341b
--- /dev/null
+++ b/puremapping/speedlimiter-.pd
@@ -0,0 +1,21 @@
+#N canvas 1011 215 305 353 10;
+#X obj 88 18 inlet;
+#X obj 132 282 outlet;
+#X obj 125 42 inlet;
+#X obj 88 107 -;
+#X obj 132 221 +;
+#X obj 88 136 moses 0;
+#X obj 132 250 f;
+#X obj 88 187 max \$1;
+#X obj 125 107 * -1;
+#X connect 0 0 3 0;
+#X connect 2 0 8 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 5 1 4 0;
+#X connect 6 0 4 1;
+#X connect 6 0 3 1;
+#X connect 6 0 1 0;
+#X connect 7 0 4 0;
+#X connect 8 0 7 1;
diff --git a/puremapping/speedlimiter-help.pd b/puremapping/speedlimiter-help.pd
new file mode 100644
index 0000000..a999ba6
--- /dev/null
+++ b/puremapping/speedlimiter-help.pd
@@ -0,0 +1,22 @@
+#N canvas 451 170 748 542 10;
+#X obj 249 328 timeroll;
+#X obj 46 164 random 1000;
+#X obj 46 138 metro 30;
+#X obj 46 114 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 46 328 timeroll;
+#X obj 72 114 loadbang;
+#X floatatom 356 208 5 0 0 0 - - -;
+#X obj 356 230 / 100;
+#X obj 249 253 speedlimiter 0.1;
+#X obj 46 191 / 1000;
+#X text 203 16 limit the variation to \$1 at every sample;
+#X connect 1 0 9 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 1;
+#X connect 8 0 0 0;
+#X connect 9 0 4 0;
+#X connect 9 0 8 0;
diff --git a/puremapping/speedlimiter.pd b/puremapping/speedlimiter.pd
new file mode 100644
index 0000000..065adb5
--- /dev/null
+++ b/puremapping/speedlimiter.pd
@@ -0,0 +1,27 @@
+#N canvas 1011 215 305 353 10;
+#X obj 58 42 inlet;
+#X obj 87 258 outlet;
+#X obj 166 38 inlet;
+#X obj 88 107 -;
+#X obj 88 198 +;
+#X obj 58 72 t f f;
+#X obj 87 227 f;
+#X obj 88 167 max;
+#X obj 166 119 * -1;
+#X obj 166 86 \$1;
+#X obj 88 140 min;
+#X obj 178 61 loadbang;
+#X connect 0 0 5 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 4 0 6 0;
+#X connect 5 1 3 0;
+#X connect 6 0 4 1;
+#X connect 6 0 3 1;
+#X connect 6 0 1 0;
+#X connect 7 0 4 0;
+#X connect 8 0 7 1;
+#X connect 9 0 8 0;
+#X connect 9 0 10 1;
+#X connect 10 0 7 0;
+#X connect 11 0 9 0;
diff --git a/puremapping/split_n-help.pd b/puremapping/split_n-help.pd
new file mode 100644
index 0000000..17a307c
--- /dev/null
+++ b/puremapping/split_n-help.pd
@@ -0,0 +1,20 @@
+#N canvas 0 0 450 416 10;
+#X obj 85 178 split_n;
+#X msg 128 149 0.3 0.5 0.6 0.7 0.9;
+#X obj 129 123 loadbang;
+#X floatatom 84 68 5 0 0 0 - - -;
+#X obj 84 202 unpack f f f f;
+#X floatatom 79 229 5 0 0 0 - - -;
+#X floatatom 111 255 5 0 0 0 - - -;
+#X floatatom 129 278 5 0 0 0 - - -;
+#X floatatom 162 295 5 0 0 0 - - -;
+#X text 128 231 from 0.3 to 0.5;
+#X text 162 254 from 0.5 to 0.6;
+#X connect 0 0 4 0;
+#X connect 1 0 0 1;
+#X connect 2 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 4 2 7 0;
+#X connect 4 3 8 0;
diff --git a/puremapping/split_n.pd b/puremapping/split_n.pd
new file mode 100644
index 0000000..43f48be
--- /dev/null
+++ b/puremapping/split_n.pd
@@ -0,0 +1,43 @@
+#N canvas 767 408 629 446 10;
+#X obj 59 22 inlet;
+#X obj 307 60 inlet;
+#X obj 282 84 list;
+#X obj 283 109 list split 1;
+#X obj 363 186 f;
+#X obj 341 245 -;
+#X obj 292 262 -;
+#X obj 291 325 /;
+#X obj 290 349 min 1;
+#X obj 293 369 max 0;
+#X obj 293 298 * -1;
+#X obj 56 56 t b f b f;
+#X obj 364 207 t f f;
+#X obj 293 235 f;
+#X obj 323 159 t b f b f;
+#X obj 288 419 outlet;
+#X obj 322 135 listto;
+#X obj 288 393 tolist;
+#X connect 0 0 11 0;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 1;
+#X connect 3 1 16 0;
+#X connect 4 0 12 0;
+#X connect 5 0 7 1;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 17 0;
+#X connect 10 0 7 0;
+#X connect 11 0 17 1;
+#X connect 11 2 2 0;
+#X connect 11 3 6 1;
+#X connect 12 0 13 1;
+#X connect 12 1 5 1;
+#X connect 13 0 6 0;
+#X connect 14 0 13 0;
+#X connect 14 1 4 1;
+#X connect 14 1 5 0;
+#X connect 14 2 4 0;
+#X connect 16 0 14 0;
+#X connect 17 0 15 0;
diff --git a/puremapping/stream_check-help.pd b/puremapping/stream_check-help.pd
new file mode 100644
index 0000000..5908c0c
--- /dev/null
+++ b/puremapping/stream_check-help.pd
@@ -0,0 +1,17 @@
+#N canvas 0 0 527 246 10;
+#X floatatom 43 34 5 0 0 0 - - -;
+#X obj 43 111 spigot;
+#X obj 70 173 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 80 85 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X text 181 91 check for the presence of a data stream.;
+#X floatatom 43 209 5 0 0 0 - - -;
+#X obj 43 54 resample 30;
+#X obj 70 145 stream_check;
+#X connect 0 0 6 0;
+#X connect 1 0 5 0;
+#X connect 1 0 7 0;
+#X connect 3 0 1 1;
+#X connect 6 0 1 0;
+#X connect 7 0 2 0;
diff --git a/puremapping/stream_check.pd b/puremapping/stream_check.pd
new file mode 100644
index 0000000..38e900e
--- /dev/null
+++ b/puremapping/stream_check.pd
@@ -0,0 +1,15 @@
+#N canvas 0 0 165 223 10;
+#X obj 17 46 t b b;
+#X msg 17 94 1;
+#X msg 47 94 0;
+#X obj 17 150 outlet;
+#X obj 17 20 inlet;
+#X obj 47 71 delay 100;
+#X obj 17 123 change -1;
+#X connect 0 0 1 0;
+#X connect 0 1 5 0;
+#X connect 1 0 6 0;
+#X connect 2 0 6 0;
+#X connect 4 0 0 0;
+#X connect 5 0 2 0;
+#X connect 6 0 3 0;
diff --git a/puremapping/threshold-help.pd b/puremapping/threshold-help.pd
new file mode 100644
index 0000000..dde0bf3
--- /dev/null
+++ b/puremapping/threshold-help.pd
@@ -0,0 +1,12 @@
+#N canvas 696 98 600 234 10;
+#X floatatom 25 34 5 0 0 0 - - -;
+#X floatatom 25 124 5 0 0 0 - - -;
+#X floatatom 90 63 5 0 0 0 - - -;
+#X text 107 131 output a new value only if the difenrence between the
+input and last output is superior to \$1;
+#X text 111 174 (usefull to reduce the flow controling pd event...)
+;
+#X obj 25 84 threshold 0.2;
+#X connect 0 0 5 0;
+#X connect 2 0 5 1;
+#X connect 5 0 1 0;
diff --git a/puremapping/threshold.pd b/puremapping/threshold.pd
new file mode 100644
index 0000000..e14ab7f
--- /dev/null
+++ b/puremapping/threshold.pd
@@ -0,0 +1,22 @@
+#N canvas 696 98 414 380 10;
+#X obj 55 21 inlet;
+#X obj 162 104 inlet;
+#X text 204 105 valeur seuil;
+#X obj 184 291 outlet;
+#X text 96 22 data stream;
+#X obj 85 203 -;
+#X obj 101 174 f;
+#X obj 85 255 >= \$1;
+#X obj 55 84 t f f;
+#X obj 55 290 spigot;
+#X obj 85 229 abs;
+#X connect 0 0 8 0;
+#X connect 1 0 7 1;
+#X connect 5 0 10 0;
+#X connect 6 0 3 0;
+#X connect 6 0 5 1;
+#X connect 7 0 9 1;
+#X connect 8 0 9 0;
+#X connect 8 1 5 0;
+#X connect 9 0 6 0;
+#X connect 10 0 7 0;
diff --git a/puremapping/threshold_max-help.pd b/puremapping/threshold_max-help.pd
new file mode 100644
index 0000000..a74d332
--- /dev/null
+++ b/puremapping/threshold_max-help.pd
@@ -0,0 +1,18 @@
+#N canvas 242 354 508 284 10;
+#X floatatom 102 52 5 0 0 0 - - -;
+#X floatatom 102 135 5 0 0 0 - - -;
+#X obj 154 135 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 58 133 print;
+#X floatatom 225 76 5 0 0 0 - - -;
+#X text 144 51 signal input;
+#X obj 102 99 threshold_max 0.99;
+#X text 268 74 treshold;
+#X text 50 238 based on an object by Loic Kessous;
+#X text 51 194 the threshold is relative to a % of the input value
+;
+#X connect 0 0 6 0;
+#X connect 4 0 6 1;
+#X connect 6 0 1 0;
+#X connect 6 0 2 0;
+#X connect 6 0 3 0;
diff --git a/puremapping/threshold_max.pd b/puremapping/threshold_max.pd
new file mode 100644
index 0000000..f21af29
--- /dev/null
+++ b/puremapping/threshold_max.pd
@@ -0,0 +1,48 @@
+#N canvas 266 108 411 523 10;
+#X obj 78 192 max;
+#X obj 58 357 <;
+#X obj 58 383 sel 1;
+#X msg 96 170 -1e+11;
+#X obj 92 423 f;
+#X obj 208 215 f;
+#X obj 58 115 t f f f b;
+#X obj 190 241 >;
+#X obj 78 234 t f f;
+#X obj 151 271 spigot;
+#X obj 92 448 outlet;
+#X obj 58 70 inlet;
+#X obj 249 90 inlet;
+#X obj 78 290 *;
+#X obj 249 131 \$1;
+#X obj 249 153 moses 0;
+#X msg 249 175 0.99;
+#X obj 256 111 loadbang;
+#X obj 249 199 f;
+#X obj 58 91 max 0;
+#X connect 0 0 8 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 0 1;
+#X connect 4 0 10 0;
+#X connect 5 0 7 1;
+#X connect 6 0 1 0;
+#X connect 6 1 0 0;
+#X connect 6 1 7 0;
+#X connect 6 2 5 1;
+#X connect 6 3 5 0;
+#X connect 7 0 9 1;
+#X connect 8 0 9 0;
+#X connect 8 0 13 0;
+#X connect 8 1 4 1;
+#X connect 9 0 0 1;
+#X connect 11 0 19 0;
+#X connect 12 0 14 0;
+#X connect 13 0 1 1;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 15 1 18 0;
+#X connect 16 0 18 0;
+#X connect 17 0 14 0;
+#X connect 18 0 13 1;
+#X connect 19 0 6 0;
diff --git a/puremapping/timeroll-help.pd b/puremapping/timeroll-help.pd
new file mode 100644
index 0000000..c481112
--- /dev/null
+++ b/puremapping/timeroll-help.pd
@@ -0,0 +1,12 @@
+#N canvas 93 45 472 358 10;
+#X obj 116 147 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262131
+-1 -1 5300 1;
+#X text 339 191 from 0 to 1;
+#X obj 21 188 resample 50;
+#X obj 133 133 timeroll;
+#X obj 21 211 clip 0 1;
+#X text 73 54 Display a changing value over time.;
+#X text 99 110 (move the slider to see it in action);
+#X connect 0 0 2 0;
+#X connect 2 0 4 0;
+#X connect 4 0 3 0;
diff --git a/puremapping/timeroll.pd b/puremapping/timeroll.pd
new file mode 100644
index 0000000..8bde49f
--- /dev/null
+++ b/puremapping/timeroll.pd
@@ -0,0 +1,42 @@
+#N canvas 307 88 664 343 10;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array \$0-_ 100 float 2;
+#X coords 0 0.77 100 -0.01 200 100 1;
+#X restore 10 55 graph;
+#X obj 272 176 list;
+#X obj 272 225 list trim;
+#X obj 272 14 inlet;
+#X obj 388 13 inlet;
+#X obj 388 206 pack f \$0;
+#X obj 272 246 s \$0-_;
+#X msg 388 233 \; \$2-_ resize \$1;
+#X text 315 14 data;
+#X obj 11 29 cnv 15 198 125 empty empty empty 20 12 0 14 -262144 -66577
+0;
+#X obj 430 31 loadbang;
+#X obj 295 145 list split;
+#X text 429 15 size of the array (default = 100);
+#X obj 272 198 list prepend 0;
+#X msg 388 98 100;
+#X obj 388 40 \$1;
+#X obj 388 120 f;
+#X obj 388 60 i;
+#X obj 388 79 moses 1;
+#X connect 1 0 11 0;
+#X connect 1 0 13 0;
+#X connect 2 0 6 0;
+#X connect 3 0 1 0;
+#X connect 4 0 15 0;
+#X connect 5 0 7 0;
+#X connect 10 0 15 0;
+#X connect 11 0 1 1;
+#X connect 11 2 1 1;
+#X connect 13 0 2 0;
+#X connect 14 0 16 0;
+#X connect 15 0 17 0;
+#X connect 16 0 5 0;
+#X connect 16 0 11 1;
+#X connect 17 0 18 0;
+#X connect 18 0 14 0;
+#X connect 18 1 16 0;
+#X coords 0 -1 1 1 200 145 1 10 10;
diff --git a/puremapping/tolist-help.pd b/puremapping/tolist-help.pd
new file mode 100644
index 0000000..4607401
--- /dev/null
+++ b/puremapping/tolist-help.pd
@@ -0,0 +1,41 @@
+#N canvas 122 268 565 501 10;
+#X floatatom 361 86 5 0 0 0 - - -;
+#X floatatom 410 87 5 0 0 0 - - -;
+#X obj 323 140 listto;
+#X obj 323 239 tolist;
+#X obj 322 310 multi_slider 25;
+#X floatatom 463 89 5 0 0 0 - - -;
+#X text 23 41 built a list from a stream of data;
+#X obj 323 114 wave_loop 25 0.4;
+#X obj 405 164 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -262130
+-1 -1 1700 1;
+#X floatatom 411 183 5 0 0 0 - - -;
+#X msg 323 49 bang;
+#X obj 24 227 tolist;
+#X obj 27 135 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 10 -203904
+-1 -1 0 1;
+#X obj 57 195 bng 25 250 50 0 empty empty empty 0 -6 0 10 -4034 -1
+-1;
+#X text 24 111 add data to the list;
+#X obj 24 285 print LIST;
+#X msg 33 165 bang;
+#X text 69 165 clears the current contents;
+#X text 90 196 output the current contents;
+#X obj 5 2 cnv 15 450 20 empty empty tolist 2 11 1 18 -233017 -66577
+0;
+#X obj 323 209 curve_pow 0.1;
+#X connect 0 0 7 1;
+#X connect 1 0 7 2;
+#X connect 2 0 20 0;
+#X connect 2 1 3 1;
+#X connect 3 0 4 0;
+#X connect 5 0 7 3;
+#X connect 7 0 2 0;
+#X connect 8 0 9 0;
+#X connect 8 0 20 1;
+#X connect 10 0 7 0;
+#X connect 11 0 15 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 1;
+#X connect 16 0 11 0;
+#X connect 20 0 3 0;
diff --git a/puremapping/tolist.pd b/puremapping/tolist.pd
new file mode 100644
index 0000000..39bfee6
--- /dev/null
+++ b/puremapping/tolist.pd
@@ -0,0 +1,14 @@
+#N canvas 229 119 293 284 10;
+#X obj 90 40 inlet;
+#X obj 169 40 inlet;
+#X obj 67 215 outlet;
+#X obj 90 150 list;
+#X obj 67 171 list;
+#X obj 90 127 list prepend;
+#X connect 0 0 5 0;
+#X connect 1 0 5 1;
+#X connect 1 0 4 0;
+#X connect 3 0 4 1;
+#X connect 3 0 5 1;
+#X connect 4 0 2 0;
+#X connect 5 0 3 0;
diff --git a/puremapping/track_max-help.pd b/puremapping/track_max-help.pd
new file mode 100644
index 0000000..dc07d64
--- /dev/null
+++ b/puremapping/track_max-help.pd
@@ -0,0 +1,32 @@
+#N canvas 358 102 478 344 10;
+#X obj 2 -8 cnv 15 450 20 empty empty track_max 2 11 1 18 -233017 -66577
+0;
+#X floatatom 97 79 5 0 0 0 - - -;
+#X msg 157 61 bang;
+#X floatatom 97 142 5 0 0 0 - - -;
+#X text 192 62 <-- bang to reset;
+#X obj 166 86 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X text 186 86 <-- stop/start tracking;
+#X text 7 26 Track maximum value:;
+#X floatatom 97 229 5 0 0 0 - - -;
+#X msg 178 211 bang;
+#X floatatom 97 292 5 0 0 0 - - -;
+#X text 213 212 <-- bang to reset;
+#X obj 188 236 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X text 208 236 <-- stop/start tracking;
+#X text 14 173 The argument and/or the second inlet set the initial
+minimum value.;
+#X floatatom 137 229 5 0 0 0 - - -;
+#X obj 97 262 track_max 72;
+#X obj 97 112 track_max;
+#X connect 1 0 17 0;
+#X connect 2 0 17 2;
+#X connect 5 0 17 2;
+#X connect 8 0 16 0;
+#X connect 9 0 16 2;
+#X connect 12 0 16 2;
+#X connect 15 0 16 1;
+#X connect 16 0 10 0;
+#X connect 17 0 3 0;
diff --git a/puremapping/track_max.pd b/puremapping/track_max.pd
new file mode 100644
index 0000000..2c8ad49
--- /dev/null
+++ b/puremapping/track_max.pd
@@ -0,0 +1,42 @@
+#N canvas 247 209 461 389 10;
+#X obj 89 284 outlet;
+#X obj 294 7 inlet;
+#X obj 37 7 inlet;
+#X obj 294 27 route float bang;
+#X obj 58 92 select 0;
+#X msg 58 111 0;
+#X msg 109 111 1;
+#X obj 177 7 inlet;
+#X obj 216 67 loadbang;
+#X obj 37 207 moses;
+#X obj 37 143 spigot 1;
+#X text 229 347 released under the GNU GPL;
+#X text 12 333 (C) Copyright 2006 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X obj 177 102 \$1;
+#X obj 177 123 sel 0;
+#X obj 209 171 f;
+#X msg 130 212 set \$1;
+#X msg 187 146 -9.999e+37;
+#X obj 89 240 change -9.999e+37;
+#X connect 1 0 3 0;
+#X connect 2 0 10 0;
+#X connect 3 0 4 0;
+#X connect 3 1 13 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 5 0 10 1;
+#X connect 6 0 10 1;
+#X connect 7 0 13 0;
+#X connect 8 0 13 0;
+#X connect 9 1 18 0;
+#X connect 10 0 9 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 14 1 15 0;
+#X connect 15 0 9 1;
+#X connect 15 0 16 0;
+#X connect 16 0 18 0;
+#X connect 17 0 13 0;
+#X connect 18 0 9 1;
+#X connect 18 0 0 0;
diff --git a/puremapping/track_min-help.pd b/puremapping/track_min-help.pd
new file mode 100644
index 0000000..534b53e
--- /dev/null
+++ b/puremapping/track_min-help.pd
@@ -0,0 +1,32 @@
+#N canvas 706 97 478 344 10;
+#X obj 2 -8 cnv 15 450 20 empty empty track_min 2 11 1 18 -233017 -66577
+0;
+#X floatatom 97 79 5 0 0 0 - - -;
+#X msg 157 61 bang;
+#X text 7 26 Track minimum value:;
+#X floatatom 97 142 5 0 0 0 - - -;
+#X text 192 62 <-- bang to reset;
+#X obj 166 86 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X text 186 86 <-- stop/start tracking;
+#X floatatom 97 229 5 0 0 0 - - -;
+#X msg 192 211 bang;
+#X floatatom 97 292 5 0 0 0 - - -;
+#X text 227 212 <-- bang to reset;
+#X obj 201 236 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X text 221 236 <-- stop/start tracking;
+#X text 14 173 The argument and/or the second inlet set the initial
+minimum value.;
+#X floatatom 144 229 5 0 0 0 - - -;
+#X obj 97 112 track_min;
+#X obj 97 262 track_min -234;
+#X connect 1 0 16 0;
+#X connect 2 0 16 2;
+#X connect 6 0 16 2;
+#X connect 8 0 17 0;
+#X connect 9 0 17 2;
+#X connect 12 0 17 2;
+#X connect 15 0 17 1;
+#X connect 16 0 4 0;
+#X connect 17 0 10 0;
diff --git a/puremapping/track_min.pd b/puremapping/track_min.pd
new file mode 100644
index 0000000..7d4a422
--- /dev/null
+++ b/puremapping/track_min.pd
@@ -0,0 +1,38 @@
+#N canvas 877 193 475 375 10;
+#X obj 37 303 outlet;
+#X text 82 270 min;
+#X obj 294 7 inlet;
+#X obj 37 7 inlet;
+#X obj 294 27 route float bang;
+#X obj 58 92 select 0;
+#X msg 58 111 0;
+#X msg 109 111 1;
+#X obj 177 7 inlet;
+#X obj 218 65 loadbang;
+#X obj 37 143 spigot 1;
+#X text 229 347 released under the GNU GPL;
+#X text 12 333 (C) Copyright 2006 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X msg 192 155 9.99e+37;
+#X obj 177 111 \$1;
+#X obj 177 132 sel 0;
+#X obj 37 207 moses;
+#X obj 37 268 float;
+#X connect 2 0 4 0;
+#X connect 3 0 10 0;
+#X connect 4 0 5 0;
+#X connect 4 1 14 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 6 0 10 1;
+#X connect 7 0 10 1;
+#X connect 8 0 14 0;
+#X connect 9 0 14 0;
+#X connect 10 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 15 1 16 1;
+#X connect 16 0 17 0;
+#X connect 17 0 0 0;
+#X connect 17 0 16 1;
diff --git a/puremapping/upsample-help.pd b/puremapping/upsample-help.pd
new file mode 100644
index 0000000..a17243d
--- /dev/null
+++ b/puremapping/upsample-help.pd
@@ -0,0 +1,19 @@
+#N canvas 355 237 367 339 10;
+#X msg 82 101 1;
+#X obj 84 226 print;
+#X obj 204 227 print ---------;
+#X text 79 77 increase the sampling rate;
+#X obj 83 140 trigger float bang;
+#X obj 98 119 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 2600 1;
+#X obj 83 200 upsample 3;
+#X obj 158 177 hsl 128 15 0 10 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 4100 1;
+#X floatatom 162 201 5 0 0 0 - - -;
+#X connect 0 0 4 0;
+#X connect 4 0 6 0;
+#X connect 4 1 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 1 0;
+#X connect 7 0 6 1;
+#X connect 7 0 8 0;
diff --git a/puremapping/upsample.pd b/puremapping/upsample.pd
new file mode 100644
index 0000000..5a89069
--- /dev/null
+++ b/puremapping/upsample.pd
@@ -0,0 +1,33 @@
+#N canvas 0 22 458 308 10;
+#X obj 57 53 inlet;
+#X obj 203 257 outlet;
+#X msg 57 125 0;
+#X obj 80 191 + 1;
+#X obj 203 235 list;
+#X obj 260 10 inlet;
+#X obj 274 30 loadbang;
+#X obj 80 170 moses;
+#X obj 57 146 float;
+#X obj 57 102 trigger bang anything;
+#X obj 80 213 trigger float bang;
+#X obj 260 54 \$1;
+#X obj 260 75 i;
+#X obj 260 96 moses 1;
+#X msg 260 118 1;
+#X connect 0 0 9 0;
+#X connect 2 0 8 0;
+#X connect 3 0 10 0;
+#X connect 4 0 1 0;
+#X connect 5 0 11 0;
+#X connect 6 0 11 0;
+#X connect 7 0 3 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 9 1 4 1;
+#X connect 10 0 8 0;
+#X connect 10 1 4 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 13 1 7 1;
+#X connect 14 0 7 1;
diff --git a/puremapping/variance-help.pd b/puremapping/variance-help.pd
new file mode 100644
index 0000000..b24affb
--- /dev/null
+++ b/puremapping/variance-help.pd
@@ -0,0 +1,20 @@
+#N canvas 122 68 549 418 10;
+#X obj 57 178 resample 20;
+#X obj 57 90 metro 500;
+#X obj 57 119 random 100;
+#X floatatom 57 294 9 0 0 0 - - -;
+#X obj 57 65 tgl 15 0 empty empty empty 0 -6 0 8 -204786 -1 -1 0 1
+;
+#X obj 57 259 variance 20;
+#X obj 57 143 / 100;
+#X obj 5 2 cnv 15 450 20 empty empty variance 2 11 1 18 -233017 -66577
+0;
+#X msg 95 231 mode 1;
+#X text 152 232 used a slower but more accurate algorythm;
+#X connect 0 0 5 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 4 0 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 0 0;
+#X connect 8 0 5 0;
diff --git a/puremapping/variance.pd b/puremapping/variance.pd
new file mode 100644
index 0000000..df16f9d
--- /dev/null
+++ b/puremapping/variance.pd
@@ -0,0 +1,22 @@
+#N canvas 555 77 372 415 10;
+#X obj 39 33 inlet;
+#X obj 39 251 outlet;
+#X obj 39 96 t f f;
+#X obj 39 146 -;
+#X obj 39 170 t f f;
+#X obj 39 198 *;
+#X obj 71 122 mean_n \$1;
+#X obj 39 225 mean_n \$1;
+#X obj 39 58 route float;
+#X connect 0 0 8 0;
+#X connect 2 0 3 0;
+#X connect 2 1 6 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 5 1;
+#X connect 5 0 7 0;
+#X connect 6 0 3 1;
+#X connect 7 0 1 0;
+#X connect 8 0 2 0;
+#X connect 8 1 6 0;
+#X connect 8 1 7 0;
diff --git a/puremapping/wave-help.pd b/puremapping/wave-help.pd
new file mode 100644
index 0000000..1d96ecb
--- /dev/null
+++ b/puremapping/wave-help.pd
@@ -0,0 +1,19 @@
+#N canvas 441 85 302 360 10;
+#X floatatom 29 40 5 0 0 0 - - -;
+#X floatatom 60 79 5 0 0 0 - - -;
+#X floatatom 103 97 5 0 0 0 - - -;
+#X obj 23 118 wave 25 0.4;
+#X obj 26 23 hsl 200 15 -1 5 0 0 empty empty center_position -2 -6
+0 8 -262144 -1 -1 5500 1;
+#X obj 106 79 hsl 128 15 0.01 10 1 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 5900 1;
+#X obj 23 156 multi_slider 50;
+#X obj 63 61 hsl 128 15 0 50 0 0 empty empty number_of_points -2 -6
+0 8 -262144 -1 -1 12700 1;
+#X connect 1 0 3 1;
+#X connect 2 0 3 2;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 4 0 0 0;
+#X connect 5 0 2 0;
+#X connect 7 0 1 0;
diff --git a/puremapping/wave.pd b/puremapping/wave.pd
new file mode 100644
index 0000000..a7e8350
--- /dev/null
+++ b/puremapping/wave.pd
@@ -0,0 +1,76 @@
+#N canvas 360 127 613 540 10;
+#X obj 25 -15 inlet;
+#X obj 133 -13 inlet;
+#X obj 400 -7 inlet;
+#X text 66 -12 position;
+#X text 438 -7 largeur de la vague;
+#X obj 133 208 until;
+#X obj 133 242 f;
+#X obj 159 242 + 1;
+#X obj 133 290 /;
+#X obj 164 332 abs;
+#X obj 164 376 min 1;
+#X obj 164 395 - 1;
+#X obj 164 415 abs;
+#X obj 164 436 list prepend;
+#X obj 199 472 list;
+#X obj 174 494 list;
+#X obj 174 516 outlet;
+#X msg 178 135 0;
+#X obj 261 204 - 1;
+#X obj 133 160 max 1;
+#X obj 400 163 max 0;
+#X text 174 -13 number of points;
+#X obj 164 357 /;
+#X obj 25 104 trigger bang bang bang float bang;
+#X obj 164 312 -;
+#X obj 133 183 trigger float float;
+#X obj 432 60 loadbang;
+#X obj 133 135 float;
+#X obj 417 86 \$2;
+#X obj 417 107 sel 0;
+#X msg 417 128 0.5;
+#X obj 148 55 sel 0;
+#X msg 148 77 25;
+#X obj 156 12 loadbang;
+#X obj 148 34 \$1;
+#X connect 0 0 23 0;
+#X connect 1 0 27 0;
+#X connect 2 0 20 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 1;
+#X connect 8 0 24 0;
+#X connect 9 0 22 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 13 1;
+#X connect 14 0 15 1;
+#X connect 15 0 16 0;
+#X connect 17 0 6 1;
+#X connect 18 0 8 1;
+#X connect 19 0 25 0;
+#X connect 20 0 22 1;
+#X connect 22 0 10 0;
+#X connect 23 0 15 0;
+#X connect 23 1 27 0;
+#X connect 23 2 17 0;
+#X connect 23 3 24 1;
+#X connect 23 4 13 1;
+#X connect 24 0 9 0;
+#X connect 25 0 5 0;
+#X connect 25 1 18 0;
+#X connect 26 0 28 0;
+#X connect 27 0 19 0;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 29 1 20 0;
+#X connect 30 0 20 0;
+#X connect 31 0 32 0;
+#X connect 31 1 27 0;
+#X connect 32 0 27 0;
+#X connect 33 0 34 0;
+#X connect 34 0 31 0;
diff --git a/puremapping/wave_loop-help.pd b/puremapping/wave_loop-help.pd
new file mode 100644
index 0000000..6ad541c
--- /dev/null
+++ b/puremapping/wave_loop-help.pd
@@ -0,0 +1,15 @@
+#N canvas 221 410 481 386 10;
+#X floatatom 23 11 5 0 0 0 - - -;
+#X floatatom 71 46 5 0 0 0 - - -;
+#X floatatom 106 72 5 0 0 0 - - -;
+#X text 107 50 size of the output vector;
+#X text 152 71 largeur de la loop;
+#X floatatom 150 89 5 0 0 0 - - -;
+#X obj 23 107 wave_loop 25 0.4;
+#X obj 23 156 multi_slider 25;
+#X text 195 87 largeur de la répétition;
+#X connect 0 0 6 0;
+#X connect 1 0 6 1;
+#X connect 2 0 6 2;
+#X connect 5 0 6 3;
+#X connect 6 0 7 0;
diff --git a/puremapping/wave_loop.pd b/puremapping/wave_loop.pd
new file mode 100644
index 0000000..134ab67
--- /dev/null
+++ b/puremapping/wave_loop.pd
@@ -0,0 +1,81 @@
+#N canvas 427 93 861 667 10;
+#X obj 68 41 inlet;
+#X obj 271 47 inlet;
+#X obj 446 46 inlet;
+#X text 109 44 position;
+#X text 321 43 nb de points;
+#X text 496 50 largeur de la vague;
+#X obj 268 167 until;
+#X obj 265 94 \$1;
+#X obj 268 191 f;
+#X obj 288 214 + 1;
+#X obj 269 244 /;
+#X obj 268 142 t f f;
+#X obj 269 270 -;
+#X obj 269 291 abs;
+#X obj 271 630 min 1;
+#X obj 270 651 - 1;
+#X obj 270 678 abs;
+#X obj 270 706 list prepend;
+#X obj 342 740 list;
+#X obj 68 688 list;
+#X obj 68 725 outlet;
+#X obj 68 70 t b b b f b;
+#X msg 110 94 0;
+#X obj 298 195 - 1;
+#X obj 271 606 / \$2;
+#X obj 270 116 max 1;
+#X obj 448 101 max 0;
+#X obj 271 385 i;
+#X obj 271 410 -;
+#X obj 270 359 t f f;
+#X obj 271 473 moses 0.5;
+#X obj 271 433 abs;
+#X obj 271 576 f;
+#X obj 642 52 inlet;
+#X text 686 54 taille de la loop;
+#X obj 328 501 - 1;
+#X obj 328 524 * -1;
+#X obj 272 322 / 1;
+#X connect 0 0 21 0;
+#X connect 1 0 7 0;
+#X connect 2 0 26 0;
+#X connect 6 0 8 0;
+#X connect 7 0 25 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 1;
+#X connect 10 0 12 0;
+#X connect 11 0 6 0;
+#X connect 11 1 23 0;
+#X connect 12 0 13 0;
+#X connect 13 0 37 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 17 1;
+#X connect 18 0 19 1;
+#X connect 19 0 20 0;
+#X connect 21 0 19 0;
+#X connect 21 1 7 0;
+#X connect 21 2 22 0;
+#X connect 21 3 12 1;
+#X connect 21 4 17 1;
+#X connect 22 0 8 1;
+#X connect 23 0 10 1;
+#X connect 24 0 14 0;
+#X connect 25 0 11 0;
+#X connect 26 0 24 1;
+#X connect 27 0 28 0;
+#X connect 28 0 31 0;
+#X connect 29 0 27 0;
+#X connect 29 1 28 1;
+#X connect 30 0 32 0;
+#X connect 30 1 35 0;
+#X connect 31 0 30 0;
+#X connect 32 0 24 0;
+#X connect 33 0 37 1;
+#X connect 35 0 36 0;
+#X connect 36 0 32 0;
+#X connect 37 0 29 0;