diff --git a/externals/zexy/Makefile b/externals/zexy/Makefile
index 3e29c0d66b94d619345d8fa87e02689e70de45ff..ec5844546dd2f23cbc3e855aeb0b4acf7d680e0e 100644
--- a/externals/zexy/Makefile
+++ b/externals/zexy/Makefile
@@ -6,18 +6,18 @@
 lib.name = zexy
 
 
-make-lib-executable=yes
+make-lib-executable=no
 with-regex=yes
 with-lpt=yes
 
 # input source file (class name == source file basename)
 class.sources = \
-	src/0x260x260x7e.c \
+	src/0x260x26_tilde.c \
 	src/0x2e.c \
-	src/0x3c0x7e.c \
-	src/0x3d0x3d0x7e.c \
-	src/0x3e0x7e.c \
-	src/0x7c0x7c0x7e.c \
+	src/0x3c_tilde.c \
+	src/0x3d0x3d_tilde.c \
+	src/0x3e_tilde.c \
+	src/0x7c0x7c_tilde.c \
 	src/a2l.c \
 	src/abs~.c \
 	src/absgn~.c \
diff --git a/externals/zexy/reference/drip-help.pd b/externals/zexy/reference/drip-help.pd
index 74f199a14008eae90833a129f8695f2b1a7bfba9..eb1d1520e83e176e319482ad00d11c2258e68eb0 100644
--- a/externals/zexy/reference/drip-help.pd
+++ b/externals/zexy/reference/drip-help.pd
@@ -48,7 +48,7 @@ be flushed when a new package arrives or not.;
 #X obj 35 335 drip 200 flush;
 #X obj 171 335 drip 200;
 #X text 717 13 part of;
-#X obj 776 13 zexy;
+#X text 776 13 zexy;
 #N canvas 460 154 494 344 META 0;
 #X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
 Wilkes for Pd version 0.42.;
diff --git a/externals/zexy/reference/fifop-help.pd b/externals/zexy/reference/fifop-help.pd
index 94c5a3e42991048e170209cd06db936e838c919b..eaf638d219b4cd300a6a86875c15d81380c80a87 100644
--- a/externals/zexy/reference/fifop-help.pd
+++ b/externals/zexy/reference/fifop-help.pd
@@ -27,7 +27,7 @@ eat your memory.;
 #X msg 201 159 info;
 #X text 247 158 query the number of arguments in the LIFO;
 #X obj 156 209 print info;
-#X obj 533 30 zexy;
+#X text 533 30 zexy;
 #N canvas 593 163 494 344 META 0;
 #X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
 Wilkes for Pd version 0.42.;
diff --git a/externals/zexy/reference/lifop-help.pd b/externals/zexy/reference/lifop-help.pd
index 3c2f992482c37dd05f445e831f1ff619b862649d..4a436f6458c1afa9946627dcfac1092f2fd3ad37 100644
--- a/externals/zexy/reference/lifop-help.pd
+++ b/externals/zexy/reference/lifop-help.pd
@@ -1,6 +1,6 @@
 #N canvas 0 31 568 508 10;
 #X text 471 31 part of;
-#X obj 533 30 zexy;
+#X text 533 30 zexy;
 #X obj 58 192 lifop;
 #X msg 58 85 1 2 3 4 5;
 #X msg 69 110 list a list;
diff --git a/externals/zexy/reference/relay-help.pd b/externals/zexy/reference/relay-help.pd
index db6a8101deb437d4759792373af0faaee9350293..f90cfc39799b48bea69e6490d97009736d1f1336 100644
--- a/externals/zexy/reference/relay-help.pd
+++ b/externals/zexy/reference/relay-help.pd
@@ -1,6 +1,6 @@
 #N canvas 0 31 778 668 10;
 #X text 625 11 part of;
-#X obj 700 10 zexy;
+#X text 700 10 zexy;
 #X obj 183 223 print x1;
 #X obj 261 223 print x2;
 #X obj 339 223 print x3;
