aboutsummaryrefslogtreecommitdiff
path: root/abs
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2005-03-22 20:58:25 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2005-03-22 20:58:25 +0000
commit2b60d55c919e7588f5aff15936e83c300b3660bb (patch)
tree14d860de7f28083d3756ad91b627de70f26788f6 /abs
parentc500bc542cb7cc78d6dac3f7da3bff626056b1aa (diff)
zexy-2.0:
- use of abstractions for objects that allow it - some objects are build both as externals and abstractions (as slower fallbacks) - code-layout is now 1:1 c-file<->object (this should allow for building of zexy as a collection of externals instead as a big library) - matrix-objects have moved to iemmatrix !! svn path=/trunk/externals/zexy/; revision=2641
Diffstat (limited to 'abs')
-rw-r--r--abs/&&~-help.pd31
-rw-r--r--abs/&&~.pd13
-rw-r--r--abs/<~-help.pd31
-rw-r--r--abs/<~.pd13
-rw-r--r--abs/==~-help.pd31
-rw-r--r--abs/==~.pd13
-rw-r--r--abs/>~-help.pd31
-rw-r--r--abs/>~.pd13
-rw-r--r--abs/abs~-help.pd25
-rw-r--r--abs/abs~.pd11
-rw-r--r--abs/cart2pol-help.pd25
-rw-r--r--abs/cart2pol.pd50
-rw-r--r--abs/cart2sph-help.pd25
-rw-r--r--abs/cart2sph.pd62
-rw-r--r--abs/deg2rad-help.pd31
-rw-r--r--abs/deg2rad.pd19
-rw-r--r--abs/mean-help.pd11
-rw-r--r--abs/mean.pd16
-rw-r--r--abs/nop-help.pd19
-rw-r--r--abs/nop.pd6
-rw-r--r--abs/nop~-help.pd15
-rw-r--r--abs/nop~.pd15
-rw-r--r--abs/pol2cart-help.pd25
-rw-r--r--abs/pol2cart.pd35
-rw-r--r--abs/pol2sph-help.pd25
-rw-r--r--abs/pol2sph.pd49
-rw-r--r--abs/rad2deg-help.pd31
-rw-r--r--abs/rad2deg.pd21
-rw-r--r--abs/segregate-help.pd35
-rw-r--r--abs/segregate.pd22
-rw-r--r--abs/sgn~-help.pd25
-rw-r--r--abs/sgn~.pd11
-rw-r--r--abs/sph2cart-help.pd25
-rw-r--r--abs/sph2cart.pd52
-rw-r--r--abs/sph2pol-help.pd25
-rw-r--r--abs/sph2pol.pd41
-rw-r--r--abs/||~-help.pd31
-rw-r--r--abs/||~.pd13
38 files changed, 972 insertions, 0 deletions
diff --git a/abs/&&~-help.pd b/abs/&&~-help.pd
new file mode 100644
index 0000000..041d9c7
--- /dev/null
+++ b/abs/&&~-help.pd
@@ -0,0 +1,31 @@
+#N canvas 274 174 575 388 10;
+#X text 67 46 comparing 2 signals;
+#X obj 72 103 sig~;
+#X obj 120 102 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 120 82 5 0 0 0 - - -;
+#X floatatom 72 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 302 performance is worse than with the external version
+;
+#X text 45 325 if you want to use the external version of this object
+\, you have to load zexy;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X obj 92 152 &&~;
+#X text 46 287 you *cannot* use arguments with this version \, like
+[&&~ 2.7];
+#X connect 1 0 15 0;
+#X connect 2 0 15 1;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 15 0 5 0;
diff --git a/abs/&&~.pd b/abs/&&~.pd
new file mode 100644
index 0000000..031ce72
--- /dev/null
+++ b/abs/&&~.pd
@@ -0,0 +1,13 @@
+#N canvas 655 230 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 124 90 inlet~;
+#X text 36 44 [&&~];
+#X obj 31 113 expr~ $v1&&$v2;
+#X text 33 187 therefore we _also_ provide [&&~] as external.;
+#X connect 0 0 7 0;
+#X connect 5 0 7 1;
+#X connect 7 0 1 0;
diff --git a/abs/<~-help.pd b/abs/<~-help.pd
new file mode 100644
index 0000000..abf7a8e
--- /dev/null
+++ b/abs/<~-help.pd
@@ -0,0 +1,31 @@
+#N canvas 274 174 575 388 10;
+#X text 67 46 comparing 2 signals;
+#X obj 72 103 sig~;
+#X obj 120 102 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 120 82 5 0 0 0 - - -;
+#X floatatom 72 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X obj 92 152 <~;
+#X text 45 287 you *cannot* use arguments with this version \, like
+[<~ 2.7];
+#X text 45 302 performance is worse than with the external version
+;
+#X text 43 256 this is the abstraction version of [<~] \, which is
+using [expr~];
+#X text 45 325 if you want to use the external version of this object
+\, you have to load zexy;
+#X connect 1 0 12 0;
+#X connect 2 0 12 1;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 12 0 5 0;
diff --git a/abs/<~.pd b/abs/<~.pd
new file mode 100644
index 0000000..f167c97
--- /dev/null
+++ b/abs/<~.pd
@@ -0,0 +1,13 @@
+#N canvas 655 230 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 31 113 expr~ $v1 < $v2;
+#X obj 131 90 inlet~;
+#X text 36 44 [<~];
+#X text 33 187 therefore we _also_ provide [<~] as external.;
+#X connect 0 0 5 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 1;
diff --git a/abs/==~-help.pd b/abs/==~-help.pd
new file mode 100644
index 0000000..48e06aa
--- /dev/null
+++ b/abs/==~-help.pd
@@ -0,0 +1,31 @@
+#N canvas 274 174 575 388 10;
+#X text 67 46 comparing 2 signals;
+#X obj 72 103 sig~;
+#X obj 120 102 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 120 82 5 0 0 0 - - -;
+#X floatatom 72 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 302 performance is worse than with the external version
+;
+#X text 45 325 if you want to use the external version of this object
+\, you have to load zexy;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X obj 92 152 ==~;
+#X text 46 287 you *cannot* use arguments with this version \, like
+[==~ 2.7];
+#X connect 1 0 15 0;
+#X connect 2 0 15 1;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 15 0 5 0;
diff --git a/abs/==~.pd b/abs/==~.pd
new file mode 100644
index 0000000..f9a383b
--- /dev/null
+++ b/abs/==~.pd
@@ -0,0 +1,13 @@
+#N canvas 655 230 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 124 90 inlet~;
+#X obj 31 113 expr~ $v1==$v2;
+#X text 36 44 [==~];
+#X text 33 187 therefore we _also_ provide [==~] as external.;
+#X connect 0 0 6 0;
+#X connect 5 0 6 1;
+#X connect 6 0 1 0;
diff --git a/abs/>~-help.pd b/abs/>~-help.pd
new file mode 100644
index 0000000..b6b5a1e
--- /dev/null
+++ b/abs/>~-help.pd
@@ -0,0 +1,31 @@
+#N canvas 274 174 575 388 10;
+#X text 67 46 comparing 2 signals;
+#X obj 72 103 sig~;
+#X obj 120 102 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 120 82 5 0 0 0 - - -;
+#X floatatom 72 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 302 performance is worse than with the external version
+;
+#X text 45 325 if you want to use the external version of this object
+\, you have to load zexy;
+#X obj 92 152 >~;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X text 46 287 you *cannot* use arguments with this version \, like
+[>~ 2.7];
+#X connect 1 0 14 0;
+#X connect 2 0 14 1;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 14 0 5 0;
diff --git a/abs/>~.pd b/abs/>~.pd
new file mode 100644
index 0000000..64b5192
--- /dev/null
+++ b/abs/>~.pd
@@ -0,0 +1,13 @@
+#N canvas 655 230 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 131 90 inlet~;
+#X obj 31 113 expr~ $v1 > $v2;
+#X text 36 44 [>~];
+#X text 33 187 therefore we _also_ provide [>~] as external.;
+#X connect 0 0 6 0;
+#X connect 5 0 6 1;
+#X connect 6 0 1 0;
diff --git a/abs/abs~-help.pd b/abs/abs~-help.pd
new file mode 100644
index 0000000..df18187
--- /dev/null
+++ b/abs/abs~-help.pd
@@ -0,0 +1,25 @@
+#N canvas 201 257 575 388 10;
+#X obj 92 103 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 92 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 283 performance is worse than with the external version
+;
+#X text 45 315 if you want to use the external version of this object
+\, you have to load zexy;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X obj 92 152 abs~;
+#X text 67 46 absolute value of a signal;
+#X connect 0 0 12 0;
+#X connect 3 0 4 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X connect 7 0 0 0;
+#X connect 12 0 3 0;
diff --git a/abs/abs~.pd b/abs/abs~.pd
new file mode 100644
index 0000000..f4ce848
--- /dev/null
+++ b/abs/abs~.pd
@@ -0,0 +1,11 @@
+#N canvas 0 0 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X obj 31 113 expr~ abs($v1);
+#X text 36 44 [abs~];
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X text 33 187 therefore we _also_ provide [abs~] as external.;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
diff --git a/abs/cart2pol-help.pd b/abs/cart2pol-help.pd
new file mode 100644
index 0000000..6c7cc52
--- /dev/null
+++ b/abs/cart2pol-help.pd
@@ -0,0 +1,25 @@
+#N canvas 410 364 513 356 10;
+#X obj 124 246 cart2pol;
+#X text 24 31 [cart2pol]: convert cartesian coordinates to polar coordinates
+;
+#X text 360 325 updated for zexy-2.0;
+#X floatatom 175 198 5 0 0 1 z - -;
+#X floatatom 134 156 5 0 0 1 y - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 x - -;
+#X floatatom 175 268 5 0 0 1 z - -;
+#X floatatom 149 288 5 0 0 1 phi - -;
+#X floatatom 124 308 5 0 0 1 r - -;
+#X msg 32 204 1 2 3;
+#X text 77 204 x y z;
+#X text 21 76 all angles are in rad.;
+#X text 399 6 part of zexy;
+#X connect 0 0 9 0;
+#X connect 0 1 8 0;
+#X connect 0 2 7 0;
+#X connect 3 0 0 2;
+#X connect 4 0 5 0;
+#X connect 5 0 0 0;
+#X connect 5 1 0 1;
+#X connect 6 0 0 0;
+#X connect 10 0 0 0;
diff --git a/abs/cart2pol.pd b/abs/cart2pol.pd
new file mode 100644
index 0000000..b3c88a7
--- /dev/null
+++ b/abs/cart2pol.pd
@@ -0,0 +1,50 @@
+#N canvas 437 75 457 368 10;
+#X text 63 26 convert cartesian to polar coordinates;
+#X obj 99 82 inlet x;
+#X obj 82 331 outlet r;
+#X obj 179 82 inlet y;
+#X obj 259 82 inlet z;
+#X obj 179 331 outlet phi;
+#X text 294 141 r=sqrt(x^2+y^2);
+#X text 296 161 phi=atan2(y \, x);
+#X text 295 179 z=z;
+#X obj 259 331 outlet z;
+#X obj 99 125 unpack 0 0 0;
+#X obj 138 170 t f f f;
+#X obj 138 193 *;
+#X obj 82 233 +;
+#X obj 82 170 t f f f;
+#X obj 82 193 *;
+#X obj 82 265 sqrt;
+#X obj 140 285 pack 0 0 0;
+#X obj 140 305 unpack 0 0 0;
+#X obj 172 221 pack;
+#X obj 172 260 atan2;
+#X msg 172 241 \$2 \$1;
+#X text 219 241 pd>=0.38 has changed behaviour!;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 333 8 part of zexy;
+#X connect 1 0 23 0;
+#X connect 3 0 23 1;
+#X connect 4 0 23 2;
+#X connect 10 0 14 0;
+#X connect 10 1 11 0;
+#X connect 10 2 17 2;
+#X connect 11 0 12 0;
+#X connect 11 1 12 1;
+#X connect 11 2 19 1;
+#X connect 12 0 13 1;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 14 1 15 1;
+#X connect 14 2 19 0;
+#X connect 15 0 13 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 2 0;
+#X connect 18 1 5 0;
+#X connect 18 2 9 0;
+#X connect 19 0 21 0;
+#X connect 20 0 17 1;
+#X connect 21 0 20 0;
+#X connect 23 0 10 0;
diff --git a/abs/cart2sph-help.pd b/abs/cart2sph-help.pd
new file mode 100644
index 0000000..04d0321
--- /dev/null
+++ b/abs/cart2sph-help.pd
@@ -0,0 +1,25 @@
+#N canvas 231 219 466 341 10;
+#X text 322 322 updated for zexy-2.0;
+#X floatatom 175 198 5 0 0 1 z - -;
+#X floatatom 134 156 5 0 0 1 y - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 x - -;
+#X floatatom 175 268 0 0 0 0 theta - -;
+#X floatatom 149 288 0 0 0 0 phi - -;
+#X floatatom 124 308 0 0 0 0 R - -;
+#X msg 32 204 1 2 3;
+#X text 77 204 x y z;
+#X text 24 31 [cart2sph]: convert cartesian coordinates to spheric
+coordinates;
+#X obj 124 246 cart2sph;
+#X text 21 76 all angles are in rad.;
+#X text 357 6 part of zexy;
+#X connect 1 0 11 2;
+#X connect 2 0 3 0;
+#X connect 3 0 11 0;
+#X connect 3 1 11 1;
+#X connect 4 0 11 0;
+#X connect 8 0 11 0;
+#X connect 11 0 7 0;
+#X connect 11 1 6 0;
+#X connect 11 2 5 0;
diff --git a/abs/cart2sph.pd b/abs/cart2sph.pd
new file mode 100644
index 0000000..b2f084a
--- /dev/null
+++ b/abs/cart2sph.pd
@@ -0,0 +1,62 @@
+#N canvas 437 75 639 390 10;
+#X obj 259 82 inlet z;
+#X text 63 26 convert cartesian to spherical coordinates;
+#X obj 99 82 inlet x;
+#X obj 179 82 inlet y;
+#X obj 99 351 outlet r;
+#X obj 199 351 outlet phi;
+#X obj 279 351 outlet theta;
+#X obj 99 125 unpack 0 0 0;
+#X text 263 136 r=sqrt(x^2+y^2+z^2);
+#X text 263 158 phi=atan2(y \, x);
+#X text 262 179 theta=atan2(z \, sqrt(x^2+y^2));
+#X obj 99 170 *;
+#X obj 199 325 atan2;
+#X obj 279 331 atan2;
+#X obj 99 325 sqrt;
+#X obj 279 270 sqrt;
+#X obj 99 299 +;
+#X obj 99 150 t f f f;
+#X obj 138 191 *;
+#X obj 138 171 t f f f;
+#X obj 99 220 +;
+#X obj 99 245 t f f;
+#X obj 192 169 *;
+#X obj 192 149 t f f f;
+#X obj 279 292 pack;
+#X obj 199 271 pack;
+#X msg 199 298 \$2 \$1;
+#X msg 279 312 \$2 \$1;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 464 24 part of zexy;
+#X connect 0 0 28 2;
+#X connect 2 0 28 0;
+#X connect 3 0 28 1;
+#X connect 7 0 17 0;
+#X connect 7 1 19 0;
+#X connect 7 2 23 0;
+#X connect 11 0 20 0;
+#X connect 12 0 5 0;
+#X connect 13 0 6 0;
+#X connect 14 0 4 0;
+#X connect 15 0 24 0;
+#X connect 16 0 14 0;
+#X connect 17 0 11 0;
+#X connect 17 1 11 1;
+#X connect 17 2 25 0;
+#X connect 18 0 20 1;
+#X connect 19 0 18 0;
+#X connect 19 1 18 1;
+#X connect 19 2 25 1;
+#X connect 20 0 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 15 0;
+#X connect 22 0 16 1;
+#X connect 23 0 22 0;
+#X connect 23 1 22 1;
+#X connect 23 2 24 1;
+#X connect 24 0 27 0;
+#X connect 25 0 26 0;
+#X connect 26 0 12 0;
+#X connect 27 0 13 0;
+#X connect 28 0 7 0;
diff --git a/abs/deg2rad-help.pd b/abs/deg2rad-help.pd
new file mode 100644
index 0000000..c0be4a8
--- /dev/null
+++ b/abs/deg2rad-help.pd
@@ -0,0 +1,31 @@
+#N canvas 421 168 450 300 10;
+#X obj 60 39 deg2rad;
+#X text 122 40 convert DEGree to RADian;
+#X obj 76 138 deg2rad;
+#X floatatom 76 167 5 0 0 0 - - -;
+#X floatatom 76 86 5 0 0 0 - - -;
+#X obj 132 129 / 180;
+#X obj 132 153 * 3.14159;
+#X obj 116 225 -;
+#X floatatom 132 176 5 0 0 0 - - -;
+#X obj 76 110 t f f;
+#X floatatom 116 257 16 0 0 0 - - -;
+#X floatatom 317 155 5 0 0 0 - - -;
+#X obj 317 172 deg2rad;
+#X obj 317 195 cos;
+#X floatatom 317 217 5 0 0 0 - - -;
+#X text 317 129 example:;
+#X text 338 10 part of zexy;
+#X text 289 279 updated for zexy-2.0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 5 0 6 0;
+#X connect 6 0 8 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 1;
+#X connect 9 0 2 0;
+#X connect 9 1 5 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
diff --git a/abs/deg2rad.pd b/abs/deg2rad.pd
new file mode 100644
index 0000000..868b737
--- /dev/null
+++ b/abs/deg2rad.pd
@@ -0,0 +1,19 @@
+#N canvas 437 75 329 363 10;
+#X obj 109 112 inlet deg;
+#X obj 109 231 outlet rad;
+#X obj 181 179 / 45;
+#X obj 181 113 loadbang;
+#X obj 109 202 * 0.0174533;
+#X obj 109 178 f;
+#X text 93 282 rad=deg*pi/180;
+#X obj 181 156 atan;
+#X msg 181 135 1;
+#X text 225 36 part of zexy;
+#X text 63 66 convert DEGree to RADiant;
+#X connect 0 0 5 0;
+#X connect 2 0 4 1;
+#X connect 3 0 8 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
+#X connect 7 0 2 0;
+#X connect 8 0 7 0;
diff --git a/abs/mean-help.pd b/abs/mean-help.pd
new file mode 100644
index 0000000..1981f1d
--- /dev/null
+++ b/abs/mean-help.pd
@@ -0,0 +1,11 @@
+#N canvas 186 94 463 310 10;
+#X obj 83 154 mean;
+#X floatatom 83 202 4 0 0 0 - - -;
+#X msg 96 96 2 4;
+#X text 57 39 get the mean value of a list of floats;
+#X msg 83 69 1 2 3 -4 5 6;
+#X text 338 7 part of zexy;
+#X text 268 275 updated for zexy-2.0;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 4 0 0 0;
diff --git a/abs/mean.pd b/abs/mean.pd
new file mode 100644
index 0000000..29fc68e
--- /dev/null
+++ b/abs/mean.pd
@@ -0,0 +1,16 @@
+#N canvas 462 214 450 382 10;
+#X obj 253 162 length;
+#X obj 223 181 /;
+#X obj 223 116 t l l;
+#X obj 223 140 sum;
+#X text 272 20 part of zexy;
+#X text 58 60 the mean of a list of floats is the sum of its elements
+divided by its length;
+#X obj 223 87 inlet list;
+#X obj 223 203 outlet mean;
+#X connect 0 0 1 1;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 2 1 0 0;
+#X connect 3 0 1 0;
+#X connect 6 0 2 0;
diff --git a/abs/nop-help.pd b/abs/nop-help.pd
new file mode 100644
index 0000000..ef2a464
--- /dev/null
+++ b/abs/nop-help.pd
@@ -0,0 +1,19 @@
+#N canvas 456 395 450 428 10;
+#X obj 121 331 nop;
+#X msg 155 157 bang;
+#X floatatom 155 175 0 0 0 0 - - -;
+#X symbolatom 156 196 0 0 0 0 - - -;
+#X obj 121 350 print;
+#X msg 156 240 set mummy;
+#X obj 132 26 nop;
+#X text 95 71 maybe this is not very intelligent;
+#X text 97 89 it just passes through what it gets;
+#X msg 157 218 1 to 3 for 5;
+#X text 328 11 part of zexy;
+#X text 265 389 updated for zexy-2.0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 5 0 0 0;
+#X connect 9 0 0 0;
diff --git a/abs/nop.pd b/abs/nop.pd
new file mode 100644
index 0000000..859f3d9
--- /dev/null
+++ b/abs/nop.pd
@@ -0,0 +1,6 @@
+#N canvas 343 308 450 300 10;
+#X obj 142 91 inlet;
+#X obj 142 179 outlet;
+#X text 113 53 do nothing...;
+#X text 170 134 part of zexy;
+#X connect 0 0 1 0;
diff --git a/abs/nop~-help.pd b/abs/nop~-help.pd
new file mode 100644
index 0000000..6d3907e
--- /dev/null
+++ b/abs/nop~-help.pd
@@ -0,0 +1,15 @@
+#N canvas 190 161 423 354 10;
+#X obj 89 71 nop~;
+#X obj 105 156 osc~ 440;
+#X obj 105 252 -~;
+#X obj 105 279 env~;
+#X floatatom 104 304 0 0 0 0 - - -;
+#X obj 133 187 nop~;
+#X text 301 30 part of zexy;
+#X text 255 308 updated for zexy-2.0;
+#X text 158 77 will do nothing !!!;
+#X connect 1 0 2 0;
+#X connect 1 0 5 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 5 0 2 1;
diff --git a/abs/nop~.pd b/abs/nop~.pd
new file mode 100644
index 0000000..2852b20
--- /dev/null
+++ b/abs/nop~.pd
@@ -0,0 +1,15 @@
+#N canvas 0 0 450 300 10;
+#X obj 68 60 inlet~;
+#X obj 68 133 outlet~;
+#X text 67 27 nop~ no-operation;
+#X text 125 56 this is how a nop really should behave.;
+#X text 128 81 prior versions delayed the signal by 1 block.;
+#X text 127 102 use something like;
+#X obj 265 102 z~ 64;
+#X obj 178 225 print warning;
+#X msg 178 204 nop~ does not delay any more!;
+#X obj 178 183 loadbang;
+#X text 272 20 part of zexy;
+#X connect 0 0 1 0;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
diff --git a/abs/pol2cart-help.pd b/abs/pol2cart-help.pd
new file mode 100644
index 0000000..4d71a41
--- /dev/null
+++ b/abs/pol2cart-help.pd
@@ -0,0 +1,25 @@
+#N canvas 215 219 473 351 10;
+#X text 317 323 updated for zexy-2.0;
+#X floatatom 175 198 5 0 0 1 z - -;
+#X floatatom 134 156 5 0 0 1 phi - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 r - -;
+#X floatatom 175 268 0 0 0 0 z - -;
+#X floatatom 149 288 0 0 0 0 y - -;
+#X floatatom 124 308 0 0 0 0 x - -;
+#X msg 22 210 1 2 3;
+#X obj 124 246 pol2cart;
+#X text 19 192 r phi theta;
+#X text 24 31 [pol2cart]: convert polar coordinates to cartesian coordinates
+;
+#X text 21 76 all angles are in rad.;
+#X text 358 7 part of zexy;
+#X connect 1 0 9 2;
+#X connect 2 0 3 0;
+#X connect 3 0 9 0;
+#X connect 3 1 9 1;
+#X connect 4 0 9 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 1 6 0;
+#X connect 9 2 5 0;
diff --git a/abs/pol2cart.pd b/abs/pol2cart.pd
new file mode 100644
index 0000000..0a29882
--- /dev/null
+++ b/abs/pol2cart.pd
@@ -0,0 +1,35 @@
+#N canvas 437 75 457 368 10;
+#X obj 259 82 inlet z;
+#X text 295 169 z=z;
+#X obj 259 331 outlet z;
+#X obj 99 125 unpack 0 0 0;
+#X text 294 141 x=r*cos(phi);
+#X text 295 156 y=r*sin(phi);
+#X obj 99 82 inlet r;
+#X obj 179 82 inlet phi;
+#X obj 82 331 outlet x;
+#X obj 179 331 outlet y;
+#X obj 138 160 t f f;
+#X obj 138 184 cos;
+#X obj 168 184 sin;
+#X obj 82 201 t f f;
+#X obj 82 237 * 1;
+#X obj 112 236 * 0;
+#X text 63 26 convert polar to cartesian coordinates;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 341 8 part of zexy;
+#X connect 0 0 17 2;
+#X connect 3 0 13 0;
+#X connect 3 1 10 0;
+#X connect 3 2 2 0;
+#X connect 6 0 17 0;
+#X connect 7 0 17 1;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 14 0 8 0;
+#X connect 15 0 9 0;
+#X connect 17 0 3 0;
diff --git a/abs/pol2sph-help.pd b/abs/pol2sph-help.pd
new file mode 100644
index 0000000..41449c5
--- /dev/null
+++ b/abs/pol2sph-help.pd
@@ -0,0 +1,25 @@
+#N canvas 218 265 454 349 10;
+#X text 301 325 updated for zexy-2.0;
+#X floatatom 168 198 5 0 0 1 z - -;
+#X floatatom 134 156 5 0 0 1 phi - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 r - -;
+#X floatatom 168 268 0 0 0 0 theta - -;
+#X floatatom 146 288 0 0 0 0 phi - -;
+#X floatatom 124 308 0 0 0 0 R - -;
+#X msg 22 210 1 2 3;
+#X obj 124 246 pol2sph;
+#X text 24 31 [pol2sph]: convert polar coordinates to spherical coordinates
+;
+#X text 21 76 all angles are in rad.;
+#X text 19 192 r phi z;
+#X text 330 12 part of zexy;
+#X connect 1 0 9 2;
+#X connect 2 0 3 0;
+#X connect 3 0 9 0;
+#X connect 3 1 9 1;
+#X connect 4 0 9 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 1 6 0;
+#X connect 9 2 5 0;
diff --git a/abs/pol2sph.pd b/abs/pol2sph.pd
new file mode 100644
index 0000000..046d19e
--- /dev/null
+++ b/abs/pol2sph.pd
@@ -0,0 +1,49 @@
+#N canvas 437 75 457 368 10;
+#X obj 259 82 inlet z;
+#X obj 99 82 inlet r;
+#X obj 179 82 inlet phi;
+#X text 63 26 convert polar to spherical coordinates;
+#X obj 99 125 unpack 0 0 0;
+#X obj 83 331 outlet R;
+#X text 280 151 R=sqrt(r^2+z^2);
+#X obj 179 331 outlet Phi;
+#X obj 259 331 outlet Theta;
+#X text 279 170 Phi=phi;
+#X text 278 187 Theta=atan2(z \, r);
+#X obj 99 275 pack 0 0 0;
+#X obj 99 295 unpack 0 0 0;
+#X obj 178 148 t f f f;
+#X obj 178 169 *;
+#X obj 99 148 t f f f;
+#X obj 99 169 *;
+#X obj 99 212 +;
+#X obj 99 237 sqrt;
+#X obj 164 255 atan2;
+#X obj 164 213 pack;
+#X msg 164 234 \$2 \$1;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 335 8 part of zexy;
+#X connect 0 0 22 2;
+#X connect 1 0 22 0;
+#X connect 2 0 22 1;
+#X connect 4 0 15 0;
+#X connect 4 1 11 1;
+#X connect 4 2 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 5 0;
+#X connect 12 1 7 0;
+#X connect 12 2 8 0;
+#X connect 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 13 2 20 1;
+#X connect 14 0 17 1;
+#X connect 15 0 16 0;
+#X connect 15 1 16 1;
+#X connect 15 2 20 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 11 0;
+#X connect 19 0 11 2;
+#X connect 20 0 21 0;
+#X connect 21 0 19 0;
+#X connect 22 0 4 0;
diff --git a/abs/rad2deg-help.pd b/abs/rad2deg-help.pd
new file mode 100644
index 0000000..23f5844
--- /dev/null
+++ b/abs/rad2deg-help.pd
@@ -0,0 +1,31 @@
+#N canvas 421 168 450 300 10;
+#X floatatom 76 167 5 0 0 0 - - -;
+#X floatatom 76 86 5 0 0 0 - - -;
+#X obj 116 225 -;
+#X floatatom 132 176 5 0 0 0 - - -;
+#X obj 76 110 t f f;
+#X floatatom 116 257 16 0 0 0 - - -;
+#X floatatom 317 155 5 0 0 0 - - -;
+#X floatatom 317 217 5 0 0 0 - - -;
+#X text 317 129 example:;
+#X obj 76 138 rad2deg;
+#X obj 132 129 * 180;
+#X obj 132 153 / 3.14159;
+#X obj 60 39 rad2deg;
+#X text 122 40 convert RADian and DEGree;
+#X obj 317 172 atan;
+#X obj 317 195 rad2deg;
+#X text 317 12 part of zexy;
+#X text 272 274 updated for zexy-2.0;
+#X connect 0 0 2 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 2 1;
+#X connect 4 0 9 0;
+#X connect 4 1 10 0;
+#X connect 6 0 14 0;
+#X connect 9 0 0 0;
+#X connect 10 0 11 0;
+#X connect 11 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 7 0;
diff --git a/abs/rad2deg.pd b/abs/rad2deg.pd
new file mode 100644
index 0000000..eea2f9f
--- /dev/null
+++ b/abs/rad2deg.pd
@@ -0,0 +1,21 @@
+#N canvas 437 75 457 368 10;
+#X obj 181 93 loadbang;
+#X obj 109 178 f;
+#X text 93 282 deg=rad*180/pi;
+#X text 63 66 convert radiant to degree;
+#X obj 109 82 inlet rad;
+#X obj 109 231 outlet deg;
+#X msg 181 158 45 \$1;
+#X obj 181 179 /;
+#X obj 109 202 * 57.2958;
+#X msg 181 115 1;
+#X obj 181 136 atan;
+#X text 272 20 part of zexy;
+#X connect 0 0 9 0;
+#X connect 1 0 8 0;
+#X connect 4 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 1;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 10 0 6 0;
diff --git a/abs/segregate-help.pd b/abs/segregate-help.pd
new file mode 100644
index 0000000..a70815c
--- /dev/null
+++ b/abs/segregate-help.pd
@@ -0,0 +1,35 @@
+#N canvas 543 205 450 496 10;
+#X obj 136 344 segregate;
+#X obj 136 447 print BANG;
+#X obj 145 430 print FLOAT;
+#X obj 155 413 print SYMBOL;
+#X obj 175 379 print POINTER;
+#X obj 165 396 print LIST;
+#X floatatom 155 226 0 0 0 0 - - -;
+#X symbolatom 171 255 0 0 0 0 - - -;
+#X msg 136 197 bang;
+#X msg 184 281 1 2 3 4;
+#X msg 185 307 come on \, my house;
+#X text 131 31 segregate;
+#X text 51 87 segregates the inputs by their type;
+#X text 50 112 known types (in order of their outlets)::;
+#X text 93 131 BANG \, FLOAT \, SYMBOL \, LIST \, POINTER;
+#X text 86 196 bang;
+#X text 86 226 float;
+#X text 87 256 symbol;
+#X text 88 309 anythings;
+#X text 87 284 list;
+#X text 313 15 part of zexy;
+#X text 281 468 updated for zexy-2.0;
+#X obj 185 362 print unknown;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 0 2 3 0;
+#X connect 0 3 5 0;
+#X connect 0 4 4 0;
+#X connect 0 5 22 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
diff --git a/abs/segregate.pd b/abs/segregate.pd
new file mode 100644
index 0000000..4e5b71a
--- /dev/null
+++ b/abs/segregate.pd
@@ -0,0 +1,22 @@
+#N canvas 80 348 644 425 10;
+#X obj 56 37 inlet;
+#X obj 56 224 route bang float symbol list gpointer;
+#X obj 56 282 outlet BANG;
+#X obj 106 262 outlet FLOAT;
+#X obj 157 282 outlet SYMBOL;
+#X obj 208 382 outlet LIST;
+#X obj 259 282 outlet POINTER;
+#X obj 208 360 a2l;
+#X text 239 362 since the "list" selector gets stripped by [route]
+;
+#X text 478 28 part of zexy;
+#X text 141 72 [segregate] a message based on it's type.;
+#X obj 310 262 outlet reject;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 1 2 4 0;
+#X connect 1 3 7 0;
+#X connect 1 4 6 0;
+#X connect 1 5 11 0;
+#X connect 7 0 5 0;
diff --git a/abs/sgn~-help.pd b/abs/sgn~-help.pd
new file mode 100644
index 0000000..3c2d4bb
--- /dev/null
+++ b/abs/sgn~-help.pd
@@ -0,0 +1,25 @@
+#N canvas 201 257 575 388 10;
+#X obj 92 103 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 92 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 283 performance is worse than with the external version
+;
+#X text 45 315 if you want to use the external version of this object
+\, you have to load zexy;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X obj 92 152 sgn~;
+#X text 67 46 signum of a signal;
+#X connect 0 0 12 0;
+#X connect 3 0 4 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X connect 7 0 0 0;
+#X connect 12 0 3 0;
diff --git a/abs/sgn~.pd b/abs/sgn~.pd
new file mode 100644
index 0000000..8fb6d54
--- /dev/null
+++ b/abs/sgn~.pd
@@ -0,0 +1,11 @@
+#N canvas 491 108 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 30 112 expr~ if ($v1<0 \, -1 \, if ($v1>0 \, 1 \, 0));
+#X text 36 44 [sgn~];
+#X text 33 187 therefore we _also_ provide [sgn~] as external.;
+#X connect 0 0 5 0;
+#X connect 5 0 1 0;
diff --git a/abs/sph2cart-help.pd b/abs/sph2cart-help.pd
new file mode 100644
index 0000000..ccdb805
--- /dev/null
+++ b/abs/sph2cart-help.pd
@@ -0,0 +1,25 @@
+#N canvas 274 257 513 356 10;
+#X text 360 325 updated for zexy-2.0;
+#X floatatom 175 198 5 0 0 1 theta - -;
+#X floatatom 134 156 5 0 0 1 phi - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 R - -;
+#X floatatom 175 268 0 0 0 0 z - -;
+#X floatatom 149 288 0 0 0 0 y - -;
+#X floatatom 124 308 0 0 0 0 x - -;
+#X msg 32 204 1 2 3;
+#X text 21 76 all angles are in rad.;
+#X obj 124 246 sph2cart;
+#X text 24 31 [sph2cart]: convert spherical coordinates to cartesian
+coordinates;
+#X text 77 204 R phi theta;
+#X text 394 14 part of zexy;
+#X connect 1 0 10 2;
+#X connect 2 0 3 0;
+#X connect 3 0 10 0;
+#X connect 3 1 10 1;
+#X connect 4 0 10 0;
+#X connect 8 0 10 0;
+#X connect 10 0 7 0;
+#X connect 10 1 6 0;
+#X connect 10 2 5 0;
diff --git a/abs/sph2cart.pd b/abs/sph2cart.pd
new file mode 100644
index 0000000..6828082
--- /dev/null
+++ b/abs/sph2cart.pd
@@ -0,0 +1,52 @@
+#N canvas 437 75 580 399 10;
+#X obj 276 331 outlet z;
+#X obj 99 82 inlet r;
+#X obj 179 82 inlet phi;
+#X obj 99 331 outlet x;
+#X obj 196 331 outlet y;
+#X text 63 26 convert spherical to cartesian coordinates;
+#X obj 259 82 inlet theta;
+#X obj 99 125 unpack 0 0 0;
+#X text 285 160 x=r*cos(phi)*cos(theta);
+#X text 285 175 y=r*sin(phi)*cos(theta);
+#X text 285 190 z=r*sin(theta);
+#X obj 178 151 t f f;
+#X obj 208 171 sin;
+#X obj 178 171 cos;
+#X obj 138 192 t f f;
+#X obj 168 212 sin;
+#X obj 138 212 cos;
+#X obj 99 306 * 1;
+#X obj 196 307 * 0;
+#X obj 276 309 * 0;
+#X obj 178 192 t f f;
+#X obj 99 259 t f f f;
+#X obj 115 284 * 1;
+#X obj 212 281 * 0;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 415 20 part of zexy;
+#X connect 1 0 24 0;
+#X connect 2 0 24 1;
+#X connect 6 0 24 2;
+#X connect 7 0 21 0;
+#X connect 7 1 14 0;
+#X connect 7 2 11 0;
+#X connect 11 0 13 0;
+#X connect 11 1 12 0;
+#X connect 12 0 19 1;
+#X connect 13 0 20 0;
+#X connect 14 0 16 0;
+#X connect 14 1 15 0;
+#X connect 15 0 23 0;
+#X connect 16 0 22 0;
+#X connect 17 0 3 0;
+#X connect 18 0 4 0;
+#X connect 19 0 0 0;
+#X connect 20 0 22 1;
+#X connect 20 1 23 1;
+#X connect 21 0 17 0;
+#X connect 21 1 18 0;
+#X connect 21 2 19 0;
+#X connect 22 0 17 1;
+#X connect 23 0 18 1;
+#X connect 24 0 7 0;
diff --git a/abs/sph2pol-help.pd b/abs/sph2pol-help.pd
new file mode 100644
index 0000000..98960e2
--- /dev/null
+++ b/abs/sph2pol-help.pd
@@ -0,0 +1,25 @@
+#N canvas 200 209 457 355 10;
+#X text 297 321 updated for zexy-2.0;
+#X floatatom 168 198 5 0 0 1 theta - -;
+#X floatatom 134 156 5 0 0 1 phi - -;
+#X obj 134 174 t b f;
+#X floatatom 124 138 5 0 0 1 R - -;
+#X floatatom 168 268 0 0 0 0 z - -;
+#X floatatom 146 288 0 0 0 0 phi - -;
+#X floatatom 124 308 0 0 0 0 r - -;
+#X msg 22 210 1 2 3;
+#X text 21 76 all angles are in rad.;
+#X text 24 31 [sph2pol]: convert spherical coordinates to polar coordinates
+;
+#X obj 124 246 sph2pol;
+#X text 19 192 R phi theta;
+#X text 321 15 part of zexy;
+#X connect 1 0 11 2;
+#X connect 2 0 3 0;
+#X connect 3 0 11 0;
+#X connect 3 1 11 1;
+#X connect 4 0 11 0;
+#X connect 8 0 11 0;
+#X connect 11 0 7 0;
+#X connect 11 1 6 0;
+#X connect 11 2 5 0;
diff --git a/abs/sph2pol.pd b/abs/sph2pol.pd
new file mode 100644
index 0000000..3093449
--- /dev/null
+++ b/abs/sph2pol.pd
@@ -0,0 +1,41 @@
+#N canvas 437 75 457 368 10;
+#X obj 259 331 outlet z;
+#X obj 99 125 unpack 0 0 0;
+#X obj 99 82 inlet r;
+#X obj 179 82 inlet phi;
+#X text 63 26 convert spherical to polar coordinates;
+#X obj 259 82 inlet theta;
+#X obj 82 331 outlet r;
+#X obj 179 331 outlet phi;
+#X text 295 156 phi=phi;
+#X text 295 169 z=r*sin(theta);
+#X text 294 141 R=r*cos(theta);
+#X obj 106 265 pack 0 0 0;
+#X obj 106 285 unpack 0 0 0;
+#X obj 178 152 t f f;
+#X obj 208 172 sin;
+#X obj 178 172 cos;
+#X obj 106 239 * 1;
+#X obj 171 239 * 0;
+#X obj 99 152 t f f;
+#X obj 99 105 pack \$1 \$2 \$3;
+#X text 344 10 part of zexy;
+#X connect 1 0 18 0;
+#X connect 1 1 11 1;
+#X connect 1 2 13 0;
+#X connect 2 0 19 0;
+#X connect 3 0 19 1;
+#X connect 5 0 19 2;
+#X connect 11 0 12 0;
+#X connect 12 0 6 0;
+#X connect 12 1 7 0;
+#X connect 12 2 0 0;
+#X connect 13 0 15 0;
+#X connect 13 1 14 0;
+#X connect 14 0 17 1;
+#X connect 15 0 16 1;
+#X connect 16 0 11 0;
+#X connect 17 0 11 2;
+#X connect 18 0 16 0;
+#X connect 18 1 17 0;
+#X connect 19 0 1 0;
diff --git a/abs/||~-help.pd b/abs/||~-help.pd
new file mode 100644
index 0000000..3a48a01
--- /dev/null
+++ b/abs/||~-help.pd
@@ -0,0 +1,31 @@
+#N canvas 274 174 575 388 10;
+#X text 67 46 comparing 2 signals;
+#X obj 72 103 sig~;
+#X obj 120 102 sig~;
+#X text 272 20 part of zexy;
+#X text 351 61 updated for zexy-2.0;
+#X obj 93 178 snapshot~;
+#X floatatom 93 204 5 0 0 0 - - -;
+#X obj 146 153 metro 100;
+#X obj 146 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X floatatom 120 82 5 0 0 0 - - -;
+#X floatatom 72 81 5 0 0 0 - - -;
+#X text 16 243 note:;
+#X text 45 302 performance is worse than with the external version
+;
+#X text 45 325 if you want to use the external version of this object
+\, you have to load zexy;
+#X text 43 255 this is the abstraction version of this object \, which
+is using [expr~];
+#X obj 92 152 ||~;
+#X text 46 287 you *cannot* use arguments with this version \, like
+[||~ 2.7];
+#X connect 1 0 15 0;
+#X connect 2 0 15 1;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 2 0;
+#X connect 10 0 1 0;
+#X connect 15 0 5 0;
diff --git a/abs/||~.pd b/abs/||~.pd
new file mode 100644
index 0000000..dad7a44
--- /dev/null
+++ b/abs/||~.pd
@@ -0,0 +1,13 @@
+#N canvas 655 230 450 300 10;
+#X obj 30 88 inlet~;
+#X obj 30 136 outlet~;
+#X text 33 169 using [expr~] is slower than doing it in C...;
+#X text 319 21 part of zexy;
+#X text 250 261 updated for zexy-2.0;
+#X obj 124 90 inlet~;
+#X text 36 44 [||~];
+#X obj 31 113 expr~ $v1||$v2;
+#X text 33 187 therefore we _also_ provide [||~] as external.;
+#X connect 0 0 7 0;
+#X connect 5 0 7 1;
+#X connect 7 0 1 0;