aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--amplitude_n-help.pd33
-rw-r--r--amplitude_n.pd16
-rwxr-xr-xautocal-help.pd78
-rw-r--r--autocal.pd130
-rw-r--r--catch_extremum-help.pd36
-rw-r--r--catch_extremum.pd34
-rw-r--r--catch_extremum2-help.pd36
-rw-r--r--catch_extremum2.pd34
-rw-r--r--change_n-help.pd20
-rw-r--r--change_n.pd21
-rw-r--r--count_n-help.pd26
-rw-r--r--count_n.pd19
-rw-r--r--debounce-help.pd26
-rw-r--r--debounce.pd32
-rw-r--r--debounce_b-help.pd20
-rw-r--r--debounce_b.pd31
-rw-r--r--fir_filter-help.pd28
-rw-r--r--fir_filter.pd26
-rw-r--r--fir_hip_n-help.pd25
-rw-r--r--fir_hip_n.pd13
-rw-r--r--fir_mean_n-help.pd23
-rw-r--r--fir_mean_n.pd27
-rw-r--r--iir_hip-help.pd25
-rw-r--r--iir_hip.pd13
-rw-r--r--iir_lop-help.pd23
-rw-r--r--iir_lop.pd28
-rw-r--r--last_n-help.pd15
-rw-r--r--last_n.pd31
-rw-r--r--last_n_matrix-help.pd15
-rw-r--r--last_n_matrix.pd29
-rw-r--r--list2matcol-help.pd12
-rw-r--r--list2matcol.pd17
-rw-r--r--max_n-help.pd31
-rw-r--r--max_n.pd16
-rw-r--r--min_n-help.pd31
-rw-r--r--min_n.pd16
-rw-r--r--object_list.pd30
-rw-r--r--one_n-help.pd20
-rw-r--r--one_n.pd14
-rw-r--r--readme.txt11
-rw-r--r--seuil_n-help.pd22
-rw-r--r--seuil_n.pd27
-rw-r--r--time_roll.pd107
-rw-r--r--zero_n-help.pd21
-rw-r--r--zero_n.pd14
45 files changed, 1302 insertions, 0 deletions
diff --git a/amplitude_n-help.pd b/amplitude_n-help.pd
new file mode 100644
index 0000000..755b8b7
--- /dev/null
+++ b/amplitude_n-help.pd
@@ -0,0 +1,33 @@
+#N canvas 498 186 612 569 10;
+#X floatatom 85 92 5 -20 127 0 - - -;
+#X text 86 74 data;
+#X msg 92 117 0;
+#X msg 120 117 127;
+#X obj 85 251 time_roll;
+#X floatatom 310 225 5 0 0 0 - - -;
+#X msg 153 117 64;
+#X text 476 452 la Kitchen;
+#X text 476 469 Charles Verron;
+#X text 475 436 2004_03_22;
+#X text 476 452 la Kitchen;
+#X text 476 469 Charles Verron;
+#X text 475 436 2004_03_22;
+#X text 476 452 la Kitchen;
+#X text 476 469 Charles Verron;
+#X text 475 436 2004_03_22;
+#X floatatom 369 173 5 0 0 0 - - -;
+#X text 417 171 size: n (n>=2);
+#X obj 296 198 amplitude_n 2;
+#X obj 296 251 time_roll;
+#X obj 85 172 f;
+#X text 51 32 amplitude_n return the amplitude covered by the last
+n (n>1) values;
+#X connect 0 0 20 0;
+#X connect 2 0 20 0;
+#X connect 3 0 20 0;
+#X connect 6 0 20 0;
+#X connect 16 0 18 1;
+#X connect 18 0 5 0;
+#X connect 18 0 19 0;
+#X connect 20 0 4 0;
+#X connect 20 0 18 0;
diff --git a/amplitude_n.pd b/amplitude_n.pd
new file mode 100644
index 0000000..cde30b3
--- /dev/null
+++ b/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 173 45 inlet;
+#X obj 71 214 outlet;
+#X obj 71 137 max_n \$1;
+#X obj 130 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/autocal-help.pd b/autocal-help.pd
new file mode 100755
index 0000000..7c33839
--- /dev/null
+++ b/autocal-help.pd
@@ -0,0 +1,78 @@
+#N canvas 252 177 643 533 10;
+#X obj 18 133 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 6200 1;
+#X obj 18 309 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 7844 1;
+#X floatatom 39 321 5 0 0 0 - - -;
+#X floatatom 61 340 5 0 0 0 - - -;
+#X floatatom 69 202 5 0 0 0 - - -;
+#X floatatom 52 183 5 0 0 0 - - -;
+#X obj 18 277 autocal 0 127;
+#X floatatom 82 360 5 0 0 0 - - -;
+#X floatatom 104 380 5 0 0 0 - - -;
+#X floatatom 104 241 5 0 0 0 - - -;
+#X floatatom 86 222 5 0 0 0 - - -;
+#X obj 35 154 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#N canvas 495 236 547 477 save 0;
+#X obj 66 219 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 11461 1;
+#X obj 66 29 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 7600 1;
+#X obj 102 119 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 87 218 set \$1;
+#X msg 87 240 21;
+#X msg 109 268 set \$1;
+#X msg 109 290 80;
+#X obj 146 217 loadbang;
+#X text 128 42 This is just an exemple of saving the calibration on
+message box.;
+#X floatatom 155 132 5 0 0 0 - - -;
+#X obj 66 187 autocal 0 127;
+#X connect 1 0 10 0;
+#X connect 2 0 10 1;
+#X connect 3 0 4 0;
+#X connect 4 0 10 2;
+#X connect 5 0 6 0;
+#X connect 6 0 10 3;
+#X connect 7 0 4 0;
+#X connect 7 0 6 0;
+#X connect 9 0 10 2;
+#X connect 10 0 0 0;
+#X connect 10 1 3 0;
+#X connect 10 2 5 0;
+#X restore 15 479 pd save calibration;
+#X text 53 155 learn;
+#X text 35 129 Data input;
+#X text 148 277 argument = output range (default = 0..1);
+#X text 150 317 minimum of the input;
+#X text 150 338 maximum of the input;
+#X text 150 360 center of the input;
+#X text 43 424 calibrated output;
+#X text 148 178 manual change the input minimum;
+#X text 149 197 manual change the input maximum;
+#X text 150 379 variation amplitude;
+#X text 195 45 autocal is an abstraction dedicated to calibrated sensors
+value. (auto calibration);
+#X text 196 112 You can easilly save this calibration in pd patch \,
+or adjust the jitter etc...;
+#X text 193 79 The autocal abstraction is "listening" to input value
+while "learn" is 1 \, and scale this input to the specified range.
+;
+#X text 148 220 manual change the input center (jitter);
+#X text 149 239 manual change the input amplitude (change sensibility
+of the sensors);
+#X text 296 9 autocal;
+#X text 328 482 cyrille.henry@la-kitchen.fr 12/2004;
+#X connect 0 0 6 0;
+#X connect 4 0 6 3;
+#X connect 5 0 6 2;
+#X connect 6 0 1 0;
+#X connect 6 1 2 0;
+#X connect 6 2 3 0;
+#X connect 6 3 7 0;
+#X connect 6 4 8 0;
+#X connect 9 0 6 5;
+#X connect 10 0 6 4;
+#X connect 11 0 6 1;
diff --git a/autocal.pd b/autocal.pd
new file mode 100644
index 0000000..af09c73
--- /dev/null
+++ b/autocal.pd
@@ -0,0 +1,130 @@
+#N canvas 474 99 794 740 10;
+#X msg 305 236 0;
+#X obj 223 300 f;
+#X obj 343 302 f;
+#X obj 186 300 min;
+#X obj 305 301 max;
+#X obj 186 177 select 1;
+#X obj 186 259 t f f;
+#X obj 305 262 t f f;
+#X obj 80 107 spigot;
+#X obj 46 683 outlet;
+#X obj 92 460 loadbang;
+#X obj 46 483 max 0;
+#N canvas 0 0 312 427 range_0_1 0;
+#X obj 16 45 inlet;
+#X obj 77 46 inlet;
+#X obj 161 49 inlet;
+#X obj 16 198 -;
+#X obj 16 284 outlet;
+#X obj 77 77 t f b f;
+#X obj 67 185 -;
+#X obj 16 234 / 127;
+#X connect 0 0 3 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 3 0 7 0;
+#X connect 5 0 3 1;
+#X connect 5 1 6 0;
+#X connect 5 2 6 1;
+#X connect 6 0 7 1;
+#X connect 7 0 4 0;
+#X restore 46 425 pd range_0_1;
+#X obj 46 460 min 1;
+#X obj 46 651 + \$1;
+#X obj 117 507 \$1;
+#X obj 92 507 \$2;
+#X obj 92 532 -;
+#X obj 92 554 sel 0;
+#X obj 46 607 * 1;
+#X obj 92 483 t b b;
+#X obj 46 23 inlet in;
+#X obj 186 23 inlet learn;
+#X obj 324 21 inlet min;
+#X obj 491 18 inlet max;
+#X obj 566 45 inlet center;
+#X obj 208 358 f;
+#X obj 332 362 f;
+#X obj 80 237 t f f;
+#X obj 316 397 -;
+#X obj 208 404 +;
+#X obj 208 427 / 2;
+#X obj 208 464 f;
+#X obj 316 458 f;
+#X obj 316 422 * -1;
+#X obj 316 493 / 2;
+#X obj 208 599 +;
+#X obj 224 577 * -1;
+#X obj 300 601 +;
+#X obj 668 70 t b b f;
+#X obj 208 684 outlet min;
+#X obj 300 685 outlet max;
+#X obj 456 685 outlet center;
+#X obj 583 684 outlet amplitude;
+#X obj 669 46 inlet amplitude;
+#X msg 186 233 1e+09;
+#X obj 208 506 t f f;
+#X obj 491 42 t b f;
+#X connect 0 0 7 0;
+#X connect 1 0 3 1;
+#X connect 2 0 4 1;
+#X connect 3 0 1 0;
+#X connect 3 0 26 0;
+#X connect 4 0 2 0;
+#X connect 4 0 27 0;
+#X connect 5 0 0 0;
+#X connect 5 0 45 0;
+#X connect 6 0 3 0;
+#X connect 6 1 3 1;
+#X connect 7 0 4 0;
+#X connect 7 1 4 1;
+#X connect 8 0 28 0;
+#X connect 10 0 20 0;
+#X connect 11 0 19 0;
+#X connect 12 0 13 0;
+#X connect 13 0 11 0;
+#X connect 14 0 9 0;
+#X connect 15 0 17 1;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 1 19 1;
+#X connect 19 0 14 0;
+#X connect 20 0 16 0;
+#X connect 20 1 15 0;
+#X connect 21 0 8 0;
+#X connect 21 0 12 0;
+#X connect 22 0 8 1;
+#X connect 22 0 5 0;
+#X connect 23 0 26 0;
+#X connect 24 0 47 0;
+#X connect 25 0 32 0;
+#X connect 26 0 29 0;
+#X connect 26 0 30 0;
+#X connect 27 0 29 1;
+#X connect 27 0 30 1;
+#X connect 28 0 3 0;
+#X connect 28 1 4 0;
+#X connect 29 0 34 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 42 0;
+#X connect 32 0 46 0;
+#X connect 33 0 35 0;
+#X connect 33 0 43 0;
+#X connect 34 0 33 0;
+#X connect 35 0 38 1;
+#X connect 35 0 37 0;
+#X connect 36 0 40 0;
+#X connect 36 0 12 1;
+#X connect 37 0 36 1;
+#X connect 38 0 41 0;
+#X connect 38 0 12 2;
+#X connect 39 0 36 0;
+#X connect 39 1 38 0;
+#X connect 39 2 33 0;
+#X connect 44 0 39 0;
+#X connect 45 0 6 0;
+#X connect 46 0 36 0;
+#X connect 46 1 38 0;
+#X connect 47 0 26 0;
+#X connect 47 1 27 0;
diff --git a/catch_extremum-help.pd b/catch_extremum-help.pd
new file mode 100644
index 0000000..6616b07
--- /dev/null
+++ b/catch_extremum-help.pd
@@ -0,0 +1,36 @@
+#N canvas 674 142 600 448 10;
+#X floatatom 85 92 5 0 127 0 - - -;
+#X text 86 74 data;
+#X msg 92 117 0;
+#X msg 120 117 127;
+#X obj 224 205 time_roll;
+#X floatatom 86 336 5 0 0 0 - - -;
+#X floatatom 165 338 5 0 0 0 - - -;
+#X msg 153 117 64;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X text 51 32 catch_extremum2 return the last locals minimum and maximum
+values;
+#X obj 86 171 f;
+#X obj 96 314 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 177 313 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 86 290 catch_extremum;
+#X connect 0 0 18 0;
+#X connect 2 0 18 0;
+#X connect 3 0 18 0;
+#X connect 7 0 18 0;
+#X connect 18 0 4 0;
+#X connect 18 0 21 0;
+#X connect 21 0 5 0;
+#X connect 21 0 19 0;
+#X connect 21 1 6 0;
+#X connect 21 1 20 0;
diff --git a/catch_extremum.pd b/catch_extremum.pd
new file mode 100644
index 0000000..fd1be30
--- /dev/null
+++ b/catch_extremum.pd
@@ -0,0 +1,34 @@
+#N canvas 128 96 596 571 10;
+#X obj 166 259 > 0;
+#X obj 166 338 f;
+#X obj 221 337 f;
+#X obj 221 259 < 0;
+#X obj 141 191 t f f;
+#X obj 166 229 -;
+#X obj 221 311 sel 0;
+#X obj 166 312 sel 0;
+#X obj 224 188 f;
+#X obj 141 152 t f f b;
+#X obj 221 285 change;
+#X obj 166 285 change;
+#X obj 166 373 outlet;
+#X obj 221 373 outlet;
+#X obj 141 112 inlet;
+#X connect 0 0 11 0;
+#X connect 1 0 12 0;
+#X connect 2 0 13 0;
+#X connect 3 0 10 0;
+#X connect 4 0 5 1;
+#X connect 4 1 5 0;
+#X connect 5 0 0 0;
+#X connect 5 0 3 0;
+#X connect 6 0 2 0;
+#X connect 7 0 1 0;
+#X connect 8 0 1 1;
+#X connect 8 0 2 1;
+#X connect 9 0 4 0;
+#X connect 9 1 8 1;
+#X connect 9 2 8 0;
+#X connect 10 0 6 0;
+#X connect 11 0 7 0;
+#X connect 14 0 9 0;
diff --git a/catch_extremum2-help.pd b/catch_extremum2-help.pd
new file mode 100644
index 0000000..b21e275
--- /dev/null
+++ b/catch_extremum2-help.pd
@@ -0,0 +1,36 @@
+#N canvas 67 177 624 438 10;
+#X floatatom 85 92 5 0 127 0 - - -;
+#X text 86 74 data;
+#X msg 92 117 0;
+#X msg 120 117 127;
+#X obj 224 205 time_roll;
+#X floatatom 86 336 5 0 0 0 - - -;
+#X floatatom 171 338 5 0 0 0 - - -;
+#X msg 153 117 64;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X text 480 318 la Kitchen;
+#X text 480 335 Charles Verron;
+#X text 479 302 2004_03_22;
+#X obj 86 290 catch_extremum2;
+#X text 51 32 catch_extremum2 return the last locals minimum and maximum
+values;
+#X obj 86 171 f;
+#X obj 96 314 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 183 313 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X connect 0 0 19 0;
+#X connect 2 0 19 0;
+#X connect 3 0 19 0;
+#X connect 7 0 19 0;
+#X connect 17 0 5 0;
+#X connect 17 0 20 0;
+#X connect 17 1 6 0;
+#X connect 17 1 21 0;
+#X connect 19 0 4 0;
+#X connect 19 0 17 0;
diff --git a/catch_extremum2.pd b/catch_extremum2.pd
new file mode 100644
index 0000000..9c7cdc1
--- /dev/null
+++ b/catch_extremum2.pd
@@ -0,0 +1,34 @@
+#N canvas 532 106 604 579 10;
+#X obj 166 338 f;
+#X obj 221 337 f;
+#X obj 221 259 < 0;
+#X obj 141 191 t f f;
+#X obj 166 229 -;
+#X obj 221 311 sel 0;
+#X obj 166 312 sel 0;
+#X obj 224 188 f;
+#X obj 141 152 t f f b;
+#X obj 221 285 change;
+#X obj 166 285 change;
+#X obj 166 373 outlet;
+#X obj 221 373 outlet;
+#X obj 141 112 inlet;
+#X obj 166 259 >= 0;
+#X connect 0 0 11 0;
+#X connect 1 0 12 0;
+#X connect 2 0 9 0;
+#X connect 3 0 4 1;
+#X connect 3 1 4 0;
+#X connect 4 0 2 0;
+#X connect 4 0 14 0;
+#X connect 5 0 1 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 1;
+#X connect 7 0 1 1;
+#X connect 8 0 3 0;
+#X connect 8 1 7 1;
+#X connect 8 2 7 0;
+#X connect 9 0 5 0;
+#X connect 10 0 6 0;
+#X connect 13 0 8 0;
+#X connect 14 0 10 0;
diff --git a/change_n-help.pd b/change_n-help.pd
new file mode 100644
index 0000000..c1a50bb
--- /dev/null
+++ b/change_n-help.pd
@@ -0,0 +1,20 @@
+#N canvas 462 63 487 290 10;
+#X floatatom 130 138 5 0 0 0 - - -;
+#X floatatom 75 190 5 0 0 0 - - -;
+#X msg 75 106 0;
+#X msg 106 106 1;
+#X text 168 137 size: n;
+#X text 54 238 see:;
+#X obj 75 164 change_n 5;
+#X text 76 83 input : boolean (0 or 1);
+#X text 338 235 la Kitchen;
+#X text 338 252 Charles Verron;
+#X obj 170 238 one_n;
+#X text 44 41 are the same \, else 1;
+#X text 43 22 This abstraction returns 0 if the last n datas;
+#X obj 101 238 zero_n;
+#X text 337 220 2004_03_18;
+#X connect 0 0 6 1;
+#X connect 2 0 6 0;
+#X connect 3 0 6 0;
+#X connect 6 0 1 0;
diff --git a/change_n.pd b/change_n.pd
new file mode 100644
index 0000000..f6d0664
--- /dev/null
+++ b/change_n.pd
@@ -0,0 +1,21 @@
+#N canvas 158 35 284 316 10;
+#X obj 66 249 outlet;
+#X obj 66 191 != 1;
+#X obj 101 191 != 0;
+#X obj 66 221 &&;
+#X obj 66 158 t a a;
+#X obj 66 126 mtx_mean;
+#X obj 157 43 inlet;
+#X obj 66 42 inlet;
+#X obj 66 70 != 0;
+#X obj 66 96 last_n_matrix \$1;
+#X connect 1 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 0 0;
+#X connect 4 0 1 0;
+#X connect 4 1 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 9 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
diff --git a/count_n-help.pd b/count_n-help.pd
new file mode 100644
index 0000000..558e166
--- /dev/null
+++ b/count_n-help.pd
@@ -0,0 +1,26 @@
+#N canvas 292 114 497 331 10;
+#X obj 106 89 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 130 113 5 0 0 0 - - -;
+#X floatatom 106 205 5 0 0 0 - - -;
+#X obj 155 138 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 91 48 counts from 0 to n-1;
+#X text 176 110 <-- n;
+#X text 194 134 <-- reset counter;
+#X text 293 225 la Kitchen;
+#X text 293 242 Charles Verron;
+#X text 292 209 2004_03_22;
+#X text 293 225 la Kitchen;
+#X text 293 242 Charles Verron;
+#X text 292 209 2004_03_22;
+#X text 293 225 la Kitchen;
+#X text 293 242 Charles Verron;
+#X text 292 209 2004_03_22;
+#X obj 144 203 print;
+#X obj 106 174 count_n 5;
+#X connect 0 0 17 0;
+#X connect 1 0 17 1;
+#X connect 3 0 17 2;
+#X connect 17 0 2 0;
+#X connect 17 0 16 0;
diff --git a/count_n.pd b/count_n.pd
new file mode 100644
index 0000000..0ad2bd7
--- /dev/null
+++ b/count_n.pd
@@ -0,0 +1,19 @@
+#N canvas -3 30 462 366 10;
+#X obj 104 50 inlet;
+#X obj 104 277 outlet;
+#X obj 165 50 inlet;
+#X obj 255 49 inlet;
+#X obj 146 170 f;
+#X obj 146 193 + 1;
+#X obj 146 216 % \$1;
+#X obj 104 77 t b;
+#X msg 255 81 0;
+#X connect 0 0 7 0;
+#X connect 2 0 6 1;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 1;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
diff --git a/debounce-help.pd b/debounce-help.pd
new file mode 100644
index 0000000..5e8ee01
--- /dev/null
+++ b/debounce-help.pd
@@ -0,0 +1,26 @@
+#N canvas 37 238 680 440 10;
+#X floatatom 333 150 5 0 0 0 - - -;
+#X obj 65 226 * 120;
+#X msg 65 117 0;
+#X msg 93 116 1;
+#X obj 278 225 * 120;
+#X obj 278 189 debounce 3;
+#X obj 65 249 time_roll;
+#X obj 278 249 time_roll;
+#X obj 65 145 f;
+#X text 64 92 input : boolean (0 or 1);
+#X text 376 148 size: n;
+#X text 36 31 Debounce : it blocks the value of the incoming data for
+the;
+#X text 525 347 la Kitchen;
+#X text 525 364 Charles Verron;
+#X text 524 331 2004_03_18;
+#X text 399 31 n further samples \, after each change.;
+#X connect 0 0 5 1;
+#X connect 1 0 6 0;
+#X connect 2 0 8 0;
+#X connect 3 0 8 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 8 0 1 0;
+#X connect 8 0 5 0;
diff --git a/debounce.pd b/debounce.pd
new file mode 100644
index 0000000..eba012e
--- /dev/null
+++ b/debounce.pd
@@ -0,0 +1,32 @@
+#N canvas 17 4 602 685 10;
+#X text 49 31 flot donnees;
+#X obj 105 316 - 1;
+#X obj 105 52 inlet;
+#X obj 49 52 inlet;
+#X obj 86 201 change;
+#X text 150 53 duree debounce (samples);
+#X obj 49 82 != 0;
+#X obj 73 316 f;
+#X obj 86 172 spigot;
+#X obj 86 279 f \$1;
+#X obj 86 235 t b f;
+#X obj 49 279 f;
+#X obj 49 115 t b b f;
+#X obj 49 403 outlet;
+#X obj 105 351 <= 0;
+#X connect 1 0 7 1;
+#X connect 1 0 14 0;
+#X connect 2 0 9 1;
+#X connect 3 0 6 0;
+#X connect 4 0 10 0;
+#X connect 6 0 12 0;
+#X connect 7 0 1 0;
+#X connect 8 0 4 0;
+#X connect 9 0 7 1;
+#X connect 10 0 9 0;
+#X connect 10 1 11 1;
+#X connect 11 0 13 0;
+#X connect 12 0 11 0;
+#X connect 12 1 7 0;
+#X connect 12 2 8 0;
+#X connect 14 0 8 1;
diff --git a/debounce_b-help.pd b/debounce_b-help.pd
new file mode 100644
index 0000000..ff28333
--- /dev/null
+++ b/debounce_b-help.pd
@@ -0,0 +1,20 @@
+#N canvas 407 257 429 268 10;
+#X obj 79 123 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 79 166 debounce_b 3000;
+#X floatatom 164 124 5 0 0 0 - - -;
+#X obj 79 189 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 164 188 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 145 98 duration (ms);
+#X text 303 208 la Kitchen;
+#X text 303 225 Charles Verron;
+#X text 302 192 2004_03_18;
+#X text 29 43 until the specified duration in ms;
+#X text 29 19 Debounce_b : after receiving a bang \, it blocks the
+input;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 1 4 0;
+#X connect 2 0 1 1;
diff --git a/debounce_b.pd b/debounce_b.pd
new file mode 100644
index 0000000..9262def
--- /dev/null
+++ b/debounce_b.pd
@@ -0,0 +1,31 @@
+#N canvas 190 7 284 307 10;
+#X obj 123 52 inlet;
+#X obj 49 52 inlet;
+#X obj 49 221 spigot;
+#X obj 117 263 outlet;
+#X obj 98 121 0;
+#X obj 80 185 1;
+#X obj 96 165 loadbang;
+#X text 115 28 duree bloqueur (ms);
+#X text 32 28 flot bang;
+#X obj 49 75 bang;
+#X obj 80 100 t b b b;
+#X obj 80 143 delay \$1;
+#X obj 161 263 outlet;
+#X obj 161 220 * -1;
+#X obj 161 242 + 1;
+#X connect 0 0 11 1;
+#X connect 1 0 9 0;
+#X connect 2 0 10 0;
+#X connect 4 0 2 1;
+#X connect 4 0 13 0;
+#X connect 5 0 2 1;
+#X connect 5 0 13 0;
+#X connect 6 0 5 0;
+#X connect 9 0 2 0;
+#X connect 10 0 11 0;
+#X connect 10 1 4 0;
+#X connect 10 2 3 0;
+#X connect 11 0 5 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
diff --git a/fir_filter-help.pd b/fir_filter-help.pd
new file mode 100644
index 0000000..6e8eeb0
--- /dev/null
+++ b/fir_filter-help.pd
@@ -0,0 +1,28 @@
+#N canvas 179 79 735 419 10;
+#X obj 118 186 fir_filter;
+#X msg 173 98 0.5 0.3 0.2;
+#X obj 173 76 loadbang;
+#X text 259 98 filter coef;
+#X floatatom 93 82 5 0 127 0 - - -;
+#X text 97 58 data;
+#X obj 93 161 t f f;
+#X msg 100 107 0;
+#X msg 173 123 0.2 0.2 0.2 0.2 0.2;
+#X obj 93 248 time_roll;
+#X obj 345 247 time_roll;
+#X msg 128 107 127;
+#X text 375 32 the list of its coeficients.;
+#X text 588 349 la Kitchen;
+#X text 588 366 Charles Verron;
+#X text 587 333 2004_03_18;
+#X text 54 32 Fir_filter computes a finite impulse response filter
+;
+#X connect 0 0 10 0;
+#X connect 1 0 0 1;
+#X connect 2 0 1 0;
+#X connect 4 0 6 0;
+#X connect 6 0 9 0;
+#X connect 6 1 0 0;
+#X connect 7 0 6 0;
+#X connect 8 0 0 1;
+#X connect 11 0 6 0;
diff --git a/fir_filter.pd b/fir_filter.pd
new file mode 100644
index 0000000..0b22830
--- /dev/null
+++ b/fir_filter.pd
@@ -0,0 +1,26 @@
+#N canvas 495 51 458 390 10;
+#X obj 158 136 zl len;
+#X obj 158 59 inlet;
+#X text 206 58 liste coef filtre;
+#X text 72 34 flux donnees;
+#X obj 85 57 inlet;
+#X obj 85 218 last_n_matrix;
+#X obj 158 100 t a a;
+#X obj 183 160 list2matcol;
+#X obj 85 261 mtx_.*;
+#X obj 85 352 outlet;
+#X obj 85 295 mtx_mean;
+#X obj 85 322 *;
+#X obj 158 184 t f f;
+#X connect 0 0 12 0;
+#X connect 1 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 8 0;
+#X connect 6 0 0 0;
+#X connect 6 1 7 0;
+#X connect 7 0 8 1;
+#X connect 8 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 12 0 5 1;
+#X connect 12 1 11 1;
diff --git a/fir_hip_n-help.pd b/fir_hip_n-help.pd
new file mode 100644
index 0000000..3216756
--- /dev/null
+++ b/fir_hip_n-help.pd
@@ -0,0 +1,25 @@
+#N canvas 431 7 679 463 10;
+#X floatatom 67 98 5 0 127 0 - - -;
+#X text 69 78 data;
+#X obj 67 203 t f f;
+#X msg 87 119 0;
+#X floatatom 153 129 5 0 0 0 - - -;
+#X obj 67 289 time_roll;
+#X obj 279 289 time_roll;
+#X msg 88 140 127;
+#X text 148 106 order: n;
+#X text 542 383 la Kitchen;
+#X text 542 400 Charles Verron;
+#X text 541 367 2004_03_18;
+#X text 50 37 Fir_mean_n computes a fir high pass filter of order n
+;
+#X obj 92 227 fir_hip_n 5;
+#X obj 92 251 abs;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 13 0;
+#X connect 3 0 2 0;
+#X connect 4 0 13 1;
+#X connect 7 0 2 0;
+#X connect 13 0 14 0;
+#X connect 14 0 6 0;
diff --git a/fir_hip_n.pd b/fir_hip_n.pd
new file mode 100644
index 0000000..78b9136
--- /dev/null
+++ b/fir_hip_n.pd
@@ -0,0 +1,13 @@
+#N canvas 0 0 458 308 10;
+#X obj 136 56 inlet;
+#X obj 234 55 inlet;
+#X obj 161 129 fir_mean_n \$1;
+#X obj 136 161 -;
+#X obj 136 100 t f f;
+#X obj 136 201 outlet;
+#X connect 0 0 4 0;
+#X connect 1 0 2 1;
+#X connect 2 0 3 1;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 4 1 2 0;
diff --git a/fir_mean_n-help.pd b/fir_mean_n-help.pd
new file mode 100644
index 0000000..837d0fe
--- /dev/null
+++ b/fir_mean_n-help.pd
@@ -0,0 +1,23 @@
+#N canvas 16 302 679 463 10;
+#X floatatom 67 98 5 0 127 0 - - -;
+#X text 69 78 data;
+#X obj 67 203 t f f;
+#X msg 87 119 0;
+#X floatatom 159 129 5 0 0 0 - - -;
+#X obj 92 228 fir_mean_n 5;
+#X obj 67 264 time_roll;
+#X obj 279 264 time_roll;
+#X msg 88 140 127;
+#X text 154 106 order: n;
+#X text 542 383 la Kitchen;
+#X text 542 400 Charles Verron;
+#X text 541 367 2004_03_18;
+#X text 49 37 Fir_mean_n computes a fir low pass mean filter of order
+n;
+#X connect 0 0 2 0;
+#X connect 2 0 6 0;
+#X connect 2 1 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 1;
+#X connect 5 0 7 0;
+#X connect 8 0 2 0;
diff --git a/fir_mean_n.pd b/fir_mean_n.pd
new file mode 100644
index 0000000..cfcb5ea
--- /dev/null
+++ b/fir_mean_n.pd
@@ -0,0 +1,27 @@
+#N canvas 48 10 470 391 10;
+#X obj 84 32 inlet;
+#X text 72 9 flux donnees;
+#X obj 110 55 inlet;
+#X text 157 55 taille moyenneur;
+#X obj 84 292 fir_filter;
+#X obj 110 210 mtx;
+#X msg 110 182 ones \$1 1;
+#X obj 110 263 zl slice 3;
+#X obj 110 154 t f f;
+#X obj 84 329 outlet;
+#X obj 125 77 loadbang;
+#X obj 110 101 \$1;
+#X obj 110 236 mtx_./ \$1;
+#X obj 110 128 max 1;
+#X connect 0 0 4 0;
+#X connect 2 0 11 0;
+#X connect 4 0 9 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 7 1 4 1;
+#X connect 8 0 6 0;
+#X connect 8 1 12 1;
+#X connect 10 0 11 0;
+#X connect 11 0 13 0;
+#X connect 12 0 7 0;
+#X connect 13 0 8 0;
diff --git a/iir_hip-help.pd b/iir_hip-help.pd
new file mode 100644
index 0000000..73a9482
--- /dev/null
+++ b/iir_hip-help.pd
@@ -0,0 +1,25 @@
+#N canvas 211 206 691 432 10;
+#X floatatom 291 143 5 0 0 0 - - -;
+#X floatatom 27 83 5 0 127 0 - - -;
+#X text 29 65 data;
+#X obj 27 156 t f f;
+#X text 530 352 la Kitchen;
+#X text 530 369 Charles Verron;
+#X text 529 336 2004_03_22;
+#X text 52 21 iir_lop computes a infinite impulse response hip-pass
+filter of order one;
+#X text 349 140 "cut-off frequency";
+#X obj 242 194 iir_hip 5;
+#X msg 47 100 -64;
+#X msg 105 100 64;
+#X msg 75 100 0;
+#X obj 27 234 time_roll 64;
+#X obj 242 234 time_roll 64;
+#X connect 0 0 9 1;
+#X connect 1 0 3 0;
+#X connect 3 0 13 0;
+#X connect 3 1 9 0;
+#X connect 9 0 14 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 0;
+#X connect 12 0 3 0;
diff --git a/iir_hip.pd b/iir_hip.pd
new file mode 100644
index 0000000..d4440bb
--- /dev/null
+++ b/iir_hip.pd
@@ -0,0 +1,13 @@
+#N canvas 218 128 250 263 10;
+#X obj 49 46 inlet;
+#X obj 129 47 inlet;
+#X obj 49 147 outlet;
+#X obj 49 69 t f f;
+#X obj 49 113 -;
+#X obj 74 91 iir_lop \$1;
+#X connect 0 0 3 0;
+#X connect 1 0 5 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 1;
diff --git a/iir_lop-help.pd b/iir_lop-help.pd
new file mode 100644
index 0000000..9c56f7c
--- /dev/null
+++ b/iir_lop-help.pd
@@ -0,0 +1,23 @@
+#N canvas 6 7 683 424 10;
+#X obj 242 234 time_roll;
+#X floatatom 291 143 5 0 0 0 - - -;
+#X obj 27 234 time_roll;
+#X floatatom 27 79 5 0 127 0 - - -;
+#X text 29 59 data;
+#X obj 27 172 t f f;
+#X msg 47 100 0;
+#X msg 48 121 127;
+#X text 530 352 la Kitchen;
+#X text 530 369 Charles Verron;
+#X text 529 336 2004_03_22;
+#X text 89 27 iir_lop computes a infinite impulse response low-pass
+filter of order one;
+#X obj 242 210 iir_lop 5;
+#X text 353 140 "cut-off frequency";
+#X connect 1 0 12 1;
+#X connect 3 0 5 0;
+#X connect 5 0 2 0;
+#X connect 5 1 12 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 12 0 0 0;
diff --git a/iir_lop.pd b/iir_lop.pd
new file mode 100644
index 0000000..2abb620
--- /dev/null
+++ b/iir_lop.pd
@@ -0,0 +1,28 @@
+#N canvas 246 155 294 362 10;
+#X obj 59 49 inlet;
+#X obj 59 314 outlet;
+#X obj 59 241 +;
+#X obj 59 205 *;
+#X obj 111 240 + 1;
+#X obj 59 285 /;
+#X obj 111 48 inlet;
+#X obj 111 183 1;
+#X obj 128 70 loadbang;
+#X obj 111 155 /;
+#X msg 111 133 1 \$1;
+#X obj 128 89 \$1;
+#X obj 111 111 max 0.001;
+#X connect 0 0 3 0;
+#X connect 2 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 1;
+#X connect 5 0 2 1;
+#X connect 5 0 1 0;
+#X connect 6 0 12 0;
+#X connect 7 0 3 1;
+#X connect 7 0 4 0;
+#X connect 8 0 11 0;
+#X connect 9 0 7 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 10 0;
diff --git a/last_n-help.pd b/last_n-help.pd
new file mode 100644
index 0000000..7045401
--- /dev/null
+++ b/last_n-help.pd
@@ -0,0 +1,15 @@
+#N canvas 562 42 442 273 10;
+#X floatatom 141 132 5 0 0 0 - - -;
+#X floatatom 92 114 5 0 0 0 - - -;
+#X obj 92 156 last_n 12;
+#X text 26 24 This abstraction save the n last incoming datas;
+#X text 27 43 into a list;
+#X text 93 91 data;
+#X text 139 111 size: n;
+#X text 265 204 la Kitchen;
+#X text 265 221 Charles Verron;
+#X text 264 189 2004_03_18;
+#X obj 92 196 print;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 10 0;
diff --git a/last_n.pd b/last_n.pd
new file mode 100644
index 0000000..09c9373
--- /dev/null
+++ b/last_n.pd
@@ -0,0 +1,31 @@
+#N canvas 624 259 359 369 10;
+#X obj 49 84 zl join;
+#X obj 52 213 zl join;
+#X obj 59 160 t b a;
+#X obj 52 245 mtx_check;
+#X text 210 69 taille registre;
+#X msg 154 110 set matrix 1 \$1;
+#X text 72 45 flux donnees;
+#X obj 154 75 \$1;
+#X obj 154 49 inlet;
+#X obj 194 49 loadbang;
+#X obj 107 300 outlet;
+#X obj 49 21 inlet;
+#X obj 49 126 zl slice;
+#X msg 52 185 matrix 1 2;
+#X obj 52 276 zl slice 3;
+#X connect 0 0 12 0;
+#X connect 1 0 3 0;
+#X connect 2 0 13 0;
+#X connect 2 1 1 1;
+#X connect 3 0 14 0;
+#X connect 5 0 13 0;
+#X connect 7 0 5 0;
+#X connect 7 0 12 1;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 1;
+#X connect 12 0 2 0;
+#X connect 13 0 1 0;
+#X connect 14 1 10 0;
diff --git a/last_n_matrix-help.pd b/last_n_matrix-help.pd
new file mode 100644
index 0000000..2ec4864
--- /dev/null
+++ b/last_n_matrix-help.pd
@@ -0,0 +1,15 @@
+#N canvas 523 311 463 284 10;
+#X floatatom 198 116 5 0 0 0 - - -;
+#X floatatom 107 104 5 0 0 0 - - -;
+#X obj 107 146 last_n_matrix 12;
+#X obj 107 186 mtx_print;
+#X text 42 15 This abstraction save the n last incoming datas;
+#X text 43 34 into a colon matrix;
+#X text 103 80 data;
+#X text 193 93 size: n;
+#X text 293 202 la Kitchen;
+#X text 293 219 Charles Verron;
+#X text 292 187 2004_03_18;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
diff --git a/last_n_matrix.pd b/last_n_matrix.pd
new file mode 100644
index 0000000..632fdb0
--- /dev/null
+++ b/last_n_matrix.pd
@@ -0,0 +1,29 @@
+#N canvas 624 259 371 381 10;
+#X obj 79 112 zl join;
+#X obj 79 227 zl join;
+#X obj 79 174 t b a;
+#X obj 79 259 mtx_check;
+#X text 167 31 taille registre;
+#X text 70 31 flux donnees;
+#X obj 169 99 \$1;
+#X obj 169 49 inlet;
+#X obj 178 74 loadbang;
+#X obj 79 288 outlet;
+#X obj 79 49 inlet;
+#X obj 79 144 zl slice;
+#X msg 79 199 matrix 1 5;
+#X msg 169 134 set matrix \$1 1;
+#X connect 0 0 11 0;
+#X connect 1 0 3 0;
+#X connect 2 0 12 0;
+#X connect 2 1 1 1;
+#X connect 3 0 9 0;
+#X connect 6 0 13 0;
+#X connect 6 0 11 1;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 1;
+#X connect 11 0 2 0;
+#X connect 12 0 1 0;
+#X connect 13 0 12 0;
diff --git a/list2matcol-help.pd b/list2matcol-help.pd
new file mode 100644
index 0000000..3607bbe
--- /dev/null
+++ b/list2matcol-help.pd
@@ -0,0 +1,12 @@
+#N canvas 108 6 389 308 10;
+#X msg 68 79 1 2 3 4 5 6 8;
+#X msg 77 108 a b c d e f;
+#X obj 68 152 list2matcol;
+#X obj 68 193 mtx_print;
+#X text 45 34 It converts a list into a colon matrix;
+#X text 209 208 la Kitchen;
+#X text 209 225 Charles Verron;
+#X text 208 193 2004_03_18;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
diff --git a/list2matcol.pd b/list2matcol.pd
new file mode 100644
index 0000000..2c5a5b7
--- /dev/null
+++ b/list2matcol.pd
@@ -0,0 +1,17 @@
+#N canvas 0 0 257 308 10;
+#X obj 65 102 zl len;
+#X obj 65 48 inlet;
+#X obj 65 74 t a a;
+#X obj 65 187 matrix;
+#X msg 65 131 matrix \$1 1;
+#X obj 65 158 zl join;
+#X obj 65 216 outlet;
+#X text 132 218 matrix n 1;
+#X text 121 48 liste n;
+#X connect 0 0 4 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 2 1 5 1;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
diff --git a/max_n-help.pd b/max_n-help.pd
new file mode 100644
index 0000000..0adb7d5
--- /dev/null
+++ b/max_n-help.pd
@@ -0,0 +1,31 @@
+#N canvas 64 215 518 470 10;
+#X floatatom 85 92 5 -20 127 0 - - -;
+#X text 86 74 data;
+#X obj 85 171 t f f;
+#X msg 92 117 0;
+#X msg 120 117 127;
+#X obj 85 251 time_roll;
+#X floatatom 110 229 5 0 0 0 - - -;
+#X msg 153 117 64;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X floatatom 239 146 5 0 0 0 - - -;
+#X text 287 144 size: n (n>=2);
+#X text 51 32 max_n return the maximum from the last n (n>1) values
+;
+#X obj 110 200 max_n 20;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 20 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 7 0 2 0;
+#X connect 17 0 20 1;
+#X connect 20 0 6 0;
diff --git a/max_n.pd b/max_n.pd
new file mode 100644
index 0000000..306e08f
--- /dev/null
+++ b/max_n.pd
@@ -0,0 +1,16 @@
+#N canvas 0 0 462 312 10;
+#X obj 64 60 inlet;
+#X obj 144 59 inlet;
+#X obj 64 179 maximum;
+#X obj 64 207 outlet;
+#X obj 144 120 max 2;
+#X obj 64 149 last_n;
+#X obj 160 79 loadbang;
+#X obj 160 97 \$1;
+#X connect 0 0 5 0;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 4 0 5 1;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
diff --git a/min_n-help.pd b/min_n-help.pd
new file mode 100644
index 0000000..dcf6eea
--- /dev/null
+++ b/min_n-help.pd
@@ -0,0 +1,31 @@
+#N canvas 397 193 522 474 10;
+#X floatatom 85 92 5 0 127 0 - - -;
+#X text 86 74 data;
+#X obj 85 171 t f f;
+#X msg 92 117 0;
+#X msg 120 117 127;
+#X obj 85 251 time_roll;
+#X floatatom 110 229 5 0 0 0 - - -;
+#X msg 153 117 64;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X text 361 361 la Kitchen;
+#X text 361 378 Charles Verron;
+#X text 360 345 2004_03_22;
+#X floatatom 239 146 5 2 150 0 - - -;
+#X text 287 144 size: n (n>=2);
+#X text 51 32 min_n return the minimum from the last n (n>1) values
+;
+#X obj 110 200 min_n 20;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 20 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
+#X connect 7 0 2 0;
+#X connect 17 0 20 1;
+#X connect 20 0 6 0;
diff --git a/min_n.pd b/min_n.pd
new file mode 100644
index 0000000..999a945
--- /dev/null
+++ b/min_n.pd
@@ -0,0 +1,16 @@
+#N canvas 26 291 365 247 10;
+#X obj 64 175 outlet;
+#X obj 64 147 minimum;
+#X obj 64 29 inlet;
+#X obj 144 28 inlet;
+#X obj 144 89 max 2;
+#X obj 64 118 last_n;
+#X obj 160 48 loadbang;
+#X obj 160 66 \$1;
+#X connect 1 0 0 0;
+#X connect 2 0 5 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 1;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
diff --git a/object_list.pd b/object_list.pd
new file mode 100644
index 0000000..d742206
--- /dev/null
+++ b/object_list.pd
@@ -0,0 +1,30 @@
+#N canvas 281 175 684 672 10;
+#X obj 26 9 amplitude_n;
+#X obj 26 29 catch_extremum;
+#X obj 26 49 catch_extremum2;
+#X obj 26 69 change_n;
+#X obj 26 89 count_n;
+#X obj 26 382 debounce_b;
+#X obj 26 362 debounce;
+#X obj 25 248 fir_filter;
+#X obj 25 268 fir_hip_n;
+#X obj 25 288 fir_mean_n;
+#X obj 25 309 iir_hip;
+#X obj 25 329 iir_lop;
+#X obj 26 109 last_n;
+#X obj 27 412 last_n_matrix;
+#X obj 27 433 list2matcol;
+#X obj 26 129 max_n;
+#X obj 26 149 min_n;
+#X obj 26 189 one_n;
+#X obj 26 209 seuil_n;
+#X obj 26 480 time_roll;
+#X obj 26 169 zero_n;
+#X text 239 18 This collection of abstractions is dedicated to data
+treatment using pure data. It provide basic objects for constant rate
+data flow analisys.;
+#X text 243 75 Zexy and cyclone are neaded;
+#X text 239 100 this abstractions was made by charles Verron for La
+kitchen (march 2004).;
+#X text 241 144 Questions / comments / sugestions / ... -> cyrille.henry@la-kitchen.fr
+;
diff --git a/one_n-help.pd b/one_n-help.pd
new file mode 100644
index 0000000..d4e0d1f
--- /dev/null
+++ b/one_n-help.pd
@@ -0,0 +1,20 @@
+#N canvas 398 394 499 292 10;
+#X floatatom 129 140 5 0 0 0 - - -;
+#X floatatom 86 192 5 0 0 0 - - -;
+#X msg 86 108 0;
+#X msg 117 108 1;
+#X obj 86 166 one_n 5;
+#X text 175 137 size: n;
+#X text 54 238 see:;
+#X text 85 85 input : boolean (0 or 1);
+#X text 350 235 la Kitchen;
+#X text 349 252 Charles Verron;
+#X obj 170 238 change_n;
+#X text 39 41 non-zeros \, else 0;
+#X text 39 23 This abstraction returns 1 if the last n datas were;
+#X obj 101 238 zero_n;
+#X text 350 219 2004_03_18;
+#X connect 0 0 4 1;
+#X connect 2 0 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
diff --git a/one_n.pd b/one_n.pd
new file mode 100644
index 0000000..4b63c95
--- /dev/null
+++ b/one_n.pd
@@ -0,0 +1,14 @@
+#N canvas 249 28 310 287 10;
+#X obj 63 130 mtx_mean;
+#X obj 154 47 inlet;
+#X obj 63 46 inlet;
+#X obj 63 189 outlet;
+#X obj 63 74 != 0;
+#X obj 63 100 last_n_matrix \$1;
+#X obj 63 158 == 1;
+#X connect 0 0 6 0;
+#X connect 1 0 5 1;
+#X connect 2 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 0 0;
+#X connect 6 0 3 0;
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..9870b0f
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,11 @@
+This collection of abstraction is dedicated for data treatment using pure data.
+It provide basic object for constant rate data flow treatement.
+They are designed to be used with La kitchen sensors interfaces (Kroonde or Toaster).
+but can feet other needs.
+
+a help file is available for each object.
+You nead zexy and cyclone to be able to load this abstractions.
+
+This collection of object were made by Charles Verron for La kitchen (march 2004)
+question about it : cyrille.henry@la-kitchen.fr
+
diff --git a/seuil_n-help.pd b/seuil_n-help.pd
new file mode 100644
index 0000000..077b7fb
--- /dev/null
+++ b/seuil_n-help.pd
@@ -0,0 +1,22 @@
+#N canvas 129 149 461 350 10;
+#X floatatom 91 133 5 0 0 0 - - -;
+#X floatatom 124 164 5 0 0 0 - - -;
+#X floatatom 158 190 5 0 0 0 - - -;
+#X floatatom 91 251 5 0 0 0 - - -;
+#X text 82 108 input data;
+#X text 178 173 threshold;
+#X text 134 144 gap between samples: n;
+#X text 36 64 threshold value;
+#X text 35 43 the current sample and the sample n before is up to the
+;
+#X text 313 285 la Kitchen;
+#X text 313 302 Charles Verron;
+#X text 312 270 2004_03_18;
+#X text 34 24 This abstraction returns 1 if the difference between
+;
+#X obj 91 217 seuil_n 5 10;
+#X connect 0 0 13 0;
+#X connect 1 0 13 1;
+#X connect 2 0 13 2;
+#X connect 13 0 3 0;
+#X coords 0 0 0.00220264 0.00328947 200 140 1;
diff --git a/seuil_n.pd b/seuil_n.pd
new file mode 100644
index 0000000..93f367c
--- /dev/null
+++ b/seuil_n.pd
@@ -0,0 +1,27 @@
+#N canvas 514 2 301 387 10;
+#X obj 76 39 inlet;
+#X obj 27 39 inlet;
+#X text 19 16 flux donnees;
+#X obj 107 61 inlet;
+#X obj 82 202 -;
+#X text 149 62 valeur seuil;
+#X obj 82 233 abs;
+#X obj 82 288 outlet;
+#X obj 27 160 zl ecils 1;
+#X text 118 34 ecart des point a comparer;
+#X obj 27 131 last_n \$1;
+#X obj 82 261 >= \$2;
+#X obj 27 100 f;
+#X obj 27 70 t f b f;
+#X connect 0 0 10 1;
+#X connect 1 0 13 0;
+#X connect 3 0 11 1;
+#X connect 4 0 6 0;
+#X connect 6 0 11 0;
+#X connect 8 1 4 0;
+#X connect 10 0 8 0;
+#X connect 11 0 7 0;
+#X connect 12 0 10 0;
+#X connect 13 0 12 1;
+#X connect 13 1 12 0;
+#X connect 13 2 4 1;
diff --git a/time_roll.pd b/time_roll.pd
new file mode 100644
index 0000000..cebe377
--- /dev/null
+++ b/time_roll.pd
@@ -0,0 +1,107 @@
+#N canvas 0 0 243 167 10;
+#X obj 21 73 f;
+#X obj 20 52 t f b;
+#X obj 42 114 f;
+#X obj 41 93 t f b;
+#X obj 20 3 inlet;
+#X obj 6 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 23 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 40 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 79 74 f;
+#X obj 78 53 t f b;
+#X obj 100 115 f;
+#X obj 99 94 t f b;
+#X obj 57 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 74 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 137 75 f;
+#X obj 136 54 t f b;
+#X obj 158 116 f;
+#X obj 157 95 t f b;
+#X obj 91 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 108 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 195 76 f;
+#X obj 194 55 t f b;
+#X obj 216 117 f;
+#X obj 215 96 t f b;
+#X obj 125 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 142 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 251 76 f;
+#X obj 250 55 t f b;
+#X obj 272 117 f;
+#X obj 271 96 t f b;
+#X obj 159 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 176 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 309 77 f;
+#X obj 308 56 t f b;
+#X obj 330 118 f;
+#X obj 329 97 t f b;
+#X obj 193 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 210 23 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 70 3 inlet;
+#X obj 20 28 + \$1;
+#X text 110 3 <-- offset;
+#X connect 0 0 3 0;
+#X connect 0 0 6 0;
+#X connect 1 0 0 1;
+#X connect 1 0 5 0;
+#X connect 1 1 0 0;
+#X connect 2 0 7 0;
+#X connect 2 0 9 0;
+#X connect 3 0 2 1;
+#X connect 3 1 2 0;
+#X connect 4 0 39 0;
+#X connect 8 0 11 0;
+#X connect 8 0 12 0;
+#X connect 9 0 8 1;
+#X connect 9 1 8 0;
+#X connect 10 0 13 0;
+#X connect 10 0 15 0;
+#X connect 11 0 10 1;
+#X connect 11 1 10 0;
+#X connect 14 0 17 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 1;
+#X connect 15 1 14 0;
+#X connect 16 0 19 0;
+#X connect 16 0 21 0;
+#X connect 17 0 16 1;
+#X connect 17 1 16 0;
+#X connect 20 0 23 0;
+#X connect 20 0 24 0;
+#X connect 21 0 20 1;
+#X connect 21 1 20 0;
+#X connect 22 0 25 0;
+#X connect 22 0 27 0;
+#X connect 23 0 22 1;
+#X connect 23 1 22 0;
+#X connect 26 0 29 0;
+#X connect 26 0 30 0;
+#X connect 27 0 26 1;
+#X connect 27 1 26 0;
+#X connect 28 0 31 0;
+#X connect 28 0 33 0;
+#X connect 29 0 28 1;
+#X connect 29 1 28 0;
+#X connect 32 0 35 0;
+#X connect 32 0 36 0;
+#X connect 33 0 32 1;
+#X connect 33 1 32 0;
+#X connect 34 0 37 0;
+#X connect 35 0 34 1;
+#X connect 35 1 34 0;
+#X connect 38 0 39 1;
+#X connect 39 0 1 0;
+#X coords 0 0 1 1 204 140 1;
diff --git a/zero_n-help.pd b/zero_n-help.pd
new file mode 100644
index 0000000..517be72
--- /dev/null
+++ b/zero_n-help.pd
@@ -0,0 +1,21 @@
+#N canvas 576 391 468 303 10;
+#X floatatom 138 140 5 0 0 0 - - -;
+#X floatatom 95 192 5 0 0 0 - - -;
+#X obj 95 166 zero_n 5;
+#X msg 95 108 0;
+#X msg 126 108 1;
+#X text 184 137 size: n;
+#X text 54 238 see:;
+#X obj 170 237 change_n;
+#X obj 101 237 one_n;
+#X text 46 19 This abstraction returns 1 if the last n datas were 0
+\,;
+#X text 46 41 else 0;
+#X text 100 85 input : boolean (0 or 1);
+#X text 338 235 la Kitchen;
+#X text 338 252 Charles Verron;
+#X text 337 220 2004_03_18;
+#X connect 0 0 2 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 0;
diff --git a/zero_n.pd b/zero_n.pd
new file mode 100644
index 0000000..f37bc19
--- /dev/null
+++ b/zero_n.pd
@@ -0,0 +1,14 @@
+#N canvas 212 8 302 279 10;
+#X obj 63 130 mtx_mean;
+#X obj 154 47 inlet;
+#X obj 63 46 inlet;
+#X obj 63 189 outlet;
+#X obj 63 158 == 0;
+#X obj 63 74 != 0;
+#X obj 63 100 last_n_matrix \$1;
+#X connect 0 0 4 0;
+#X connect 1 0 6 1;
+#X connect 2 0 5 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;