diff --git a/externals/zexy/src/0x260x260x7e.c b/externals/zexy/src/0x260x26_tilde.c
similarity index 95%
rename from externals/zexy/src/0x260x260x7e.c
rename to externals/zexy/src/0x260x26_tilde.c
index cea6326f2c04f73af3bfc9a9cbfa0186701ed45e..47c8c07e05f49c5f3ed6455b7e01db030aa09e99 100644
--- a/externals/zexy/src/0x260x260x7e.c
+++ b/externals/zexy/src/0x260x26_tilde.c
@@ -245,13 +245,13 @@ static void andand_tilde_dsp(t_andand_tilde *UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(andand_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(andand_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(andand_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(andand_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(andand_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(andand_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -268,13 +268,13 @@ static void scalarandand_tilde_dsp(t_scalarandand_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalarandand_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalarandand_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalarandand_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalarandand_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalarandand_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalarandand_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
@@ -283,7 +283,7 @@ static void andand_tilde_help(t_object* UNUSED(x))
   post("\n"HEARTSYMBOL " &&~\t\t:: logical AND operation on 2 signals");
 }
 
-ZEXY_SETUP void setup_0x260x260x7e(void)
+ZEXY_SETUP void setup_0x260x26_tilde(void)
 {
   andand_tilde_class = zexy_new("&&~",
                                 andand_tilde_new, 0, t_andand_tilde, 0, "*");
@@ -309,6 +309,6 @@ ZEXY_SETUP void setup_0x260x260x7e(void)
 #ifndef ZEXY_LIBRARY
 void setup(void)
 {
-  setup_0x260x260x7e();
+  setup_0x260x26_tilde();
 }
 #endif
diff --git a/externals/zexy/src/0x3c0x7e.c b/externals/zexy/src/0x3c_tilde.c
similarity index 93%
rename from externals/zexy/src/0x3c0x7e.c
rename to externals/zexy/src/0x3c_tilde.c
index 325e15ced12109f003b7a42877ce36f6724b9ece..78d82a55c54588a5ad96812c459db7f8deeabcde 100644
--- a/externals/zexy/src/0x3c0x7e.c
+++ b/externals/zexy/src/0x3c_tilde.c
@@ -202,13 +202,13 @@ static void lt_tilde_dsp(t_lt_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(lt_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(lt_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if(n&7) {
-      dsp_add(lt_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(lt_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(lt_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(lt_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -225,13 +225,13 @@ static void scalarlt_tilde_dsp(t_scalarlt_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalarlt_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalarlt_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalarlt_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalarlt_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalarlt_tilde_perf8, 4, in, &x->x_g, out, n);
+      dsp_add(scalarlt_tilde_perf8, 4, in, &x->x_g, out, (t_int)n);
     }
 }
 static void lt_tilde_help(t_object* UNUSED(x))
@@ -239,7 +239,7 @@ static void lt_tilde_help(t_object* UNUSED(x))
   post("\n"HEARTSYMBOL " <~\t\t:: compare 2 signals");
 }
 
-ZEXY_SETUP void setup_0x3c0x7e(void)
+ZEXY_SETUP void setup_0x3c_tilde(void)
 {
   lt_tilde_class = zexy_new("<~",
                             lt_tilde_new, 0, t_lt_tilde, 0, "*");
@@ -261,6 +261,6 @@ ZEXY_SETUP void setup_0x3c0x7e(void)
 #ifndef ZEXY_LIBRARY
 void setup(void)
 {
-  setup_0x3c0x7e();
+  setup_0x3c_tilde();
 }
 #endif
diff --git a/externals/zexy/src/0x3d0x3d0x7e.c b/externals/zexy/src/0x3d0x3d_tilde.c
similarity index 93%
rename from externals/zexy/src/0x3d0x3d0x7e.c
rename to externals/zexy/src/0x3d0x3d_tilde.c
index 12fb894247065d4207a4bb7e82784812da3d1264..75e9c55ab5780de6fed0cbd35e3ca3f76ae666e0 100644
--- a/externals/zexy/src/0x3d0x3d0x7e.c
+++ b/externals/zexy/src/0x3d0x3d_tilde.c
@@ -201,13 +201,13 @@ static void eq_tilde_dsp(t_eq_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(eq_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(eq_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(eq_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(eq_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(eq_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(eq_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -224,13 +224,13 @@ static void scalareq_tilde_dsp(t_scalareq_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out) &&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalareq_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalareq_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalareq_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalareq_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalareq_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalareq_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
@@ -238,7 +238,7 @@ static void eq_tilde_help(t_object* UNUSED(x))
 {
   post("\n"HEARTSYMBOL " &&~\t\t:: test 2 signals for equality");
 }
-ZEXY_SETUP void setup_0x3d0x3d0x7e(void)
+ZEXY_SETUP void setup_0x3d0x3d_tilde(void)
 {
   eq_tilde_class = zexy_new("==~",
                             eq_tilde_new, 0, t_eq_tilde, 0, "*");
@@ -261,6 +261,6 @@ ZEXY_SETUP void setup_0x3d0x3d0x7e(void)
 #ifndef ZEXY_LIBRARY
 void setup(void)
 {
-  setup_0x3d0x3d0x7e();
+  setup_0x3d0x3d_tilde();
 }
 #endif
diff --git a/externals/zexy/src/0x3e0x7e.c b/externals/zexy/src/0x3e_tilde.c
similarity index 93%
rename from externals/zexy/src/0x3e0x7e.c
rename to externals/zexy/src/0x3e_tilde.c
index ea0ba3a7cb9b1f4614b7812469374df16e96d946..0705bc99cba34361db2be05054c70e4178b4385e 100644
--- a/externals/zexy/src/0x3e0x7e.c
+++ b/externals/zexy/src/0x3e_tilde.c
@@ -204,13 +204,13 @@ static void gt_tilde_dsp(t_gt_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(gt_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(gt_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(gt_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(gt_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(gt_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(gt_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -227,13 +227,13 @@ static void scalargt_tilde_dsp(t_scalargt_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalargt_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalargt_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalargt_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalargt_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalargt_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalargt_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
@@ -242,7 +242,7 @@ static void gt_tilde_help(t_object* UNUSED(x))
   post("\n"HEARTSYMBOL " >~\t\t:: compare 2 signals");
 }
 
-ZEXY_SETUP void setup_0x3e0x7e(void)
+ZEXY_SETUP void setup_0x3e_tilde(void)
 {
   gt_tilde_class = zexy_new(">~",
                             gt_tilde_new, 0, t_gt_tilde, 0, "*");
@@ -265,6 +265,6 @@ ZEXY_SETUP void setup_0x3e0x7e(void)
 #ifndef ZEXY_LIBRARY
 void setup(void)
 {
-  setup_0x3e0x7e();
+  setup_0x3e_tilde();
 }
 #endif
diff --git a/externals/zexy/src/0x7c0x7c0x7e.c b/externals/zexy/src/0x7c0x7c_tilde.c
similarity index 94%
rename from externals/zexy/src/0x7c0x7c0x7e.c
rename to externals/zexy/src/0x7c0x7c_tilde.c
index 65b7657a550f10676a1bde6b8667f2a50b76788a..364dde2f06e6ffebd6bccfdd5b40b7c7a07494e8 100644
--- a/externals/zexy/src/0x7c0x7c0x7e.c
+++ b/externals/zexy/src/0x7c0x7c_tilde.c
@@ -219,13 +219,13 @@ static void oror_tilde_dsp(t_oror_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(oror_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(oror_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if(n&7) {
-      dsp_add(oror_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(oror_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(oror_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(oror_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -242,13 +242,13 @@ static void scalaroror_tilde_dsp(t_scalaroror_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalaroror_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalaroror_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalaroror_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalaroror_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalaroror_tilde_perf8, 4, in, &x->x_g, out, n);
+      dsp_add(scalaroror_tilde_perf8, 4, in, &x->x_g, out, (t_int)n);
     }
 }
 
@@ -257,7 +257,7 @@ static void oror_tilde_help(t_object* UNUSED(x))
   post("\n"HEARTSYMBOL " &&~\t\t:: logical OR operation on 2 signals");
 }
 
-ZEXY_SETUP void setup_0x7c0x7c0x7e(void)
+ZEXY_SETUP void setup_0x7c0x7c_tilde(void)
 {
   oror_tilde_class = zexy_new("||~",
                               oror_tilde_new, 0, t_oror_tilde, 0, "*");
@@ -281,6 +281,6 @@ ZEXY_SETUP void setup_0x7c0x7c0x7e(void)
 #ifndef ZEXY_LIBRARY
 void setup(void)
 {
-  setup_0x7c0x7c0x7e();
+  setup_0x7c0x7c_tilde();
 }
 #endif
diff --git a/externals/zexy/src/absgn~.c b/externals/zexy/src/absgn~.c
index e04a1b5092484fd9f7dd8b6ffd8e238a01ea0d06..697c75a63162c18f3286bde5cace0e08bd814036 100644
--- a/externals/zexy/src/absgn~.c
+++ b/externals/zexy/src/absgn~.c
@@ -106,12 +106,12 @@ static void sigABSGN_dsp(t_absgn* UNUSED(x), t_signal **sp)
     zexy_testSSE(sigABSGN_perform, sigABSGN_performSSE, 1, 2)
   ) {
     dsp_add(sigABSGN_performSSE, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
   } else
 #endif
   {
     dsp_add(sigABSGN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/abs~.c b/externals/zexy/src/abs~.c
index 14ba59d89ced017b16e6d981f43c7442d27c9094..359a86b3d58765a4bef95f03366d9172a5899d32 100644
--- a/externals/zexy/src/abs~.c
+++ b/externals/zexy/src/abs~.c
@@ -128,11 +128,11 @@ static void sigABS_dsp(t_abs * UNUSED(x), t_signal **sp)
                  sigABS_performSSE,
                  1, 1)
   ) {
-    dsp_add(sigABS_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sigABS_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else
 #endif
   {
-    dsp_add(sigABS_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sigABS_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/avg~.c b/externals/zexy/src/avg~.c
index 073240cf0fe2dc362500f67b9602aabb7e1ed6e1..8e028eaffafeb08569327bf59fb9802e2305718c 100644
--- a/externals/zexy/src/avg~.c
+++ b/externals/zexy/src/avg~.c
@@ -55,7 +55,7 @@ static t_int *avg_perform(t_int *w)
 static void avg_dsp(t_avg *x, t_signal **sp)
 {
   x->n_inv=1./sp[0]->s_n;
-  dsp_add(avg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(avg_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *avg_new(void)
diff --git a/externals/zexy/src/blockmirror~.c b/externals/zexy/src/blockmirror~.c
index 833cfdf4f42c1f36dc26971a015f2d6cdb440fc2..cd42a5a78ea93f68ab28acc0bdd358a31a70df0c 100644
--- a/externals/zexy/src/blockmirror~.c
+++ b/externals/zexy/src/blockmirror~.c
@@ -78,7 +78,7 @@ static void blockmirror_dsp(t_blockmirror *x, t_signal **sp)
     x->blocksize = sp[0]->s_n;
     x->blockbuffer = getbytes(sizeof(*x->blockbuffer)*x->blocksize);
   }
-  dsp_add(blockmirror_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blockmirror_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void blockmirror_helper(t_blockmirror* UNUSED(x))
diff --git a/externals/zexy/src/blockshuffle~.c b/externals/zexy/src/blockshuffle~.c
index 0c3466c24f20b34ac2a04e01269b363d94f9c4ca..1c874dd4d358d9db6c4708a4c59ea07e42e652a9 100644
--- a/externals/zexy/src/blockshuffle~.c
+++ b/externals/zexy/src/blockshuffle~.c
@@ -116,7 +116,7 @@ static void blockshuffle_dsp(t_blockshuffle *x, t_signal **sp)
   blockshuffle_buildindex(x, sp[0]->s_n);
 
   dsp_add(blockshuffle_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,
-          sp[0]->s_n);
+          (t_int)sp[0]->s_n);
 }
 
 static void blockshuffle_helper(t_blockshuffle* UNUSED(x))
diff --git a/externals/zexy/src/blockswap~.c b/externals/zexy/src/blockswap~.c
index bcf577e4926ca67fadab9348c8e4b5999a687640..2bdeed2487106ec419477a86a2c72b1ffc85d8a7 100644
--- a/externals/zexy/src/blockswap~.c
+++ b/externals/zexy/src/blockswap~.c
@@ -76,7 +76,7 @@ static void blockswap_dsp(t_blockswap *x, t_signal **sp)
     x->blocksize = sp[0]->s_n/2;
     x->blockbuffer = getbytes(sizeof(*x->blockbuffer)*x->blocksize);
   }
-  dsp_add(blockswap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blockswap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void blockswap_helper(t_blockswap* UNUSED(x))
diff --git a/externals/zexy/src/demultiplex~.c b/externals/zexy/src/demultiplex~.c
index 2bb7e8030e7750a2007e48cf556c98b21c0364e0..c68b1d72b8be60f39564995696aa931efcb43e31 100644
--- a/externals/zexy/src/demultiplex~.c
+++ b/externals/zexy/src/demultiplex~.c
@@ -73,7 +73,7 @@ static void demux_dsp(t_demux *x, t_signal **sp)
   while(n--) {
     *dummy++=sp[x->n_out-n]->s_vec;
   }
-  dsp_add(demux_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(demux_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/dfreq~.c b/externals/zexy/src/dfreq~.c
index 233f2d84c2ee8b975e6d40d6f779672650b6f850..277c40e8cc0a0bea735a68a251d8175338f353fd 100644
--- a/externals/zexy/src/dfreq~.c
+++ b/externals/zexy/src/dfreq~.c
@@ -82,7 +82,7 @@ static t_int *dfreq_perform(t_int *w)
 
 static void dfreq_dsp(t_dfreq *x, t_signal **sp)
 {
-  dsp_add(dfreq_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n,x);
+  dsp_add(dfreq_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n,x);
 }
 
 
diff --git a/externals/zexy/src/dirac~.c b/externals/zexy/src/dirac~.c
index 669bef30a211c2d5808bc01bb00a1a1ff9a5a176..a4db2e62e3c1bf673b72234d71a40a0fd5a3961e 100644
--- a/externals/zexy/src/dirac~.c
+++ b/externals/zexy/src/dirac~.c
@@ -110,9 +110,9 @@ static t_int *dirac_perf8(t_int *w)
 static void dirac_dsp(t_dirac *x, t_signal **sp)
 {
   if (sp[0]->s_n & 7) {
-    dsp_add(dirac_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(dirac_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   } else {
-    dsp_add(dirac_perf8, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(dirac_perf8, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/doublepole~.c b/externals/zexy/src/doublepole~.c
index ad3473ac7db5f647fb2aa240b1227e7fff8fa965..13299ed543a909af7a5c0cd2f2f33c5003d9950a 100644
--- a/externals/zexy/src/doublepole~.c
+++ b/externals/zexy/src/doublepole~.c
@@ -105,7 +105,7 @@ static void sigdoublepole_dsp(t_sigdoublepole *x, t_signal **sp)
 {
   dsp_add(sigdoublepole_perform, 4,
           sp[0]->s_vec, sp[1]->s_vec,
-          x->x_ctl, sp[0]->s_n);
+          x->x_ctl, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/zexy/src/envrms~.c b/externals/zexy/src/envrms~.c
index 1cbfd4373447ec8aec3a8b158d6eefed5eb653af..2cdfc34e758e1e6900a33bbb7dde533651485e23 100644
--- a/externals/zexy/src/envrms~.c
+++ b/externals/zexy/src/envrms~.c
@@ -126,7 +126,7 @@ static void sigenvrms_dsp(t_sigenvrms *x, t_signal **sp)
   else {
     x->x_realperiod = x->x_period;
   }
-  dsp_add(sigenvrms_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(sigenvrms_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   if (sp[0]->s_n > MAXVSTAKEN) {
     bug("sigenvrms_dsp");
   }
diff --git a/externals/zexy/src/lpt.c b/externals/zexy/src/lpt.c
index d48f398d5f6a3d34da4d4b9deca9c5aa6011ee3a..7e7ea24723d46b98892493c78e079ac4874158db 100644
--- a/externals/zexy/src/lpt.c
+++ b/externals/zexy/src/lpt.c
@@ -46,6 +46,8 @@
 #  define Z_WANT_LPT 1
 # endif
 #elif defined __WIN32__
+// ag: We don't have the requisite dlls, disabled for now.
+#define Z_WANT_LPT 0
 # if defined __i386__
 #  ifndef Z_WANT_LPT
 #   define Z_WANT_LPT 1
diff --git a/externals/zexy/src/multiline~.c b/externals/zexy/src/multiline~.c
index e89ff11f6db02b8b9eead0cc8e5333ced5840719..23765e32436da664828def02bd36025f3642e36e 100644
--- a/externals/zexy/src/multiline~.c
+++ b/externals/zexy/src/multiline~.c
@@ -211,7 +211,7 @@ static void mline_dsp(t_mline *x, t_signal **sp)
   }
 
   x->msec2tick = sp[0]->s_sr / (1000.f * sp[0]->s_n);
-  dsp_add(mline_perform, 2, x, sp[0]->s_n);
+  dsp_add(mline_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/multiplex~.c b/externals/zexy/src/multiplex~.c
index dcbd6577d4450a40d7daa66966bcf46db13f9215..d8c782b13d1e6ed593bc1f8905fd19cc67793cc3 100644
--- a/externals/zexy/src/multiplex~.c
+++ b/externals/zexy/src/multiplex~.c
@@ -64,7 +64,7 @@ static void mux_tilde_dsp(t_mux *x, t_signal **sp)
     *dummy++=sp[n]->s_vec;
   }
 
-  dsp_add(mux_tilde_perform, 3, x, sp[n]->s_vec, sp[0]->s_n);
+  dsp_add(mux_tilde_perform, 3, x, sp[n]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void mux_tilde_helper(void)
diff --git a/externals/zexy/src/noish~.c b/externals/zexy/src/noish~.c
index f6eb9aa1712e6bd2add7ad327f8efad05ae240d6..d813dd65280e231355b1dc5d5eaf47aada195f7b 100644
--- a/externals/zexy/src/noish~.c
+++ b/externals/zexy/src/noish~.c
@@ -141,7 +141,7 @@ static t_int *noish_perform(t_int *w)
 
 static void noish_dsp(t_nois *x, t_signal **sp)
 {
-  dsp_add(noish_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(noish_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void noish_helper(void)
diff --git a/externals/zexy/src/noisi~.c b/externals/zexy/src/noisi~.c
index cf9b2a4466937539235daac71075d46541a7ef31..9fcba3a6c6a689901293d7f0570c285f7d7f5274 100644
--- a/externals/zexy/src/noisi~.c
+++ b/externals/zexy/src/noisi~.c
@@ -144,7 +144,7 @@ static t_int *noisi_perform(t_int *w)
 
 static void noisi_dsp(t_nois *x, t_signal **sp)
 {
-  dsp_add(noisi_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(noisi_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/pack~.c b/externals/zexy/src/pack~.c
index be9327cbf4471d45417aced652aff04d1d04ed26..b195bf3a804d9871bfa4b402308e056149305b7d 100644
--- a/externals/zexy/src/pack~.c
+++ b/externals/zexy/src/pack~.c
@@ -64,7 +64,7 @@ static void sigpack_dsp(t_sigpack *x, t_signal **sp)
     x->vector_length = sp[0]->s_n;
     x->buffer = (t_atom *)getbytes(x->vector_length * sizeof(t_atom));
   }
-  dsp_add(sigpack_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigpack_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void sigpack_free(t_sigpack*x)
diff --git a/externals/zexy/src/pdf~.c b/externals/zexy/src/pdf~.c
index e1b7edc528e162e976558d51831105cb3f3f2f4b..6287ad8c069ce604de30feb0a4c2cf335df3280c 100644
--- a/externals/zexy/src/pdf~.c
+++ b/externals/zexy/src/pdf~.c
@@ -96,7 +96,7 @@ static void pdf_dsp(t_pdf *x, t_signal **sp)
 {
   x->halfsize = (x->size - 1) / 2.0;
 
-  dsp_add(pdf_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(pdf_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *pdf_new(t_floatarg f)
diff --git a/externals/zexy/src/quantize~.c b/externals/zexy/src/quantize~.c
index 60ce2c75bf32af60679d29862366519489852fe7..a0283ddf60775e928b7e55807ef615de927f08a3 100644
--- a/externals/zexy/src/quantize~.c
+++ b/externals/zexy/src/quantize~.c
@@ -74,7 +74,7 @@ static t_int *quantize_perform(t_int *w)
 
 static void quantize_dsp(t_quantize *x, t_signal **sp)
 {
-  dsp_add(quantize_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(quantize_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void quantize_tilde_helper(t_quantize* UNUSED(x))
diff --git a/externals/zexy/src/route~.c b/externals/zexy/src/route~.c
index fcda2c353149104dfa9a67a7f113e2ce11eaf570..cc1b8a9e5f3b3886c9c1a18d0c08fb1ebda2b8ad 100644
--- a/externals/zexy/src/route~.c
+++ b/externals/zexy/src/route~.c
@@ -46,7 +46,7 @@ t_int *route_tilde_perform(t_int *w)
 static void route_tilde_dsp(t_route_tilde *x, t_signal **sp)
 {
   if(sp) {
-    dsp_add(route_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(route_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else {
     route_tilde_any(x, gensym("dsp"), 0, 0);
   }
diff --git a/externals/zexy/src/sfplay.c b/externals/zexy/src/sfplay.c
index 3c0e08baf3cec1f91a728d4a39778a4d687ef238..f38e3f21bb4884b5c15400ad46883473dc132f12 100644
--- a/externals/zexy/src/sfplay.c
+++ b/externals/zexy/src/sfplay.c
@@ -560,14 +560,14 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
     dsp_add(sfplay_perform, 4, x,
             sp[0]->s_vec,
             sp[1]->s_vec, /* out 1 */
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 2:
     dsp_add(sfplay_perform, 5, x,
             sp[0]->s_vec, /* out 1*/
             sp[1]->s_vec, /* out 2*/
             sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 4:
     dsp_add(sfplay_perform, 7, x,
@@ -576,7 +576,7 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
             sp[2]->s_vec,
             sp[3]->s_vec,
             sp[4]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 8:
     dsp_add(sfplay_perform, 11, x,
@@ -589,7 +589,7 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
             sp[6]->s_vec,
             sp[7]->s_vec,
             sp[8]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   }
 }
diff --git a/externals/zexy/src/sfrecord.c b/externals/zexy/src/sfrecord.c
index dcd4c775935cd505188bd9b6047dfea969dde5c2..5c61572b67553f72b52b31a0a2e33cc5e95e8b70 100644
--- a/externals/zexy/src/sfrecord.c
+++ b/externals/zexy/src/sfrecord.c
@@ -482,13 +482,13 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
   case 1:
     dsp_add(sfrecord_perform, 3, x,
             sp[0]->s_vec, /* in 1 */
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 2:
     dsp_add(sfrecord_perform, 4, x,
             sp[0]->s_vec,
             sp[1]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 4:
     dsp_add(sfrecord_perform, 6, x,
@@ -496,7 +496,7 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
             sp[1]->s_vec,
             sp[2]->s_vec,
             sp[3]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 8:
     dsp_add(sfrecord_perform, 9, x,
@@ -508,7 +508,7 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
             sp[5]->s_vec,
             sp[6]->s_vec,
             sp[7]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   }
 }
diff --git a/externals/zexy/src/sgn~.c b/externals/zexy/src/sgn~.c
index 7847907ec1b88283cd6ca5085316b3ac20461da2..7b67c7ac3aefb7ea81f151bb9d45f7f69b6c4712 100644
--- a/externals/zexy/src/sgn~.c
+++ b/externals/zexy/src/sgn~.c
@@ -171,13 +171,13 @@ static void sgnTilde_dsp(t_sgnTilde *UNUSED(x), t_signal **sp)
                  sgnTilde_performSSE,
                  1,1)
   ) {
-    dsp_add(sgnTilde_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sgnTilde_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else
 #endif
     if (sp[0]->s_n & 7) {
-      dsp_add(sgnTilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+      dsp_add(sgnTilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     } else {
-      dsp_add(sgnTilde_perform8, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+      dsp_add(sgnTilde_perform8, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     }
 
 }
diff --git a/externals/zexy/src/sigzero~.c b/externals/zexy/src/sigzero~.c
index e861e77f1c87abcc88c19ab2b046f016adf794cb..93bf89347149f174afe58f594dd8665eee449b9c 100644
--- a/externals/zexy/src/sigzero~.c
+++ b/externals/zexy/src/sigzero~.c
@@ -74,7 +74,7 @@ static t_int *sigzero_perform(t_int *w)
 
 static void sigzero_dsp(t_sigzero *x, t_signal **sp)
 {
-  dsp_add(sigzero_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigzero_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void sigzero_tilde_helper(void)
diff --git a/externals/zexy/src/sort.c b/externals/zexy/src/sort.c
index 3eebc78920363ad02ccb9ff2f39253f3dc4b868a..1b0add970f2162d9f0e724e6e7be352fe410702c 100644
--- a/externals/zexy/src/sort.c
+++ b/externals/zexy/src/sort.c
@@ -149,6 +149,7 @@ static void sort_help(t_sort*UNUSED(x))
 {
   post("\n"HEARTSYMBOL " sort\t\t:: sort a list of numbers");
 }
+
 ZEXY_SETUP void zexy_sort_setup(void)
 {
   sort_class = zexy_new("sort",
@@ -160,7 +161,8 @@ ZEXY_SETUP void zexy_sort_setup(void)
 
   zexy_register("sort");
 }
-#ifdef ZEXY_LIBRARY
+
+#ifndef ZEXY_LIBRARY
 /* only use sort_setup() when building as standalone objects
  * see https://git.iem.at/pd/zexy/issues/5
  */
diff --git a/externals/zexy/src/step~.c b/externals/zexy/src/step~.c
index dee736d20704a6914cfb5108257858f9ecd7e5ee..48cfdaceeb12b38fcc7e833ab42549a87d066273 100644
--- a/externals/zexy/src/step~.c
+++ b/externals/zexy/src/step~.c
@@ -97,7 +97,7 @@ static t_int *step_perform(t_int *w)
 
 static void step_dsp(t_step *x, t_signal **sp)
 {
-  dsp_add(step_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(step_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/strcmp.c b/externals/zexy/src/strcmp.c
index 362e917a5a202e3b9313cf4985cf0037227e2f62..054d825a0d770322add2f866cafab21dcf20cbad 100644
--- a/externals/zexy/src/strcmp.c
+++ b/externals/zexy/src/strcmp.c
@@ -76,13 +76,12 @@ static void list2binbuf(t_binbuf**bbuf, int *n, char**str, int argc,
 
   binbuf_clear(*bbuf);
   binbuf_add(*bbuf, argc, argv);
-  binbuf_gettext(*bbuf, str, n);
-  i=*n;
-  s=*str;
+  binbuf_gettext(*bbuf, str, &i);
 
-  if(' '==s[i]) {
-    s[i]=0;
-  }
+  s = t_resizebytes(*str, i, i+1);
+  s[i] = 0;
+  *str = s;
+  *n = i+1;
 }
 
 static void strcmp_list(t_strcmp *x, t_symbol* UNUSED(s), int argc,
diff --git a/externals/zexy/src/swap~.c b/externals/zexy/src/swap~.c
index c368739d32ddd4b91f5523d9db0d1b79cf106957..4e2294a3114dcfd1241210712960eb9008c60490 100644
--- a/externals/zexy/src/swap~.c
+++ b/externals/zexy/src/swap~.c
@@ -68,7 +68,7 @@ static t_int *swap_perform(t_int *w)
 
 static void swap_dsp(t_swap *x, t_signal **sp)
 {
-  dsp_add(swap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(swap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void swap_helper(void)
diff --git a/externals/zexy/src/tabread4~~.c b/externals/zexy/src/tabread4~~.c
index cd59252c1c698002fcb4b7de598e641b298c8212..8d92526b03de7498cf94d0118431c24445205538 100644
--- a/externals/zexy/src/tabread4~~.c
+++ b/externals/zexy/src/tabread4~~.c
@@ -119,7 +119,7 @@ static void tabread4_tilde_dsp(t_tabread4_tilde *x, t_signal **sp)
   tabread4_tilde_set(x, x->x_arrayname);
 
   dsp_add(tabread4_tilde_perform, 5, x,
-          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/zexy/src/tavg~.c b/externals/zexy/src/tavg~.c
index 4ce754acf943370cd00dc6f5ab8e1b6f9f34bdcd..c5c9b9a6d9ae28fc104b28899e4c1b310702efdc 100644
--- a/externals/zexy/src/tavg~.c
+++ b/externals/zexy/src/tavg~.c
@@ -57,7 +57,7 @@ static t_int *tavg_perform(t_int *w)
 static void tavg_dsp(t_tavgtilde *x, t_signal **sp)
 {
   x->n_inv=1./sp[0]->s_n;
-  dsp_add(tavg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(tavg_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *tavg_new(void)
diff --git a/externals/zexy/src/unpack~.c b/externals/zexy/src/unpack~.c
index d7e5f3166d24785e053dd2efed753038aa9dc475..cb812b0892c42cde87c71eeb10cfb2090556ebf5 100644
--- a/externals/zexy/src/unpack~.c
+++ b/externals/zexy/src/unpack~.c
@@ -94,7 +94,7 @@ static void sigunpack_dsp(t_sigunpack *x, t_signal **sp)
     x->bufsize = newsize;
   }
 
-  dsp_add(sigunpack_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigunpack_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sigunpack_new(t_floatarg f)
diff --git a/externals/zexy/src/z_zexy.c b/externals/zexy/src/z_zexy.c
index bdcc16024bcdcda7f6f3a0159a485e2141659487..260bf9fb224fd5aec1e64879cca57e78c1cb8481 100644
--- a/externals/zexy/src/z_zexy.c
+++ b/externals/zexy/src/z_zexy.c
@@ -4,12 +4,12 @@
  */
 
 /* forward declarations */
-void  setup_0x260x260x7e(void);          /*  0x260x260x7e.c      */
+void  setup_0x260x26_tilde(void);        /*  0x260x26_tilde.c    */
 void  setup_0x2e(void);                  /*  0x2e.c              */
-void  setup_0x3c0x7e(void);              /*  0x3c0x7e.c          */
-void  setup_0x3d0x3d0x7e(void);          /*  0x3d0x3d0x7e.c      */
-void  setup_0x3e0x7e(void);              /*  0x3e0x7e.c          */
-void  setup_0x7c0x7c0x7e(void);          /*  0x7c0x7c0x7e.c      */
+void  setup_0x3c_tilde(void);            /*  0x3c_tilde.c        */
+void  setup_0x3d0x3d_tilde(void);        /*  0x3d0x3d_tilde.c    */
+void  setup_0x3e_tilde(void);            /*  0x3e_tilde.c        */
+void  setup_0x7c0x7c_tilde(void);        /*  0x7c0x7c_tilde.c    */
 void  a2l_setup(void);                   /*  a2l.c               */
 void  absgn_tilde_setup(void);           /*  absgn~.c            */
 void  abs_tilde_setup(void);             /*  abs~.c              */
@@ -93,12 +93,12 @@ void  z_tilde_setup(void);               /*  z~.c                */
 
 void z_zexy_setup(void)
 {
-  setup_0x260x260x7e();
+  setup_0x260x26_tilde();
   setup_0x2e();
-  setup_0x3c0x7e();
-  setup_0x3d0x3d0x7e();
-  setup_0x3e0x7e();
-  setup_0x7c0x7c0x7e();
+  setup_0x3c_tilde();
+  setup_0x3d0x3d_tilde();
+  setup_0x3e_tilde();
+  setup_0x7c0x7c_tilde();
   a2l_setup();
   absgn_tilde_setup();
   abs_tilde_setup();
diff --git a/externals/zexy/src/z~.c b/externals/zexy/src/z~.c
index ae9acc07b1c6e25ab163ff6577065c9f0f21d395..f9119743e3a4cff1ee42517a1c5859207a3c2b84 100644
--- a/externals/zexy/src/z~.c
+++ b/externals/zexy/src/z~.c
@@ -89,7 +89,7 @@ static t_int *zN_perform(t_int *w)
 
 static void zNdelay_dsp(t_zNdelay *x, t_signal **sp)
 {
-  dsp_add(zN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(zN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *zNdelay_new(t_symbol*UNUSED(s), int argc, t_atom*argv)
diff --git a/pd/src/m_pd.h b/pd/src/m_pd.h
index f4eb4ebcc8560805573167874b2a632760b0c653..534b2c069c6532f20970126284baf67c0bd0b9a7 100644
--- a/pd/src/m_pd.h
+++ b/pd/src/m_pd.h
@@ -14,7 +14,7 @@ extern "C" {
 #define PD_MINOR_VERSION 48
 #define PD_BUGFIX_VERSION 0
 #define PD_TEST_VERSION ""
-#define PD_L2ORK_VERSION "2.15.1"
+#define PD_L2ORK_VERSION "2.15.2"
 #define PDL2ORK
 extern int pd_compatibilitylevel;   /* e.g., 43 for pd 0.43 compatibility */
 
diff --git a/scripts/external-tests.pd b/scripts/external-tests.pd
index f617ad5d8e1cc9be5447826f96411abcbf0a5616..70af1a03f0d6739942088d41876c2ec1f491ab02 100644
--- a/scripts/external-tests.pd
+++ b/scripts/external-tests.pd
@@ -835,8 +835,8 @@ non-optimized branches.;
 #X text 432 224 Where did we get 2275? It is the number of creators
 that we found on OSX-- which does not yet ship K12 mode. (Still need
 to set up Windows tests \, however.;
-#X obj 335 262 moses 2176;
-#X msg 335 320 only counted \$1 objects. Need 2176 to succeed;
+#X obj 335 262 moses 2251;
+#X msg 335 320 only counted \$1 objects. Need 2251 to succeed;
 #X connect 0 0 38 0;
 #X connect 1 0 4 0;
 #X connect 2 0 3 0;