diff --git a/externals/autotune/autotune~.c b/externals/autotune/autotune~.c
index 71dc9343e037182561ea9041389821401f74b9fd..e65d8bcd7a9ef8623f0f49f7ff114de4a2bc5173 100644
--- a/externals/autotune/autotune~.c
+++ b/externals/autotune/autotune~.c
@@ -547,7 +547,7 @@ void autotune_dsp(t_autotune *x, t_signal **sp, short *count)
 	
 	if(x->fs != sp[0]->s_sr)  autotune_init(x, sp[0]->s_sr);
 	
-	dsp_add(autotune_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(autotune_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/bassemu~/bassemu~.c b/externals/bassemu~/bassemu~.c
index 14966fc52f52d2d6a4d046648761db9687aaf43a..dcb9d5b29d264443268d62c3918c3fb15bde8255 100644
--- a/externals/bassemu~/bassemu~.c
+++ b/externals/bassemu~/bassemu~.c
@@ -230,7 +230,8 @@ static t_int *bassemu_perform(t_int *ww)
 static void bassemu_dsp(t_bassemu *x, t_signal **sp)
 {
 	x->sr = sp[0]->s_sr;
-	dsp_add(bassemu_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(bassemu_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,
+            (t_int)sp[0]->s_n);
 }
 
 static void recalc(t_bassemu *x)
diff --git a/externals/bsaylor/aenv~.c b/externals/bsaylor/aenv~.c
index 6e0daa5fcde13e211d9b8197617c3536029bbe8e..d3726239043e80209ba124b2b69a1b15bcea70bf 100644
--- a/externals/bsaylor/aenv~.c
+++ b/externals/bsaylor/aenv~.c
@@ -99,7 +99,7 @@ static t_int *aenv_perform(t_int *w)
 
 static void aenv_dsp(t_aenv *x, t_signal **sp)
 {
-	dsp_add(aenv_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(aenv_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void aenv_float(t_aenv *x, t_float f)
diff --git a/externals/bsaylor/partconv~.c b/externals/bsaylor/partconv~.c
index 80a108b7b1b29761a1293e3c66b2b739c83500e7..5ddadc963b50ab516d8ce5424156dfcad8b02251 100644
--- a/externals/bsaylor/partconv~.c
+++ b/externals/bsaylor/partconv~.c
@@ -337,7 +337,7 @@ static void partconv_dsp(t_partconv *x, t_signal **sp)
 		partconv_set(x, x->arrayname);
 	}
 
-	dsp_add(partconv_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(partconv_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *partconv_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/pvoc~.c b/externals/bsaylor/pvoc~.c
index 62c38c505ee16ba959999c9fe621594f03b6b103..3402ef70bb60849a60dca4e628a0d4e48b4ed8b3 100644
--- a/externals/bsaylor/pvoc~.c
+++ b/externals/bsaylor/pvoc~.c
@@ -258,7 +258,7 @@ static t_int *pvoc_perform(t_int *w)
 
 static void pvoc_dsp(t_pvoc *x, t_signal **sp)
 {
-	    dsp_add(pvoc_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+	    dsp_add(pvoc_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 // adapted from jsarlo's windowing library
diff --git a/externals/bsaylor/susloop~.c b/externals/bsaylor/susloop~.c
index 1e968df488c3b3f952c6d9b3e2fb5a49e5a05da3..227274e474bd3bda1bda6649db2fa679b43428cb 100644
--- a/externals/bsaylor/susloop~.c
+++ b/externals/bsaylor/susloop~.c
@@ -88,7 +88,7 @@ static t_int *susloop_perform(t_int *w)
 
 static void susloop_dsp(t_susloop *x, t_signal **sp)
 {
-	    dsp_add(susloop_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	    dsp_add(susloop_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *susloop_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/svf~.c b/externals/bsaylor/svf~.c
index d40f5220b6fc141a88f87e6b016a7574980ec89f..5c80ce699150b00d91c5135afb61e9708c68ece2 100644
--- a/externals/bsaylor/svf~.c
+++ b/externals/bsaylor/svf~.c
@@ -124,7 +124,7 @@ static t_int *svf_perform(t_int *w)
 
 static void svf_dsp(t_svf *x, t_signal **sp)
 {
-	dsp_add(svf_perform, 7, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[0]->s_n);
+	dsp_add(svf_perform, 7, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *svf_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/zhzxh~.c b/externals/bsaylor/zhzxh~.c
index 2292912b42dd992dd89e3adc38587dcd543e5789..3533b131f7cb2362ff3110e01bc22585ca5ed424 100644
--- a/externals/bsaylor/zhzxh~.c
+++ b/externals/bsaylor/zhzxh~.c
@@ -59,7 +59,7 @@ static t_int *zhzxh_perform(t_int *w)
 
 static void zhzxh_dsp(t_zhzxh *x, t_signal **sp)
 {
-	dsp_add(zhzxh_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(zhzxh_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *zhzxh_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/creb/modules++/biquadseries~.cc b/externals/creb/modules++/biquadseries~.cc
index f4a24639d3b56528d48610ba3dae3575cebc2254..819f5bf07e75355a56a6d1bb5c26b440a56f4019 100644
--- a/externals/creb/modules++/biquadseries~.cc
+++ b/externals/creb/modules++/biquadseries~.cc
@@ -77,7 +77,7 @@ static t_int *biquadseries_perform(t_int *w)
 
 static void biquadseries_dsp(t_biquadseries *x, t_signal **sp)
 {
-    dsp_add(biquadseries_perform, 4, x->biquadseries, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(biquadseries_perform, 4, x->biquadseries, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
 void biquadseries_free(void)
diff --git a/externals/creb/modules++/blosc~.cc b/externals/creb/modules++/blosc~.cc
index ee353d69ce00aa9670e4326f6776f0e496ec2ff9..2ab91f60fb1f164f3a87d6a38a83565b82b7feda 100644
--- a/externals/creb/modules++/blosc~.cc
+++ b/externals/creb/modules++/blosc~.cc
@@ -478,30 +478,30 @@ static void blosc_dsp(t_blosc *x, t_signal **sp)
   if (x->x_ctl.c_waveform == gensym("syncsaw")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+      dsp_add(blosc_perform_hardsync_saw, 5, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
   }
 
   /* 1 osc */
   else if (x->x_ctl.c_waveform == gensym("pulse")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("pulse2")){
       x->x_ctl.c_phase_inc_scale *= 2;
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = -1.0;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("comparator")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_comparator, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_comparator, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else{
        x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_saw, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
 
 
diff --git a/externals/creb/modules++/filterortho~.cc b/externals/creb/modules++/filterortho~.cc
index 14c28968dfc07c22f4d15e78eff76d2656c66d85..9dc3e07f18db012c335a872cf140cd1a415619d5 100644
--- a/externals/creb/modules++/filterortho~.cc
+++ b/externals/creb/modules++/filterortho~.cc
@@ -68,7 +68,8 @@ static t_int *filterortho_perform(t_int *w)
 
 static void filterortho_dsp(t_filterortho *x, t_signal **sp)
 {
-    dsp_add(filterortho_perform, 4, x->filterortho, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(filterortho_perform, 4, x->filterortho, (t_int)sp[0]->s_n,
+        sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
 void filterortho_free(t_filterortho *x)
diff --git a/externals/creb/modules/abs~.c b/externals/creb/modules/abs~.c
index c4e0aa1d0b4d897e01371bf8b5c4650a001eaf59..3c5c0eb05147efcc403a265b27cf5508c4ef67f1 100644
--- a/externals/creb/modules/abs~.c
+++ b/externals/creb/modules/abs~.c
@@ -30,7 +30,7 @@ static t_int *abs_perform(t_int *w)
 
 static void abs_dsp(t_abs *x, t_signal **sp)
 {
-    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *abs_new(void)
diff --git a/externals/creb/modules/bdiag~.c b/externals/creb/modules/bdiag~.c
index bcc9ce4bfe328780bd661da093e35954b3939272..440f1c0d451a62330f34d70f92ecb98f15fd6021 100644
--- a/externals/creb/modules/bdiag~.c
+++ b/externals/creb/modules/bdiag~.c
@@ -215,7 +215,7 @@ static void bdiag_dsp(t_bdiag *x, t_signal **sp)
 	}
       
            
-      dsp_add(bdiag_perform, 4, &x->x_ctl, sp[0]->s_n, 
+      dsp_add(bdiag_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	      sp[0]->s_vec, sp[1]->s_vec);
     }
 
diff --git a/externals/creb/modules/bfft~.c b/externals/creb/modules/bfft~.c
index 9910f14d9751a006496c90fcfd309ecb8534dcfb..7930f89c4773a1db3af5f49b3adb44963918bc2b 100644
--- a/externals/creb/modules/bfft~.c
+++ b/externals/creb/modules/bfft~.c
@@ -177,7 +177,7 @@ static void bfft_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(bfft_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(bfft_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
@@ -196,7 +196,7 @@ static void ibfft_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(ibfft_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(ibfft_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
@@ -214,7 +214,7 @@ static void fht_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(fht_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(fht_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
diff --git a/externals/creb/modules/bitsplit~.c b/externals/creb/modules/bitsplit~.c
index 85b69a1341153c03d4611d0d4df9eae351dca0cf..f81be641ee9bd5c075873381b125355c259c4693 100644
--- a/externals/creb/modules/bitsplit~.c
+++ b/externals/creb/modules/bitsplit~.c
@@ -71,7 +71,7 @@ static void bitsplit_dsp(t_bitsplit *x, t_signal **sp)
     for (i=0;i<x->x_ctl.c_outputs;i++){
 	x->x_ctl.c_output[i] = sp[i+1]->s_vec;
     }
-    dsp_add(bitsplit_perform, 2, &x->x_ctl, sp[0]->s_n);
+    dsp_add(bitsplit_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 }                                  
 
 
diff --git a/externals/creb/modules/blocknorm~.c b/externals/creb/modules/blocknorm~.c
index 414a046d618fc152a274eac6ef9e8bc567d377da..f47f5892c9be4b56f112094b61b843e6f429725b 100644
--- a/externals/creb/modules/blocknorm~.c
+++ b/externals/creb/modules/blocknorm~.c
@@ -90,7 +90,7 @@ static void blocknorm_dsp(t_blocknorm *x, t_signal **sp)
 	x->x_ctl.c_input[i] = sp[i]->s_vec;
 	x->x_ctl.c_output[i] = sp[c+i]->s_vec;
     }
-    dsp_add(blocknorm_perform, 2, &x->x_ctl, sp[0]->s_n);
+    dsp_add(blocknorm_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 }                                  
 
 
diff --git a/externals/creb/modules/bmatrix~.c b/externals/creb/modules/bmatrix~.c
index 2561894ae5f022d0c163ca2c1d49286f3a2d648c..05c726889c6677a786e9053c075227bcb25d65c4 100644
--- a/externals/creb/modules/bmatrix~.c
+++ b/externals/creb/modules/bmatrix~.c
@@ -102,7 +102,8 @@ static void matrix_dsp(t_matrix *x, t_signal **sp)
   
   for (i=0;i<n;i++) x->x_ctl.c_A[i] = 1;
 
-  dsp_add(matrix_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(matrix_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec,
+    sp[1]->s_vec);
 
 
 }                                  
diff --git a/externals/creb/modules/bwin~.c b/externals/creb/modules/bwin~.c
index 69c941a9d4f2eb297a60dd84e7fe4076830795a2..7cb46fcc96d838ea21341406a032997e2c146e0e 100644
--- a/externals/creb/modules/bwin~.c
+++ b/externals/creb/modules/bwin~.c
@@ -138,7 +138,7 @@ static void window_dsp(t_window *x, t_signal **sp)
 	window_type(x, x->x_type, x->x_typearg);
     }
 
-    dsp_add(window_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+    dsp_add(window_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
 }
 
 static void window_free(t_window *x)
diff --git a/externals/creb/modules/cheby~.c b/externals/creb/modules/cheby~.c
index fdd02dcbfb115a047f99e03d84b73ccc7fc93ebe..70f19c30e219deaae70473449cb121a0a99025c6 100644
--- a/externals/creb/modules/cheby~.c
+++ b/externals/creb/modules/cheby~.c
@@ -91,7 +91,7 @@ static t_int *cheby_perform(t_int *w)
 
 static void cheby_dsp(t_cheby *x, t_signal **sp)
 {
-    dsp_add(cheby_perform, 4, &x->x_ctl, sp[0]->s_n, 
+    dsp_add(cheby_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/cmath~.c b/externals/creb/modules/cmath~.c
index c2f11bc603de8b95f7c3f24cf2e6e557997a2aeb..b01f093305de916000885bad2cc30cbdba9d3008 100644
--- a/externals/creb/modules/cmath~.c
+++ b/externals/creb/modules/cmath~.c
@@ -126,7 +126,7 @@ static t_int *cmath_perform_nifft(t_int *w)
 
 static void cmath_dsp(t_cmath *x, t_signal **sp)
 {
-    dsp_add(x->x_perf, 5, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
+    dsp_add(x->x_perf, 5, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 
 }                                  
 void cmath_free(void)
diff --git a/externals/creb/modules/diag~.c b/externals/creb/modules/diag~.c
index 6d054154df50466856be777e96072585afd89df8..443ca811003dbe941d1ff1d5bfcbf5d7b6f9faef 100644
--- a/externals/creb/modules/diag~.c
+++ b/externals/creb/modules/diag~.c
@@ -160,7 +160,7 @@ static void diag_dsp(t_diag *x, t_signal **sp)
 
 
 
-  dsp_add(diag_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(diag_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
                                   
diff --git a/externals/creb/modules/dist~.c b/externals/creb/modules/dist~.c
index 6cab910f63309900b01d4013243909ff34a26192..4cda5494a6ee78ac603d0a62a4dfd72baacb7ae1 100644
--- a/externals/creb/modules/dist~.c
+++ b/externals/creb/modules/dist~.c
@@ -237,7 +237,7 @@ static t_int *dist_perform(t_int *w)
 
 static void dist_dsp(t_dist *x, t_signal **sp)
 {
-    dsp_add(dist_perform, 4, &x->x_ctl, sp[0]->s_n, 
+    dsp_add(dist_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/dwt~.c b/externals/creb/modules/dwt~.c
index 5c4a41e6a488b375ed4a25af15e775ff33f9bbb8..f212b0bee56af24c4936ca8857980f5f16954e0c 100644
--- a/externals/creb/modules/dwt~.c
+++ b/externals/creb/modules/dwt~.c
@@ -716,16 +716,16 @@ static void dwt_dsp(t_dwt *x, t_signal **sp)
 
   switch(x->x_ctl.c_type){
   case DWT:
-    dsp_add(dwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(dwt_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case IDWT:
-    dsp_add(idwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(idwt_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case DWT16:
-    dsp_add(dwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(dwt16_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case IDWT16:
-    dsp_add(idwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(idwt16_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
 
 
diff --git a/externals/creb/modules/dynwav~.c b/externals/creb/modules/dynwav~.c
index f1e0e15614e3f808ae4a7db9f08a83dc334cc3a3..36d5b2e10357f27dbd5bde9fdd7e3684810e9792 100644
--- a/externals/creb/modules/dynwav~.c
+++ b/externals/creb/modules/dynwav~.c
@@ -262,7 +262,7 @@ static void dynwav_dsp(t_dynwav *x, t_signal **sp)
     }
 
 
-  dsp_add(dynwav_perform_8point, 5, &x->x_ctl, sp[0]->s_n, 
+  dsp_add(dynwav_perform_8point, 5, &x->x_ctl, (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 
 
diff --git a/externals/creb/modules/eadsr~.c b/externals/creb/modules/eadsr~.c
index 9c55970617ff731d8487eb7a198136ac2b9f8501..2dfcfa19f1ef3b955291005f0210014ebdc8f9b2 100644
--- a/externals/creb/modules/eadsr~.c
+++ b/externals/creb/modules/eadsr~.c
@@ -122,7 +122,7 @@ static t_int *eadsr_perform(t_int *w)
 static void eadsr_dsp(t_eadsr *x, t_signal **sp)
 {
     x->x_sr = sp[0]->s_sr;
-    dsp_add(eadsr_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(eadsr_perform, 3, &x->x_ctl, sp[0]->s_n, (t_int)sp[0]->s_vec);
 
 }                                  
 void eadsr_free(void)
diff --git a/externals/creb/modules/ead~.c b/externals/creb/modules/ead~.c
index 4c9f8f2ae353cc5ae2c9b399bc4dc2aa3a97a38d..4faa104d0909f5ac97d22235991e5f1b08b87a5c 100644
--- a/externals/creb/modules/ead~.c
+++ b/externals/creb/modules/ead~.c
@@ -107,7 +107,7 @@ static t_int *ead_perform(t_int *w)
 
 static void ead_dsp(t_ead *x, t_signal **sp)
 {
-  dsp_add(ead_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+  dsp_add(ead_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }                                  
 
 /* destructor */
diff --git a/externals/creb/modules/ear~.c b/externals/creb/modules/ear~.c
index 04d9ebabba432e253a17663781a2607f59de14e3..fb1a05afa0f8c12eb63ad9abd827b6a82d6493a8 100644
--- a/externals/creb/modules/ear~.c
+++ b/externals/creb/modules/ear~.c
@@ -95,7 +95,7 @@ static t_int *ear_perform(t_int *w)
 static void ear_dsp(t_ear *x, t_signal **sp)
 {
     x->x_sr = sp[0]->s_sr;
-    dsp_add(ear_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(ear_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }                                  
 void ear_free(void)
diff --git a/externals/creb/modules/eblosc~.c b/externals/creb/modules/eblosc~.c
index 82779b148639cd3659a3d2f8ba49f4614eca00a7..728af1500b29cb47bd8fe80864148bc88b5fa217 100644
--- a/externals/creb/modules/eblosc~.c
+++ b/externals/creb/modules/eblosc~.c
@@ -503,7 +503,7 @@ static void eblosc_dsp(t_eblosc *x, t_signal **sp)
   if (x->x_ctl.c_waveform == gensym("syncsaw")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_hardsync_saw, 5, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
   }
 
@@ -511,26 +511,26 @@ static void eblosc_dsp(t_eblosc *x, t_signal **sp)
   else if (x->x_ctl.c_waveform == gensym("pulse")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("pulse2")){
       x->x_ctl.c_phase_inc_scale *= 2;
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = -1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("comparator")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
       dsp_add(eblosc_perform_comparator, 4, &x->x_ctl,
-	      sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	      (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else{
        x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_saw, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
 
diff --git a/externals/creb/modules/fdn~.c b/externals/creb/modules/fdn~.c
index ffcb77045dbccfb0d706297a9e528a5daddfa7a6..e0c29acc2ddcfa6741f02e9bcdf3ca223c60f641 100644
--- a/externals/creb/modules/fdn~.c
+++ b/externals/creb/modules/fdn~.c
@@ -255,7 +255,7 @@ static void fdn_dsp(t_fdn *x, t_signal **sp)
   dsp_add(fdn_perform, 
 	  5, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec);
diff --git a/externals/creb/modules/junction~.c b/externals/creb/modules/junction~.c
index ef68e50c645b8effc90063900e4521ba8db8abf8..591002c693ec35b026f2b83d2667d32b06657e62 100644
--- a/externals/creb/modules/junction~.c
+++ b/externals/creb/modules/junction~.c
@@ -145,9 +145,9 @@ static void junction_dsp(t_junction *x, t_signal **sp)
   x->x_ctl.c_norm =  norm; 
 
 
-  dsp_add(junction_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(junction_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
-    /*    dsp_add(junction_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);*/
+    /*    dsp_add(junction_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);*/
 
 }                                  
 
diff --git a/externals/creb/modules/lattice~.c b/externals/creb/modules/lattice~.c
index f600705875efa41bd13046ff8881ecdfd9e5d79c..101835f00d327bbf01bfab62e1ad46313ad31687 100644
--- a/externals/creb/modules/lattice~.c
+++ b/externals/creb/modules/lattice~.c
@@ -85,7 +85,7 @@ static t_int *lattice_perform(t_int *w)
 
 static void lattice_dsp(t_lattice *x, t_signal **sp)
 {
-    dsp_add(lattice_perform, 4, &x->x_ctl, sp[0]->s_n,
+    dsp_add(lattice_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/permut~.c b/externals/creb/modules/permut~.c
index 80b392c19af60c53d38b30065810261a47019abb..8a29e2fba064bf7ab7760aaf64f59cbfa814d0f1 100644
--- a/externals/creb/modules/permut~.c
+++ b/externals/creb/modules/permut~.c
@@ -149,7 +149,7 @@ static t_int *permut_perform(t_int *w)
 static void permut_dsp(t_permut *x, t_signal **sp)
 {
   permut_resize_table(x, sp[0]->s_n);
-  dsp_add(permut_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(permut_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
                                   
diff --git a/externals/creb/modules/qmult~.c b/externals/creb/modules/qmult~.c
index 55ed7df581446fcbf3cf81042aac4bbbb72a8f23..d1bf1ab8a1469cab562db347f64ceaebc47ec254 100644
--- a/externals/creb/modules/qmult~.c
+++ b/externals/creb/modules/qmult~.c
@@ -129,7 +129,7 @@ static void qmult_dsp(t_qmult *x, t_signal **sp)
       x->x_ctl.c_output[i] = sp[i+8]->s_vec;
     }
 
-  dsp_add(qmult_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(qmult_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
 
 }                                  
diff --git a/externals/creb/modules/qnorm~.c b/externals/creb/modules/qnorm~.c
index b1e0371796737c697a2c88328a15c126eb7883bc..342a2677db89c49b989df1cdf03d2d0b56d164c2 100644
--- a/externals/creb/modules/qnorm~.c
+++ b/externals/creb/modules/qnorm~.c
@@ -101,7 +101,7 @@ static void qnorm_dsp(t_qnorm *x, t_signal **sp)
       x->x_ctl.c_output[i] = sp[i+4]->s_vec;
     }
 
-  dsp_add(qnorm_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(qnorm_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
 
 }                                  
diff --git a/externals/creb/modules/ramp~.c b/externals/creb/modules/ramp~.c
index ad82efab7eaa05efd997fed553e887c26c8f0084..3d55462a0dfe98bdf1de9d0035d8d760041a9dfc 100644
--- a/externals/creb/modules/ramp~.c
+++ b/externals/creb/modules/ramp~.c
@@ -75,7 +75,7 @@ static t_int *ramp_perform(t_int *w)
 
 static void ramp_dsp(t_ramp *x, t_signal **sp)
 {
-    dsp_add(ramp_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(ramp_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }                                  
 void ramp_free(void)
diff --git a/externals/creb/modules/resofilt~.c b/externals/creb/modules/resofilt~.c
index 1d7754596b4183479346fae9043790181810f75f..cc84ea9e299035e5a85ff944a631fb1f31329caa 100644
--- a/externals/creb/modules/resofilt~.c
+++ b/externals/creb/modules/resofilt~.c
@@ -357,7 +357,7 @@ static void resofilt_dsp(t_resofilt *x, t_signal **sp)
   dsp_add(x->x_dsp,
 	  6, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec, 
diff --git a/externals/creb/modules/sbosc~.c b/externals/creb/modules/sbosc~.c
index 1ffccd85a22f7ec031a49d0f511f0dbb02201cc6..755bd9c83c1f32e4d911292bba78a9926edf2e39 100644
--- a/externals/creb/modules/sbosc~.c
+++ b/externals/creb/modules/sbosc~.c
@@ -139,7 +139,8 @@ static t_int *sbosc_tilde_perform(t_int *w)
 static void sbosc_tilde_dsp(t_sbosc_tilde *x, t_signal **sp)
 {
     dsp_add(sbosc_tilde_perform, 6, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
+        (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/scrollgrid1D~.c b/externals/creb/modules/scrollgrid1D~.c
index e2391bceac46322d233cc01ad1926e3505ce7a93..5b0904686a00ec9875a1bb205474393e21f0ace3 100644
--- a/externals/creb/modules/scrollgrid1D~.c
+++ b/externals/creb/modules/scrollgrid1D~.c
@@ -159,7 +159,7 @@ static void scrollgrid1D_dsp(t_scrollgrid1D *x, t_signal **sp)
   dsp_add(scrollgrid1D_perform, 
 	  9, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec,
diff --git a/externals/creb/modules/statwav~.c b/externals/creb/modules/statwav~.c
index 7ceee68b9a12c4f943b7c4e7d645bbfcddc4171e..e762728cc9699a22b69e0b4b6491a6e8b9074ff4 100644
--- a/externals/creb/modules/statwav~.c
+++ b/externals/creb/modules/statwav~.c
@@ -129,7 +129,7 @@ static void statwav_tilde_dsp(t_statwav_tilde *x, t_signal **sp)
     statwav_tilde_set(x, x->x_arrayname);
 
     dsp_add(statwav_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/tabreadmix~.c b/externals/creb/modules/tabreadmix~.c
index dc6f99e826ae7d0fd33cba18c6e87e51715978b5..241ab209689a67f8f15790409332d35593b0f2b8 100644
--- a/externals/creb/modules/tabreadmix~.c
+++ b/externals/creb/modules/tabreadmix~.c
@@ -276,7 +276,7 @@ static void tabreadmix_tilde_dsp(t_tabreadmix_tilde *x, t_signal **sp)
     tabreadmix_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabreadmix_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/xfm~.c b/externals/creb/modules/xfm~.c
index a7a0d9fcb1476ae0e87accf77a0fd195f2cabe82..41648fdd95c2192d1460e37517ca624ff55fbbd5 100644
--- a/externals/creb/modules/xfm~.c
+++ b/externals/creb/modules/xfm~.c
@@ -203,7 +203,7 @@ static void xfm_dsp(t_xfm *x, t_signal **sp)
   dsp_add(xfm_perform, 
 	  8, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec,
diff --git a/externals/cxc/delta~.c b/externals/cxc/delta~.c
index ba8d0e0c4bfec0d5bbd32b5f366622e66c522c5c..3614a38acf5865835eb81fbe5b7052e6e8692722 100644
--- a/externals/cxc/delta~.c
+++ b/externals/cxc/delta~.c
@@ -35,7 +35,7 @@ static t_int *delta_perform(t_int *w)
 
 static void delta_dsp(t_delta *x, t_signal **sp)
 {
-  dsp_add(delta_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(delta_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *delta_new(void)
diff --git a/externals/cxc/mean~.c b/externals/cxc/mean~.c
index 54cfc71b7a06fa6d08637bfae55fb4615f7db41c..cc17df4e66cd1b462015195b4ff9978dddd4796c 100644
--- a/externals/cxc/mean~.c
+++ b/externals/cxc/mean~.c
@@ -379,9 +379,9 @@ static void mean_tilde_set(t_mean_tilde *x, t_symbol *s)
 static void mean_tilde_dsp(t_mean_tilde *x, t_signal **sp)
 {
   mean_tilde_set(x, x->x_arrayname);
-  //dsp_add(mean_tilde_perform, 2, x, sp[0]->s_vec, sp[0]->s_n);
-  //dsp_add(mean_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
-  dsp_add(mean_tilde_perform, 2, x, sp[0]->s_n);
+  //dsp_add(mean_tilde_perform, 2, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
+  //dsp_add(mean_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
+  dsp_add(mean_tilde_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 static void mean_tilde_bang(t_mean_tilde *x)
diff --git a/externals/cxc/random1~.c b/externals/cxc/random1~.c
index f14f2b1f69837ba761f07d1bc83630bc6df3189f..2bbf8bd9623f13a2a7276e5186b9dc52c3c1dbbf 100644
--- a/externals/cxc/random1~.c
+++ b/externals/cxc/random1~.c
@@ -102,7 +102,7 @@ static t_int *random1_tilde_perform(t_int *w)
 
 static void random1_tilde_dsp(t_random1_tilde *x, t_signal **sp)
 {
-  dsp_add(random1_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random1_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void random1_tilde_setup(void)
diff --git a/externals/cxc/random_fl~.c b/externals/cxc/random_fl~.c
index 8747193e64bb019454445df3c4b0145e25592f0c..3d8aa8dddc66052b1c1e61057cbcd01046e05921 100644
--- a/externals/cxc/random_fl~.c
+++ b/externals/cxc/random_fl~.c
@@ -86,7 +86,7 @@ static t_int *random_fl_tilde_perform(t_int *w)
 
 static void random_fl_tilde_dsp(t_random_fl_tilde *x, t_signal **sp)
 {
-  dsp_add(random_fl_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random_fl_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void random_fl_tilde_setup(void)
diff --git a/externals/cxc/random_icg~.c b/externals/cxc/random_icg~.c
index 5533254786774291c72f09829dcd683d5c8f4f64..c303a8c13db80409cb67a3e183bac5d4801a420b 100644
--- a/externals/cxc/random_icg~.c
+++ b/externals/cxc/random_icg~.c
@@ -150,7 +150,7 @@ static t_int *random_icg_tilde_perform(t_int *w)
 
 static void random_icg_tilde_dsp(t_random_icg_tilde *x, t_signal **sp)
 {
-  dsp_add(random_icg_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random_icg_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/cxc/reson~.c b/externals/cxc/reson~.c
index 7bca2e04fcf5c6a3f0c92dac2c4b370eda96820f..ca6ca8607599eb2f9c343ee9c1fd49b7d1c9052a 100644
--- a/externals/cxc/reson~.c
+++ b/externals/cxc/reson~.c
@@ -102,7 +102,7 @@ static void sigreson_dsp(t_sigreson *x, t_signal **sp)
 	x->x_ctl->c_samprate = sp[0]->s_sr;
 	sigreson_float(x, x->x_ctl->c_freq);
 	dsp_add(cu_reson, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
-		x->x_ctl, sp[0]->s_n);
+		x->x_ctl, (t_int)sp[0]->s_n);
 }
 
 static void sigreson_ft1(t_sigreson *x, t_floatarg f) /* sets feedback */
diff --git a/externals/deprecated/pan_gogins~.c b/externals/deprecated/pan_gogins~.c
index 35acf5f85d7b8523e2aeff5fdcb8de88672543f1..689a49ac42a6d662b697b5c222226f6ca9f5d3be 100644
--- a/externals/deprecated/pan_gogins~.c
+++ b/externals/deprecated/pan_gogins~.c
@@ -84,7 +84,7 @@ static void pan_gogins_dsp(t_pan_gogins *x, t_signal **sp)
   float *out2 = sp[2]->s_vec;
 
   dsp_add(pan_gogins_perform, 5,
-	  in1, out1, out2, n, x);
+	  in1, out1, out2, (t_int)n, x);
 }
 
 void pan_gogins_f(t_pan_gogins *x, t_floatarg f)
diff --git a/externals/disis/disis_munger.c b/externals/disis/disis_munger.c
index 504617843f83ac7c6462d7e672da84ba3d6e6d48..05b02ee33744416d344f33d7aba215cdc5aa7b4e 100644
--- a/externals/disis/disis_munger.c
+++ b/externals/disis/disis_munger.c
@@ -1753,7 +1753,7 @@ static void munger_dsp(t_disis_munger *x, t_signal **sp)
     {
         x->x_out[i] = (t_float *)(sp[i + 1]->s_vec);
     }
-    dsp_add(munger_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(munger_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void disis_munger_tilde_setup(void)
diff --git a/externals/disis/disis_phasor~.c b/externals/disis/disis_phasor~.c
index d656da532f51743546afa5b8fb70d2d388e95773..010bfd356efd37abe0e31206d0941268f5277796 100644
--- a/externals/disis/disis_phasor~.c
+++ b/externals/disis/disis_phasor~.c
@@ -118,7 +118,7 @@ t_int *disis_phasor_perform(t_int *w)
 static void disis_phasor_dsp(t_disis_phasor *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(disis_phasor_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(disis_phasor_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void disis_phasor_free(t_disis_phasor *x)
diff --git a/externals/earplug~/earplug~.c b/externals/earplug~/earplug~.c
index 4f0c6e66d1925b52f092cdb7a74e925d83175679..c53d3207a7295d1a7c6e8fff669197fc28ebdde9 100644
--- a/externals/earplug~/earplug~.c
+++ b/externals/earplug~/earplug~.c
@@ -167,7 +167,7 @@ static t_int *earplug_perform(t_int *w)
 static void earplug_dsp(t_earplug *x, t_signal **sp)
 {
 		// callback, params, userdata, in_samples, out_L,		out_R,		blocksize.
-    dsp_add(earplug_perform, 5, x,  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(earplug_perform, 5, x,  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *earplug_new(t_floatarg azimArg, t_floatarg elevArg)
diff --git a/externals/ekext/framescore~.c b/externals/ekext/framescore~.c
index ebc851f689798f46f0d8085a6503723486f4a623..b6b5ecfca25221891ceb5d52e06e539450195144 100644
--- a/externals/ekext/framescore~.c
+++ b/externals/ekext/framescore~.c
@@ -66,7 +66,7 @@ t_int *framescore_tilde_perform(t_int *w)
 void framescore_tilde_dsp(t_framescore_tilde *x, t_signal **sp)
 {
   dsp_add(framescore_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *framescore_tilde_new(t_floatarg f)
diff --git a/externals/ekext/framespect~.c b/externals/ekext/framespect~.c
index f029f144c6bbc3c2f58bf30db08bf33cbbf47828..4cfac97e1e9417797dfa646b5bbe0ae053d5c797 100644
--- a/externals/ekext/framespect~.c
+++ b/externals/ekext/framespect~.c
@@ -74,7 +74,7 @@ t_int *framespect_tilde_perform(t_int *w)
 void framespect_tilde_dsp(t_framespect_tilde *x, t_signal **sp)
 {
   dsp_add(framespect_tilde_perform, 6, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *framespect_tilde_new(t_floatarg f)
diff --git a/externals/ekext/hasc~.c b/externals/ekext/hasc~.c
index 3ea9e0153683009464761ba63d85c092d1b7aa33..a402e5839c80976f0ba4211614dd05fd07c98ffd 100644
--- a/externals/ekext/hasc~.c
+++ b/externals/ekext/hasc~.c
@@ -65,7 +65,7 @@ t_int *hasc_tilde_perform(t_int *w)
 void hasc_tilde_dsp(t_hasc_tilde *x, t_signal **sp)
 {
   dsp_add(hasc_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *hasc_tilde_new(t_floatarg f)
diff --git a/externals/ekext/hssc~.c b/externals/ekext/hssc~.c
index 1cf57b659298bc8953c1c6ffe5bc1ad05a5b2eff..7440b98be26d4aeb494fa70fd96f9cddf205b476 100644
--- a/externals/ekext/hssc~.c
+++ b/externals/ekext/hssc~.c
@@ -62,7 +62,7 @@ t_int *hssc_tilde_perform(t_int *w)
 void hssc_tilde_dsp(t_hssc_tilde *x, t_signal **sp)
 {
   dsp_add(hssc_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *hssc_tilde_new(t_floatarg f)
diff --git a/externals/ekext/lpc~.c b/externals/ekext/lpc~.c
index f91deee03d45595f0ccbc0dbec12e227c8578cc5..1ee35e4ac5e5b1054d9ffad39614e8cd80f52d92 100644
--- a/externals/ekext/lpc~.c
+++ b/externals/ekext/lpc~.c
@@ -172,7 +172,7 @@ void *lpc_tilde_dsp(t_lpc_tilde *x, t_signal **sp)
 {
   x->x_schur.c_input = sp[0]->s_vec;
   x->x_schur.c_residual = sp[1]->s_vec;
-  dsp_add(lpc_tilde_perform, 3, x, &x->x_schur, sp[0]->s_n);
+  dsp_add(lpc_tilde_perform, 3, x, &x->x_schur, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/lpreson~.c b/externals/ekext/lpreson~.c
index b8f5ccccbe4e51f5d36346dd22f083c5c34721cb..0047d1258487695bd9e4955ee5e955d2ca8d1179 100644
--- a/externals/ekext/lpreson~.c
+++ b/externals/ekext/lpreson~.c
@@ -102,7 +102,7 @@ void *lpreson_tilde_dsp(t_lpreson_tilde *x, t_signal **sp)
 {
   x->x_ctl.c_residual = sp[0]->s_vec;
   x->x_ctl.c_output = sp[1]->s_vec;
-  dsp_add(lpreson_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(lpreson_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/peakit~.c b/externals/ekext/peakit~.c
index a5a74b410937518a230a28629765f24cfbef27db..934f5e52416f42e02ca241e84b09883a5c93fd2e 100644
--- a/externals/ekext/peakit~.c
+++ b/externals/ekext/peakit~.c
@@ -112,7 +112,7 @@ void *peakit_tilde_dsp(t_peakit_tilde *x, t_signal **sp)
 {
   x->x_ctl.f_real = sp[0]->s_vec;
   x->x_ctl.f_imag = sp[1]->s_vec;
-  dsp_add(peakit_tilde_perform, 4, x, &x->x_ctl, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(peakit_tilde_perform, 4, x, &x->x_ctl, sp[0]->s_vec, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/simile~.c b/externals/ekext/simile~.c
index 1df58ba9634bebc59ab1695cca8798997862ba58..9fc8cacbe8bdc56590303e874819c690b4ff0a5d 100644
--- a/externals/ekext/simile~.c
+++ b/externals/ekext/simile~.c
@@ -51,7 +51,7 @@ t_int *simile_tilde_perform(t_int *w) {
 
 void simile_tilde_dsp(t_simile_tilde *x, t_signal **sp) {
   dsp_add(simile_tilde_perform, 6, x, 
-	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *simile_tilde_new(t_floatarg f) {
diff --git a/externals/ekext/voicing_detector~.c b/externals/ekext/voicing_detector~.c
index 5d91719ed1ccfa988a6c86b0e1577f5fc6585285..12839a0dbb08c641d061d28019b12ab9da924eda 100644
--- a/externals/ekext/voicing_detector~.c
+++ b/externals/ekext/voicing_detector~.c
@@ -99,7 +99,7 @@ void voicing_detector_tilde_method(t_voicing_detector_tilde *x, t_floatarg f)
 void *voicing_detector_tilde_dsp(t_voicing_detector_tilde *x, t_signal **sp)
 {
   x->x_ctl.c_input = sp[0]->s_vec;
-  dsp_add(voicing_detector_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(voicing_detector_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/zeroxpos~.c b/externals/ekext/zeroxpos~.c
index f52fb658351bb8b79f7ecef0a99305e57eb735cb..452bd048ce9e0ee9ecd93bfd0049f0b9c8b69296 100644
--- a/externals/ekext/zeroxpos~.c
+++ b/externals/ekext/zeroxpos~.c
@@ -157,7 +157,7 @@ void zeroxpos_tilde_mode(t_zeroxpos_tilde *x, t_floatarg fmode)
 void *zeroxpos_tilde_dsp(t_zeroxpos_tilde *x, t_signal **sp) 
 {
   x->x_ctl.c_input = sp[0]->s_vec;
-  dsp_add(zeroxpos_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(zeroxpos_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ext13/catch13~.c b/externals/ext13/catch13~.c
index afebd2b7f7359bc9655b44e28ff65cfec0eb9096..c71bc5785207c4b27a7ca4454b83dd98135ec9fb 100644
--- a/externals/ext13/catch13~.c
+++ b/externals/ext13/catch13~.c
@@ -62,9 +62,9 @@ t_int *sigcatch13_perf8(t_int *w)
     if (x->x_n == sp[0]->s_n)
     {
 	if(sp[0]->s_n&7)
-	    dsp_add(sigcatch13_perform, 3, x->x_vec, sp[0]->s_vec, sp[0]->s_n);
+	    dsp_add(sigcatch13_perform, 3, x->x_vec, sp[0]->s_vec, (t_int)sp[0]->s_n);
 	else
-	    dsp_add(sigcatch13_perf8, 3, x->x_vec, sp[0]->s_vec, sp[0]->s_n);
+	    dsp_add(sigcatch13_perf8, 3, x->x_vec, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
     else error("sigcatch13 %s: unexpected vector size", x->x_sym->s_name);
 }
diff --git a/externals/ext13/mandelbrot~.c b/externals/ext13/mandelbrot~.c
index 4ccc3e4bc79e8ec755d540ca864791e230211d3b..86a8d3bba1313a22ef386f9491364d340e7d9395 100644
--- a/externals/ext13/mandelbrot~.c
+++ b/externals/ext13/mandelbrot~.c
@@ -101,9 +101,9 @@ t_int *mandelbrot_tilde_perf8(t_int *w)
 void dsp_add_mandelbrot_tilde(t_mandelbrot_tilde *x,t_sample *in1, t_sample *in2, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(mandelbrot_tilde_perform, 5, x, in1, in2, out, n);
+    	dsp_add(mandelbrot_tilde_perform, 5, x, in1, in2, out, (t_int)n);
     else	
-    	dsp_add(mandelbrot_tilde_perf8, 5, x, in1, in2, out, n);
+    	dsp_add(mandelbrot_tilde_perf8, 5, x, in1, in2, out, (t_int)n);
 }
 
 void mandelbrot_tilde_dsp(t_mandelbrot_tilde *x, t_signal **sp)
diff --git a/externals/ext13/piperead~.c b/externals/ext13/piperead~.c
index a9c0d4cc3f47f91993d1946d97df9c4d73ae4d9c..f1dd4a7727c0f48808a3466bb6d24bd36312c516 100644
--- a/externals/ext13/piperead~.c
+++ b/externals/ext13/piperead~.c
@@ -116,17 +116,17 @@ static void piperead_tilde_dsp(t_piperead_tilde *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(piperead_tilde_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(piperead_tilde_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(piperead_tilde_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,sp[2]->s_vec,
 		  sp[3]->s_vec,sp[4]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/pipewrite~.c b/externals/ext13/pipewrite~.c
index da5e25461705285962517929dda0e78430e1a1a9..5f50f565d65f1e7731bfd69053374c0e785ffa8a 100644
--- a/externals/ext13/pipewrite~.c
+++ b/externals/ext13/pipewrite~.c
@@ -223,18 +223,18 @@ static void pipewrite_tilde_dsp(t_pipewrite_tilde *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(pipewrite_tilde_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(pipewrite_tilde_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(pipewrite_tilde_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/promiscous~.c b/externals/ext13/promiscous~.c
index bf1083631ea261617ffce9ea64fffa76d711ade2..b8fd87178b46af1c25db4e4750d60e0464edd66c 100644
--- a/externals/ext13/promiscous~.c
+++ b/externals/ext13/promiscous~.c
@@ -125,7 +125,7 @@ t_int *promiscous_tilde_perform(t_int *w)
 static void promiscous_tilde_dsp(t_promiscous_tilde *x, t_signal **sp)
 {
 	dsp_add(promiscous_tilde_perform, 3, x, sp[0]->s_vec,
-	sp[0]->s_n);
+	(t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ext13/receive13~.c b/externals/ext13/receive13~.c
index 4ff4e3191cd9740206f515568c91780f2042304c..7496655dfdbfdf66bd281d0d8ca88f6776b7793b 100644
--- a/externals/ext13/receive13~.c
+++ b/externals/ext13/receive13~.c
@@ -99,10 +99,10 @@ void sigreceive13_set(t_sigreceive13 *x, t_symbol *s)
     	sigreceive13_set(x, x->x_sym);
 	if(sp[0]->s_n&7)
 	    dsp_add(sigreceive13_perform, 3,
-		    x, sp[0]->s_vec, sp[0]->s_n);
+		    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 	else
 	    dsp_add(sigreceive13_perf8, 3,
-		    x, sp[0]->s_vec, sp[0]->s_n);
+		    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/ext13/scramble~.c b/externals/ext13/scramble~.c
index e7b3d9d3a283c384c4f4c744c057e75f4a275160..c8a34f1548920abbc83188b6913bcce5e214367e 100644
--- a/externals/ext13/scramble~.c
+++ b/externals/ext13/scramble~.c
@@ -460,12 +460,12 @@ static void scramble_tilde_dsp(t_scramble_tilde *x, t_signal **sp)
     switch (x->x_channels) {
        case 1:
           dsp_add(scramble_tilde_perform, 4, x, sp[0]->s_vec,
-          sp[1]->s_vec, sp[0]->s_n);
+          sp[1]->s_vec, (t_int)sp[0]->s_n);
 //          post ("1 channel");
           break;
        case 2:
           dsp_add(scramble_tilde_perform, 6, x, sp[0]->s_vec,
-          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 //          post ("2 channels");
           break;
      }
diff --git a/externals/ext13/scramble~.c.save b/externals/ext13/scramble~.c.save
deleted file mode 100644
index f4957a766a18f58927e021e2b4ec994387bbab36..0000000000000000000000000000000000000000
--- a/externals/ext13/scramble~.c.save
+++ /dev/null
@@ -1,634 +0,0 @@
-#include "m_pd.h"
-#include "ext13.h"
-#include <sys/types.h>
-#include <string.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-
-
-/* ------------------------ scramble_tilde~ ----------------------------- */
-
-static t_class *scramble_tilde_class;
-
-typedef struct _scramble_grain
-{
-    t_float* L;
-    t_float* R;
-    int size;
-    t_float maximum;
-    struct _scramble_grain *next;
-}t_scramble_grain;
-
-typedef struct _scramble_tilde
-{
-     t_object x_obj;
-     int x_n;
-     t_int x_channels;
-     t_float play, analize;
-     t_float dir, current_dir, pitch, actual_pitch, grain_r, autopitch;
-     t_float valsum, valavg;
-     int valsumcount, valsummax;
-     int autofollow, playmode, semitones;
-     t_scramble_grain *firstgrain;
-     t_scramble_grain *workgrain;
-     t_scramble_grain *ring;
-     int grains, newgrains, w_grain, r_grain, n_grain, gotagrain, flush;
-     int r_d, w_d, dist, mindist, lowptr, hiptr, lastlowptr;
-     t_float lowval, hival, prevval, lowborder, normalize;
-     int nsamples;
-     t_outlet *trigger1;
-     t_outlet *trigger2;
-} t_scramble_tilde;
-
-
-/* grain functions*/
-static t_scramble_grain* scramble_tilde_newgrain(){
-     t_scramble_grain* thegrain;
-     thegrain = getbytes( sizeof(t_scramble_grain));
-     thegrain->L = NULL;
-     thegrain->R = NULL;
-     thegrain->size = 0;
-     thegrain->next = NULL;
-     return (thegrain);
-}
-
-
-static t_scramble_grain* scramble_tilde_getgrain(t_scramble_grain* firstgrain, int n){
-     t_scramble_grain* thegrain = firstgrain;
-     while (n--){
-     if (thegrain->next){
-         thegrain = thegrain->next;
-     }else
-         return (NULL);
-     }
-     return (thegrain);
-}
-
-static int scramble_tilde_getsomegrain(t_scramble_grain* firstgrain,int g){
-    t_scramble_grain* thegrain ;
-    int r;
-    do{
-      r =  rand() % g;
-      thegrain = scramble_tilde_getgrain(firstgrain, r);
-    }while (thegrain->size == 0);
-    return (r);
-}
-
-static void scramble_tilde_grainbuf(t_scramble_grain* grain, int c, int n){
-     if (!grain->size)
-        grain->L =  getbytes(n * sizeof(t_float));
-     else
-        grain->L =  resizebytes(grain->L, grain->size * sizeof(t_float), n * sizeof(t_float)); 
-
-     if (c == 2){
-         if (!grain->size)
-             grain->R =  getbytes(n * sizeof(t_float));
-         else
-             grain->R =  resizebytes(grain->R, grain->size * sizeof(t_float), n * sizeof(t_float));
-     }
-     grain->size = n;
-}
-
-static void scramble_tilde_freegrain(t_scramble_grain* grain, int c){
-     if (grain->size){
-        freebytes(grain->L, grain->size * sizeof(t_float));
-        if (c == 2) freebytes(grain->R, grain->size * sizeof(t_float));
-        grain->size = 0;
-        grain->next = NULL;
-     }
-}
-
-
-t_int *scramble_tilde_perform(t_int *w)
-{
-    t_scramble_tilde*  x = (t_scramble_tilde*)(w[1]);
-    int i;
-    int erg=0;
-    int n;
-    t_float val, valL, valR, killval;
-
-    t_float* out[x->x_channels];
-    t_float* in[x->x_channels];
-
-    float n_factor, frac,  a,  b,  c,  d, cminusb;
-    int index;
-    float *fp;
-    t_atom at[2];
-
-    /* anything changed?*/
-    if (x->flush){
-      int i = x->grains;
-      x->flush = 0;
-      x->gotagrain = 0;
-      while (i--)
-        scramble_tilde_grainbuf(scramble_tilde_getgrain(x->firstgrain,i),x->x_channels,0);
-    }
-    
-    if (x->newgrains){
-      int tmp = x->grains;
-      if (x->newgrains > x->grains){
-        x->workgrain = scramble_tilde_getgrain(x->firstgrain,x->grains - 1); /*-1 ???*/
-        tmp = x->newgrains;
-        x->newgrains -= x->grains;
-        x->grains = tmp;
-        while (x->newgrains--){
-           x->workgrain->next = scramble_tilde_newgrain();
-           x->workgrain = x->workgrain->next;
-        }
- //       post ("now %d grains",x->grains);
-      }else{
-        if (x->newgrains < x->grains){
-           t_scramble_grain*  tmpgrain;
-
-           x->grains = x->newgrains;
-           x->workgrain = scramble_tilde_getgrain(x->firstgrain,x->grains - 1);
-
-           /* delete old grains */
-           while (x->workgrain->next){
-             tmpgrain = x->workgrain->next;
-             scramble_tilde_freegrain(x->workgrain,x->x_channels);
-             x->workgrain = tmpgrain;
-           }
-
-           /* reset readpointer if needed*/
-           if (x->r_grain >=  x->grains){
-             x->r_grain = 0;
-             x->grain_r = -1;
-           }
-//           post ("now %d grains",x->grains);
-        }
-      }
-      x->newgrains=0;
-    }
-
-    if ((x->ring->size > x->x_n) || (x->ring->size < x->x_n) ){
-//       post ("scramble~: new size for ringbuffer:%d samples, %d channels, oldsize:%d",x->x_n,x->x_channels,x->ring->size);
-       scramble_tilde_grainbuf(x->ring, x->x_channels ,x->x_n);
-       x->x_n = x->ring->size;
-       x->dist = 0;
-       x->lowptr = x->r_d;
-       x->lastlowptr = -1;
-       x->lowval = x->lowborder;
-    }
-    
-    for (i = 0; i < x->x_channels ;i++)
-       in[i] = (t_float *)(w[2 + i]);
-
-    for (i = 0;i < x->x_channels ;i++)
-       out[i] = (t_float *)(w[2 + x->x_channels + i]);
-
-    n = (int)(w[2 + x->x_channels * 2]);/*number of samples*/
-//    post ("n:%d",n);
-    
-    while (n--){
-    /*read from input*/
-       if (++x->r_d > x->x_n){
-           x->r_d = 0;
-       }
-       valL = *(t_float*)(x->ring->L +  x->r_d) = *in[0]++;
-       if (valL < 0) valL *= -1;
-       if (x->x_channels == 2){
-         valR = *(t_float*)(x->ring->R + x->r_d) = *in[1]++;
-         if (valR < 0) valR *= -1;
-         val =  valL + valR / 2.0;
-         if (valL > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valL;
-         }
-         if (valR > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valR;
-         }
-       }else {
-         val = valL;
-          if (valL > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valL;
-          }
-       }
-
-//       if (val < 0) val *= -1;
-
-       x->valsum += val;
-//       if (x->valsumcount++ > x->mindist * 10){
-       if (x->valsumcount++  && (x->r_d == 0)){
-          x->valavg = x->valsum / x->valsumcount;
-          x->valsumcount = 0;
-          x->valsum = 0;
-          if (x->autofollow && ( x->valavg > 0.003)) {
-            x->lowborder = x->valavg;
-//            post ("lowborder = %f",x->lowborder);
-          }
-       }
-
-       if ((val < x->lowborder) && (x->prevval > x->lowborder)){
-       /* a new low-period */
-         x->dist = -1;
-         x->lowptr =  x->r_d;
-         x->lowval = val;
-//           post ("low");
-       }
-       if ((x->r_d + 1) == x->lastlowptr){
-         /* one round without a point to cut */
-          x->lastlowptr = -1; 
-          x->lowval = x->lowborder;
-          x->hival = 0;
-//          post ("lastlowptr: reset");
-       }
-       
-       if (val < x->lowborder){x->dist++;}
-
-       if (val <= x->lowval) {
-          x->lowptr = x->r_d;
-          x->lowval = val;
-          /*found a point to cut*/
-       }
-
-       if ((val > x->lowborder) && (x->prevval < x->lowborder) && ( x->dist < x->mindist)){
-         /*too short low-period*/
-          x->dist = 0;
-          x->lowptr = x->r_d;
-          x->lowval = x->lowborder;
-//         post ("low too short");
-       }
-       
-       if ((val > x->lowborder) && (x->prevval < x->lowborder) && ( x->dist > x->mindist)){
-       /*found a low-period to cut */
-         if ((x->lastlowptr != -1) ){
-           int grainlen = 0;
-           int i = 0;
-           int wp = 1; /*first and last sample of grain should be 0.0*/
-
-           x->gotagrain = 1;
-           /* how long is the new grain */
-           if (x->lastlowptr > x->lowptr){
-             grainlen = x->x_n - x->lastlowptr + x->lowptr;
-           }else{
-             grainlen = x->lowptr - x->lastlowptr;
-           }
-           
-           if (x->analize){
-             /*find and prepare the grain*/
-             if (++x->w_grain >= x->grains ) x->w_grain = 0;
-             x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->w_grain);
-             scramble_tilde_grainbuf(x->workgrain, x->x_channels, grainlen + 2);
-  
-             *(t_float*)(x->workgrain->L) = 0.0;
-             *(t_float*)(x->workgrain->L + x->workgrain->size -1) = 0.0;
-             if (x->x_channels == 2){
-               *(t_float*)(x->workgrain->R) = 0.0;
-               *(t_float*)(x->workgrain->R + x->workgrain->size -1) = 0.0;
-             }
-             x->workgrain->maximum = x->hival;
-
-             /*notify the world*/
-             SETFLOAT(at, grainlen);
-             SETFLOAT(at+1, x->w_grain + 1);
-             outlet_list(x->trigger1, 0, 2, at);
-
-             /*copy to the grain*/
-             i =  x->lastlowptr;
-             while (grainlen--){
-                if (++i >= x->x_n) i = 0;
-                *(t_float*)(x->workgrain->L + wp ) = *(t_float*)(x->ring->L + i);
-                if (x->x_channels == 2)
-                  *(t_float*)(x->workgrain->R + wp ) = *(t_float*)(x->ring->R + i);
-                wp++;
-             }
-           }/*end if analize*/
-//           post ("copied: w_grain: %d",x->w_grain);
-         }/* end lastlowptr != -1*/
-         x->dist = 0;
-         x->hival = 0;
-         x->lastlowptr = x->lowptr; 
-       }/*end found a low-period to cut */
-
-       x->prevval = val;
-   }/*end while n-- (read from input)*/
-
-
-/*--------------------playback--------------*/
-   n = (int)(w[2 + x->x_channels * 2]);/*number of samples*/
-
-   x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-   if (x->normalize && x->workgrain) n_factor = x->normalize / x->workgrain->maximum;
-   else  n_factor = 1;
-   
-   while (n--){
-     int wgs;
-     if (x->workgrain) wgs = x->workgrain->size - 2;
-     else wgs = 0;
-     if (( (x->grain_r >=  wgs) || (x->grain_r < 1) || (x->workgrain == NULL) ) && x->play && x->gotagrain){
-        if (x->playmode < 2){
-            x->r_grain = scramble_tilde_getsomegrain(x->firstgrain, x->grains);
-            x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-        }else{
-           if (x->n_grain == -1){
-             x->play = 0;
-             x->r_grain = 0;
-             x->workgrain = NULL;
-           }else{
-              x->r_grain = x->n_grain;
-              x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-              x->n_grain = -1;
-              if ((x->r_grain == x->w_grain) || (x->workgrain == NULL)){
-                x->play = 0;
-                x->r_grain = 0;
-                x->workgrain = NULL;
-              }  else if (!x->workgrain->size){
-                x->play = 0;
-                x->r_grain = 0;
-                x->workgrain = NULL;
-              }
-           }
-        }/*end if playmode < 2*/
-
-        if (x->workgrain){
-          if (((rand() % 200) / 100.0  - 1.0 ) < x->dir){
-            x->current_dir = 1;
-            x->grain_r = 1;
-          }
-          else{
-            x->current_dir = -1;
-            x->grain_r = x->workgrain->size -3;
-          }
-
-          if ( ( (x->autopitch >= 1.) && (x->semitones) ) || ( (x->autopitch) && (! x->semitones) ) ){
-            if (x->semitones){
-              int ap = (int)x->autopitch;
-              int rauf = 0;
-              int count ;
-
-              if (rand() % 2 == 1){ rauf = 1;}
-/*              post ("rauf:%d",rauf); */
-
-              x->actual_pitch = x->pitch;
-
-              for (count = (rand() % ap); count >= 0; count--){
-                /*1.05946 = 12te wurzel aus 2 */
-                if (rauf){
-                  x->actual_pitch = x->actual_pitch * 1.05946;
-                }else{
-                  x->actual_pitch = x->actual_pitch / 1.05946;
-                }
-              }
-            }else{
-              if (((rand() % 200) / 100.0  - 1.0 ) > 0){ 
-                 x->actual_pitch = x->pitch + x->pitch * ((rand() % 100 ) / 100.0 * x->autopitch);
-              }else{
-                 x->actual_pitch = x->pitch - x->pitch / ((rand() % 100 ) / 100.0 * x->autopitch);
-              }
-            }/*end if semitones*/
-          } else {
-            x->actual_pitch = x->pitch;
-          }/* end if autopitch*/
-
-/*          post ("x->actual_pitch:%f, x->autopitch:%f",x->actual_pitch,x->autopitch); */
-          
-          if (x->normalize) n_factor = x->normalize / x->workgrain->maximum;
-          else  n_factor = 1;
-
-          SETFLOAT(at, (x->workgrain->size - 2) / x->actual_pitch);
-          SETFLOAT(at+1, x->r_grain + 1);
-          outlet_list(x->trigger2, 0, 2, at);
-
-        }/*end if workgrain !=NULL */
-     }/* end finding a new grain*/
-         
-     if (x->play && x->gotagrain){
-         /*write graincontent to output*/
-         /* 4 point interpolation taken from ../src/d_array.c tabread4~ */
-         index = x->grain_r;
-         if (index < 1)
-           index = 1, frac = 0;
-         else if (index > x->workgrain->size - 3)
-           index = x->workgrain->size - 3, frac = 1;
-         else
-            frac = x->grain_r - index;
-
-         fp = (t_float*)(x->workgrain->L + index);
-         a = fp[-1];
-         b = fp[0];
-         c = fp[1];
-         d = fp[2];
-
-         cminusb = c-b;
-         *out[0]++ = (b + frac * (
-                  cminusb - 0.5f * (frac-1.) * (
-                    (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)
-                  )
-         )) * n_factor;
-
-         if (x->x_channels == 2){
-           fp = (t_float*)(x->workgrain->R + index);
-           a = fp[-1];
-           b = fp[0];
-           c = fp[1];
-           d = fp[2];
-           cminusb = c-b;
-           *out[1]++ = (b + frac * (
-                      cminusb - 0.5f * (frac-1.) * (
-                          (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)
-                      )
-           )) * n_factor;
-         }
-         x->grain_r += x->current_dir * x->actual_pitch;
-     }else/* if play*/{
-        *out[0]++ = 0;
-        if (x->x_channels == 2)
-          *out[1]++ = 0;
-     }/*end if play */
-   }/*end while n-- */
-   return (w + x->x_channels * 2 + 3);
-}
-
-static void scramble_tilde_dsp(t_scramble_tilde *x, t_signal **sp)
-{
-    switch (x->x_channels) {
-       case 1:
-          dsp_add(scramble_tilde_perform, 4, x, sp[0]->s_vec,
-          sp[1]->s_vec, sp[0]->s_n);
-//          post ("1 channel");
-          break;
-       case 2:
-          dsp_add(scramble_tilde_perform, 6, x, sp[0]->s_vec,
-          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
-//          post ("2 channels");
-          break;
-     }
-}
-
-
-static void scramble_tilde_free(t_scramble_tilde *x){
-  int n = x->grains - 1;
-  while (n--){
-    scramble_tilde_freegrain (scramble_tilde_getgrain(x->firstgrain,n),x->x_channels);
-    scramble_tilde_freegrain (x->ring,x->x_channels);
-  }
-}
-
-
-static void *scramble_tilde_new(t_floatarg c,t_floatarg b)
-{
-    t_scramble_tilde *x = (t_scramble_tilde *)pd_new(scramble_tilde_class);
-    int i;
-//    x->bufL = NULL;
-//    x->bufR = NULL;
-    x->x_channels = (t_int)c;
-    if (x->x_channels > 2) {
-       x->x_channels = 2;
-       post ("maximum: 2 channels");
-    }
-    if (x->x_channels < 1) x->x_channels = 1;
-
-    outlet_new(&x->x_obj, gensym("signal"));
-    if (x->x_channels == 2){
-      inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
-      outlet_new(&x->x_obj, gensym("signal"));
-    }
-
-    x->trigger1 = outlet_new(&x->x_obj, &s_float);
-    x->trigger2 = outlet_new(&x->x_obj, &s_float);
-    x->dir = 1;
-    x->pitch = 1;
-    x->actual_pitch = 1;
-    x->autopitch = 0;
-    x->semitones = 1;
-    x->autofollow = 1;
-    x->playmode = 1;
-    x->normalize = 0;
-    x->analize = 1;
-    x->flush = 0;
-    x->x_n = (int)b;
-    if (x->x_n >882000 ){x->x_n = 882000;}
-    if (x->x_n < 88200 ){x->x_n = 88200;}
-/*    x->rR = x->rL = x->wR = x->wL = NULL;*/
-    x->lowptr = 0;
-    x->lastlowptr = x->r_d = x->grain_r = -1;
-    x->mindist = 1024;
-    x->lowborder = 0.35;
-//    scramble_tilde_tempbuf(x,x->x_n);
-    x->ring = scramble_tilde_newgrain();
-    scramble_tilde_grainbuf(x->ring,x->x_channels,x->x_n);
-
-    x->valsum = x->valavg = x->valsumcount = 0;
-    x->valsummax = 1024;
-
-    /* the grains:*/
-    x->grains = 50;
-    x->r_grain = 0;
-    x->w_grain = x->n_grain = -1;
-    x->firstgrain = x->workgrain = scramble_tilde_newgrain();
-    for (i = 1;i < x->grains;i++){
-        x->workgrain->next = scramble_tilde_newgrain();
-        x->workgrain = x->workgrain->next;
-    }
-    return (x);
-}
-
-void *scramble_tilde_float(t_scramble_tilde* x, t_float n){
-  x->play = n;
-  if (x->playmode == 2) x->n_grain = (int)n - 1;
-}
-
-void *scramble_tilde_buffer(t_scramble_tilde* x, t_float n){
-  if (n > 64) x->x_n = (int)n;
-//  post ("buffersize now:%d",x->x_n);
-}
-
-void *scramble_tilde_threshold(t_scramble_tilde* x, t_float t){
-    if (t >0) {
-      x->lowborder = t;
-      x->autofollow = 0;
-    }else{
-      post ("threshold must be a positive value (0.1 - 0.8 makes sense)");
-    }
-    
-}
-
-void *scramble_tilde_grains(t_scramble_tilde* x, t_float g){
-    if ((g > 1) && (g < 2048) ) x->newgrains = (int)g;
-    else post ("scramble~: minimum # of grains must be 2 an maximum # is 2048");
-}
-
-void scramble_tilde_mindist(t_scramble_tilde* x, t_float t){
-    if ((t > 0)  && (t < x->x_n)) x->mindist = (int)t;
-    else post ("scramble~: minimum distance must be positive value lower than buffersize");
-}
-
-void scramble_tilde_direction(t_scramble_tilde* x, t_float d){
-     if (d > 1) d = 1;
-     if (d < -1) d = -1;
-     x->dir = d;
-}
-
-void scramble_tilde_autofollow(t_scramble_tilde* x){
-     x->autofollow = 1;
-}
-
-void scramble_tilde_pitch(t_scramble_tilde* x, t_float p){
-     if (p > 0) x->pitch = p;
-     else post ("scramble~: pitch must be  > 0");
-}
-
-void scramble_tilde_autopitch(t_scramble_tilde* x, t_float p){
-     x->autopitch = p;
-}
-
-void scramble_tilde_semitones(t_scramble_tilde* x, t_float p){
-     x->semitones = (int)p;
-}
-
-
-void scramble_tilde_normalize(t_scramble_tilde* x, t_float n){
-     x->normalize = n;
-}
-
-void scramble_tilde_analize(t_scramble_tilde* x, t_float f){
-     x->analize = f;
-}
-
-void scramble_tilde_flush(t_scramble_tilde* x){
-    x->flush = 1;
-}
-
-void scramble_tilde_playmode(t_scramble_tilde* x, t_float p){
-    x->playmode = (int)p;
-    if (x->playmode < 0) x->playmode = 0;
-    if (x->playmode < 1) x->playmode = 2;
-    switch (x->playmode){
-      case 0: post ("scramble~: playmode off");
-              break;
-      case 1: post ("scramble~: active playmode");
-              break;
-      case 2: post ("scramble~: passive playmode");
-              break;
-      default: post ("scramble~: invalid playmode");        
-    }
-}
-
-
-void scramble_tilde_setup(void)
-{
-    scramble_tilde_class = class_new(gensym("scramble~"), (t_newmethod) scramble_tilde_new, 0,
-    	sizeof(t_scramble_tilde), 0, A_DEFFLOAT,A_DEFFLOAT, 0);
-    class_addfloat(scramble_tilde_class,scramble_tilde_float);
-    class_addmethod(scramble_tilde_class, nullfn, gensym("signal"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_dsp, gensym("dsp"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_buffer, gensym("buffer"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_threshold, gensym("threshold"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_grains, gensym("grains"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_mindist, gensym("min_length"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_direction, gensym("direction"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autofollow, gensym("autofollow"),0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_pitch, gensym("pitch"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autopitch, gensym("autopitch"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_semitones, gensym("semitones"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_flush, gensym("flush"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_normalize, gensym("normalize"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_analize, gensym("analize"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_playmode, gensym("playmode"), A_DEFFLOAT,0);
-}
diff --git a/externals/ext13/send13~.c b/externals/ext13/send13~.c
index 78bcc6e8be63aa4acf251ea02465b19727045345..14a143474f9ac8df22ed121952955a5cc9d16f10 100644
--- a/externals/ext13/send13~.c
+++ b/externals/ext13/send13~.c
@@ -52,7 +52,7 @@
  void sigsend13_dsp(t_sigsend13 *x, t_signal **sp)
 {
     if (x->x_n == sp[0]->s_n)
-    	dsp_add(sigsend13_perform, 3, sp[0]->s_vec, x->x_vec, sp[0]->s_n);
+    	dsp_add(sigsend13_perform, 3, sp[0]->s_vec, x->x_vec, (t_int)sp[0]->s_n);
     else error("sigsend13 %s: unexpected vector size", x->x_sym->s_name);
 }
 
diff --git a/externals/ext13/sfread.c b/externals/ext13/sfread.c
index d9c796373f11a88e0b3e73ec7b2f7dbc8028c833..9d990a47b843d8135bc6e0795a72ae83c37d9ee3 100644
--- a/externals/ext13/sfread.c
+++ b/externals/ext13/sfread.c
@@ -169,17 +169,17 @@ static void sfread_dsp(t_sfread *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfread_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfread_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfread_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,sp[2]->s_vec,
 		  sp[3]->s_vec,sp[4]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
@@ -304,18 +304,18 @@ static void sfwrite_dsp(t_sfwrite *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
      post("sfwrite: dsp end"); 
diff --git a/externals/ext13/sfwrite13~.c b/externals/ext13/sfwrite13~.c
index 0e2e7124ec4355ac25c027a16801ffebc9f26956..ecf4532ddb8ce1f232b9c29b0dd3d45bc41c2879 100644
--- a/externals/ext13/sfwrite13~.c
+++ b/externals/ext13/sfwrite13~.c
@@ -238,18 +238,18 @@ static void sfwrite13_dsp(t_sfwrite13 *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite13_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite13_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite13_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/streamin13~.c b/externals/ext13/streamin13~.c
index 65f63394079233be75bfb10c9dbd9f0e05d33c06..32ac03b201310cfd1624821a1ce0b091c8d3a598 100644
--- a/externals/ext13/streamin13~.c
+++ b/externals/ext13/streamin13~.c
@@ -290,7 +290,7 @@ static void streamin13_dsp(t_streamin13 *x, t_signal **sp)
   myvec[1] = (t_int*)sp[0]->s_n;
   for (i=0;i < x->x_n;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
-  dsp_addv(streamin13_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(streamin13_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 
 }
diff --git a/externals/ext13/streamout13~.c b/externals/ext13/streamout13~.c
index 7e68a4acf88898cacf61165dd985497cbb4405a8..714c1b0e3924555cbb61eff931c8583ffb75363b 100644
--- a/externals/ext13/streamout13~.c
+++ b/externals/ext13/streamout13~.c
@@ -278,7 +278,7 @@ static t_int *streamout13_perform(t_int *w)
 static void streamout13_dsp(t_streamout13 *x, t_signal **sp)
 {
 /*
-    dsp_add(streamout13_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamout13_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 */
   int i;
   t_int** myvec = getbytes(sizeof(t_int)*(x->x_n + 3));
@@ -287,7 +287,7 @@ static void streamout13_dsp(t_streamout13 *x, t_signal **sp)
   myvec[1] = (t_int*)sp[0]->s_n;
   for (i=0;i < x->x_n/*+1*/;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
-  dsp_addv(streamout13_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(streamout13_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 }
 
diff --git a/externals/ext13/throw13~.c b/externals/ext13/throw13~.c
index dc9d439ef6b02b75f9793c4f47a23749bd107182..d0252c75aabb5fde721f8dfe7f61efc45e15bfb7 100644
--- a/externals/ext13/throw13~.c
+++ b/externals/ext13/throw13~.c
@@ -75,7 +75,7 @@
     {
     	sigthrow13_set(x, x->x_sym);
     	dsp_add(sigthrow13_perform, 3,
-    	    x, sp[0]->s_vec, sp[0]->s_n);
+    	    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/fftw/rfftw~.c b/externals/fftw/rfftw~.c
index 4678c8c797f1305c5d43ad9dd53e4842280daaae..f9142a3311b1b1435b71a06d9ed2de027a693913 100644
--- a/externals/fftw/rfftw~.c
+++ b/externals/fftw/rfftw~.c
@@ -64,7 +64,7 @@ static void sigrfftw_dsp(t_sigrfftw *x, t_signal **sp)
                                               NULL,
                                               in, out1, out2,
                                               FFTW_ESTIMATE | FFTW_PRESERVE_INPUT);
-      dsp_add(sigrfftw_perform,3,&x->plan,out2+1,n2-1);
+      dsp_add(sigrfftw_perform,3,&x->plan,out2+1,(t_int)(n2-1));
     }
 
   dsp_add_zero(out1 + n2, n2);
diff --git a/externals/fftw/rifftw~.c b/externals/fftw/rifftw~.c
index a0d85ac50d02f8d5a80705803969ad048a69767f..f563c535a618bb5477a99dce42b38d0f9e342e81 100644
--- a/externals/fftw/rifftw~.c
+++ b/externals/fftw/rifftw~.c
@@ -65,7 +65,7 @@ static void sigrifftw_dsp(t_sigrifftw *x, t_signal **sp)
                                               in1, in2, out, 
                                               FFTW_ESTIMATE | FFTW_PRESERVE_INPUT);
       dsp_add_zero(in1+ n/2, n/2);
-      dsp_add(sigrifftw_perform,3,&x->plan,in2,n2);
+      dsp_add(sigrifftw_perform,3,&x->plan,in2,(t_int)n2);
     }
 }
 
diff --git a/externals/fluid~/fluid~.c b/externals/fluid~/fluid~.c
index 3a81a7d1b2437fe17965a1357007df91a50b9d6a..8aca760cf1553c87f14a5bd4d53030be6f16341d 100644
--- a/externals/fluid~/fluid~.c
+++ b/externals/fluid~/fluid~.c
@@ -28,7 +28,7 @@ t_int *fluid_tilde_perform(t_int *w)
 static void fluid_tilde_dsp(t_fluid_tilde *x, t_signal **sp)
 {
     dsp_add(fluid_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void fluid_tilde_free(t_fluid_tilde *x)
diff --git a/externals/footils/rx7/pd/rx7~.cpp b/externals/footils/rx7/pd/rx7~.cpp
index e7d573aa8f1e0edf9eb5c3682c65871feb0c6c1e..738a5f90b869f2b8f2c346d350d851db83852a76 100644
--- a/externals/footils/rx7/pd/rx7~.cpp
+++ b/externals/footils/rx7/pd/rx7~.cpp
@@ -226,7 +226,7 @@ static t_int *rx7_perform(t_int *w)
 
 static void rx7_dsp(t_rx7 *x, t_signal **sp)
 {
-	dsp_add(rx7_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(rx7_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 extern "C" void rx7_tilde_setup(void)
diff --git a/externals/freeverb~/freeverb~.c b/externals/freeverb~/freeverb~.c
index 237ad71538c009fbb671cd0cd2c1af307a66dec3..c9fc331d81299ae2d2d18e3a5380520949f170d0 100644
--- a/externals/freeverb~/freeverb~.c
+++ b/externals/freeverb~/freeverb~.c
@@ -527,9 +527,9 @@ static void dsp_add_freeverb(t_freeverb *x, t_sample *in1, t_sample *in2,
 							 t_sample *out1, t_sample *out2, int n)
 {
 	if(n & 7)	// check whether block size is multiple of 8
-		dsp_add(freeverb_perform, 6, x, in1, in2, out1, out2, n);
+		dsp_add(freeverb_perform, 6, x, in1, in2, out1, out2, (t_int)n);
 	else
-		dsp_add(freeverb_perf8, 6, x, in1, in2, out1, out2, n);
+		dsp_add(freeverb_perf8, 6, x, in1, in2, out1, out2, (t_int)n);
 }
 
 void freeverb_dsp(t_freeverb *x, t_signal **sp)
diff --git a/externals/ggee/control/inv.c b/externals/ggee/control/inv.c
index de3d1c6c36d7038617723b34e0148e0023e1bbd1..f25102464252a297590f876b32ea1df4d31857b0 100644
--- a/externals/ggee/control/inv.c
+++ b/externals/ggee/control/inv.c
@@ -30,7 +30,7 @@ static t_int *inv_perform(t_int *w)    /* not static; also used in d_fft.c */
 
 static void inv_dsp(t_inv *x, t_signal **sp)
 {
-    dsp_add(inv_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(inv_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void inv_tilde_setup(void)
diff --git a/externals/ggee/experimental/fofsynth~.c b/externals/ggee/experimental/fofsynth~.c
index 637f06194d7e8f87fc8f24ba1675f879c6c018f6..7294578e65852c6482032900742af9f4149d189a 100644
--- a/externals/ggee/experimental/fofsynth~.c
+++ b/externals/ggee/experimental/fofsynth~.c
@@ -277,7 +277,7 @@ static void fofsynth_dsp(t_fofsynth *x, t_signal **sp)
      }
                
      dsp_add(fofsynth_perform, 4, x,
-	     sp[0]->s_vec,sp[1]->s_vec, sp[0]->s_n);
+	     sp[0]->s_vec,sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/experimental/pvocfreq.c b/externals/ggee/experimental/pvocfreq.c
index d1f4b189ffe0fc066035854f586c44206e7b5882..506440543649936e870de8c431593e7ca94bb65b 100644
--- a/externals/ggee/experimental/pvocfreq.c
+++ b/externals/ggee/experimental/pvocfreq.c
@@ -85,7 +85,7 @@ static t_int *shuffle_perform(t_int *w)
 static void shuffle_dsp(t_shuffle *x, t_signal **sp)
 {
 	  dsp_add(shuffle_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/ggee/experimental/stk.cpp b/externals/ggee/experimental/stk.cpp
index c69f93a66f314b4a9ca01ff177f2ae61c3c0a124..a1fb9adb405040151672c33941bde0ba6e10af46 100644
--- a/externals/ggee/experimental/stk.cpp
+++ b/externals/ggee/experimental/stk.cpp
@@ -105,7 +105,7 @@ static t_int *stk_perform(t_int *w)
 
 static void stk_dsp(t_stk *x, t_signal **sp)
 {
-     dsp_add(stk_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+     dsp_add(stk_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/experimental/tabwrite4~.c b/externals/ggee/experimental/tabwrite4~.c
index 87e1f2cfa853920fe74b8668180f8ae32bc7ccb8..5edab05a0f82bd72364e6cbc167835d46bdc7ad1 100644
--- a/externals/ggee/experimental/tabwrite4~.c
+++ b/externals/ggee/experimental/tabwrite4~.c
@@ -156,7 +156,7 @@ void tabwrite4_tilde_set(t_tabwrite4_tilde *x, t_symbol *s)
 static void tabwrite4_tilde_dsp(t_tabwrite4_tilde *x, t_signal **sp)
 {
     tabwrite4_tilde_set(x, x->x_arrayname);
-    dsp_add(tabwrite4_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(tabwrite4_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tabwrite4_tilde_bang(t_tabwrite4_tilde *x)
diff --git a/externals/ggee/filters/moog~.c b/externals/ggee/filters/moog~.c
index 5719fcc63549773734e4972f99b45fdad33e6a96..3a95f66668bd2325bf31e67c82997a47e3713e19 100644
--- a/externals/ggee/filters/moog~.c
+++ b/externals/ggee/filters/moog~.c
@@ -161,9 +161,9 @@ t_int *moog_perf8(t_int *w)
 void dsp_add_moog(t_moog *x, t_sample *in1, t_sample *in2, t_sample *in3, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(moog_perform, 6,(t_int)x, in1,in2,in3, out, n);
+    	dsp_add(moog_perform, 6,(t_int)x, in1,in2,in3, out, (t_int)n);
     else	
-    	dsp_add(moog_perf8, 6,(t_int) x, in1, in2, in3, out, n);
+    	dsp_add(moog_perf8, 6,(t_int) x, in1, in2, in3, out, (t_int)n);
 }
 
 static void moog_dsp(t_moog *x, t_signal **sp)
diff --git a/externals/ggee/signal/atan2~.c b/externals/ggee/signal/atan2~.c
index 63ee0d00e145d3673653df963be69c586eb98c76..8211437d1c31d5b84e9d271b1e6d92bec0ce0fbe 100644
--- a/externals/ggee/signal/atan2~.c
+++ b/externals/ggee/signal/atan2~.c
@@ -67,9 +67,9 @@ t_int *atan2_perf8(t_int *w)
 void dsp_add_atan2(t_sample *in1, t_sample *in2, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(atan2_perform, 4, in1, in2, out, n);
+    	dsp_add(atan2_perform, 4, in1, in2, out, (t_int)n);
     else	
-    	dsp_add(atan2_perf8, 4, in1, in2, out, n);
+    	dsp_add(atan2_perf8, 4, in1, in2, out, (t_int)n);
 }
 
 static void atan2_dsp(t_atan2 *x, t_signal **sp)
diff --git a/externals/ggee/signal/mixer~.c b/externals/ggee/signal/mixer~.c
index 90c1d278c521352b2a061c8a08f4d037f6d4b650..5b395500c2ea3f14d3a12be92aec22f1acf8a041 100644
--- a/externals/ggee/signal/mixer~.c
+++ b/externals/ggee/signal/mixer~.c
@@ -91,7 +91,7 @@ static void mixer_dsp(t_mixer *x, t_signal **sp)
   for (i=0;i < x->x_n+1;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
 
-  dsp_addv(mixer_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(mixer_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 }
 
diff --git a/externals/ggee/signal/sfwrite~.c b/externals/ggee/signal/sfwrite~.c
index 71ef52de48efeea68391f4968bd85dc0ba2c52fe..1209572c5b344a6e878cbf7790c4c815c2fb0734 100644
--- a/externals/ggee/signal/sfwrite~.c
+++ b/externals/ggee/signal/sfwrite~.c
@@ -217,18 +217,18 @@ static void sfwrite_dsp(t_sfwrite *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ggee/signal/streamin~.c b/externals/ggee/signal/streamin~.c
index 646670afd7443ad44fa036a2daaf79f1197a3753..93306ab51434f9b2f43e0a460f238e9aeac1979a 100644
--- a/externals/ggee/signal/streamin~.c
+++ b/externals/ggee/signal/streamin~.c
@@ -355,7 +355,7 @@ static t_int *streamin_perform(t_int *w)
 
 static void streamin_dsp(t_streamin *x, t_signal **sp)
 {
-    dsp_add(streamin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/signal/streamout~.c b/externals/ggee/signal/streamout~.c
index 34233b19248c11688045cb48ab435cd889c060b7..d8e9e77f16e143924da858d2728935af763010b4 100644
--- a/externals/ggee/signal/streamout~.c
+++ b/externals/ggee/signal/streamout~.c
@@ -252,16 +252,16 @@ static void streamout_dsp(t_streamout *x, t_signal **sp)
 {
   switch (x->x_tag.channels) {
   case 1:
-    dsp_add(streamout_perform, 3, x,sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamout_perform, 3, x,sp[0]->s_vec, (t_int)sp[0]->s_n);
     post("one channel mode");
     break;
   case 2:
-    dsp_add(streamout_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec,sp[0]->s_n);
+    dsp_add(streamout_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     post("two channel mode");
     break;
   case 4:
     dsp_add(streamout_perform, 6, x,sp[0]->s_vec, sp[1]->s_vec,
-	    sp[2]->s_vec,sp[3]->s_vec,sp[0]->s_n);
+	    sp[2]->s_vec,sp[3]->s_vec, (t_int)sp[0]->s_n);
     post("four channel mode");
     break;
   default:
diff --git a/externals/grh/adaptive/src/lms2~.c b/externals/grh/adaptive/src/lms2~.c
index 1946d53c2b5f06fa2bd643767e8bfa9a1da76f94..4d4c684538dc35856062b5c4a0779e2b75b65b56 100644
--- a/externals/grh/adaptive/src/lms2~.c
+++ b/externals/grh/adaptive/src/lms2~.c
@@ -226,7 +226,7 @@ static void lms2_tilde_dsp(t_lms2_tilde *x, t_signal **sp)
   }
   
   dsp_add(lms2_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, 
-          sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+          sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void lms2_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/lms~.c b/externals/grh/adaptive/src/lms~.c
index e8bcddfb5f1adba98ce50851b69463192988577f..593fa59563c9b4fd2afb759eeb83f5490aba5a56 100644
--- a/externals/grh/adaptive/src/lms~.c
+++ b/externals/grh/adaptive/src/lms~.c
@@ -201,7 +201,7 @@ static void lms_tilde_dsp(t_lms_tilde *x, t_signal **sp)
   }
 
   dsp_add(lms_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-	  sp[2]->s_vec, sp[0]->s_n);
+	  sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void lms_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms2~.c b/externals/grh/adaptive/src/nlms2~.c
index 847f907b60f7f3161a52742f0f9c8481dae0bca2..c5006dbca0d79b98e5eb4d9f7f1646eec2a17fc1 100644
--- a/externals/grh/adaptive/src/nlms2~.c
+++ b/externals/grh/adaptive/src/nlms2~.c
@@ -249,7 +249,7 @@ static void nlms2_tilde_dsp(t_nlms2_tilde *x, t_signal **sp)
   }
 
   dsp_add(nlms2_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, 
-          sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+          sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void nlms2_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms3~.c b/externals/grh/adaptive/src/nlms3~.c
index 162f65ab5e5711df9785a397fa4550c141aa38ce..99175c7614768692fd27b97de76ab800c9eb7419 100644
--- a/externals/grh/adaptive/src/nlms3~.c
+++ b/externals/grh/adaptive/src/nlms3~.c
@@ -303,7 +303,7 @@ static void nlms3_tilde_dsp(t_nlms3_tilde *x, t_signal **sp)
 
   dsp_add(nlms3_tilde_perform, 8, sp[0]->s_vec, sp[1]->s_vec, 
           sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, 
-          sp[5]->s_vec, sp[0]->s_n, x);
+          sp[5]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void nlms3_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms~.c b/externals/grh/adaptive/src/nlms~.c
index 0d4f95da42251eb574bef9f835f3e1dc7befab69..631d1df4338f17778c9e51a3266c773e911b7305 100644
--- a/externals/grh/adaptive/src/nlms~.c
+++ b/externals/grh/adaptive/src/nlms~.c
@@ -225,7 +225,7 @@ static void nlms_tilde_dsp(t_nlms_tilde *x, t_signal **sp)
   }
 
   dsp_add(nlms_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-	  sp[2]->s_vec, sp[0]->s_n);
+	  sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void nlms_tilde_helper(void)
diff --git a/externals/grh/pix_linNN/pix_linNN.cpp b/externals/grh/pix_linNN/pix_linNN.cpp
index bc68398e662fbba6cf3db0e9088194a9e5f4ae43..3c0436157036a4dd4d2cc3849e69eeda32d6bc13 100644
--- a/externals/grh/pix_linNN/pix_linNN.cpp
+++ b/externals/grh/pix_linNN/pix_linNN.cpp
@@ -213,7 +213,7 @@ t_int* pix_linNN::perform(t_int* w)
  */
 void pix_linNN::dspMess(void *data, t_signal** sp)
 {
-  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 //----------------------------------------------------------
diff --git a/externals/grh/pix_recNN/pix_recNN.cpp b/externals/grh/pix_recNN/pix_recNN.cpp
index e816135b29d3a65f846ea2b38366450e575d4820..3b8787b2160a8f55a91813fc5a863535de9c0e91 100644
--- a/externals/grh/pix_recNN/pix_recNN.cpp
+++ b/externals/grh/pix_recNN/pix_recNN.cpp
@@ -264,7 +264,7 @@ t_int* pix_recNN::perform(t_int* w)
  */
 void pix_recNN::dspMess(void *data, t_signal** sp)
 {
-  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 //----------------------------------------------------------
diff --git a/externals/iem/iem_adaptfilt/src/NLMSCC~.c b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
index 5824e1fb997d10b9d9293f1eacc10dafd6c12c2b..0b43ac2f3226ce6e6a8d266ca27f57b5125fa245 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSCC~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
@@ -288,9 +288,9 @@ static void NLMSCC_tilde_dsp(t_NLMSCC_tilde *x, t_signal **sp)
     x->x_wmax_array_mem_beg = NLMSCC_tilde_check_array(x->x_wmax_array_sym_name, x->x_n_order);
 
     if(!(x->x_w_array_mem_beg && x->x_wmin_array_mem_beg && x->x_wmax_array_mem_beg))
-        dsp_add(NLMSCC_tilde_perform_zero, 2, x, n);
+        dsp_add(NLMSCC_tilde_perform_zero, 2, x, (t_int)n);
     else
-        dsp_add(NLMSCC_tilde_perform, 2, x, n);
+        dsp_add(NLMSCC_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
index b0f300e67c27ed64b94bf931d7e7b96f67d5af54..c3246fe5601c6b41ba8657dacc042bee1ceeadca 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
@@ -200,9 +200,9 @@ static void NLMSerr_in_tilde_dsp(t_NLMSerr_in_tilde *x, t_signal **sp)
     x->x_w_array_mem_beg = NLMSerr_in_tilde_check_array(x->x_w_array_sym_name, x->x_n_order);
 
     if(!x->x_w_array_mem_beg)
-        dsp_add(NLMSerr_in_tilde_perform_zero, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+        dsp_add(NLMSerr_in_tilde_perform_zero, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
     else
-        dsp_add(NLMSerr_in_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+        dsp_add(NLMSerr_in_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/NLMS~.c b/externals/iem/iem_adaptfilt/src/NLMS~.c
index ee225baa1f5b44300976fe996364f385bf810a5c..e2e2cba2a8df94cff275a32482bea5950b1d54b5 100644
--- a/externals/iem/iem_adaptfilt/src/NLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMS~.c
@@ -246,9 +246,9 @@ static void NLMS_tilde_dsp(t_NLMS_tilde *x, t_signal **sp)
     x->x_w_array_mem_beg = NLMS_tilde_check_array(x->x_w_array_sym_name, x->x_n_order);
 
     if(!x->x_w_array_mem_beg)
-        dsp_add(NLMS_tilde_perform_zero, 2, x, n);
+        dsp_add(NLMS_tilde_perform_zero, 2, x, (t_int)n);
     else
-        dsp_add(NLMS_tilde_perform, 2, x, n);
+        dsp_add(NLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
index 23a00d8d4fd57335e078995963c1bd69468c9393..49f2aa9547dbcedc3a64e0952151b53d7edd9851 100644
--- a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
@@ -376,9 +376,9 @@ static void n_CLNLMS_tilde_dsp(t_n_CLNLMS_tilde *x, t_signal **sp)
   }
   
   if(!ok_w)
-    dsp_add(n_CLNLMS_tilde_perform_zero, 2, x, n);
+    dsp_add(n_CLNLMS_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(n_CLNLMS_tilde_perform, 2, x, n);
+    dsp_add(n_CLNLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
index 1b636fc6150018a8bed50d923e9a6fc7b229044e..216585dcac9a3505ae203c8b3d01b110fbbee8d1 100644
--- a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
@@ -365,9 +365,9 @@ static void n_CNLMS_tilde_dsp(t_n_CNLMS_tilde *x, t_signal **sp)
   }
   
   if(!ok_w)
-    dsp_add(n_CNLMS_tilde_perform_zero, 2, x, n);
+    dsp_add(n_CNLMS_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(n_CNLMS_tilde_perform, 2, x, n);
+    dsp_add(n_CNLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_delay/src/block_delay~.c b/externals/iem/iem_delay/src/block_delay~.c
index 0bec230db979cdcd707ddff476fcb8df4d0746e0..77797a5b2678ceda8959cde83fb3670aa79d1326 100644
--- a/externals/iem/iem_delay/src/block_delay~.c
+++ b/externals/iem/iem_delay/src/block_delay~.c
@@ -92,9 +92,9 @@ static void block_delay_tilde_dsp(t_block_delay_tilde *x, t_signal **sp)
 		x->x_begmem = (t_float *)resizebytes(x->x_begmem, x->x_blocksize*sizeof(t_float), n*sizeof(t_float));
 	x->x_blocksize = n;
 	if(n&7)
-		dsp_add(block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+		dsp_add(block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 	else
-		dsp_add(block_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+		dsp_add(block_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *block_delay_tilde_new(void)
diff --git a/externals/iem/iem_delay/src/n_delay1p_line~.c b/externals/iem/iem_delay/src/n_delay1p_line~.c
index 35516d2f6a82b2c2ac0ea17e4696e2dad8cecff8..cbc32c48995eb032a51417c599d8bd69e891aa3c 100644
--- a/externals/iem/iem_delay/src/n_delay1p_line~.c
+++ b/externals/iem/iem_delay/src/n_delay1p_line~.c
@@ -359,9 +359,9 @@ static void n_delay1p_line_tilde_dsp(t_n_delay1p_line_tilde *x, t_signal **sp)
 	for(i=0; i<nd; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(n_delay1p_line_tilde_perform, 2, x, n);
+		dsp_add(n_delay1p_line_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(n_delay1p_line_tilde_perf8, 2, x, n);
+		dsp_add(n_delay1p_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *n_delay1p_line_tilde_new(t_floatarg fout, t_floatarg delay_ms, t_floatarg interpol_ms)
diff --git a/externals/iem/iem_delay/src/n_delay2p_line~.c b/externals/iem/iem_delay/src/n_delay2p_line~.c
index 5a91e2abb5a1d6cbd57b0b5f54b0c4a7911a30f8..fb6137ea3db53d03cb7783951da7aee8f0acc3a9 100644
--- a/externals/iem/iem_delay/src/n_delay2p_line~.c
+++ b/externals/iem/iem_delay/src/n_delay2p_line~.c
@@ -392,9 +392,9 @@ static void n_delay2p_line_tilde_dsp(t_n_delay2p_line_tilde *x, t_signal **sp)
 	for(i=0; i<nd; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(n_delay2p_line_tilde_perform, 2, x, n);
+		dsp_add(n_delay2p_line_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(n_delay2p_line_tilde_perf8, 2, x, n);
+		dsp_add(n_delay2p_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *n_delay2p_line_tilde_new(t_floatarg fout, t_floatarg delay_ms, t_floatarg interpol_ms)
diff --git a/externals/iem/iem_delay/src/nz~.c b/externals/iem/iem_delay/src/nz~.c
index 6318dbfc01460630217a3bc4e95e5532a45f5074..34b880fa1cad72678bb0a36bf2a81ea0ae3c3c10 100644
--- a/externals/iem/iem_delay/src/nz~.c
+++ b/externals/iem/iem_delay/src/nz~.c
@@ -191,9 +191,9 @@ static void nz_tilde_dsp(t_nz_tilde *x, t_signal **sp)
 	for(i=0; i<num_dels; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(nz_tilde_perform, 2, x, n);
+		dsp_add(nz_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(nz_tilde_perf8, 2, x, n);
+		dsp_add(nz_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *nz_tilde_new(t_floatarg n_delays, t_floatarg max_delay_samples)
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_line8~.c b/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
index e9f61453697dd1ec0eee59e4e4ebc9035b84480c..deb3defb46c22e26f083909d8f6870a6811d1d57 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
@@ -371,11 +371,11 @@ static void matrix_bundle_line8_tilde_dsp(t_matrix_bundle_line8_tilde *x, t_sign
   
   if(n&7)
   {
-    dsp_add(matrix_bundle_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_bundle_line8_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_bundle_line8_tilde~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_bundle_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_bundle_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_line~.c b/externals/iem/iem_matrix/src/matrix_bundle_line~.c
index e7ae5f93b8801ee88a28a66ebf304ed6f9b89494..44736a4cf25283d6d83d59106d89f326a1872258 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_line~.c
@@ -385,11 +385,11 @@ static void matrix_bundle_line_tilde_dsp(t_matrix_bundle_line_tilde *x, t_signal
   
   if(n&7)
   {
-    dsp_add(matrix_bundle_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_bundle_line_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_bundle_line_tilde~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_bundle_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_bundle_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_stat~.c b/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
index df0f14700eabef1139e4bcea239073002e770264..64ddc7001cd26d1f53f544eba7a95c61f58054fc 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
@@ -217,9 +217,9 @@ static void matrix_bundle_stat_tilde_dsp(t_matrix_bundle_stat_tilde *x, t_signal
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_bundle_stat_tilde_perform, 2, x, sp[0]->s_n);
+    dsp_add(matrix_bundle_stat_tilde_perform, 2, x, (t_int)sp[0]->s_n);
   else
-    dsp_add(matrix_bundle_stat_tilde_perf8, 2, x, sp[0]->s_n);
+    dsp_add(matrix_bundle_stat_tilde_perf8, 2, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
index 771ea8ba70940d0a7d714484ba15e65a218a98a1..a0097397818d1a118433f9a3cd007b7eda1356e1 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
@@ -296,9 +296,9 @@ static void matrix_diag_mul_line8_tilde_dsp(t_matrix_diag_mul_line8_tilde *x, t_
   x->x_8overn = 8.0f / (t_float)n;
   
   if(n&7)
-    dsp_add(matrix_diag_mul_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_diag_mul_line8_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
index 7bad1bb0fa7c1f05bb149936345e2d1c02d912f3..71bb0bb5e35143a0fc961eebaba422dfa213f35c 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
@@ -302,9 +302,9 @@ static void matrix_diag_mul_line_tilde_dsp(t_matrix_diag_mul_line_tilde *x, t_si
   x->x_1overn = 1.0f / (t_float)n;
   
   if(n&7)
-    dsp_add(matrix_diag_mul_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_diag_mul_line_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
index 9edb511f56fe3c24f8edd96a05f6eefc43f43cdc..de2645ba1755885e3e76875d52c52f1344114091 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
@@ -171,9 +171,9 @@ static void matrix_diag_mul_stat_tilde_dsp(t_matrix_diag_mul_stat_tilde *x, t_si
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_diag_mul_stat_tilde_perform, 2, x, n);
+    dsp_add(matrix_diag_mul_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_stat_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_line8~.c b/externals/iem/iem_matrix/src/matrix_mul_line8~.c
index 10f58fb214e817f8ef3916ccc7d2cd3316836b8a..7b615a32da569e71c144c1e789446ada88029978 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_line8~.c
@@ -557,11 +557,11 @@ static void matrix_mul_line8_tilde_dsp(t_matrix_mul_line8_tilde *x, t_signal **s
   
   if(n&7)
   {
-    dsp_add(matrix_mul_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_mul_line8_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_mul_line8~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_mul_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_line~.c b/externals/iem/iem_matrix/src/matrix_mul_line~.c
index b41c8b2c3683bff82d47f4474a7bbb3e4558d0dc..96dc598774ff8553564aba80e49b8a7a544af024 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_line~.c
@@ -586,11 +586,11 @@ static void matrix_mul_line_tilde_dsp(t_matrix_mul_line_tilde *x, t_signal **sp)
   
   if(n&7)
   {
-    dsp_add(matrix_mul_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_mul_line_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_mul_line~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_mul_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_stat~.c b/externals/iem/iem_matrix/src/matrix_mul_stat~.c
index ada652a53905238379537c27defee8567deb22ee..f61d1746d850b9ed11868cb4bf67067347a8897b 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_stat~.c
@@ -394,9 +394,9 @@ static void matrix_mul_stat_tilde_dsp(t_matrix_mul_stat_tilde *x, t_signal **sp)
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_mul_stat_tilde_perform, 2, x, n);
+    dsp_add(matrix_mul_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(matrix_mul_stat_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c b/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
index 6d95a864968743f6f4f5e5b37eb8eb4778f21ff3..fef24b46afc9f6c70e4c3bcf5afb9745b944647c 100644
--- a/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
+++ b/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
@@ -463,9 +463,9 @@ static void spec2_1p1z_freq_tilde_dsp(t_spec2_1p1z_freq_tilde *x, t_signal **sp)
   }
   
   if(n&15)
-    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void spec2_1p1z_freq_tilde_free(t_spec2_1p1z_freq_tilde *x)
diff --git a/externals/iem/iem_spec2/src/spec2_1p1z_time~.c b/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
index 852ea990853091e6347c382d1b87082c4651791f..196f709139914f95fcaa67ea48bfcd52a76be4be 100644
--- a/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
+++ b/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
@@ -174,9 +174,9 @@ static void spec2_1p1z_time_tilde_dsp(t_spec2_1p1z_time_tilde *x, t_signal **sp)
     x->x_begmem_back = x->x_begmem_forw + n +1;
   }
   if(n&15)
-    dsp_add(spec2_1p1z_time_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_time_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_1p1z_time_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_time_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_1p1z_time_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iem/iem_spec2/src/spec2_abs~.c b/externals/iem/iem_spec2/src/spec2_abs~.c
index 521b0e0f92b2356c6c6743a847064a0aea4edf58..ebae0277da4e91b613041dfaec14d9b305da8d67 100644
--- a/externals/iem/iem_spec2/src/spec2_abs~.c
+++ b/externals/iem/iem_spec2/src/spec2_abs~.c
@@ -68,9 +68,9 @@ static void spec2_abs_tilde_dsp(t_spec2_abs_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_abs_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_abs_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_abs_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_abs_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_abs_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_add_scalar~.c b/externals/iem/iem_spec2/src/spec2_add_scalar~.c
index 219baeefc589f1c22799fbb2d1e75001ef5fa970..78a3987142ac6cb756c036a09de3c1bbf3889ef3 100644
--- a/externals/iem/iem_spec2/src/spec2_add_scalar~.c
+++ b/externals/iem/iem_spec2/src/spec2_add_scalar~.c
@@ -74,9 +74,9 @@ static void spec2_add_scalar_tilde_dsp(t_spec2_add_scalar_tilde *x, t_signal **s
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_add_scalar_tilde_perform, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_add_scalar_tilde_perform, 3, sp[0]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_add_scalar_tilde_perf16, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_add_scalar_tilde_perf16, 3, sp[0]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_add_scalar_tilde_new(t_floatarg f)
diff --git a/externals/iem/iem_spec2/src/spec2_add~.c b/externals/iem/iem_spec2/src/spec2_add~.c
index cfb7249f6b8825b34f3261bb4aeb2c88690eadcb..297a86c301c339a798623b89bfaa5ba5acc3d981 100644
--- a/externals/iem/iem_spec2/src/spec2_add~.c
+++ b/externals/iem/iem_spec2/src/spec2_add~.c
@@ -71,9 +71,9 @@ static void spec2_add_tilde_dsp(t_spec2_add_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_add_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_add_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_add_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_add_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_add_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_block_delay~.c b/externals/iem/iem_spec2/src/spec2_block_delay~.c
index 5c52b28638c812841288034c554a2d505b9bbc72..57e3d08e83a5cdbca664bd2c5148cadfe5d02282 100644
--- a/externals/iem/iem_spec2/src/spec2_block_delay~.c
+++ b/externals/iem/iem_spec2/src/spec2_block_delay~.c
@@ -125,9 +125,9 @@ static void spec2_block_delay_tilde_dsp(t_spec2_block_delay_tilde *x, t_signal *
     x->x_blocksize = n;
   }
   if(n&15)
-    dsp_add(spec2_block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_block_delay_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_block_delay_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_block_delay_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_clip_max~.c b/externals/iem/iem_spec2/src/spec2_clip_max~.c
index 2aebcdc64e92108af223baa19ed8452df89f2776..026663472181aebda3f98784c7a073a3987b67b5 100644
--- a/externals/iem/iem_spec2/src/spec2_clip_max~.c
+++ b/externals/iem/iem_spec2/src/spec2_clip_max~.c
@@ -138,9 +138,9 @@ static void spec2_clip_max_tilde_dsp(t_spec2_clip_max_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_clip_max_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_max_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_clip_max_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_max_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_clip_max_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_clip_min~.c b/externals/iem/iem_spec2/src/spec2_clip_min~.c
index ccdbf12cb4ae9add83e07359f69a73243fceb017..fd6bd46fe0ce2115ce886632cb7d6c58573b8820 100644
--- a/externals/iem/iem_spec2/src/spec2_clip_min~.c
+++ b/externals/iem/iem_spec2/src/spec2_clip_min~.c
@@ -138,9 +138,9 @@ static void spec2_clip_min_tilde_dsp(t_spec2_clip_min_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_clip_min_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_min_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_clip_min_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_min_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_clip_min_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_dbtopow~.c b/externals/iem/iem_spec2/src/spec2_dbtopow~.c
index e780af45b5afb09fd4a1cf8c14a2abbbf335593b..a33f31fd758035231d8d24a4020aeb9a38b3a2f1 100644
--- a/externals/iem/iem_spec2/src/spec2_dbtopow~.c
+++ b/externals/iem/iem_spec2/src/spec2_dbtopow~.c
@@ -45,7 +45,7 @@ static void spec2_dbtopow_tilde_dsp(t_spec2_dbtopow_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_dbtopow_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_dbtopow_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_dbtopow_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_dbtorms~.c b/externals/iem/iem_spec2/src/spec2_dbtorms~.c
index b89ff9b491aaeffb12158b2f7edabd75b3adf22b..af0ed685b28267f32b50f47309cc4ff31e0b3919 100644
--- a/externals/iem/iem_spec2/src/spec2_dbtorms~.c
+++ b/externals/iem/iem_spec2/src/spec2_dbtorms~.c
@@ -45,7 +45,7 @@ static void spec2_dbtorms_tilde_dsp(t_spec2_dbtorms_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_dbtorms_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_dbtorms_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_dbtorms_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c b/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
index b4efea449d783276efd34b813bad1feabc165c3f..78d9502845b99463d769be67f029000fce8c67ba 100644
--- a/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
+++ b/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
@@ -219,9 +219,9 @@ static void spec2_matrix_bundle_stat_tilde_dsp(t_spec2_matrix_bundle_stat_tilde
   
   n = sp[0]->s_n/2;
   if(n&7)
-    dsp_add(spec2_matrix_bundle_stat_tilde_perform, 2, x, n);
+    dsp_add(spec2_matrix_bundle_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(spec2_matrix_bundle_stat_tilde_perf8, 2, x, n);
+    dsp_add(spec2_matrix_bundle_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_spec2/src/spec2_mul_scalar~.c b/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
index 3ff5a7e52d7144d55c6710f4098345fd486615de..6ae9bd9faad567cfbee4b1dd2b665cca657bfc1f 100644
--- a/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
+++ b/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
@@ -73,9 +73,9 @@ static void spec2_mul_scalar_tilde_dsp(t_spec2_mul_scalar_tilde *x, t_signal **s
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_mul_scalar_tilde_perform, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_mul_scalar_tilde_perform, 3, sp[0]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_mul_scalar_tilde_perf16, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_mul_scalar_tilde_perf16, 3, sp[0]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_mul_scalar_tilde_new(t_floatarg f)
diff --git a/externals/iem/iem_spec2/src/spec2_mul~.c b/externals/iem/iem_spec2/src/spec2_mul~.c
index 97b8605a5920441fd40a5c93e0abc87735b98bf8..58bd2dd0d61006bda14fd6c4ed2761a27ebc403d 100644
--- a/externals/iem/iem_spec2/src/spec2_mul~.c
+++ b/externals/iem/iem_spec2/src/spec2_mul~.c
@@ -70,9 +70,9 @@ static void spec2_mul_tilde_dsp(t_spec2_mul_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_mul_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_mul_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_mul_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_mul_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_mul_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_powtodb~.c b/externals/iem/iem_spec2/src/spec2_powtodb~.c
index d9fa7cba500d0a45071b91c1e589cb4c4d9a3db8..8224c25252836e339328d82a581b9a5a09c7d2cd 100644
--- a/externals/iem/iem_spec2/src/spec2_powtodb~.c
+++ b/externals/iem/iem_spec2/src/spec2_powtodb~.c
@@ -44,7 +44,7 @@ static void spec2_powtodb_tilde_dsp(t_spec2_powtodb_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_powtodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_powtodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_powtodb_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_rmstodb~.c b/externals/iem/iem_spec2/src/spec2_rmstodb~.c
index 0bba8e3b93a140425362a29dfd119076a0b6319f..9dfa93573bbc8e186517c79fb646a487162c452d 100644
--- a/externals/iem/iem_spec2/src/spec2_rmstodb~.c
+++ b/externals/iem/iem_spec2/src/spec2_rmstodb~.c
@@ -45,7 +45,7 @@ static void spec2_rmstodb_tilde_dsp(t_spec2_rmstodb_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_rmstodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_rmstodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_rmstodb_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_shift~.c b/externals/iem/iem_spec2/src/spec2_shift~.c
index de3471e6b585f9b4799fe4bc51bce4dec89599c2..9876f44331a26565848b64cbfe51ee9beba3de53 100644
--- a/externals/iem/iem_spec2/src/spec2_shift~.c
+++ b/externals/iem/iem_spec2/src/spec2_shift~.c
@@ -76,7 +76,7 @@ static void spec2_shift_tilde_dsp(t_spec2_shift_tilde *x, t_signal **sp)
     x->x_spec = (t_float *)resizebytes(x->x_spec, (x->x_blocksize+1)*sizeof(t_float), (n+1)*sizeof(t_float));
     x->x_blocksize = n;
   }
-  dsp_add(spec2_shift_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_shift_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_shift_tilde_new(t_floatarg add)
diff --git a/externals/iem/iem_spec2/src/spec2_sqrt~.c b/externals/iem/iem_spec2/src/spec2_sqrt~.c
index 6f25ee133e03b5cb55a4507c7a396c743655bcf5..98cd0a5b6c68a36ac46a287045d7a66256240796 100644
--- a/externals/iem/iem_spec2/src/spec2_sqrt~.c
+++ b/externals/iem/iem_spec2/src/spec2_sqrt~.c
@@ -49,7 +49,7 @@ static void spec2_sqrt_tilde_dsp(t_spec2_sqrt_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_sqrt_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_sqrt_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_sqrt_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_stretch~.c b/externals/iem/iem_spec2/src/spec2_stretch~.c
index 9d060af5e6c0c91be62230dc02233757549e0b38..ef00e5b50fb486a2317f573d17362bef6c6dcd82 100644
--- a/externals/iem/iem_spec2/src/spec2_stretch~.c
+++ b/externals/iem/iem_spec2/src/spec2_stretch~.c
@@ -72,7 +72,7 @@ static void spec2_stretch_tilde_dsp(t_spec2_stretch_tilde *x, t_signal **sp)
     x->x_spec = (t_float *)resizebytes(x->x_spec, (x->x_blocksize+1)*sizeof(t_float), (n+1)*sizeof(t_float));
     x->x_blocksize = n;
   }
-  dsp_add(spec2_stretch_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_stretch_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_stretch_tilde_new(t_floatarg mul)
diff --git a/externals/iem/iem_spec2/src/spec2_sub~.c b/externals/iem/iem_spec2/src/spec2_sub~.c
index b972d4fd01b165bed6bbcdd9efe13eecf44cfe9d..b5ff9ca5280163f05c18917e9a333f336b79261e 100644
--- a/externals/iem/iem_spec2/src/spec2_sub~.c
+++ b/externals/iem/iem_spec2/src/spec2_sub~.c
@@ -70,9 +70,9 @@ static void spec2_sub_tilde_dsp(t_spec2_sub_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_sub_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_sub_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_sub_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_sub_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_sub_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_sum~.c b/externals/iem/iem_spec2/src/spec2_sum~.c
index 796447de7f9ecfb1f809f70e825baca2371741f7..ad656bd4abe7f8d6e57c86ba121fb12480da088e 100644
--- a/externals/iem/iem_spec2/src/spec2_sum~.c
+++ b/externals/iem/iem_spec2/src/spec2_sum~.c
@@ -96,9 +96,9 @@ static void spec2_sum_tilde_dsp(t_spec2_sum_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_sum_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_sum_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_sum_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_sum_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_sum_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_tab_conv~.c b/externals/iem/iem_spec2/src/spec2_tab_conv~.c
index 98059209756ace0211b3ab1e413a639bdecf9a9c..6bb7baf6958058edb2e6ffd2d1544a552f2ebfd1 100644
--- a/externals/iem/iem_spec2/src/spec2_tab_conv~.c
+++ b/externals/iem/iem_spec2/src/spec2_tab_conv~.c
@@ -106,7 +106,7 @@ static void spec2_tab_conv_tilde_dsp(t_spec2_tab_conv_tilde *x, t_signal **sp)
     x->x_blocksize = n;
   }
   
-  dsp_add(spec2_tab_conv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_tab_conv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void spec2_tab_conv_tilde_free(t_spec2_tab_conv_tilde *x)
diff --git a/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c b/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
index e9f0eb06d1c213f5fbe464c9c0297f22554fb0d8..74d3a45df171711eeff85f50ba8371e509ef968a 100644
--- a/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
+++ b/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
@@ -137,9 +137,9 @@ static void spec2_tabreceive_enable_tilde_dsp(t_spec2_tabreceive_enable_tilde *x
       vecsize = n;
     vecsize /= 2;
     if(vecsize&15)
-      dsp_add(spec2_tabreceive_enable_tilde_perform, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_enable_tilde_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
     else
-      dsp_add(spec2_tabreceive_enable_tilde_perf16, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_enable_tilde_perf16, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem/iem_spec2/src/spec2_tabreceive~.c b/externals/iem/iem_spec2/src/spec2_tabreceive~.c
index ac30b5c56eb07492d7f57f30fe124709f1f63943..dbf38f3a17c05b2be772a40f607830c1ff41f0e8 100644
--- a/externals/iem/iem_spec2/src/spec2_tabreceive~.c
+++ b/externals/iem/iem_spec2/src/spec2_tabreceive~.c
@@ -125,9 +125,9 @@ static void spec2_tabreceive_tilde_dsp(t_spec2_tabreceive_tilde *x, t_signal **s
       vecsize = n;
     vecsize /= 2;
     if(vecsize&15)
-      dsp_add(spec2_tabreceive_tilde_perform, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_tilde_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
     else
-      dsp_add(spec2_tabreceive_tilde_perf16, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_tilde_perf16, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem/iemmatrix/src/mtx_mul~.c b/externals/iem/iemmatrix/src/mtx_mul~.c
index 3f072f35bf8f4b959569a43246214da76a51e3a5..ee9ba932229d692bf8ba261061db38a55e37fe1d 100644
--- a/externals/iem/iemmatrix/src/mtx_mul~.c
+++ b/externals/iem/iemmatrix/src/mtx_mul~.c
@@ -776,10 +776,10 @@ static void matrix_multilde_dsp(t_matrix_multilde *x, t_signal **sp)
 
   if(n&7)
     {
-      dsp_add(matrix_multilde_perform, 2, x, n);
+      dsp_add(matrix_multilde_perform, 2, x, (t_int)n);
     }
   else {
-    dsp_add(matrix_multilde_perf8, 2, x, n);
+    dsp_add(matrix_multilde_perf8, 2, x, (t_int)n);
   }
 }
 
diff --git a/externals/iem16/src/del16read~.c b/externals/iem16/src/del16read~.c
index cc148a9d5452dde3be8465e7ba35e0c1ab180355..30f3ea6e0984b9bb095de90e0663af7ff1401909 100644
--- a/externals/iem16/src/del16read~.c
+++ b/externals/iem16/src/del16read~.c
@@ -88,7 +88,7 @@ static void sigdel16read_dsp(t_sigdel16read *x, t_signal **sp){
 		    0 : delwriter->x_vecsize);
     sigdel16read_16bit(x, x->x_deltime);
     dsp_add(sigdel16read_perform, 4,
-    	    sp[0]->s_vec, &delwriter->x_cspace, &x->x_delsamps, sp[0]->s_n);
+    	    sp[0]->s_vec, &delwriter->x_cspace, &x->x_delsamps, (t_int)sp[0]->s_n);
   }
   else if (*x->x_sym->s_name)
     error("delread~: %s: no such delwrite~",x->x_sym->s_name);
diff --git a/externals/iem16/src/del16write~.c b/externals/iem16/src/del16write~.c
index 56f63237b635948838e574efee7f8323650cd12f..05f3862bb287b34034b8d460db3c1ee8a90c004e 100644
--- a/externals/iem16/src/del16write~.c
+++ b/externals/iem16/src/del16write~.c
@@ -67,7 +67,7 @@ static t_int *sigdel16write_perform(t_int *w){
 static void sigdel16write_dsp(t_sigdel16write *x, t_signal **sp){
   dsp_add(sigdel16write_perform, 3, sp[0]->s_vec, &x->x_cspace, sp[0]->s_n);
   x->x_sortno = ugen_getsortno();
-  sigdel16write_checkvecsize(x, sp[0]->s_n);
+  sigdel16write_checkvecsize(x, (t_int)sp[0]->s_n);
 }
 
 static void sigdel16write_free(t_sigdel16write *x){
diff --git a/externals/iem16/src/tab16play~.c b/externals/iem16/src/tab16play~.c
index 4af5df75df82d0b10c26c2c399e3d419c01ac07a..1f5ec96325587691815848dd86fb0f6deaf2d2da 100644
--- a/externals/iem16/src/tab16play~.c
+++ b/externals/iem16/src/tab16play~.c
@@ -90,7 +90,7 @@ void tab16play_tilde_set(t_tab16play_tilde *x, t_symbol *s){
 
 static void tab16play_tilde_dsp(t_tab16play_tilde *x, t_signal **sp){
   tab16play_tilde_set(x, x->x_arrayname);
-  dsp_add(tab16play_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(tab16play_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tab16play_tilde_list(t_tab16play_tilde *x, t_symbol *s,
diff --git a/externals/iem16/src/tab16read4~.c b/externals/iem16/src/tab16read4~.c
index c85ea0e55b2dfd0ad78d96984ced34b0134c8b59..34a4af18b3a1bb84ddfd85d75db45254dcd80140 100644
--- a/externals/iem16/src/tab16read4~.c
+++ b/externals/iem16/src/tab16read4~.c
@@ -101,7 +101,7 @@ static void tab16read4_tilde_dsp(t_tab16read4_tilde *x, t_signal **sp){
   tab16read4_tilde_set(x, x->x_arrayname);
 
   dsp_add(tab16read4_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tab16read4_tilde_setup(void){
diff --git a/externals/iem16/src/tab16read~.c b/externals/iem16/src/tab16read~.c
index e384bb80619cb3a81ec42f172dfaf8a8da0ac5d7..be86f093e480d78c28c8cacdb3f31e543da389cc 100644
--- a/externals/iem16/src/tab16read~.c
+++ b/externals/iem16/src/tab16read~.c
@@ -86,7 +86,7 @@ static void tab16read_tilde_dsp(t_tab16read_tilde *x, t_signal **sp){
   tab16read_tilde_set(x, x->x_arrayname);
 
   dsp_add(tab16read_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/iem16/src/tab16receive~.c b/externals/iem16/src/tab16receive~.c
index 6eaa8d6986c343658d4e1b1c105b70439fb875d3..c0006c002bd7e3e88ace1af11eac65d6ae83fc07 100644
--- a/externals/iem16/src/tab16receive~.c
+++ b/externals/iem16/src/tab16receive~.c
@@ -54,7 +54,7 @@ static void tab16receive_dsp(t_tab16receive *x, t_signal **sp){
     int n = sp[0]->s_n;
     if (n < vecsize) vecsize = n;
     table16_usedindsp(a);
-    dsp_add(tab16receive_perform, 3, x, sp[0]->s_vec, vecsize);
+    dsp_add(tab16receive_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem16/src/tab16send~.c b/externals/iem16/src/tab16send~.c
index 9e8ede54257b07bd11ac016a62fefec804928b73..65bae5a026267299c2558d2a409a54e41d9e158f 100644
--- a/externals/iem16/src/tab16send~.c
+++ b/externals/iem16/src/tab16send~.c
@@ -74,7 +74,7 @@ static void tab16send_dsp(t_tab16send *x, t_signal **sp){
     if (x->x_graphcount > ticksper) x->x_graphcount = ticksper;
     if (n < vecsize) vecsize = n;
     table16_usedindsp(a);
-    dsp_add(tab16send_perform, 3, x, sp[0]->s_vec, vecsize);
+    dsp_add(tab16send_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem16/src/tab16write~.c b/externals/iem16/src/tab16write~.c
index f88574311a0f8b1c1123375a99e0a656fabeaafb..edcc37add09d2cefa3a37406853845b8b2105422 100644
--- a/externals/iem16/src/tab16write~.c
+++ b/externals/iem16/src/tab16write~.c
@@ -78,7 +78,7 @@ void tab16write_tilde_set(t_tab16write_tilde *x, t_symbol *s){
 
 static void tab16write_tilde_dsp(t_tab16write_tilde *x, t_signal **sp){
   tab16write_tilde_set(x, x->x_arrayname);
-  dsp_add(tab16write_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(tab16write_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tab16write_tilde_bang(t_tab16write_tilde *x){
diff --git a/externals/iem16/src/vd16~.c b/externals/iem16/src/vd16~.c
index 7a85eefb06d225faef3b734e635dbe60bac012e8..16744ea020a73da6ff3271299f317a5efd5e4dc3 100644
--- a/externals/iem16/src/vd16~.c
+++ b/externals/iem16/src/vd16~.c
@@ -92,7 +92,7 @@ static void sig16vd_dsp(t_sig16vd *x, t_signal **sp){
 		    0 : delwriter->x_vecsize);
     dsp_add(sig16vd_perform, 5,
     	    sp[0]->s_vec, sp[1]->s_vec,
-	    &delwriter->x_cspace, x, sp[0]->s_n);
+	    &delwriter->x_cspace, x, (t_int)sp[0]->s_n);
   }
   else error("vd~: %s: no such delwrite~",x->x_sym->s_name);
 }
diff --git a/externals/iemlib/iem_mp3/src/mp3play~.c b/externals/iemlib/iem_mp3/src/mp3play~.c
index 5658b238e7027c8d6d81e5768d95b830b9c613c1..d4c342a442ee338513b978da06b562e04864337d 100644
--- a/externals/iemlib/iem_mp3/src/mp3play~.c
+++ b/externals/iemlib/iem_mp3/src/mp3play~.c
@@ -3758,7 +3758,7 @@ static void mp3play_tilde_dsp(t_mp3play_tilde *x, t_signal **sp)
 {
     x->obj_sr = (int)(sp[0]->s_sr);
     x->obj_n = (int)(sp[0]->s_n);
-    dsp_add(mp3play_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mp3play_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iemlib/iem_t3_lib/src/t3_line~.c b/externals/iemlib/iem_t3_lib/src/t3_line~.c
index 92878c63c6b79450742791cc77ca19131617db97..d825cc940449dfc30dc11a401d620bb061ea9666 100644
--- a/externals/iemlib/iem_t3_lib/src/t3_line~.c
+++ b/externals/iemlib/iem_t3_lib/src/t3_line~.c
@@ -231,7 +231,7 @@ static void t3_line_tilde_dsp(t_t3_line_tilde *x, t_signal **sp)
     *trans++ = val;
   x->x_ms2samps = 0.001*(double)sp[0]->s_sr;
   x->x_ticks2ms = (double)x->x_n / x->x_ms2samps;
-  dsp_add(t3_line_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(t3_line_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void t3_line_tilde_free(t_t3_line_tilde *x)
diff --git a/externals/iemlib/iem_t3_lib/src/t3_sig~.c b/externals/iemlib/iem_t3_lib/src/t3_sig~.c
index fdbb5e8f60846d8c2fb149bce46081994b48d88d..188864dfd2a74b5b9045753de9d55560046a080f 100644
--- a/externals/iemlib/iem_t3_lib/src/t3_sig~.c
+++ b/externals/iemlib/iem_t3_lib/src/t3_sig~.c
@@ -154,9 +154,9 @@ static void t3_sig_tilde_dsp(t_t3_sig_tilde *x, t_signal **sp)
     *trans++ = val;
   
   if((sp[0]->s_n)&7)
-    dsp_add(t3_sig_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(t3_sig_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   else
-    dsp_add(t3_sig_tilde_perf8, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(t3_sig_tilde_perf8, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void t3_sig_tilde_free(t_t3_sig_tilde *x)
diff --git a/externals/iemlib/iemlib1/src/FIR~.c b/externals/iemlib/iemlib1/src/FIR~.c
index e3dd3739e869ea25cb8be8e26e9f4bd948398d23..00ff2b725035fe6541b7f913ddc9c8ed440f8a7f 100644
--- a/externals/iemlib/iemlib1/src/FIR~.c
+++ b/externals/iemlib/iemlib1/src/FIR~.c
@@ -141,7 +141,7 @@ void FIR_tilde_set(t_FIR_tilde *x, t_symbol *table_name, t_floatarg forder)
 static void FIR_tilde_dsp(t_FIR_tilde *x, t_signal **sp)
 {
   FIR_tilde_set(x, x->x_table_name, x->x_fir_order);
-  dsp_add(FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *FIR_tilde_new(t_symbol *array_name, t_floatarg forder)
diff --git a/externals/iemlib/iemlib1/src/filter~.c b/externals/iemlib/iemlib1/src/filter~.c
index 62ebcdbd7b79a62fc84423fe9645cba09eb56d88..30be3ca0fee5d1017aeafc174cb9047730c1aa88 100644
--- a/externals/iemlib/iemlib1/src/filter~.c
+++ b/externals/iemlib/iemlib1/src/filter~.c
@@ -1178,16 +1178,16 @@ static void filter_tilde_dsp(t_filter_tilde *x, t_signal **sp)
     if(x->x_para.dp.filter_function_is_first_order)
     {
       if(n&7)
-        dsp_add(filter_tilde_dp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_dp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
     else
     {
       if(n&7)
-        dsp_add(filter_tilde_dp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_dp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
   }
   else
@@ -1221,16 +1221,16 @@ static void filter_tilde_dsp(t_filter_tilde *x, t_signal **sp)
     if(x->x_para.sp.filter_function_is_first_order)
     {
       if(n&7)
-        dsp_add(filter_tilde_sp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_sp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
     else
     {
       if(n&7)
-        dsp_add(filter_tilde_sp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_sp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
   }
 }
diff --git a/externals/iemlib/iemlib1/src/hml_shelf~.c b/externals/iemlib/iemlib1/src/hml_shelf~.c
index 4727d25d90d63cc6779ffdb2753e9d17cefb0ca6..69c59c48b7cc657f32994cd0748b84b885abab82 100644
--- a/externals/iemlib/iemlib1/src/hml_shelf~.c
+++ b/externals/iemlib/iemlib1/src/hml_shelf~.c
@@ -457,9 +457,9 @@ static void hml_shelf_tilde_dsp(t_hml_shelf_tilde *x, t_signal **sp)
   x->ticks = i;
   x->rcp_ticks = 1.0f / (t_float)i;
   if(n&7)
-    dsp_add(hml_shelf_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(hml_shelf_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(hml_shelf_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(hml_shelf_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *hml_shelf_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/iem_cot4~.c b/externals/iemlib/iemlib1/src/iem_cot4~.c
index 2951193c6866061a16c6c15ebfe4496760924f0d..7587132d40c012623498dc749a54b9dd197061b5 100644
--- a/externals/iemlib/iemlib1/src/iem_cot4~.c
+++ b/externals/iemlib/iemlib1/src/iem_cot4~.c
@@ -121,7 +121,7 @@ static t_int *iem_cot4_tilde_perform(t_int *w)
 static void iem_cot4_tilde_dsp(t_iem_cot4_tilde *x, t_signal **sp)
 {
   x->x_sr = 2.0f / (t_float)sp[0]->s_sr;
-  dsp_add(iem_cot4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(iem_cot4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void iem_cot4_tilde_maketable(void)
diff --git a/externals/iemlib/iemlib1/src/iem_delay~.c b/externals/iemlib/iemlib1/src/iem_delay~.c
index d08e3c471835631d2741a18a95b10ad125268699..2ef2173a5ef2f31e57e97766f274ad842b78c7cc 100644
--- a/externals/iemlib/iemlib1/src/iem_delay~.c
+++ b/externals/iemlib/iemlib1/src/iem_delay~.c
@@ -151,9 +151,9 @@ static void iem_delay_tilde_dsp(t_iem_delay_tilde *x, t_signal **sp)
   }
   
   if(blocksize&7)
-    dsp_add(iem_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize);
+    dsp_add(iem_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)blocksize);
   else
-    dsp_add(iem_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize);
+    dsp_add(iem_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)blocksize);
 }
 
 static void *iem_delay_tilde_new(t_floatarg max_delay_ms, t_floatarg current_delay_ms)
diff --git a/externals/iemlib/iemlib1/src/iem_pow4~.c b/externals/iemlib/iemlib1/src/iem_pow4~.c
index 70b32ceb24de21fe9b683ecfa3cf03e799443bbf..7a934b673061a05b45432130802db6b17ecc1a7a 100644
--- a/externals/iemlib/iemlib1/src/iem_pow4~.c
+++ b/externals/iemlib/iemlib1/src/iem_pow4~.c
@@ -64,7 +64,7 @@ static t_int *iem_pow4_tilde_perform(t_int *w)
 
 static void iem_pow4_tilde_dsp(t_iem_pow4_tilde *x, t_signal **sp)
 {
-  dsp_add(iem_pow4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(iem_pow4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *iem_pow4_tilde_new(t_floatarg f)
diff --git a/externals/iemlib/iemlib1/src/iem_sqrt4~.c b/externals/iemlib/iemlib1/src/iem_sqrt4~.c
index 21a599b8a326cb184db0ca8f07419542fc9a2a4b..88275fe9f96bd57c6c17977b3125198d0d25601f 100644
--- a/externals/iemlib/iemlib1/src/iem_sqrt4~.c
+++ b/externals/iemlib/iemlib1/src/iem_sqrt4~.c
@@ -59,7 +59,7 @@ static t_int *iem_sqrt4_tilde_perform(t_int *w)
 
 static void iem_sqrt4_tilde_dsp(t_iem_sqrt4_tilde *x, t_signal **sp)
 {
-  dsp_add(iem_sqrt4_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(iem_sqrt4_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void iem_sqrt4_tilde_init(void)
diff --git a/externals/iemlib/iemlib1/src/lp1_t~.c b/externals/iemlib/iemlib1/src/lp1_t~.c
index 9db41ac3db32eb37bc2844f4b943b8303732dbc3..e29e4faddc68d331acb5c2dfdd1b68fc02bfc3c1 100644
--- a/externals/iemlib/iemlib1/src/lp1_t~.c
+++ b/externals/iemlib/iemlib1/src/lp1_t~.c
@@ -162,9 +162,9 @@ static void lp1_t_tilde_dsp(t_lp1_t_tilde *x, t_signal **sp)
     x->c1 = exp((x->sr)/x->cur_t);
   x->c0 = 1.0 - x->c1;
   if(n&7)
-    dsp_add(lp1_t_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(lp1_t_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(lp1_t_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(lp1_t_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *lp1_t_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/mov_avrg_kern~.c b/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
index 04755ffb591ad145e80c9adbc0f4c8eeebcd248c..058fa0499ba1e6dfa19bf764da580bc6bcfc2d5f 100644
--- a/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
+++ b/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
@@ -101,7 +101,7 @@ static void mov_avrg_kern_tilde_dsp(t_mov_avrg_kern_tilde *x, t_signal **sp)
   x->x_counter = x->x_nsamps;
   x->x_wn1 = 0.0;
   x->x_a0 = 1.0/(double)(x->x_nsamps);
-  dsp_add(mov_avrg_kern_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n);
+  dsp_add(mov_avrg_kern_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *mov_avrg_kern_tilde_new(t_floatarg mstime)
diff --git a/externals/iemlib/iemlib1/src/para_bp2~.c b/externals/iemlib/iemlib1/src/para_bp2~.c
index e25368fe3bcb26422dfdd6c30d8be52ab994a696..4d1d20a3246d57dff8684336c9838f90e90b73d3 100644
--- a/externals/iemlib/iemlib1/src/para_bp2~.c
+++ b/externals/iemlib/iemlib1/src/para_bp2~.c
@@ -330,9 +330,9 @@ static void para_bp2_tilde_dsp(t_para_bp2_tilde *x, t_signal **sp)
     x->cur_l = co/si;
   }
   if(n&7)
-    dsp_add(para_bp2_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(para_bp2_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(para_bp2_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(para_bp2_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *para_bp2_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/peakenv_hold~.c b/externals/iemlib/iemlib1/src/peakenv_hold~.c
index c2a58244be9f9e78adc23a9948e1120c8f092bef..e6f8880febaf3e3add5a37051d0d9dfaa8af9c31 100644
--- a/externals/iemlib/iemlib1/src/peakenv_hold~.c
+++ b/externals/iemlib/iemlib1/src/peakenv_hold~.c
@@ -91,7 +91,7 @@ static void peakenv_hold_tilde_dsp(t_peakenv_hold_tilde *x, t_signal **sp)
   x->x_sr = (double)sp[0]->s_sr;
   peakenv_hold_tilde_ft1(x, x->x_holdtime);
   peakenv_hold_tilde_ft2(x, x->x_releasetime);
-  dsp_add(peakenv_hold_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(peakenv_hold_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *peakenv_hold_tilde_new(t_float t_hold, t_float t_rel)
diff --git a/externals/iemlib/iemlib1/src/peakenv~.c b/externals/iemlib/iemlib1/src/peakenv~.c
index d515f6986414d9a596785aaa1826bbc9b97fad90..1c85372c46214427d606e89f380b436c43dd7c73 100644
--- a/externals/iemlib/iemlib1/src/peakenv~.c
+++ b/externals/iemlib/iemlib1/src/peakenv~.c
@@ -66,7 +66,7 @@ static void peakenv_tilde_dsp(t_peakenv_tilde *x, t_signal **sp)
 {
   x->x_sr = (double)sp[0]->s_sr;
   peakenv_tilde_ft1(x, x->x_releasetime);
-  dsp_add(peakenv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(peakenv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *peakenv_tilde_new(t_floatarg f)
diff --git a/externals/iemlib/iemlib1/src/prvu~.c b/externals/iemlib/iemlib1/src/prvu~.c
index f7bae03929c97bfe574145189cd340dd7720e654..0d966f9274bce8bde1abe594f4c6fefb13042d97 100644
--- a/externals/iemlib/iemlib1/src/prvu~.c
+++ b/externals/iemlib/iemlib1/src/prvu~.c
@@ -136,7 +136,7 @@ static void prvu_tilde_dsp(t_prvu_tilde *x, t_signal **sp)
 {
   x->x_sr = 0.001*(t_float)sp[0]->s_sr;
   x->x_rcp = 1.0/(x->x_sr*x->x_metro_time);
-  dsp_add(prvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(prvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock_metro, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/pvu~.c b/externals/iemlib/iemlib1/src/pvu~.c
index 7aae0b4dd69e375f78c23ede6e64e35e6f8b1dc0..be929288de82274408157fa06b5b046b4aac2f05 100644
--- a/externals/iemlib/iemlib1/src/pvu~.c
+++ b/externals/iemlib/iemlib1/src/pvu~.c
@@ -110,7 +110,7 @@ static t_int *pvu_tilde_perform(t_int *w)
 
 static void pvu_tilde_dsp(t_pvu_tilde *x, t_signal **sp)
 {
-  dsp_add(pvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(pvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/rvu~.c b/externals/iemlib/iemlib1/src/rvu~.c
index 539ee63198b377425a4a1e74080078b24225dec3..da3cdf6e4ff689aaeb3a1bc9c5c295c50b8d7511 100644
--- a/externals/iemlib/iemlib1/src/rvu~.c
+++ b/externals/iemlib/iemlib1/src/rvu~.c
@@ -102,7 +102,7 @@ static void rvu_tilde_dsp(t_rvu_tilde *x, t_signal **sp)
 {
   x->x_sr = 0.001*(t_float)sp[0]->s_sr;
   x->x_rcp = 1.0/(x->x_sr*x->x_metro_time);
-  dsp_add(rvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(rvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock_metro, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/sin_freq~.c b/externals/iemlib/iemlib1/src/sin_freq~.c
index 093806c58809476d675d96f48c1e0547f0a02197..436d665ab70f8eb24f012e15d939198082f14a62 100644
--- a/externals/iemlib/iemlib1/src/sin_freq~.c
+++ b/externals/iemlib/iemlib1/src/sin_freq~.c
@@ -63,7 +63,7 @@ static t_int *sin_freq_tilde_perform(t_int *w)
 static void sin_freq_tilde_dsp(t_sin_freq_tilde *x, t_signal **sp)
 {
   x->x_sr = (t_sample)sp[0]->s_sr;
-  dsp_add(sin_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(sin_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sin_freq_tilde_new(void)
diff --git a/externals/iemlib/iemlib1/src/sin_phase~.c b/externals/iemlib/iemlib1/src/sin_phase~.c
index 9684cd7b9072e4abb715aaec9f8b5d908ae966bb..9c281a720ca71e654e0d9b9337579514b8b692c2 100644
--- a/externals/iemlib/iemlib1/src/sin_phase~.c
+++ b/externals/iemlib/iemlib1/src/sin_phase~.c
@@ -89,7 +89,7 @@ static t_int *sin_phase_tilde_perform(t_int *w)
 
 static void sin_phase_tilde_dsp(t_sin_phase_tilde *x, t_signal **sp)
 {
-  dsp_add(sin_phase_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n);
+  dsp_add(sin_phase_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sin_phase_tilde_new(void)
diff --git a/externals/iemlib/iemlib1/src/sparse_FIR~.c b/externals/iemlib/iemlib1/src/sparse_FIR~.c
index 893e36c2a654156df19358e18d8744e716d58922..4ef520d8b32a3bc908c279da6873e82c5d99770e 100644
--- a/externals/iemlib/iemlib1/src/sparse_FIR~.c
+++ b/externals/iemlib/iemlib1/src/sparse_FIR~.c
@@ -221,7 +221,7 @@ static void sparse_FIR_tilde_order(t_sparse_FIR_tilde *x, t_floatarg fn)
 
 static void sparse_FIR_tilde_dsp(t_sparse_FIR_tilde *x, t_signal **sp)
 {
-  dsp_add(sparse_FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(sparse_FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sparse_FIR_tilde_new(t_floatarg fn)
diff --git a/externals/iemlib/iemlib1/src/vcf_filter~.c b/externals/iemlib/iemlib1/src/vcf_filter~.c
index f4a78f5da25b52ff79e3295cf4a29c15f5bdd03a..3541e4f19424033962fdb3c08b7075beffc063f7 100644
--- a/externals/iemlib/iemlib1/src/vcf_filter~.c
+++ b/externals/iemlib/iemlib1/src/vcf_filter~.c
@@ -282,20 +282,20 @@ static void vcf_filter_tilde_dsp(t_vcf_filter_tilde *x, t_signal **sp)
 {
   if(!strcmp(x->x_filtname,"bp2"))
     dsp_add(vcf_filter_tilde_perform_bp2, 6, sp[0]->s_vec, sp[1]->s_vec, 
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"rbp2"))
     dsp_add(vcf_filter_tilde_perform_rbp2, 6, sp[0]->s_vec, sp[1]->s_vec, 
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"lp2"))
     dsp_add(vcf_filter_tilde_perform_lp2, 6, sp[0]->s_vec, sp[1]->s_vec,
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"hp2"))
     dsp_add(vcf_filter_tilde_perform_hp2, 6, sp[0]->s_vec, sp[1]->s_vec,
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else
   {
     dsp_add(vcf_filter_tilde_perform_snafu, 6, sp[0]->s_vec, sp[1]->s_vec,
-      sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+      sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
     post("vcf_filter~-Error: 1. initial-arguments: <sym> kind: lp2, bp2, rbp2, hp2!");
   }
 }
diff --git a/externals/iemlib/iemlib2/src/LFO_noise~.c b/externals/iemlib/iemlib2/src/LFO_noise~.c
index a5774c8bb210808757447209c5d0233b0a303a00..aad4a135fb5112a330406f96a72fdb72e92ceaf5 100644
--- a/externals/iemlib/iemlib2/src/LFO_noise~.c
+++ b/externals/iemlib/iemlib2/src/LFO_noise~.c
@@ -107,7 +107,7 @@ static void LFO_noise_tilde_float(t_LFO_noise_tilde *x, t_floatarg freq)
 static void LFO_noise_tilde_dsp(t_LFO_noise_tilde *x, t_signal **sp)
 {
   x->x_fact = 2.0f / sp[0]->s_sr;
-  dsp_add(LFO_noise_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(LFO_noise_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 void LFO_noise_tilde_setup(void)
diff --git a/externals/iemlib/iemlib2/src/fade~.c b/externals/iemlib/iemlib2/src/fade~.c
index 1087b0b09e4c02716081f2bee583b5b6af2e15fd..5b29593f3d94cfeb6819c7212825c8a18cbffadd 100644
--- a/externals/iemlib/iemlib2/src/fade~.c
+++ b/externals/iemlib/iemlib2/src/fade~.c
@@ -107,7 +107,7 @@ static t_int *fade_tilde_perform(t_int *w)
 
 static void fade_tilde_dsp(t_fade_tilde *x, t_signal **sp)
 {
-  dsp_add(fade_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(fade_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void fade_tilde_maketable(void)
diff --git a/externals/iemlib/iemlib2/src/m2f~.c b/externals/iemlib/iemlib2/src/m2f~.c
index 3cecbc845a375fb6842bee32b7cbaa5469b24df3..89da053a3b13902e9f2ef4140616ea871497e78e 100644
--- a/externals/iemlib/iemlib2/src/m2f~.c
+++ b/externals/iemlib/iemlib2/src/m2f~.c
@@ -87,7 +87,7 @@ static t_int *m2f_tilde_perform(t_int *w)
 
 static void m2f_tilde_dsp(t_m2f_tilde *x, t_signal **sp)
 {
-  dsp_add(m2f_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(m2f_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void m2f_tilde_maketable(void)
diff --git a/externals/lyonpotpourri/adsr~.c b/externals/lyonpotpourri/adsr~.c
index 467187dd978cfad856265984cb5e678a9dc6252b..8f684f23e49514f6309a1fac92e5312414cd573c 100755
--- a/externals/lyonpotpourri/adsr~.c
+++ b/externals/lyonpotpourri/adsr~.c
@@ -326,7 +326,7 @@ void adsr_dsp(t_adsr *x, t_signal **sp)
 		x->ebreak3 = x->asamps+x->dsamps+x->ssamps;
 		x->counter = 0;	
 	}
-	dsp_add(adsr_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(adsr_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/lyonpotpourri/arrayfilt~.c b/externals/lyonpotpourri/arrayfilt~.c
index 01f17fc7add921df67827daf014d93baa24fee41..d347bc9ddc702320007e5b0ddb51866d01b6adae 100755
--- a/externals/lyonpotpourri/arrayfilt~.c
+++ b/externals/lyonpotpourri/arrayfilt~.c
@@ -86,5 +86,5 @@ exit:
 void arrayfilt_dsp(t_arrayfilt *x, t_signal **sp)
 {
     dsp_add(arrayfilt_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/bashfest~.c b/externals/lyonpotpourri/bashfest~.c
index 8055eced3470d91a43e119c28727b581cf0a2dfc..c2eea11e389aab6d5e1dd960501fba0b274a961b 100755
--- a/externals/lyonpotpourri/bashfest~.c
+++ b/externals/lyonpotpourri/bashfest~.c
@@ -1331,10 +1331,10 @@ void bashfest_dsp(t_bashfest *x, t_signal **sp)
 	
     if(x->hosed){
         dsp_add(bashfest_perform_hosed, 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);
     } else {
         dsp_add(bashfest_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/lyonpotpourri/buffet~.c b/externals/lyonpotpourri/buffet~.c
index f85240ae89ea8a103e8a6375a15ce909c7bcab94..d11f2ca7b3dc8e42c1e48b81ee1baf53d85d040f 100755
--- a/externals/lyonpotpourri/buffet~.c
+++ b/externals/lyonpotpourri/buffet~.c
@@ -2155,7 +2155,7 @@ void buffet_dsp(t_buffet *x, t_signal **sp)
 	}
 	
 	dsp_add(buffet_perform, 3, x,
-			sp[0]->s_vec, sp[0]->s_n);
+			sp[0]->s_vec, (t_int)sp[0]->s_n);
 	
 }
 
diff --git a/externals/lyonpotpourri/bvplay~.c b/externals/lyonpotpourri/bvplay~.c
index 0f759f51300a4fcbcc9b6ef560416761be11be94..906b43023b183eaab2f9550980e671bfdfcddd0d 100755
--- a/externals/lyonpotpourri/bvplay~.c
+++ b/externals/lyonpotpourri/bvplay~.c
@@ -283,14 +283,14 @@ void bvplay_dsp(t_bvplay *x, t_signal **sp)
     	x->taper_frames = x->R * x->taper_dur;
     }
     // Pd buffers always mono ...
-    dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     /*
     if( x->wavebuf->b_nchans == 1 ) {
     	// post("initiating mono processor");
-   	 	dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, sp[0]->s_n);
+   	 	dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     } else if( x->wavebuf->b_nchans == 2) {
     	// post("initiating stereo processor");
-   	 	dsp_add(bvplay_perform_stereo,4,x,sp[0]->s_vec,sp[1]->s_vec,sp[0]->s_n);
+   	 	dsp_add(bvplay_perform_stereo,4,x,sp[0]->s_vec,sp[1]->s_vec,(t_int)sp[0]->s_n);
     } else {
      	post("%s: bad channel spec: %d, cannot initiate dsp code",OBJECT_NAME,  x->wavebuf->b_nchans);
     }*/
diff --git a/externals/lyonpotpourri/cartopol~.c b/externals/lyonpotpourri/cartopol~.c
index 094eb208d1f860a6820a134372f73adf7163c82e..0e53e2a0fa321ef4b1153d5c1df7712342a6cb99 100755
--- a/externals/lyonpotpourri/cartopol~.c
+++ b/externals/lyonpotpourri/cartopol~.c
@@ -59,5 +59,5 @@ t_int *cartopol_perform(t_int *w)
 void cartopol_dsp(t_cartopol *x, t_signal **sp)
 {
     dsp_add(cartopol_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/channel~.c b/externals/lyonpotpourri/channel~.c
index b281944d4446aa975f71596513e962e9f6446bb8..d2776a74af7f08c628f8b9f5308fa3655df1d671 100755
--- a/externals/lyonpotpourri/channel~.c
+++ b/externals/lyonpotpourri/channel~.c
@@ -79,6 +79,6 @@ t_int *channel_perform(t_int *w)
 
 void channel_dsp(t_channel *x, t_signal **sp)
 {
-    dsp_add(channel_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(channel_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/chopper~.c b/externals/lyonpotpourri/chopper~.c
index 71550cc4f719d695e45ea2b9223d9ec4912bcc1b..1d570140c5d6537b44b5eee2f105f02e20bf482a 100755
--- a/externals/lyonpotpourri/chopper~.c
+++ b/externals/lyonpotpourri/chopper~.c
@@ -897,7 +897,7 @@ void chopper_dsp(t_chopper *x, t_signal **sp)
     return;
   }
 
-	dsp_add(chopper_pd_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(chopper_pd_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/lyonpotpourri/click2bang~.c b/externals/lyonpotpourri/click2bang~.c
index a95a6e995d8961d2e429917b56f1662595baf7ab..784cfdb18a201b93cffce4ee06a99e43f4e05bd7 100755
--- a/externals/lyonpotpourri/click2bang~.c
+++ b/externals/lyonpotpourri/click2bang~.c
@@ -59,6 +59,6 @@ t_int *click2bang_perform(t_int *w)
 
 void click2bang_dsp(t_click2bang *x, t_signal **sp)
 {
-    dsp_add(click2bang_perform, 3, x, sp[0]->s_vec,sp[0]->s_n);
+    dsp_add(click2bang_perform, 3, x, sp[0]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/click2float~.c b/externals/lyonpotpourri/click2float~.c
index f5671cdd65922b7c18dab1231ffe3593244e32a9..ff407b8f469cf4d5f7346e60ce25aea69db9052a 100755
--- a/externals/lyonpotpourri/click2float~.c
+++ b/externals/lyonpotpourri/click2float~.c
@@ -63,6 +63,6 @@ t_int *click2float_perform(t_int *w)
 
 void click2float_dsp(t_click2float *x, t_signal **sp)
 {
-    dsp_add(click2float_perform, 3, x, sp[0]->s_vec,sp[0]->s_n);
+    dsp_add(click2float_perform, 3, x, sp[0]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/clickhold~.c b/externals/lyonpotpourri/clickhold~.c
index 279dac57325fe91d3615a6dc5ceac683e1594eb8..2bff7021efa50eb452d2c23086e3d97bfb1eb110 100755
--- a/externals/lyonpotpourri/clickhold~.c
+++ b/externals/lyonpotpourri/clickhold~.c
@@ -56,6 +56,6 @@ t_int *clickhold_perform(t_int *w)
 
 void clickhold_dsp(t_clickhold *x, t_signal **sp)
 {
-    dsp_add(clickhold_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(clickhold_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/click~.c b/externals/lyonpotpourri/click~.c
index bea1af97e0e2f2a0bac289049de3a4e35a1d6e70..31cf0c19891d016186fac14f0941a45d12d4ddb3 100755
--- a/externals/lyonpotpourri/click~.c
+++ b/externals/lyonpotpourri/click~.c
@@ -73,6 +73,6 @@ t_int *click_perform(t_int *w)
 
 void click_dsp(t_click *x, t_signal **sp)
 {
-    dsp_add(click_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(click_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/counter~.c b/externals/lyonpotpourri/counter~.c
index 2c529b4309de0fc9284b91d004789863a5add578..ea685822cef98bb09f5a999ada111090d7d6a07f 100755
--- a/externals/lyonpotpourri/counter~.c
+++ b/externals/lyonpotpourri/counter~.c
@@ -123,5 +123,5 @@ static t_int *counter_perform(t_int *w)
 
 static void counter_dsp(t_counter *x, t_signal **sp)
 {
-    dsp_add(counter_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(counter_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/distortion~.c b/externals/lyonpotpourri/distortion~.c
index 498989740ffb316b66d4b0a6f30750565a520191..441f3b9b2df5a60d159e3ae698645396a61ec101 100755
--- a/externals/lyonpotpourri/distortion~.c
+++ b/externals/lyonpotpourri/distortion~.c
@@ -220,7 +220,7 @@ void distortion_mute(t_distortion *x, t_floatarg f) {
 void distortion_dsp(t_distortion *x, t_signal **sp)
 {
 
-	dsp_add(distortion2_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,sp[0]->s_n);
+	dsp_add(distortion2_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,(t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/lyonpotpourri/dynss~.c b/externals/lyonpotpourri/dynss~.c
index 70e9c9a39b56dadd9c661302895933695ea19730..c34af99518926efe24ecf1b4c6a506f8d015e653 100755
--- a/externals/lyonpotpourri/dynss~.c
+++ b/externals/lyonpotpourri/dynss~.c
@@ -320,5 +320,5 @@ void dynss_dsp(t_dynss *x, t_signal **sp)
 	if(x->srate != sp[0]->s_sr) {
 		x->srate = sp[0]->s_sr;
 	}
-	dsp_add(dynss_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,sp[0]->s_n);
+	dsp_add(dynss_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,(t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/expflam~.c b/externals/lyonpotpourri/expflam~.c
index 78bd5593fd95bc90274f68946bac9d4743072cc8..b7db2409d0943b92583e5a160c1b660c204030db 100755
--- a/externals/lyonpotpourri/expflam~.c
+++ b/externals/lyonpotpourri/expflam~.c
@@ -1 +1 @@
-#include "MSPd.h"


static t_class *expflam_class;

#define OBJECT_NAME "expflam~"

#define MAXFLAMS (64)
#define MAXATTACKS (128)
#define STOPGAIN (.001)


typedef struct
{
	int attack_count; // number of triggers per flam event
	float *attack_times; // trigger times in seconds
	int *attack_points; // trigger times in samples
	int fdex; // current flam
	float gainatten; // attenuation factor
	float amp; // current amp
	int atks;// number of attacks per flam
	long counter; // internal clock
	short active; // flag that flam is turned on


} t_flam;

typedef struct _expflam
{

	t_object x_obj;
	float x_f;
	t_flam *flams; // contain flams
	float start_delay; // initial flam delay
	float end_delay;// end delay
	float atten; // attenuation factor
	float slope;// slope of curve
	int atks;// number of attacks per flam
	float sr;
	float *trigvec; // hold input vector (to protect from memory sharing)
	float *bypvec; // ditto for flamgate vector
	short flamall; // flag to put a flam on everything
	short bypass; // flag to copy input to output without flam
	short flamgate_connected; // flag that a flamgate logical signal is connected to inlet 2

} t_expflam;


void *expflam_new(void);
t_int *expflam_perform(t_int *w);
void expflam_dsp(t_expflam *x, t_signal **sp);
void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv);
void expflam_free(t_expflam *x);
void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst);
void expflam_flamall(t_expflam *x, t_floatarg tog);
void expflam_bypass(t_expflam *x, t_floatarg tog);


void expflam_tilde_setup(void)
{
expflam_class = class_new(gensym("expflam~"),(t_newmethod)expflam_new,
(t_method)expflam_free, sizeof(t_expflam), 0, 0);
	CLASS_MAINSIGNALIN(expflam_class,t_expflam, x_f );
	class_addmethod(expflam_class,(t_method)expflam_dsp,gensym("dsp"),A_CANT,0);
	class_addmethod(expflam_class,(t_method)expflam_setflam,gensym("setflam"),A_GIMME,0);
	class_addmethod(expflam_class,(t_method)expflam_flamall,gensym("flamall"),A_FLOAT,0);
	class_addmethod(expflam_class,(t_method)expflam_bypass,gensym("bypass"),A_FLOAT,0);
    potpourri_announce(OBJECT_NAME);
}

void expflam_flamall(t_expflam *x, t_floatarg tog)
{
	x->flamall = (short) tog;
}

void expflam_bypass(t_expflam *x, t_floatarg tog)
{
	x->bypass = (short) tog;
}

void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst)
{
  if (msg==1) {
    switch (arg) {
    	case 0: sprintf(dst,"(signal) Trigger Click"); break;
		case 1: sprintf(dst,"(signal) Flam Gate"); break;
    }
  } else if (msg==2) {
    sprintf(dst,"(signal) Flam Clicks");
  }
}

void *expflam_new(void)
{
	int i;
	t_expflam *x = (t_expflam *)pd_new(expflam_class);
	inlet_new(&x->x_obj, &x->x_obj.ob_pd,gensym("signal"), gensym("signal"));
	outlet_new(&x->x_obj, gensym("signal"));
	x->flams = (t_flam *) calloc(MAXFLAMS, sizeof(t_flam));   
	for(i = 0; i < MAXFLAMS; i++){
	  	x->flams[i].attack_times = (float *) calloc(MAXATTACKS, sizeof(float));
	  	x->flams[i].attack_points = (int *) calloc(MAXATTACKS, sizeof(int));
	}
	   
	x->trigvec = malloc(8192 * sizeof(float)); // maximum vector size
	x->bypvec = malloc(8192 * sizeof(float)); // maximum vector size
    x->sr = sys_getsr();
    x->start_delay = .025;
    x->end_delay = 0.1;
    x->slope = -3.0;
    x->atks = 8;
    x->atten = 0.8;
	x->bypass = 0;
	x->flamall = 0;
	
    return x;
}

void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv)
{
  if( argc != 5 ){
    error("%s: setflam format: startdelay enddelay attacks slope gainatten",OBJECT_NAME);
    return;
  }
  x->start_delay = atom_getfloatarg(0,argc,argv) * 0.001;
  x->end_delay = atom_getfloatarg(1,argc,argv) * 0.001;
  x->atks = (int) atom_getfloatarg(2,argc,argv);
  x->slope = atom_getfloatarg(3,argc,argv);
  x->atten = atom_getfloatarg(4,argc,argv);
  if(x->slope == 0)
  	x->slope = .0001;
  if(x->start_delay <= 0)
  	x->start_delay = .00001;
  if(x->end_delay <= 0)
  	x->end_delay = .00001;
  if(x->atks < 2)
  	x->atks = 2;
  if(x->atks > MAXATTACKS){
  	post("%s: exceeded maximum of %d attacks",OBJECT_NAME, MAXATTACKS);
  	x->atks = MAXATTACKS;
  }
}

void expflam_free(t_expflam *x)
{
int i;

	free(x->trigvec);
	free(x->bypvec);
  for(i = 0; i < MAXFLAMS; i++){
  	free(x->flams[i].attack_times);
  	free(x->flams[i].attack_points);
  }
  free(x->flams);
	
}

t_int *expflam_perform(t_int *w)
{
	int i,j,k;
	t_expflam *x = (t_expflam *) (w[1]);
	float *in_vec = (t_float *)(w[2]);
	float *in2_vec = (t_float *)(w[3]);
	float *out_vec = (t_float *)(w[4]);
	int n = (int) w[5];
	
	float *trigvec = x->trigvec;
	float *flamgate_vec = x->bypvec;
	t_flam *flams = x->flams;
	int atks = x->atks;
	float atten = x->atten;
	float slope = x->slope;
	float start_delay = x->start_delay;
	float end_delay = x->end_delay;
	float sr = x->sr;
	short flamgate_connected = x->flamgate_connected;
	short flamall = x->flamall;
	
	/* in flamgate mode copy input to output and return */
	if(x->bypass){
		memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );
		return (w+6);
	}
	/* copy input vectors */
	memcpy( (void *)flamgate_vec, (void *)in2_vec, n * sizeof(float) );// the order of these mcopies matters
	memcpy( (void *)trigvec, (void *)in_vec, n * sizeof(float) );
	memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );// copy triggers to output for a start
		
	/* look for activation triggers */
	for(i = 0; i < n; i++){
		if(trigvec[i] && (flamgate_vec[i] || ! flamgate_connected || flamall ) ){	
//		post("triggered with t %f and flamgate %f",trigvec[i],flamgate_vec[i]);
			j = 0;  
			while(flams[j].active && j < MAXFLAMS){
				++j;
			}
			if(j >= MAXFLAMS){
				post("too many flams");				
			}
			else {
//				post("inserting flam at location %d",j);
				flams[j].active = 1;
				flams[j].attack_times[0] = 0.0;
				flams[j].attack_points[0] = i;
				flams[j].gainatten = atten;
				flams[j].amp = trigvec[i];
				flams[j].counter = 0;
				flams[j].fdex = 0;
				flams[j].atks = atks;
				
				for(k = 1; k < atks; k++){
					flams[j].attack_times[k] = start_delay + (end_delay - start_delay) * ((1.0 - exp((float)k * slope/((float)atks-1.0)))/(1.0-exp(slope)));
					flams[j].attack_times[k] += flams[j].attack_times[k - 1];
					flams[j].attack_points[k] = flams[j].attack_times[k] * sr + i;
				}						
			}
		}
	}
	/* now iterate through active flams */
	for( i = 0; i < n; i++){
		for(j = 0; j < MAXFLAMS; j++){
			if(flams[j].active){
				if(flams[j].counter >= flams[j].attack_points[flams[j].fdex]){
					out_vec[i] += flams[j].amp;
					flams[j].amp *= flams[j].gainatten;
					if( flams[j].amp <= STOPGAIN ){
						flams[j].active = 0;
					}
					flams[j].fdex++;
					if(flams[j].fdex >= flams[j].atks){
						flams[j].active = 0;
					}
				}
				flams[j].counter++;
			}
		}
	}

	return w+6;
}

void expflam_dsp(t_expflam *x, t_signal **sp)
{

	x->flamgate_connected = 1;
	dsp_add(expflam_perform, 5, x,
			sp[0]->s_vec, 
			sp[1]->s_vec,
			sp[2]->s_vec,  
			sp[0]->s_n
	);
}

\ No newline at end of file
+#include "MSPd.h"


static t_class *expflam_class;

#define OBJECT_NAME "expflam~"

#define MAXFLAMS (64)
#define MAXATTACKS (128)
#define STOPGAIN (.001)


typedef struct
{
	int attack_count; // number of triggers per flam event
	float *attack_times; // trigger times in seconds
	int *attack_points; // trigger times in samples
	int fdex; // current flam
	float gainatten; // attenuation factor
	float amp; // current amp
	int atks;// number of attacks per flam
	long counter; // internal clock
	short active; // flag that flam is turned on


} t_flam;

typedef struct _expflam
{

	t_object x_obj;
	float x_f;
	t_flam *flams; // contain flams
	float start_delay; // initial flam delay
	float end_delay;// end delay
	float atten; // attenuation factor
	float slope;// slope of curve
	int atks;// number of attacks per flam
	float sr;
	float *trigvec; // hold input vector (to protect from memory sharing)
	float *bypvec; // ditto for flamgate vector
	short flamall; // flag to put a flam on everything
	short bypass; // flag to copy input to output without flam
	short flamgate_connected; // flag that a flamgate logical signal is connected to inlet 2

} t_expflam;


void *expflam_new(void);
t_int *expflam_perform(t_int *w);
void expflam_dsp(t_expflam *x, t_signal **sp);
void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv);
void expflam_free(t_expflam *x);
void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst);
void expflam_flamall(t_expflam *x, t_floatarg tog);
void expflam_bypass(t_expflam *x, t_floatarg tog);


void expflam_tilde_setup(void)
{
expflam_class = class_new(gensym("expflam~"),(t_newmethod)expflam_new,
(t_method)expflam_free, sizeof(t_expflam), 0, 0);
	CLASS_MAINSIGNALIN(expflam_class,t_expflam, x_f );
	class_addmethod(expflam_class,(t_method)expflam_dsp,gensym("dsp"),A_CANT,0);
	class_addmethod(expflam_class,(t_method)expflam_setflam,gensym("setflam"),A_GIMME,0);
	class_addmethod(expflam_class,(t_method)expflam_flamall,gensym("flamall"),A_FLOAT,0);
	class_addmethod(expflam_class,(t_method)expflam_bypass,gensym("bypass"),A_FLOAT,0);
    potpourri_announce(OBJECT_NAME);
}

void expflam_flamall(t_expflam *x, t_floatarg tog)
{
	x->flamall = (short) tog;
}

void expflam_bypass(t_expflam *x, t_floatarg tog)
{
	x->bypass = (short) tog;
}

void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst)
{
  if (msg==1) {
    switch (arg) {
    	case 0: sprintf(dst,"(signal) Trigger Click"); break;
		case 1: sprintf(dst,"(signal) Flam Gate"); break;
    }
  } else if (msg==2) {
    sprintf(dst,"(signal) Flam Clicks");
  }
}

void *expflam_new(void)
{
	int i;
	t_expflam *x = (t_expflam *)pd_new(expflam_class);
	inlet_new(&x->x_obj, &x->x_obj.ob_pd,gensym("signal"), gensym("signal"));
	outlet_new(&x->x_obj, gensym("signal"));
	x->flams = (t_flam *) calloc(MAXFLAMS, sizeof(t_flam));   
	for(i = 0; i < MAXFLAMS; i++){
	  	x->flams[i].attack_times = (float *) calloc(MAXATTACKS, sizeof(float));
	  	x->flams[i].attack_points = (int *) calloc(MAXATTACKS, sizeof(int));
	}
	   
	x->trigvec = malloc(8192 * sizeof(float)); // maximum vector size
	x->bypvec = malloc(8192 * sizeof(float)); // maximum vector size
    x->sr = sys_getsr();
    x->start_delay = .025;
    x->end_delay = 0.1;
    x->slope = -3.0;
    x->atks = 8;
    x->atten = 0.8;
	x->bypass = 0;
	x->flamall = 0;
	
    return x;
}

void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv)
{
  if( argc != 5 ){
    error("%s: setflam format: startdelay enddelay attacks slope gainatten",OBJECT_NAME);
    return;
  }
  x->start_delay = atom_getfloatarg(0,argc,argv) * 0.001;
  x->end_delay = atom_getfloatarg(1,argc,argv) * 0.001;
  x->atks = (int) atom_getfloatarg(2,argc,argv);
  x->slope = atom_getfloatarg(3,argc,argv);
  x->atten = atom_getfloatarg(4,argc,argv);
  if(x->slope == 0)
  	x->slope = .0001;
  if(x->start_delay <= 0)
  	x->start_delay = .00001;
  if(x->end_delay <= 0)
  	x->end_delay = .00001;
  if(x->atks < 2)
  	x->atks = 2;
  if(x->atks > MAXATTACKS){
  	post("%s: exceeded maximum of %d attacks",OBJECT_NAME, MAXATTACKS);
  	x->atks = MAXATTACKS;
  }
}

void expflam_free(t_expflam *x)
{
int i;

	free(x->trigvec);
	free(x->bypvec);
  for(i = 0; i < MAXFLAMS; i++){
  	free(x->flams[i].attack_times);
  	free(x->flams[i].attack_points);
  }
  free(x->flams);
	
}

t_int *expflam_perform(t_int *w)
{
	int i,j,k;
	t_expflam *x = (t_expflam *) (w[1]);
	float *in_vec = (t_float *)(w[2]);
	float *in2_vec = (t_float *)(w[3]);
	float *out_vec = (t_float *)(w[4]);
	int n = (int) w[5];
	
	float *trigvec = x->trigvec;
	float *flamgate_vec = x->bypvec;
	t_flam *flams = x->flams;
	int atks = x->atks;
	float atten = x->atten;
	float slope = x->slope;
	float start_delay = x->start_delay;
	float end_delay = x->end_delay;
	float sr = x->sr;
	short flamgate_connected = x->flamgate_connected;
	short flamall = x->flamall;
	
	/* in flamgate mode copy input to output and return */
	if(x->bypass){
		memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );
		return (w+6);
	}
	/* copy input vectors */
	memcpy( (void *)flamgate_vec, (void *)in2_vec, n * sizeof(float) );// the order of these mcopies matters
	memcpy( (void *)trigvec, (void *)in_vec, n * sizeof(float) );
	memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );// copy triggers to output for a start
		
	/* look for activation triggers */
	for(i = 0; i < n; i++){
		if(trigvec[i] && (flamgate_vec[i] || ! flamgate_connected || flamall ) ){	
//		post("triggered with t %f and flamgate %f",trigvec[i],flamgate_vec[i]);
			j = 0;  
			while(flams[j].active && j < MAXFLAMS){
				++j;
			}
			if(j >= MAXFLAMS){
				post("too many flams");				
			}
			else {
//				post("inserting flam at location %d",j);
				flams[j].active = 1;
				flams[j].attack_times[0] = 0.0;
				flams[j].attack_points[0] = i;
				flams[j].gainatten = atten;
				flams[j].amp = trigvec[i];
				flams[j].counter = 0;
				flams[j].fdex = 0;
				flams[j].atks = atks;
				
				for(k = 1; k < atks; k++){
					flams[j].attack_times[k] = start_delay + (end_delay - start_delay) * ((1.0 - exp((float)k * slope/((float)atks-1.0)))/(1.0-exp(slope)));
					flams[j].attack_times[k] += flams[j].attack_times[k - 1];
					flams[j].attack_points[k] = flams[j].attack_times[k] * sr + i;
				}						
			}
		}
	}
	/* now iterate through active flams */
	for( i = 0; i < n; i++){
		for(j = 0; j < MAXFLAMS; j++){
			if(flams[j].active){
				if(flams[j].counter >= flams[j].attack_points[flams[j].fdex]){
					out_vec[i] += flams[j].amp;
					flams[j].amp *= flams[j].gainatten;
					if( flams[j].amp <= STOPGAIN ){
						flams[j].active = 0;
					}
					flams[j].fdex++;
					if(flams[j].fdex >= flams[j].atks){
						flams[j].active = 0;
					}
				}
				flams[j].counter++;
			}
		}
	}

	return w+6;
}

void expflam_dsp(t_expflam *x, t_signal **sp)
{

	x->flamgate_connected = 1;
	dsp_add(expflam_perform, 5, x,
			sp[0]->s_vec, 
			sp[1]->s_vec,
			sp[2]->s_vec,  
			(t_int)sp[0]->s_n
	);
}

diff --git a/externals/lyonpotpourri/flanjah~.c b/externals/lyonpotpourri/flanjah~.c
index f3c2d06a3f8e8e047cc2933bc1e7690728fac20a..501e4d64399fe516c06b6ca4f37a41d15d029b45 100755
--- a/externals/lyonpotpourri/flanjah~.c
+++ b/externals/lyonpotpourri/flanjah~.c
@@ -241,7 +241,7 @@ void flanjah_dsp(t_flanjah *x, t_signal **sp)
     }
     dsp_add(flanjah_perform, 8, x,
             sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
 }
 
 void flanjah_mute(t_flanjah *x, t_floatarg state)
diff --git a/externals/lyonpotpourri/granola~.c b/externals/lyonpotpourri/granola~.c
index adb6735b3d91b51aa282bf07725dea1b860fe2f8..0c3b81685042070847f1225b45407c7ec313cfff 100755
--- a/externals/lyonpotpourri/granola~.c
+++ b/externals/lyonpotpourri/granola~.c
@@ -325,6 +325,6 @@ t_int *granola_perform(t_int *w)
 void granola_dsp(t_granola *x, t_signal **sp)
 {
     
-    dsp_add(granola_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+    dsp_add(granola_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/granulesf~.c b/externals/lyonpotpourri/granulesf~.c
index 63ac71b61afa38add8d40b9fe67c107833c269da..dae925c5694bc80781e02d3661f38f1222858ea6 100755
--- a/externals/lyonpotpourri/granulesf~.c
+++ b/externals/lyonpotpourri/granulesf~.c
@@ -1054,7 +1054,7 @@ void granulesf_dsp(t_granulesf *x, t_signal **sp)
 	if( x->hosed ){
 		post("You need some valid buffers");
 		dsp_add(granulesf_performhose, 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);
 		return;
 	}
 	if( x->sr != sp[0]->s_sr){
@@ -1067,10 +1067,10 @@ void granulesf_dsp(t_granulesf *x, t_signal **sp)
 	} 
 	if(x->interpolate){
 		dsp_add(granulesf_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);
 	} else {
 		dsp_add(granulesf_perform_no_interpolation, 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/lyonpotpourri/granule~.c b/externals/lyonpotpourri/granule~.c
index 019118df487f57c3f895f3caf00d6964de4c1b33..2bad59fa96130f7352808a71cc7d948d3ce3b617 100755
--- a/externals/lyonpotpourri/granule~.c
+++ b/externals/lyonpotpourri/granule~.c
@@ -1 +1 @@
-#include "MSPd.h"

#define MAXGRAINS (512) // just for present to get lower overhead

#define MAXSCALE (8192)
#define OBJECT_NAME "granule~"


static t_class *granule_class;


typedef struct {
    float amplitude;
    float panL;
    float panR;
    long delay; // samples to wait until event starts
    long duration;// length in samples of event
    float phase; // phase for frequency oscillator
    float ephase; // phase for envelope
    float si; // sampling increment for frequency
    float esi; // sampling increment for envelope
} t_grain;

typedef struct {
	t_word *b_samples;
	long b_frames;
	long b_nchans;
} t_pdbuffer;


typedef struct _granule
{
    
    t_object x_obj;
    float x_f;
    t_pdbuffer *wavebuf; // holds waveform samples
    t_pdbuffer *windowbuf; // holds window samples
	t_symbol *wavename; // name of waveform buffer
	t_symbol *windowname; // name of window buffer
    
	float sr; // sampling rate
	short mute;
	short hosed; // buffers are bad
	/* Global grain data*/
	long events; // number of events in a block
	long horizon; // length of block for random events
	float minfreq; // minimum frequency for a grain
	float maxfreq; // maximum frequency for a grain
	float minpan; // minimum pan for a grain
	float maxpan; // maxium pan for a grain
	float minamp; // minimum amplitude for a grain
	float maxamp; // maximum amplitude for a grain
	float mindur; // minumum duration for a grain
	float maxdur; // maximum duration for a grain
	t_grain *grains; // stores grain data
	float *pitchscale; // contains a frequency grid for pitch constraint
	int pitchsteps; // number of members in scale
	float transpose; // factor for scaling all pitches
	float pitch_deviation; // factor to adjust scaled pitches
	short steady; // toggles pulsed rhythmic activity
	float lowblock_freq; //lowest allowed frequency
	float highblock_freq;// highest allowed frequency
	float mindur_ms;//store duration in ms
	float maxdur_ms;//ditto
	float horizon_ms;//ditto
	short constrain_scale;//flag to only use bounded portion of scale rather than all of it
} t_granule;

void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname);
void *granule_new(t_symbol *msg, short argc, t_atom *argv);
t_int *granule_perform(t_int *w);
t_int *granule_performhose(t_int *w);
void granule_dsp(t_granule *x, t_signal **sp);
void granule_reload(t_granule *x);
void granule_spray(t_granule *x);
void granule_pitchspray(t_granule *x);
void granule_transpose(t_granule *x, t_floatarg t);
void granule_pitchdev(t_granule *x, t_floatarg d);
void granule_lowblock(t_granule *x, t_floatarg f);
void granule_highblock(t_granule *x, t_floatarg f);
void granule_events(t_granule *x, t_floatarg e);
float granule_boundrand(float min, float max);
void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void granule_info(t_granule *x);
void granule_mute(t_granule *x, t_floatarg toggle);
void granule_steady(t_granule *x, t_floatarg toggle);
void granule_constrain_scale(t_granule *x, t_floatarg toggle);
void granule_dsp_free(t_granule *x);
void granule_init(t_granule *x,short initialized);
void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps);

void granule_tilde_setup(void){
    granule_class = class_new(gensym("granule~"), (t_newmethod)granule_new,
                              (t_method)granule_dsp_free,sizeof(t_granule), 0,A_GIMME,0);
    CLASS_MAINSIGNALIN(granule_class, t_granule, x_f);
    class_addmethod(granule_class,(t_method)granule_dsp,gensym("dsp"),0);
    class_addmethod(granule_class,(t_method)granule_mute,gensym("mute"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_setbuf,gensym("setbuf"),A_DEFSYM,A_DEFSYM,0);
    class_addmethod(granule_class,(t_method)granule_spray,gensym("spray"),0);
    class_addmethod(granule_class,(t_method)granule_info,gensym("info"),0);
    class_addmethod(granule_class,(t_method)granule_pitchspray,gensym("pitchspray"),0);
    class_addmethod(granule_class,(t_method)granule_transpose,gensym("transpose"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_events,gensym("events"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_pitchdev,gensym("pitchdev"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_lowblock,gensym("lowblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_highblock,gensym("highblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_steady,gensym("steady"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_constrain_scale,gensym("constrain_scale"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_grist,gensym("grist"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_grain,gensym("grain"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_setscale,gensym("setscale"),A_GIMME,0);
    potpourri_announce(OBJECT_NAME);
}

void granule_constrain_scale(t_granule *x, t_floatarg toggle)
{
	x->constrain_scale = toggle;
}
void granule_lowblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->lowblock_freq = f;
	}
}

void granule_highblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->highblock_freq = f;
	}
}

void granule_pitchdev(t_granule *x, t_floatarg d)
{
	if(d < 0 ){
		error("pitch deviation must be positive");
		return;
	}
	x->pitch_deviation = d;
}

void granule_mute(t_granule *x, t_floatarg toggle)
{
	x->mute = toggle;
}

void granule_steady(t_granule *x, t_floatarg toggle)
{
	x->steady = toggle;
}

void granule_events(t_granule *x, t_floatarg e)
{
	if( e <= 0 ){
		post("events must be positive!");
		return;
	}
	x->events = e;
    //	x->steady_dur = x->horizon / (float) x->events;
}

void granule_transpose(t_granule *x, t_floatarg t)
{
	if( t <= 0 ){
		error("transpose factor must be greater than zero!");
		return;
	}
	x->transpose = t;
}

void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	int i;
	float *pitchscale = x->pitchscale;
	if( argc >= MAXSCALE ){
		error("%d is the maximum size scale", MAXSCALE);
		return 0;
	}
	if( argc < 2 ){
		error("there must be at least 2 members in scale");
		return 0;
	}
	for(i=0; i < argc; i++){
		pitchscale[i] = atom_getfloatarg(i,argc,argv);
	}
	x->pitchsteps = argc;
    //	post("read %d values into scale", x->pitchsteps);
    return 0;
}

void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps)
{
	int imax = steps - 1;
	int imin = 0;
	while(scale[imin] < minfreq && imin < imax){
		++imin;
	}
	if(imin == imax){
        //		post("could not constrain minimum index  - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
    while(scale[imax] > maxfreq && imax > 0){
		--imax;
	}
	if(imax < 1 || imax <= imin){
        //		post("could not constrain maximum index - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
	*index_min = imin;
	*index_max = imax;
}

void granule_pitchspray(t_granule *x)
{
	int i,j;
    
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
	float lowblock_freq = x->lowblock_freq;
	float highblock_freq = x->highblock_freq;
	short steady = x->steady;
	float pitch_deviation = x->pitch_deviation;
	float pdev = 0;
	float pdev_invert = 0;
    //	float pscale;
	float pan;
	int index_min, index_max;
	int steps = x->pitchsteps;
	float *scale = x->pitchscale;
	int windex;
	short inserted = 0;
	short constrain_scale = x->constrain_scale;
	t_grain *grains = x->grains;
    
    
	if( steps < 2 ){
		error("scale is undefined");
		return;
	}
	if( pitch_deviation ){
		pdev = 1.0 + pitch_deviation;
		pdev_invert = 1.0 / pdev;
	}
	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
    			grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				if(constrain_scale){
					granule_constrain(&index_min,&index_max,minfreq, maxfreq, scale, steps);
					windex = (int) granule_boundrand((float)index_min, (float)index_max);
				} else {
					windex = (int) granule_boundrand(0.0, (float)(steps-1));
				}
    			grains[j].si = transpose * scale[windex] * (float) frames / sr;
    			if( pitch_deviation ){
    				grains[j].si *= granule_boundrand(pdev_invert,pdev);
    			}
    			/* must add this code to spray, and also do for high frequencies
                 */
    			if(lowblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) < lowblock_freq){
    					post("lowblock: aborted grain with %f frequency",grains[j].si * (sr/frames));
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			if(highblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) > highblock_freq){
    					post("highblock: aborted grain with %f frequency, greater than %f",
                             grains[j].si * (sr/frames), highblock_freq);
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(!inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void granule_spray(t_granule *x)
{
	int i,j;
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
    //	float steady_dur = x->steady_dur;
	short steady = x->steady;
	float pan;
	t_grain *grains = x->grains;
	short inserted;

	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
   				grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				grains[j].si = transpose * granule_boundrand(minfreq, maxfreq) * (float) frames / sr;
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(! inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	short inserted;
	int j;
	float duration, frequency, amplitude, pan;
	t_grain *grains;
	long eframes;
	long frames;
	float sr;

	grains = x->grains;
	eframes = x->windowbuf->b_frames;
	frames = x->wavebuf->b_frames;
	sr = x->sr;

	if(argc < 4){
		error("grain takes 4 arguments, not %d",argc);
		post("duration frequency amplitude pan");
		return 0;
	}
	duration = atom_getintarg(0,argc,argv);
	frequency = atom_getfloatarg(1,argc,argv); // in ms
	amplitude = atom_getfloatarg(2,argc,argv);
	pan = atom_getfloatarg(3,argc,argv);
	if(duration <= 0.0){
		error("illegal duration:%f",duration);
		return 0;
	}
	if(frequency <= 0.0){
		error("illegal frequency:%f",frequency);
		return 0;
	}
	if(pan < 0.0 || pan > 1.0){
		error("illegal pan:%f",pan);
		return 0;
	}
	inserted = 0;
	for(j = 0; j < MAXGRAINS; j++ ){
		if( grains[j].ephase >= eframes ){
			grains[j].delay = 0.0;// immediate deployment
			grains[j].duration = (long) (.001 * x->sr * duration);
			grains[j].phase = 0.0;
			grains[j].ephase = 0.0;
			grains[j].panL = cos(pan * PIOVERTWO);
			grains[j].panR = sin(pan * PIOVERTWO);
			grains[j].amplitude = amplitude;
			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
			grains[j].si = frequency * (float) frames / sr;
			return 0;
		}
	}
	
	error("could not insert grain");
	return 0;
	
}

float granule_boundrand(float min, float max)
{
	return min + (max-min) * ((float) (rand() % RAND_MAX)/ (float) RAND_MAX);
}


void *granule_new(t_symbol *msg, short argc, t_atom *argv)
{

    t_granule *x = (t_granule *)pd_new(granule_class);
    outlet_new(&x->x_obj, gensym("signal"));
    outlet_new(&x->x_obj, gensym("signal"));
    x->wavebuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
    x->windowbuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
	srand(time(0));
    
	x->pitchscale = (float *) t_getbytes(MAXSCALE * sizeof(float));
	x->grains = (t_grain *) t_getbytes(MAXGRAINS * sizeof(t_grain));
	
    
	// default names
	x->wavename = gensym("waveform");
	x->windowname = gensym("window");
    
	/* MaxMSP bug that may soon be fixed, this does not work:
     x->wavename = atom_getsymarg(0,argc,argv);
     x->windowname = atom_getsymarg(1,argc,argv); */
    
    // apparently Pd lacks this Max/MSP bug
	x->wavename = atom_getsymbolarg(0,argc,argv);
	x->windowname = atom_getsymbolarg(1,argc,argv);

    
	x->sr = sys_getsr();
	if(! x->sr )
		x->sr = 44100;
    
	granule_init(x,0);
    
    
    return (x);
}

void granule_init(t_granule *x,short initialized)
{
	int i;
	
	if(!initialized){
		x->pitchsteps = 0; // we could predefine a 12t scale
		x->mute = 0;
		x->steady = 0;
		x->events = 10;
		x->horizon_ms = 1000;
		x->minfreq = 220.0;
		x->maxfreq = 880.0;
		x->minpan = .1;
		x->maxpan = .9;
		x->minamp = .1;
		x->maxamp = 1.0;
		x->mindur_ms = 150;
		x->maxdur_ms = 750;
		x->transpose = 1.0;
		x->pitch_deviation = 0.0;
		x->lowblock_freq = 0.0; // by default we do not block any frequencies
		x->highblock_freq = 0.0; // ditto
		x->constrain_scale = 0;
	}
	x->horizon = x->horizon_ms * .001 * x->sr;
	x->mindur = x->mindur_ms * .001 * x->sr;
	x->maxdur = x->maxdur_ms * .001 * x->sr;
	for( i = 0; i < MAXGRAINS; i++ ){ // this is what we test for a legal place to insert grain
		x->grains[i].ephase = 9999999999.0;
	}
}

void granule_info(t_granule *x)
{
	int tcount = 0;
	t_grain *grains = x->grains;
	long eframes = x->windowbuf->b_frames;
	int i;
	
	for(i = 0; i < MAXGRAINS; i++ ){
		if( grains[i].ephase < eframes )
			++tcount;
	}
	post("%d active grains", tcount);
	post("wavename %s", x->wavename->s_name);
	post("windowname %s", x->windowname->s_name);
}


void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	if(argc < 10 ){
		error("grist takes 10 arguments:");
		post("events horizon minfreq maxfreq minpan maxpan minamp maxamp mindur maxdur");
		return 0;
	}
	x->events = atom_getintarg(0,argc,argv);
	x->horizon_ms = atom_getfloatarg(1,argc,argv);
	x->minfreq = atom_getfloatarg(2,argc,argv);
	x->maxfreq = atom_getfloatarg(3,argc,argv);
	x->minpan = atom_getfloatarg(4,argc,argv);
	x->maxpan = atom_getfloatarg(5,argc,argv);
	x->minamp = atom_getfloatarg(6,argc,argv);
	x->maxamp = atom_getfloatarg(7,argc,argv);
	x->mindur_ms = atom_getfloatarg(8,argc,argv);
	x->maxdur_ms = atom_getfloatarg(9,argc,argv);
	
	x->mindur = .001 * x->sr * x->mindur_ms ;
	x->maxdur = .001 * x->sr * x->maxdur_ms;
	x->horizon = .001 * x->sr * x->horizon_ms;
	
	if(x->minfreq < 0){
		x->minfreq *= -1.0;
	}
	if(x->maxfreq < 0){
		x->maxfreq *= -1.0;
	}
	if(x->minpan < 0.0) {
		x->minpan = 0.0;
	}
	if(x->maxpan > 1.0) {
		x->maxpan = 1.0;
	}
	if(x->events < 0){
		x->events = 0;
	}
	return 0;
}


void granule_reload(t_granule *x)
{
	granule_setbuf(x, x->wavename, x->windowname);
}


void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname)
{
    t_garray *a;
    int frames;
    
    x->hosed = 0;
    x->wavebuf->b_frames = 0;
    x->windowbuf->b_frames = 0;
    x->wavebuf->b_nchans = 1;
    x->windowbuf->b_nchans = 1;
    if (!(a = (t_garray *)pd_findbyclass(wavename, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", wavename->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->wavebuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", wavename->s_name);
        x->hosed = 1;
    }
    else  {
        x->wavebuf->b_frames = frames;
        garray_usedindsp(a);
    }
    
    if (!(a = (t_garray *)pd_findbyclass(windowname, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", windowname->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->windowbuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", windowname->s_name);
        x->hosed = 1;
    }
    else  {
        x->windowbuf->b_frames = frames;
        garray_usedindsp(a);
    }
}


t_int *granule_performhose(t_int *w)
{
    //	t_granule *x = (t_granule *) (w[1]);
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];
	while(n--) *outputL++ = *outputR++ = 0;
	return (w+6);
}

t_int *granule_perform(t_int *w)
{
	t_granule *x = (t_granule *) (w[1]);
    //	float *in = (t_float *)(w[2]); // ignoring input
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];

	t_pdbuffer *wavebuf = x->wavebuf;
	t_pdbuffer *windowbuf = x->windowbuf;
	t_word *wavetable = wavebuf->b_samples;
	t_word *window = windowbuf->b_samples;
	t_grain *grains = x->grains;
	float sample;
	float envelope;
	float amplitude;
	float panL, panR;
	float si;
	float esi;
	float phase;
	float ephase;
	long delay;
	long frames = wavebuf->b_frames;
	long eframes = windowbuf->b_frames;
	int i,j;
	
    
    
	/* grain parameters */
    
    
	if( x->mute ){
		while(n--) *outputL++ = *outputR++ = 0;
		return (w+6);
	}
    
    // pre-clean buffer
	for( i = 0; i < n; i++ ){
		outputL[i] = outputR[i] = 0;
	}
    
	for (j=0; j<MAXGRAINS; j++) {
        
		if(grains[j].ephase >= eframes){
			goto nextgrain;
		}
		amplitude = grains[j].amplitude;
		si =  grains[j].si;
		esi = grains[j].esi;
		phase =  grains[j].phase;
		ephase = grains[j].ephase;
		delay =  grains[j].delay;
		panL = grains[j].panL;
		panR = grains[j].panR;
        
		
		for(i = 0; i < n; i++ ){
			// ++(x->sampcount); // not really needed
			if( delay > 0 ){
				--delay;
			}
			if( delay <= 0 && ephase < eframes){
				sample = wavetable[(int)phase].w_float;
                
				envelope = amplitude * window[(int)ephase].w_float;
				sample *= envelope;
				outputL[i] += panL * sample;
				outputR[i] += panR * sample;
				phase += si;
				ephase += esi;
				while( phase >= frames )
					phase -= frames;
                
				if( ephase >= eframes ){
					grains[j].ephase = ephase;
					goto nextgrain; // must escape loop now
				}
                
			}
		}
		grains[j].phase = phase;
		grains[j].ephase = ephase;
		grains[j].delay = delay;
		
    nextgrain: ;
	}
    
	return (w+6);
    
    
}

void granule_dsp_free(t_granule *x)
{

	t_freebytes(x->grains, MAXGRAINS * sizeof(t_grain));
	t_freebytes(x->pitchscale, MAXSCALE * sizeof(float));
}

void granule_dsp(t_granule *x, t_signal **sp)
{
    
	granule_reload(x);
	
	if( x->hosed ){
		post("You need some valid buffers");
		dsp_add(granule_performhose, 5, x,
                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
		return;
	}
	if( x->sr != sp[0]->s_sr){
		x->sr = sp[0]->s_sr;
		if( !x->sr ){
			post("warning: zero sampling rate!");
			x->sr = 44100;
		}
		granule_init(x,1);
	} 
	dsp_add(granule_perform, 5, x, 
			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
}

\ No newline at end of file
+#include "MSPd.h"

#define MAXGRAINS (512) // just for present to get lower overhead

#define MAXSCALE (8192)
#define OBJECT_NAME "granule~"


static t_class *granule_class;


typedef struct {
    float amplitude;
    float panL;
    float panR;
    long delay; // samples to wait until event starts
    long duration;// length in samples of event
    float phase; // phase for frequency oscillator
    float ephase; // phase for envelope
    float si; // sampling increment for frequency
    float esi; // sampling increment for envelope
} t_grain;

typedef struct {
	t_word *b_samples;
	long b_frames;
	long b_nchans;
} t_pdbuffer;


typedef struct _granule
{
    
    t_object x_obj;
    float x_f;
    t_pdbuffer *wavebuf; // holds waveform samples
    t_pdbuffer *windowbuf; // holds window samples
	t_symbol *wavename; // name of waveform buffer
	t_symbol *windowname; // name of window buffer
    
	float sr; // sampling rate
	short mute;
	short hosed; // buffers are bad
	/* Global grain data*/
	long events; // number of events in a block
	long horizon; // length of block for random events
	float minfreq; // minimum frequency for a grain
	float maxfreq; // maximum frequency for a grain
	float minpan; // minimum pan for a grain
	float maxpan; // maxium pan for a grain
	float minamp; // minimum amplitude for a grain
	float maxamp; // maximum amplitude for a grain
	float mindur; // minumum duration for a grain
	float maxdur; // maximum duration for a grain
	t_grain *grains; // stores grain data
	float *pitchscale; // contains a frequency grid for pitch constraint
	int pitchsteps; // number of members in scale
	float transpose; // factor for scaling all pitches
	float pitch_deviation; // factor to adjust scaled pitches
	short steady; // toggles pulsed rhythmic activity
	float lowblock_freq; //lowest allowed frequency
	float highblock_freq;// highest allowed frequency
	float mindur_ms;//store duration in ms
	float maxdur_ms;//ditto
	float horizon_ms;//ditto
	short constrain_scale;//flag to only use bounded portion of scale rather than all of it
} t_granule;

void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname);
void *granule_new(t_symbol *msg, short argc, t_atom *argv);
t_int *granule_perform(t_int *w);
t_int *granule_performhose(t_int *w);
void granule_dsp(t_granule *x, t_signal **sp);
void granule_reload(t_granule *x);
void granule_spray(t_granule *x);
void granule_pitchspray(t_granule *x);
void granule_transpose(t_granule *x, t_floatarg t);
void granule_pitchdev(t_granule *x, t_floatarg d);
void granule_lowblock(t_granule *x, t_floatarg f);
void granule_highblock(t_granule *x, t_floatarg f);
void granule_events(t_granule *x, t_floatarg e);
float granule_boundrand(float min, float max);
void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void granule_info(t_granule *x);
void granule_mute(t_granule *x, t_floatarg toggle);
void granule_steady(t_granule *x, t_floatarg toggle);
void granule_constrain_scale(t_granule *x, t_floatarg toggle);
void granule_dsp_free(t_granule *x);
void granule_init(t_granule *x,short initialized);
void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps);

void granule_tilde_setup(void){
    granule_class = class_new(gensym("granule~"), (t_newmethod)granule_new,
                              (t_method)granule_dsp_free,sizeof(t_granule), 0,A_GIMME,0);
    CLASS_MAINSIGNALIN(granule_class, t_granule, x_f);
    class_addmethod(granule_class,(t_method)granule_dsp,gensym("dsp"),0);
    class_addmethod(granule_class,(t_method)granule_mute,gensym("mute"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_setbuf,gensym("setbuf"),A_DEFSYM,A_DEFSYM,0);
    class_addmethod(granule_class,(t_method)granule_spray,gensym("spray"),0);
    class_addmethod(granule_class,(t_method)granule_info,gensym("info"),0);
    class_addmethod(granule_class,(t_method)granule_pitchspray,gensym("pitchspray"),0);
    class_addmethod(granule_class,(t_method)granule_transpose,gensym("transpose"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_events,gensym("events"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_pitchdev,gensym("pitchdev"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_lowblock,gensym("lowblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_highblock,gensym("highblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_steady,gensym("steady"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_constrain_scale,gensym("constrain_scale"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_grist,gensym("grist"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_grain,gensym("grain"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_setscale,gensym("setscale"),A_GIMME,0);
    potpourri_announce(OBJECT_NAME);
}

void granule_constrain_scale(t_granule *x, t_floatarg toggle)
{
	x->constrain_scale = toggle;
}
void granule_lowblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->lowblock_freq = f;
	}
}

void granule_highblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->highblock_freq = f;
	}
}

void granule_pitchdev(t_granule *x, t_floatarg d)
{
	if(d < 0 ){
		error("pitch deviation must be positive");
		return;
	}
	x->pitch_deviation = d;
}

void granule_mute(t_granule *x, t_floatarg toggle)
{
	x->mute = toggle;
}

void granule_steady(t_granule *x, t_floatarg toggle)
{
	x->steady = toggle;
}

void granule_events(t_granule *x, t_floatarg e)
{
	if( e <= 0 ){
		post("events must be positive!");
		return;
	}
	x->events = e;
    //	x->steady_dur = x->horizon / (float) x->events;
}

void granule_transpose(t_granule *x, t_floatarg t)
{
	if( t <= 0 ){
		error("transpose factor must be greater than zero!");
		return;
	}
	x->transpose = t;
}

void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	int i;
	float *pitchscale = x->pitchscale;
	if( argc >= MAXSCALE ){
		error("%d is the maximum size scale", MAXSCALE);
		return 0;
	}
	if( argc < 2 ){
		error("there must be at least 2 members in scale");
		return 0;
	}
	for(i=0; i < argc; i++){
		pitchscale[i] = atom_getfloatarg(i,argc,argv);
	}
	x->pitchsteps = argc;
    //	post("read %d values into scale", x->pitchsteps);
    return 0;
}

void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps)
{
	int imax = steps - 1;
	int imin = 0;
	while(scale[imin] < minfreq && imin < imax){
		++imin;
	}
	if(imin == imax){
        //		post("could not constrain minimum index  - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
    while(scale[imax] > maxfreq && imax > 0){
		--imax;
	}
	if(imax < 1 || imax <= imin){
        //		post("could not constrain maximum index - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
	*index_min = imin;
	*index_max = imax;
}

void granule_pitchspray(t_granule *x)
{
	int i,j;
    
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
	float lowblock_freq = x->lowblock_freq;
	float highblock_freq = x->highblock_freq;
	short steady = x->steady;
	float pitch_deviation = x->pitch_deviation;
	float pdev = 0;
	float pdev_invert = 0;
    //	float pscale;
	float pan;
	int index_min, index_max;
	int steps = x->pitchsteps;
	float *scale = x->pitchscale;
	int windex;
	short inserted = 0;
	short constrain_scale = x->constrain_scale;
	t_grain *grains = x->grains;
    
    
	if( steps < 2 ){
		error("scale is undefined");
		return;
	}
	if( pitch_deviation ){
		pdev = 1.0 + pitch_deviation;
		pdev_invert = 1.0 / pdev;
	}
	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
    			grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				if(constrain_scale){
					granule_constrain(&index_min,&index_max,minfreq, maxfreq, scale, steps);
					windex = (int) granule_boundrand((float)index_min, (float)index_max);
				} else {
					windex = (int) granule_boundrand(0.0, (float)(steps-1));
				}
    			grains[j].si = transpose * scale[windex] * (float) frames / sr;
    			if( pitch_deviation ){
    				grains[j].si *= granule_boundrand(pdev_invert,pdev);
    			}
    			/* must add this code to spray, and also do for high frequencies
                 */
    			if(lowblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) < lowblock_freq){
    					post("lowblock: aborted grain with %f frequency",grains[j].si * (sr/frames));
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			if(highblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) > highblock_freq){
    					post("highblock: aborted grain with %f frequency, greater than %f",
                             grains[j].si * (sr/frames), highblock_freq);
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(!inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void granule_spray(t_granule *x)
{
	int i,j;
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
    //	float steady_dur = x->steady_dur;
	short steady = x->steady;
	float pan;
	t_grain *grains = x->grains;
	short inserted;

	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
   				grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				grains[j].si = transpose * granule_boundrand(minfreq, maxfreq) * (float) frames / sr;
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(! inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	short inserted;
	int j;
	float duration, frequency, amplitude, pan;
	t_grain *grains;
	long eframes;
	long frames;
	float sr;

	grains = x->grains;
	eframes = x->windowbuf->b_frames;
	frames = x->wavebuf->b_frames;
	sr = x->sr;

	if(argc < 4){
		error("grain takes 4 arguments, not %d",argc);
		post("duration frequency amplitude pan");
		return 0;
	}
	duration = atom_getintarg(0,argc,argv);
	frequency = atom_getfloatarg(1,argc,argv); // in ms
	amplitude = atom_getfloatarg(2,argc,argv);
	pan = atom_getfloatarg(3,argc,argv);
	if(duration <= 0.0){
		error("illegal duration:%f",duration);
		return 0;
	}
	if(frequency <= 0.0){
		error("illegal frequency:%f",frequency);
		return 0;
	}
	if(pan < 0.0 || pan > 1.0){
		error("illegal pan:%f",pan);
		return 0;
	}
	inserted = 0;
	for(j = 0; j < MAXGRAINS; j++ ){
		if( grains[j].ephase >= eframes ){
			grains[j].delay = 0.0;// immediate deployment
			grains[j].duration = (long) (.001 * x->sr * duration);
			grains[j].phase = 0.0;
			grains[j].ephase = 0.0;
			grains[j].panL = cos(pan * PIOVERTWO);
			grains[j].panR = sin(pan * PIOVERTWO);
			grains[j].amplitude = amplitude;
			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
			grains[j].si = frequency * (float) frames / sr;
			return 0;
		}
	}
	
	error("could not insert grain");
	return 0;
	
}

float granule_boundrand(float min, float max)
{
	return min + (max-min) * ((float) (rand() % RAND_MAX)/ (float) RAND_MAX);
}


void *granule_new(t_symbol *msg, short argc, t_atom *argv)
{

    t_granule *x = (t_granule *)pd_new(granule_class);
    outlet_new(&x->x_obj, gensym("signal"));
    outlet_new(&x->x_obj, gensym("signal"));
    x->wavebuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
    x->windowbuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
	srand(time(0));
    
	x->pitchscale = (float *) t_getbytes(MAXSCALE * sizeof(float));
	x->grains = (t_grain *) t_getbytes(MAXGRAINS * sizeof(t_grain));
	
    
	// default names
	x->wavename = gensym("waveform");
	x->windowname = gensym("window");
    
	/* MaxMSP bug that may soon be fixed, this does not work:
     x->wavename = atom_getsymarg(0,argc,argv);
     x->windowname = atom_getsymarg(1,argc,argv); */
    
    // apparently Pd lacks this Max/MSP bug
	x->wavename = atom_getsymbolarg(0,argc,argv);
	x->windowname = atom_getsymbolarg(1,argc,argv);

    
	x->sr = sys_getsr();
	if(! x->sr )
		x->sr = 44100;
    
	granule_init(x,0);
    
    
    return (x);
}

void granule_init(t_granule *x,short initialized)
{
	int i;
	
	if(!initialized){
		x->pitchsteps = 0; // we could predefine a 12t scale
		x->mute = 0;
		x->steady = 0;
		x->events = 10;
		x->horizon_ms = 1000;
		x->minfreq = 220.0;
		x->maxfreq = 880.0;
		x->minpan = .1;
		x->maxpan = .9;
		x->minamp = .1;
		x->maxamp = 1.0;
		x->mindur_ms = 150;
		x->maxdur_ms = 750;
		x->transpose = 1.0;
		x->pitch_deviation = 0.0;
		x->lowblock_freq = 0.0; // by default we do not block any frequencies
		x->highblock_freq = 0.0; // ditto
		x->constrain_scale = 0;
	}
	x->horizon = x->horizon_ms * .001 * x->sr;
	x->mindur = x->mindur_ms * .001 * x->sr;
	x->maxdur = x->maxdur_ms * .001 * x->sr;
	for( i = 0; i < MAXGRAINS; i++ ){ // this is what we test for a legal place to insert grain
		x->grains[i].ephase = 9999999999.0;
	}
}

void granule_info(t_granule *x)
{
	int tcount = 0;
	t_grain *grains = x->grains;
	long eframes = x->windowbuf->b_frames;
	int i;
	
	for(i = 0; i < MAXGRAINS; i++ ){
		if( grains[i].ephase < eframes )
			++tcount;
	}
	post("%d active grains", tcount);
	post("wavename %s", x->wavename->s_name);
	post("windowname %s", x->windowname->s_name);
}


void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	if(argc < 10 ){
		error("grist takes 10 arguments:");
		post("events horizon minfreq maxfreq minpan maxpan minamp maxamp mindur maxdur");
		return 0;
	}
	x->events = atom_getintarg(0,argc,argv);
	x->horizon_ms = atom_getfloatarg(1,argc,argv);
	x->minfreq = atom_getfloatarg(2,argc,argv);
	x->maxfreq = atom_getfloatarg(3,argc,argv);
	x->minpan = atom_getfloatarg(4,argc,argv);
	x->maxpan = atom_getfloatarg(5,argc,argv);
	x->minamp = atom_getfloatarg(6,argc,argv);
	x->maxamp = atom_getfloatarg(7,argc,argv);
	x->mindur_ms = atom_getfloatarg(8,argc,argv);
	x->maxdur_ms = atom_getfloatarg(9,argc,argv);
	
	x->mindur = .001 * x->sr * x->mindur_ms ;
	x->maxdur = .001 * x->sr * x->maxdur_ms;
	x->horizon = .001 * x->sr * x->horizon_ms;
	
	if(x->minfreq < 0){
		x->minfreq *= -1.0;
	}
	if(x->maxfreq < 0){
		x->maxfreq *= -1.0;
	}
	if(x->minpan < 0.0) {
		x->minpan = 0.0;
	}
	if(x->maxpan > 1.0) {
		x->maxpan = 1.0;
	}
	if(x->events < 0){
		x->events = 0;
	}
	return 0;
}


void granule_reload(t_granule *x)
{
	granule_setbuf(x, x->wavename, x->windowname);
}


void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname)
{
    t_garray *a;
    int frames;
    
    x->hosed = 0;
    x->wavebuf->b_frames = 0;
    x->windowbuf->b_frames = 0;
    x->wavebuf->b_nchans = 1;
    x->windowbuf->b_nchans = 1;
    if (!(a = (t_garray *)pd_findbyclass(wavename, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", wavename->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->wavebuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", wavename->s_name);
        x->hosed = 1;
    }
    else  {
        x->wavebuf->b_frames = frames;
        garray_usedindsp(a);
    }
    
    if (!(a = (t_garray *)pd_findbyclass(windowname, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", windowname->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->windowbuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", windowname->s_name);
        x->hosed = 1;
    }
    else  {
        x->windowbuf->b_frames = frames;
        garray_usedindsp(a);
    }
}


t_int *granule_performhose(t_int *w)
{
    //	t_granule *x = (t_granule *) (w[1]);
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];
	while(n--) *outputL++ = *outputR++ = 0;
	return (w+6);
}

t_int *granule_perform(t_int *w)
{
	t_granule *x = (t_granule *) (w[1]);
    //	float *in = (t_float *)(w[2]); // ignoring input
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];

	t_pdbuffer *wavebuf = x->wavebuf;
	t_pdbuffer *windowbuf = x->windowbuf;
	t_word *wavetable = wavebuf->b_samples;
	t_word *window = windowbuf->b_samples;
	t_grain *grains = x->grains;
	float sample;
	float envelope;
	float amplitude;
	float panL, panR;
	float si;
	float esi;
	float phase;
	float ephase;
	long delay;
	long frames = wavebuf->b_frames;
	long eframes = windowbuf->b_frames;
	int i,j;
	
    
    
	/* grain parameters */
    
    
	if( x->mute ){
		while(n--) *outputL++ = *outputR++ = 0;
		return (w+6);
	}
    
    // pre-clean buffer
	for( i = 0; i < n; i++ ){
		outputL[i] = outputR[i] = 0;
	}
    
	for (j=0; j<MAXGRAINS; j++) {
        
		if(grains[j].ephase >= eframes){
			goto nextgrain;
		}
		amplitude = grains[j].amplitude;
		si =  grains[j].si;
		esi = grains[j].esi;
		phase =  grains[j].phase;
		ephase = grains[j].ephase;
		delay =  grains[j].delay;
		panL = grains[j].panL;
		panR = grains[j].panR;
        
		
		for(i = 0; i < n; i++ ){
			// ++(x->sampcount); // not really needed
			if( delay > 0 ){
				--delay;
			}
			if( delay <= 0 && ephase < eframes){
				sample = wavetable[(int)phase].w_float;
                
				envelope = amplitude * window[(int)ephase].w_float;
				sample *= envelope;
				outputL[i] += panL * sample;
				outputR[i] += panR * sample;
				phase += si;
				ephase += esi;
				while( phase >= frames )
					phase -= frames;
                
				if( ephase >= eframes ){
					grains[j].ephase = ephase;
					goto nextgrain; // must escape loop now
				}
                
			}
		}
		grains[j].phase = phase;
		grains[j].ephase = ephase;
		grains[j].delay = delay;
		
    nextgrain: ;
	}
    
	return (w+6);
    
    
}

void granule_dsp_free(t_granule *x)
{

	t_freebytes(x->grains, MAXGRAINS * sizeof(t_grain));
	t_freebytes(x->pitchscale, MAXSCALE * sizeof(float));
}

void granule_dsp(t_granule *x, t_signal **sp)
{
    
	granule_reload(x);
	
	if( x->hosed ){
		post("You need some valid buffers");
		dsp_add(granule_performhose, 5, x,
                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
		return;
	}
	if( x->sr != sp[0]->s_sr){
		x->sr = sp[0]->s_sr;
		if( !x->sr ){
			post("warning: zero sampling rate!");
			x->sr = 44100;
		}
		granule_init(x,1);
	} 
	dsp_add(granule_perform, 5, x, 
			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
}

diff --git a/externals/lyonpotpourri/kbuffer~.c b/externals/lyonpotpourri/kbuffer~.c
index 1e949bb88fbf36f44ca7e36a4466954ba9ebc0f9..86584acec3bd1b1bf42df95b43f8f7a0bd8bc467 100755
--- a/externals/lyonpotpourri/kbuffer~.c
+++ b/externals/lyonpotpourri/kbuffer~.c
@@ -304,7 +304,7 @@ void kbuffer_dsp(t_kbuffer *x, t_signal **sp)
         kbuffer_init(x,1);
 	}
    	dsp_add(kbuffer_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/lyonpotpourri/killdc~.c b/externals/lyonpotpourri/killdc~.c
index 864b7a2976421ac79f0382af4493fdf553f2361d..e7822fa6831b4382d62090d2914283a937a7b002 100755
--- a/externals/lyonpotpourri/killdc~.c
+++ b/externals/lyonpotpourri/killdc~.c
@@ -114,6 +114,6 @@ t_int *killdc_perform(t_int *w)
 
 void killdc_dsp(t_killdc *x, t_signal **sp)
 {
-    dsp_add(killdc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,  sp[0]->s_n);
+    dsp_add(killdc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/latch~.c b/externals/lyonpotpourri/latch~.c
index b67c27b29476181bfaaa367c658733fcf27d9342..0ed17b0c1b13fa98eab7a47f96822355a1d18268 100755
--- a/externals/lyonpotpourri/latch~.c
+++ b/externals/lyonpotpourri/latch~.c
@@ -107,5 +107,5 @@ static void latch_dsp(t_latch *x, t_signal **sp)
 		x->sr = sp[0]->s_sr;
 		x->dsamps = x->duration * x->sr;
 	}
-    dsp_add(latch_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(latch_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/magfreq_analysis~.c b/externals/lyonpotpourri/magfreq_analysis~.c
index bb85d9a8692a4e6b671178a1ece6fb323cd65c33..cf90a4d8aeb041c3c112e550285da7bce30c9a90 100755
--- a/externals/lyonpotpourri/magfreq_analysis~.c
+++ b/externals/lyonpotpourri/magfreq_analysis~.c
@@ -433,6 +433,6 @@ void magfreq_analysis_dsp(t_magfreq_analysis *x, t_signal **sp)
 	
 	dsp_add(magfreq_analysis_perform, 6, x,
 			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-			sp[0]->s_n);
+			(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/markov~.c b/externals/lyonpotpourri/markov~.c
index c54b45bfc9b655bc75522e6ec3485249057e939c..a2ce83e63a3e343779c1efed90dc6c38c76a4bb4 100755
--- a/externals/lyonpotpourri/markov~.c
+++ b/externals/lyonpotpourri/markov~.c
@@ -285,6 +285,6 @@ void markov_dsp(t_markov *x, t_signal **sp)
         x->count = 0;
     }
     dsp_add(markov_perform, 5, x, 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/lyonpotpourri/mask~.c b/externals/lyonpotpourri/mask~.c
index 6dd0b4f2544615f9360a24cb9b50d733fee98c2a..276f6d3e5f73d68fc1816c34b0e77ba42a4a1538 100755
--- a/externals/lyonpotpourri/mask~.c
+++ b/externals/lyonpotpourri/mask~.c
@@ -358,6 +358,6 @@ out:
 
 void mask_dsp(t_mask *x, t_signal **sp)
 {
-    dsp_add(mask_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mask_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/oscil~.c b/externals/lyonpotpourri/oscil~.c
index 88dd3abb1bd7683f3a5e653a1249cfe707e7e1c3..d2b3791e5a32195a3b2445f49f4fcb9a54bf7175 100755
--- a/externals/lyonpotpourri/oscil~.c
+++ b/externals/lyonpotpourri/oscil~.c
@@ -782,7 +782,7 @@ void oscil_dsp(t_oscil *x, t_signal **sp)
 	x->phase = 0.0;
     
 	dsp_add(oscil_perform_interpolate, 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/lyonpotpourri/phasemod~.c b/externals/lyonpotpourri/phasemod~.c
index 2bcb54c1b45372c57512d5139e22887f37887e5e..4ad9acf250dc036491cbf2283009af301df2f179 100755
--- a/externals/lyonpotpourri/phasemod~.c
+++ b/externals/lyonpotpourri/phasemod~.c
@@ -162,6 +162,6 @@ void phasemod_dsp(t_phasemod *x, t_signal **sp)
 		x->sr = sp[0]->s_sr;
 		x->si_fac = 1.0/x->sr;
 	}
-	dsp_add(phasemod_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+	dsp_add(phasemod_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/player~.c b/externals/lyonpotpourri/player~.c
index dee10cd606567ff00258bc68b8e52d335bd0d024..3182a802040aca0138f75878f21295247e770acf 100755
--- a/externals/lyonpotpourri/player~.c
+++ b/externals/lyonpotpourri/player~.c
@@ -513,10 +513,10 @@ void player_dsp(t_player *x, t_signal **sp)
 	
 	if(x->hosed)
 		dsp_add(player_perform_hosed1, 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);
 	else{
 		dsp_add(player_perform_mono_interpol, 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/lyonpotpourri/poltocar~.c b/externals/lyonpotpourri/poltocar~.c
index d7e0de29198a631a74442af207da34b4d5074022..e6a0b0a5dc57b52b99f3bd6aa7159d89b7e6c6b6 100755
--- a/externals/lyonpotpourri/poltocar~.c
+++ b/externals/lyonpotpourri/poltocar~.c
@@ -63,5 +63,5 @@ t_int *poltocar_perform(t_int *w)
 void poltocar_dsp(t_poltocar *x, t_signal **sp)
 {
     dsp_add(poltocar_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/pulser~.c b/externals/lyonpotpourri/pulser~.c
index 4e64c32af31a68109734b850f422d54e9c0d4a73..1771b850a8bf175123ddfa84c80df2cf9db0a5c7 100755
--- a/externals/lyonpotpourri/pulser~.c
+++ b/externals/lyonpotpourri/pulser~.c
@@ -208,7 +208,7 @@ void pulser_dsp(t_pulser *x, t_signal **sp)
 
   	x->connected[i] = 1;
   }
-  dsp_add(pulser_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+  dsp_add(pulser_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/lyonpotpourri/quadpan~.c b/externals/lyonpotpourri/quadpan~.c
index a43c02c078c21d591c3c2970e29835776f10a8ea..eb08e1d1a60281162f197577767b588d6ead54c6 100755
--- a/externals/lyonpotpourri/quadpan~.c
+++ b/externals/lyonpotpourri/quadpan~.c
@@ -1 +1 @@
-#include "MSPd.h"
#define OBJECT_NAME "quadpan~"
/*
 
 Front
 
 *out1         *out3
 
 
 
 *out2         *out4
 
 Back
 
 */

static t_class  *quadpan_class;


typedef struct _quadpan
{
    t_object x_obj;
    t_float x_f;
//    short bypass;
//    float pi_over_two;
//    float twopi;
    float *in;
    float *Xin;
    float *Yin;
} t_quadpan;

void *quadpan_new(t_symbol *s, int argc, t_atom *argv);
t_int *offset_perform(t_int *w);
t_int *quadpan_perform(t_int *w);
void quadpan_dsp(t_quadpan *x, t_signal **sp);
void quadpan_showstate( t_quadpan *x );
void quadpan_free(t_quadpan *x);
void quadpan_tilde_setup(void)
{
	quadpan_class = class_new(gensym("quadpan~"), (t_newmethod)quadpan_new, (t_method)quadpan_free,sizeof(t_quadpan),0,A_GIMME,0);
	CLASS_MAINSIGNALIN(quadpan_class, t_quadpan, x_f);
	class_addmethod(quadpan_class, (t_method)quadpan_dsp, gensym("dsp"), A_CANT, 0);
    
	potpourri_announce(OBJECT_NAME);
}

void *quadpan_new(t_symbol *s, int argc, t_atom *argv)
{
    int i;
    t_quadpan *x = (t_quadpan *)pd_new(quadpan_class);
    
    
    for(i = 0; i < 2; i++){
        inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"),gensym("signal"));
    }
    for(i = 0; i < 4; i++){
        outlet_new(&x->x_obj, gensym("signal"));
    }
    x->in = (float *) malloc(8192 * sizeof(float));
    x->Xin = (float *) malloc(8192 * sizeof(float));
    x->Yin = (float *) malloc(8192 * sizeof(float));
//    x->pi_over_two = 1.5707963267948965;
//    x->twopi = 6.283185307179586;
    
    return x;
}
void quadpan_free(t_quadpan *x)
{
    free(x->in);
    free(x->Xin);
    free(x->Yin);
}

t_int *quadpan_perform(t_int *w)
{
    float gain1, gain2, gain3, gain4;
    float xval, yval;
    float xsquared, ysquared, ix, iy, ixsquared, iysquared;
    int i;
    
    t_quadpan *x = (t_quadpan *) (w[1]);
    float *in = x->in;
    float *Xin = x->Xin;
    float *Yin = x->Yin;
    
    float *in_loc = (t_float *)(w[2]);
    float *Xin_loc = (t_float *)(w[3]);
    float *Yin_loc = (t_float *)(w[4]);
    
    float *out1 = (t_float *)(w[5]);
    float *out2 = (t_float *)(w[6]);
    float *out3 = (t_float *)(w[7]);
    float *out4 = (t_float *)(w[8]);
    int n = (int)(w[9]);
    
    // copy buffers to avoid writeovers in shared memory
    for(i = 0; i < n; i++){
        in[i] = in_loc[i];
        Xin[i] = Xin_loc[i];
        Yin[i] = Yin_loc[i];
    }
    
    while( n-- ){
        xval = *Xin++;
        yval = *Yin++;
        if( xval < 0.0 )
            xval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        if( yval < 0.0 )
            yval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        
        xsquared = xval * xval;
        ysquared = yval * yval;
        ix = 1.0 - xval;
        iy = 1.0 - yval;
        ixsquared = ix * ix;
        iysquared = iy * iy;
        
        gain1 = sqrt( xsquared + ysquared );
        if( gain1 > 1.0 )
            gain1 = 1.0;
        gain1 = 1.0 - gain1; /* Left Rear Gain */
        
        
        gain2 = sqrt( ixsquared + ysquared );
        if( gain2 > 1.0 )
            gain2 = 1.0;
        gain2 = 1.0 - gain2; /* Right Rear Gain */
        
        gain3 = sqrt( xsquared + iysquared );
        if( gain3 > 1.0 )
            gain3 = 1.0;
        gain3 = 1.0 - gain3; /* Left Front Gain */
        
        
        gain4 = sqrt( ixsquared + iysquared ) ;
        if( gain4 > 1.0 )
            gain4 = 1.0;
        gain4 = 1.0 - gain4; /* Right Front Gain*/
        
        *out1++ = *in * gain3;
        *out2++ = *in * gain4;
        *out3++ = *in * gain2;
        *out4++ = *in++ * gain1;
    }
    
    return (w+10);
}



void quadpan_dsp(t_quadpan *x, t_signal **sp)
{
    if( ! sp[0]->s_sr ){
        return;
    }
    dsp_add(quadpan_perform, 9, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
            sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec,
            sp[0]->s_n);
}


\ No newline at end of file
+#include "MSPd.h"
#define OBJECT_NAME "quadpan~"
/*
 
 Front
 
 *out1         *out3
 
 
 
 *out2         *out4
 
 Back
 
 */

static t_class  *quadpan_class;


typedef struct _quadpan
{
    t_object x_obj;
    t_float x_f;
//    short bypass;
//    float pi_over_two;
//    float twopi;
    float *in;
    float *Xin;
    float *Yin;
} t_quadpan;

void *quadpan_new(t_symbol *s, int argc, t_atom *argv);
t_int *offset_perform(t_int *w);
t_int *quadpan_perform(t_int *w);
void quadpan_dsp(t_quadpan *x, t_signal **sp);
void quadpan_showstate( t_quadpan *x );
void quadpan_free(t_quadpan *x);
void quadpan_tilde_setup(void)
{
	quadpan_class = class_new(gensym("quadpan~"), (t_newmethod)quadpan_new, (t_method)quadpan_free,sizeof(t_quadpan),0,A_GIMME,0);
	CLASS_MAINSIGNALIN(quadpan_class, t_quadpan, x_f);
	class_addmethod(quadpan_class, (t_method)quadpan_dsp, gensym("dsp"), A_CANT, 0);
    
	potpourri_announce(OBJECT_NAME);
}

void *quadpan_new(t_symbol *s, int argc, t_atom *argv)
{
    int i;
    t_quadpan *x = (t_quadpan *)pd_new(quadpan_class);
    
    
    for(i = 0; i < 2; i++){
        inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"),gensym("signal"));
    }
    for(i = 0; i < 4; i++){
        outlet_new(&x->x_obj, gensym("signal"));
    }
    x->in = (float *) malloc(8192 * sizeof(float));
    x->Xin = (float *) malloc(8192 * sizeof(float));
    x->Yin = (float *) malloc(8192 * sizeof(float));
//    x->pi_over_two = 1.5707963267948965;
//    x->twopi = 6.283185307179586;
    
    return x;
}
void quadpan_free(t_quadpan *x)
{
    free(x->in);
    free(x->Xin);
    free(x->Yin);
}

t_int *quadpan_perform(t_int *w)
{
    float gain1, gain2, gain3, gain4;
    float xval, yval;
    float xsquared, ysquared, ix, iy, ixsquared, iysquared;
    int i;
    
    t_quadpan *x = (t_quadpan *) (w[1]);
    float *in = x->in;
    float *Xin = x->Xin;
    float *Yin = x->Yin;
    
    float *in_loc = (t_float *)(w[2]);
    float *Xin_loc = (t_float *)(w[3]);
    float *Yin_loc = (t_float *)(w[4]);
    
    float *out1 = (t_float *)(w[5]);
    float *out2 = (t_float *)(w[6]);
    float *out3 = (t_float *)(w[7]);
    float *out4 = (t_float *)(w[8]);
    int n = (int)(w[9]);
    
    // copy buffers to avoid writeovers in shared memory
    for(i = 0; i < n; i++){
        in[i] = in_loc[i];
        Xin[i] = Xin_loc[i];
        Yin[i] = Yin_loc[i];
    }
    
    while( n-- ){
        xval = *Xin++;
        yval = *Yin++;
        if( xval < 0.0 )
            xval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        if( yval < 0.0 )
            yval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        
        xsquared = xval * xval;
        ysquared = yval * yval;
        ix = 1.0 - xval;
        iy = 1.0 - yval;
        ixsquared = ix * ix;
        iysquared = iy * iy;
        
        gain1 = sqrt( xsquared + ysquared );
        if( gain1 > 1.0 )
            gain1 = 1.0;
        gain1 = 1.0 - gain1; /* Left Rear Gain */
        
        
        gain2 = sqrt( ixsquared + ysquared );
        if( gain2 > 1.0 )
            gain2 = 1.0;
        gain2 = 1.0 - gain2; /* Right Rear Gain */
        
        gain3 = sqrt( xsquared + iysquared );
        if( gain3 > 1.0 )
            gain3 = 1.0;
        gain3 = 1.0 - gain3; /* Left Front Gain */
        
        
        gain4 = sqrt( ixsquared + iysquared ) ;
        if( gain4 > 1.0 )
            gain4 = 1.0;
        gain4 = 1.0 - gain4; /* Right Front Gain*/
        
        *out1++ = *in * gain3;
        *out2++ = *in * gain4;
        *out3++ = *in * gain2;
        *out4++ = *in++ * gain1;
    }
    
    return (w+10);
}



void quadpan_dsp(t_quadpan *x, t_signal **sp)
{
    if( ! sp[0]->s_sr ){
        return;
    }
    dsp_add(quadpan_perform, 9, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
            sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec,
            (t_int)sp[0]->s_n);
}


diff --git a/externals/lyonpotpourri/rtrig~.c b/externals/lyonpotpourri/rtrig~.c
index 3604cb4dc4c3466f7012ee905bbc471a94154621..61c272b1d2b6dcc6e373c951ebbc6688f46413cd 100755
--- a/externals/lyonpotpourri/rtrig~.c
+++ b/externals/lyonpotpourri/rtrig~.c
@@ -139,7 +139,7 @@ void rtrig_dsp(t_rtrig *x, t_signal **sp)
 	dsp_add(rtrig_perform, 3, x, 
             //			sp[0]->s_vec, 
 			sp[1]->s_vec,
-			sp[0]->s_n
+			(t_int)sp[0]->s_n
             );
 }
 
diff --git a/externals/lyonpotpourri/sigseq~.c b/externals/lyonpotpourri/sigseq~.c
index a2233d763897628fe45eddd3887cb7f3fc69fda0..7282b65fb37b5c7819b9d7c19386751f55ae39b8 100755
--- a/externals/lyonpotpourri/sigseq~.c
+++ b/externals/lyonpotpourri/sigseq~.c
@@ -563,10 +563,10 @@ void sigseq_dsp(t_sigseq *x, t_signal **sp)
     }
     if(x->method == EXTERNAL_CLOCK){
         dsp_add(sigseq_perform_clickin, 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);
     } else {
         dsp_add(sigseq_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/lyonpotpourri/squash~.c b/externals/lyonpotpourri/squash~.c
index 0719eadb61f0fb733139c88a951ae95785ef59f8..2e6095d6e435eef7f5f5cd8b43cf7d9d0fceb403 100755
--- a/externals/lyonpotpourri/squash~.c
+++ b/externals/lyonpotpourri/squash~.c
@@ -394,7 +394,7 @@ void squash_dsp(t_squash *x, t_signal **sp)
         x->D = sp[0]->s_n;
         error("blocksize change not implemented yet!");
     } else {
-        dsp_add(squash_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        dsp_add(squash_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/lyonpotpourri/stutter~.c b/externals/lyonpotpourri/stutter~.c
index b65651589aa70c6f026d8a6a3c220afe9962801e..dae9ca2d0da0dea9cf5353c269626ba36a0a89ed 100755
--- a/externals/lyonpotpourri/stutter~.c
+++ b/externals/lyonpotpourri/stutter~.c
@@ -526,6 +526,6 @@ void stutter_dsp(t_stutter *x, t_signal **sp)
 		x->loop_min_samps = .02 * (t_float)x->R;
 		x->loop_max_samps = .2 * (t_float) x->R;
 	}
-	dsp_add(stutter_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(stutter_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/vdp~.c b/externals/lyonpotpourri/vdp~.c
index 0dc5a88c2f14620f22ce9a94d9583be3ebdbf6cd..54178244e0847a903d776fe9c862b79ab19f6161 100755
--- a/externals/lyonpotpourri/vdp~.c
+++ b/externals/lyonpotpourri/vdp~.c
@@ -380,7 +380,7 @@ void vdp_dsp(t_vdp *x, t_signal **sp)
 	}
     dsp_add(vdp_perform, 6, x,
     		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-    		sp[0]->s_n);
+    		(t_int)sp[0]->s_n);
     
 }
 
diff --git a/externals/lyonpotpourri/vecdex~.c b/externals/lyonpotpourri/vecdex~.c
index 626907b1520be0d8d314e4657255579920b10ba5..f7ad8050909f51e0a434d5929e2ec2707c00db4a 100755
--- a/externals/lyonpotpourri/vecdex~.c
+++ b/externals/lyonpotpourri/vecdex~.c
@@ -63,5 +63,5 @@ t_int *vecdex_perform(t_int *w)
 
 void vecdex_dsp(t_vecdex *x, t_signal **sp)
 {
-	dsp_add(vecdex_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
\ No newline at end of file
+	dsp_add(vecdex_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
+}
diff --git a/externals/lyonpotpourri/waveshape~.c b/externals/lyonpotpourri/waveshape~.c
index 47822b6b648bc405e6c36653ff3ef3ed25851f17..ad1a2c3131fe689dfbddbcf267026ce28e305bcc 100755
--- a/externals/lyonpotpourri/waveshape~.c
+++ b/externals/lyonpotpourri/waveshape~.c
@@ -166,6 +166,6 @@ t_int *waveshape_perform(t_int *w)
 
 void waveshape_dsp(t_waveshape *x, t_signal **sp)
 {
-    dsp_add(waveshape_perform, 4, x, sp[0]->s_vec,sp[1]->s_vec,sp[0]->s_n);
+    dsp_add(waveshape_perform, 4, x, sp[0]->s_vec,sp[1]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/windowvec~.c b/externals/lyonpotpourri/windowvec~.c
index cf471ca72b53a4a6b8bd535426d68070dafdffb0..7adbf12ad24aeda9f189b5d0b6e2a348de4521de 100755
--- a/externals/lyonpotpourri/windowvec~.c
+++ b/externals/lyonpotpourri/windowvec~.c
@@ -93,5 +93,5 @@ void windowvec_dsp(t_windowvec *x, t_signal **sp, short *count)
 			x->envelope[i] = - 0.5 * cos(twopi * (i / (float)x->vecsize)) + 0.5;
 		}
 	}
-	dsp_add(windowvec_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
\ No newline at end of file
+	dsp_add(windowvec_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
+}
diff --git a/externals/markex/abs~.c b/externals/markex/abs~.c
index 2ca443e4ef5a5be50105fc9a277ceb3c0de968fb..bb0f79f8c683a1400e8cdf7ec3383010a49d6bc3 100644
--- a/externals/markex/abs~.c
+++ b/externals/markex/abs~.c
@@ -32,7 +32,7 @@ static t_int *abs_perform(t_int *w)
 
 static void abs_dsp(t_abs *x, t_signal **sp)
 {
-    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *abs_new(void)
diff --git a/externals/markex/reson~.c b/externals/markex/reson~.c
index b5084b8d720d7a7935d3dbd68037500079306def..3318ea2f720e527f83f6a0e22cceac66d3700dbe 100644
--- a/externals/markex/reson~.c
+++ b/externals/markex/reson~.c
@@ -102,7 +102,7 @@ static void sigreson_dsp(t_sigreson *x, t_signal **sp)
 	x->x_ctl->c_samprate = sp[0]->s_sr;
 	sigreson_float(x, x->x_ctl->c_freq);
 	dsp_add(cu_reson, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
-		x->x_ctl, sp[0]->s_n);
+		x->x_ctl, (t_int)sp[0]->s_n);
 }
 
 static void sigreson_ft1(t_sigreson *x, t_floatarg f) /* sets feedback */
diff --git a/externals/miXed/cyclone/shadow/nettles.c b/externals/miXed/cyclone/shadow/nettles.c
index d7ccb878b0c25f78e5c95423f8288a8dc82fe429..9da130db4abd5d8d1b1181b9b284ded4db4c5092 100644
--- a/externals/miXed/cyclone/shadow/nettles.c
+++ b/externals/miXed/cyclone/shadow/nettles.c
@@ -151,15 +151,15 @@ static void sigeq_dsp(t_sigeq *x, t_signal **sp)
     switch (x->x_algo)
     {
     case 1:
-	dsp_add(sigeq_perform1, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform1, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 	break;
     case 2:
-	dsp_add(sigeq_perform2, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform2, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 	break;
     default:
-	dsp_add(sigeq_perform0, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform0, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
     }
 }
@@ -203,7 +203,7 @@ static t_int *signeq_perform(t_int *w)
 
 static void signeq_dsp(t_signeq *x, t_signal **sp)
 {
-    dsp_add(signeq_perform, 4, sp[0]->s_n,
+    dsp_add(signeq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -235,7 +235,7 @@ static t_int *siglt_perform(t_int *w)
 
 static void siglt_dsp(t_siglt *x, t_signal **sp)
 {
-    dsp_add(siglt_perform, 4, sp[0]->s_n,
+    dsp_add(siglt_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -267,7 +267,7 @@ static t_int *siggt_perform(t_int *w)
 
 static void siggt_dsp(t_siggt *x, t_signal **sp)
 {
-    dsp_add(siggt_perform, 4, sp[0]->s_n,
+    dsp_add(siggt_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -299,7 +299,7 @@ static t_int *sigleq_perform(t_int *w)
 
 static void sigleq_dsp(t_sigleq *x, t_signal **sp)
 {
-    dsp_add(sigleq_perform, 4, sp[0]->s_n,
+    dsp_add(sigleq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -331,7 +331,7 @@ static t_int *siggeq_perform(t_int *w)
 
 static void siggeq_dsp(t_siggeq *x, t_signal **sp)
 {
-    dsp_add(siggeq_perform, 4, sp[0]->s_n,
+    dsp_add(siggeq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -358,7 +358,7 @@ static t_int *sigrminus_perform(t_int *w)
 
 static void sigrminus_dsp(t_sigrminus *x, t_signal **sp)
 {
-    dsp_add(sigrminus_perform, 4, sp[0]->s_n,
+    dsp_add(sigrminus_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -392,7 +392,7 @@ static t_int *sigrover_perform(t_int *w)
 
 static void sigrover_dsp(t_sigrover *x, t_signal **sp)
 {
-    dsp_add(sigrover_perform, 4, sp[0]->s_n,
+    dsp_add(sigrover_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -427,7 +427,7 @@ static t_int *sigmod_perform(t_int *w)
 
 static void sigmod_dsp(t_sigmod *x, t_signal **sp)
 {
-    dsp_add(sigmod_perform, 4, sp[0]->s_n,
+    dsp_add(sigmod_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -462,7 +462,7 @@ static t_int *sigaccum_perform(t_int *w)
 
 static void sigaccum_dsp(t_sigaccum *x, t_signal **sp)
 {
-    dsp_add(sigaccum_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sigaccum_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void sigaccum_bang(t_sigaccum *x)
diff --git a/externals/miXed/cyclone/sickle/Clip.c b/externals/miXed/cyclone/sickle/Clip.c
index 7b7074801296b42e4f6634b6798522cf3b58e5c8..1ff02de502088b9a67354e24e493adeb689edb5c 100644
--- a/externals/miXed/cyclone/sickle/Clip.c
+++ b/externals/miXed/cyclone/sickle/Clip.c
@@ -37,7 +37,7 @@ static t_int *Clip_perform(t_int *w)
 
 static void clip_dsp(t_clip *x, t_signal **sp)
 {
-    dsp_add(Clip_perform, 5, sp[0]->s_n,
+    dsp_add(Clip_perform, 5, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/Line.c b/externals/miXed/cyclone/sickle/Line.c
index 78d446bca8e1c3f2bc60af704db8cd699954886f..609b14328ea3d037ab3538a158bd685bb39cf2f0 100644
--- a/externals/miXed/cyclone/sickle/Line.c
+++ b/externals/miXed/cyclone/sickle/Line.c
@@ -271,7 +271,7 @@ static void line_stop(t_line *x)
 
 static void line_dsp(t_line *x, t_signal **sp)
 {
-    dsp_add(line_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(line_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     x->x_ksr = sp[0]->s_sr * 0.001;
 }
 
diff --git a/externals/miXed/cyclone/sickle/Scope.c b/externals/miXed/cyclone/sickle/Scope.c
index 33b8b76f2298d7776a021366a11f8a8cebe963e4..ca31f13964fbe6b972d218358eb7633e594f20f6 100644
--- a/externals/miXed/cyclone/sickle/Scope.c
+++ b/externals/miXed/cyclone/sickle/Scope.c
@@ -317,9 +317,9 @@ static void scope_dsp(t_scope *x, t_signal **sp)
     scope_setxymode(x,
 		    forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal));
     if (x->x_xymode)
-	dsp_add(scope_xyperform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(scope_xyperform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
-	dsp_add(scope_monoperform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+	dsp_add(scope_monoperform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static t_canvas *scope_getcanvas(t_scope *x, t_glist *glist)
diff --git a/externals/miXed/cyclone/sickle/Scope.c.old b/externals/miXed/cyclone/sickle/Scope.c.old
index 9436e3f70264626c60bba7138d12be2703f81103..c6f1212bf571541ed828727f65e30281a6dca739 100644
--- a/externals/miXed/cyclone/sickle/Scope.c.old
+++ b/externals/miXed/cyclone/sickle/Scope.c.old
@@ -312,9 +312,9 @@ static void scope_dsp(t_scope *x, t_signal **sp)
     scope_setxymode(x,
 		    forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal));
     if (x->x_xymode)
-	dsp_add(scope_xyperform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(scope_xyperform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
-	dsp_add(scope_monoperform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+	dsp_add(scope_monoperform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static t_canvas *scope_getcanvas(t_scope *x, t_glist *glist)
diff --git a/externals/miXed/cyclone/sickle/abs.c b/externals/miXed/cyclone/sickle/abs.c
index 777b89100265961458f2c007c0e41320c0733038..5ffa4a807044ffd11e9c84da2e61f93a3134b2b0 100644
--- a/externals/miXed/cyclone/sickle/abs.c
+++ b/externals/miXed/cyclone/sickle/abs.c
@@ -70,12 +70,12 @@ static void abs_dsp(t_abs *x, t_signal **sp)
 #ifdef ABS_TEST
     t_symbol *tst = fitter_getsymbol(gensym("test"));
     if (tst == gensym("unroll"))
-	dsp_add(abs_perf8, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perf8, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else if (tst == gensym("branch"))
-	dsp_add(abs_perf0, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perf0, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
 #endif
-	dsp_add(abs_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *abs_new(void)
diff --git a/externals/miXed/cyclone/sickle/acos.c b/externals/miXed/cyclone/sickle/acos.c
index 3b706b1bcac54a6dc70624318d6fe5c9cab6da8c..63603ec24d35d4d0dfb662d7b608f34facfd2113 100644
--- a/externals/miXed/cyclone/sickle/acos.c
+++ b/externals/miXed/cyclone/sickle/acos.c
@@ -29,7 +29,7 @@ static t_int *acos_perform(t_int *w)
 
 static void acos_dsp(t_acos *x, t_signal **sp)
 {
-    dsp_add(acos_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(acos_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *acos_new(void)
diff --git a/externals/miXed/cyclone/sickle/acosh.c b/externals/miXed/cyclone/sickle/acosh.c
index eabecb51791aeaefcd6df685978d139c2ca5a855..747f42e1009f7ad75f27907fbfc8d1e01549e0a9 100644
--- a/externals/miXed/cyclone/sickle/acosh.c
+++ b/externals/miXed/cyclone/sickle/acosh.c
@@ -29,7 +29,7 @@ static t_int *acosh_perform(t_int *w)
 
 static void acosh_dsp(t_acosh *x, t_signal **sp)
 {
-    dsp_add(acosh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(acosh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *acosh_new(void)
diff --git a/externals/miXed/cyclone/sickle/allpass.c b/externals/miXed/cyclone/sickle/allpass.c
index 761d0ccda9ac3c0caa9b8964f607a95aa8161b9d..d5d3f8d827a9d440faab4190ab0e24dc53863016 100644
--- a/externals/miXed/cyclone/sickle/allpass.c
+++ b/externals/miXed/cyclone/sickle/allpass.c
@@ -106,7 +106,7 @@ static void allpass_dsp(t_allpass *x, t_signal **sp)
 	allpass_resize(x, x->x_ksr * x->x_maxdelay);
     }
     else allpass_clear(x);
-    dsp_add(allpass_perform, 6, x, sp[0]->s_n,
+    dsp_add(allpass_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/asin.c b/externals/miXed/cyclone/sickle/asin.c
index 282c830e225fec293e3f9ef43626c3bd06815e6b..e643cd2711ca14c0b49174880e7df2b8cb1dc5c2 100644
--- a/externals/miXed/cyclone/sickle/asin.c
+++ b/externals/miXed/cyclone/sickle/asin.c
@@ -29,7 +29,7 @@ static t_int *asin_perform(t_int *w)
 
 static void asin_dsp(t_asin *x, t_signal **sp)
 {
-    dsp_add(asin_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(asin_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *asin_new(void)
diff --git a/externals/miXed/cyclone/sickle/asinh.c b/externals/miXed/cyclone/sickle/asinh.c
index 367ce0cc50b41bb10680c55531ab104875c3a3d8..c277bbbce63dd293f3c704517958582adf7d788e 100644
--- a/externals/miXed/cyclone/sickle/asinh.c
+++ b/externals/miXed/cyclone/sickle/asinh.c
@@ -29,7 +29,7 @@ static t_int *asinh_perform(t_int *w)
 
 static void asinh_dsp(t_asinh *x, t_signal **sp)
 {
-    dsp_add(asinh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(asinh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *asinh_new(void)
diff --git a/externals/miXed/cyclone/sickle/atan.c b/externals/miXed/cyclone/sickle/atan.c
index 89d8e8818f0a6841abc0af5d8cccec7338904758..963b9f529dd2097f4f2fdf54390891bb145ef379 100644
--- a/externals/miXed/cyclone/sickle/atan.c
+++ b/externals/miXed/cyclone/sickle/atan.c
@@ -29,7 +29,7 @@ static t_int *atan_perform(t_int *w)
 
 static void atan_dsp(t_atan *x, t_signal **sp)
 {
-    dsp_add(atan_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(atan_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *atan_new(void)
diff --git a/externals/miXed/cyclone/sickle/atan2.c b/externals/miXed/cyclone/sickle/atan2.c
index 327efd171ccc52ac8b742c317afb9ef9c986f41b..e94cb14975c6e0e56e9b79d280c75d595afe0365 100644
--- a/externals/miXed/cyclone/sickle/atan2.c
+++ b/externals/miXed/cyclone/sickle/atan2.c
@@ -32,7 +32,7 @@ static t_int *atan2_perform(t_int *w)
 
 static void atan2_dsp(t_atan2 *x, t_signal **sp)
 {
-    dsp_add(atan2_perform, 4, sp[0]->s_n,
+    dsp_add(atan2_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/atanh.c b/externals/miXed/cyclone/sickle/atanh.c
index 4152236b1297f62fdbc8ddc07e5f0d7705a408c5..b26e673e75b767d411805cff566e45aaa7e13413 100644
--- a/externals/miXed/cyclone/sickle/atanh.c
+++ b/externals/miXed/cyclone/sickle/atanh.c
@@ -29,7 +29,7 @@ static t_int *atanh_perform(t_int *w)
 
 static void atanh_dsp(t_atanh *x, t_signal **sp)
 {
-    dsp_add(atanh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(atanh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *atanh_new(void)
diff --git a/externals/miXed/cyclone/sickle/atodb.c b/externals/miXed/cyclone/sickle/atodb.c
index 981f227c42520ea52baa00f412de352c17c666c0..65d5d483a3ee1ec2d1348e5a42bfa59c403766fe 100644
--- a/externals/miXed/cyclone/sickle/atodb.c
+++ b/externals/miXed/cyclone/sickle/atodb.c
@@ -47,7 +47,7 @@ static t_int * atodb_perform(t_int *w)
 
 static void atodb_dsp(t_atodb *x, t_signal **sp)
 {
-  dsp_add(atodb_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(atodb_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 void *atodb_new(void)
diff --git a/externals/miXed/cyclone/sickle/average.c b/externals/miXed/cyclone/sickle/average.c
index 870ca0dde985cd89d6cab78d08d0784ca0ac16b1..5b25cc33d74fe01dce18ddf5d4d841563faeb6b9 100644
--- a/externals/miXed/cyclone/sickle/average.c
+++ b/externals/miXed/cyclone/sickle/average.c
@@ -142,7 +142,7 @@ static t_int *average_perform(t_int *w)
 
 static void average_dsp(t_average *x, t_signal **sp)
 {
-    dsp_add(average_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(average_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void average_free(t_average *x)
diff --git a/externals/miXed/cyclone/sickle/avg.c b/externals/miXed/cyclone/sickle/avg.c
index 2ad214a3794bae43e906d61773c91f1cfc996942..73102e27d5296bac6fecd9275c2d63a0719a101a 100644
--- a/externals/miXed/cyclone/sickle/avg.c
+++ b/externals/miXed/cyclone/sickle/avg.c
@@ -40,7 +40,7 @@ static t_int *avg_perform(t_int *w)
 
 static void avg_dsp(t_avg *x, t_signal **sp)
 {
-    dsp_add(avg_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(avg_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *avg_new(void)
diff --git a/externals/miXed/cyclone/sickle/bitand.c b/externals/miXed/cyclone/sickle/bitand.c
index a7cfeb7372b3f97b32d6ab585b2785611bfe79f6..3066921b49885e9273282f48a311f8649b047d91 100644
--- a/externals/miXed/cyclone/sickle/bitand.c
+++ b/externals/miXed/cyclone/sickle/bitand.c
@@ -96,10 +96,10 @@ static void bitand_dsp(t_bitand *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitand_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitand_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitand_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitand_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/bitnot.c b/externals/miXed/cyclone/sickle/bitnot.c
index c2929e8d19aee5d170273522c1e992001d165b5d..4b6e025b26b7463664d03c952f2a45852f99b3a5 100644
--- a/externals/miXed/cyclone/sickle/bitnot.c
+++ b/externals/miXed/cyclone/sickle/bitnot.c
@@ -37,7 +37,7 @@ static t_int *bitnot_perform(t_int *w)
 
 static void bitnot_dsp(t_bitnot *x, t_signal **sp)
 {
-    dsp_add(bitnot_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(bitnot_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void bitnot_mode(t_bitnot *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/bitor.c b/externals/miXed/cyclone/sickle/bitor.c
index e5c887b16ae35c42156169c6eabcbb09ca4d1a1e..311ade0b1dfef07b1afb27ce7da74c88494ff5a6 100644
--- a/externals/miXed/cyclone/sickle/bitor.c
+++ b/externals/miXed/cyclone/sickle/bitor.c
@@ -96,10 +96,10 @@ static void bitor_dsp(t_bitor *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitor_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitor_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitor_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitor_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/bitshift.c b/externals/miXed/cyclone/sickle/bitshift.c
index 707048c00121b94efb25f2521848075ff946be2e..e2638b4b7aed67264b94a0ce3b542877e79c1035 100644
--- a/externals/miXed/cyclone/sickle/bitshift.c
+++ b/externals/miXed/cyclone/sickle/bitshift.c
@@ -74,7 +74,7 @@ static t_int *bitshift_perform(t_int *w)
 
 static void bitshift_dsp(t_bitshift *x, t_signal **sp)
 {
-    dsp_add(bitshift_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(bitshift_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void bitshift_mode(t_bitshift *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/bitxor.c b/externals/miXed/cyclone/sickle/bitxor.c
index 5eeb4fdddf48d6f560aaf13e09f184baa77d613a..7f964d00fd66e9ecd5b239b7d86fca62f72d3ab4 100644
--- a/externals/miXed/cyclone/sickle/bitxor.c
+++ b/externals/miXed/cyclone/sickle/bitxor.c
@@ -99,10 +99,10 @@ static void bitxor_dsp(t_bitxor *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitxor_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitxor_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitxor_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitxor_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/capture.c b/externals/miXed/cyclone/sickle/capture.c
index a61369493df06bc1fb806d9eebb77b0ae61384fa..cfb47a2e9f6fc99d2e12e7b13d65507f5efdd223 100644
--- a/externals/miXed/cyclone/sickle/capture.c
+++ b/externals/miXed/cyclone/sickle/capture.c
@@ -287,11 +287,11 @@ static void capture_dsp(t_capture *x, t_signal **sp)
     if (x->x_indices)
 	dsp_add((x->x_mode == 'f' ?
 		 capture_perform_first : capture_perform_last),
-		3, x, sp[0]->s_vec, sp[0]->s_n);
+		3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
 	dsp_add((x->x_mode == 'f' ?
 		 capture_perform_allfirst : capture_perform_alllast),
-		3, x, sp[0]->s_vec, sp[0]->s_n);
+		3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void capture_free(t_capture *x)
diff --git a/externals/miXed/cyclone/sickle/cartopol.c b/externals/miXed/cyclone/sickle/cartopol.c
index 8513af673915c71f7ce13441d82e576b160e266d..7fe970d6063ab2acb8476412f613b6bbbb586dd1 100644
--- a/externals/miXed/cyclone/sickle/cartopol.c
+++ b/externals/miXed/cyclone/sickle/cartopol.c
@@ -54,10 +54,10 @@ static t_int *cartopol_perform_nophase(t_int *w)
 static void cartopol_dsp(t_cartopol *x, t_signal **sp)
 {
     if (fragile_outlet_connections(x->x_out2))
-	dsp_add(cartopol_perform, 5, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(cartopol_perform, 5, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
     else
-	dsp_add(cartopol_perform_nophase, 4, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(cartopol_perform_nophase, 4, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/change.c b/externals/miXed/cyclone/sickle/change.c
index fffc43a3438efc20d631895222313dc0f653bc58..26053690115238222e953ba7328331134f61b571 100644
--- a/externals/miXed/cyclone/sickle/change.c
+++ b/externals/miXed/cyclone/sickle/change.c
@@ -32,7 +32,7 @@ static t_int *change_perform(t_int *w)
 
 static void change_dsp(t_change *x, t_signal **sp)
 {
-    dsp_add(change_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(change_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *change_new(void)
diff --git a/externals/miXed/cyclone/sickle/click.c b/externals/miXed/cyclone/sickle/click.c
index 5734cfdd7cc73eb4744af23b5596ab1e38a285d7..f852e8900c4abc3b5f9578dea990fd4fdc75e068 100644
--- a/externals/miXed/cyclone/sickle/click.c
+++ b/externals/miXed/cyclone/sickle/click.c
@@ -83,7 +83,7 @@ static t_int *click_perform(t_int *w)
 
 static void click_dsp(t_click *x, t_signal **sp)
 {
-    dsp_add(click_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(click_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void click_free(t_click *x)
diff --git a/externals/miXed/cyclone/sickle/comb.c b/externals/miXed/cyclone/sickle/comb.c
index 8d4c8b37a964fc0de74c1e5e5a9b7d3e79d030a3..a6c800a643ec5e1d8e28687c966d3449ba6206b1 100644
--- a/externals/miXed/cyclone/sickle/comb.c
+++ b/externals/miXed/cyclone/sickle/comb.c
@@ -110,7 +110,7 @@ static void comb_dsp(t_comb *x, t_signal **sp)
 	comb_resize(x, x->x_ksr * x->x_maxdelay);
     }
     else comb_clear(x);
-    dsp_add(comb_perform, 8, x, sp[0]->s_n,
+    dsp_add(comb_perform, 8, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
 	    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/cosh.c b/externals/miXed/cyclone/sickle/cosh.c
index 87f195f93881968e87416f3a1233224e7bcb7ed2..f44406943502f0d15b714712c6efc28ec612d163 100644
--- a/externals/miXed/cyclone/sickle/cosh.c
+++ b/externals/miXed/cyclone/sickle/cosh.c
@@ -29,7 +29,7 @@ static t_int *cosh_perform(t_int *w)
 
 static void cosh_dsp(t_cosh *x, t_signal **sp)
 {
-    dsp_add(cosh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(cosh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *cosh_new(void)
diff --git a/externals/miXed/cyclone/sickle/cosx.c b/externals/miXed/cyclone/sickle/cosx.c
index d86fdaebdad4633b169bd3a4de66e22bfe4bc781..5a9c0ad3befba3c7418fdc2bb51863cb98f7219d 100644
--- a/externals/miXed/cyclone/sickle/cosx.c
+++ b/externals/miXed/cyclone/sickle/cosx.c
@@ -32,7 +32,7 @@ static t_int *cosx_perform(t_int *w)
 
 static void cosx_dsp(t_cosx *x, t_signal **sp)
 {
-    dsp_add(cosx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(cosx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *cosx_new(void)
diff --git a/externals/miXed/cyclone/sickle/count.c b/externals/miXed/cyclone/sickle/count.c
index 2a36f441132d26b2c7ab5a672ae5c47987bf94ca..1b2b52544c28c46237c1cb5e6779d464d4cc842b 100644
--- a/externals/miXed/cyclone/sickle/count.c
+++ b/externals/miXed/cyclone/sickle/count.c
@@ -123,7 +123,7 @@ static t_int *count_perform(t_int *w)
 static void count_dsp(t_count *x, t_signal **sp)
 {
     if (x->x_autoreset) count_bang(x);
-    dsp_add(count_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(count_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *count_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/miXed/cyclone/sickle/curve.c b/externals/miXed/cyclone/sickle/curve.c
index 11ada15de1497bed29bc469148de55b625e137fb..b58b90f55ed302c5f7b497f72f03b704614b1b09 100644
--- a/externals/miXed/cyclone/sickle/curve.c
+++ b/externals/miXed/cyclone/sickle/curve.c
@@ -333,7 +333,7 @@ static void curve_dsp(t_curve *x, t_signal **sp)
 	    segp++;
 	}
     }
-    dsp_add(curve_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(curve_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void curve_free(t_curve *x)
diff --git a/externals/miXed/cyclone/sickle/cycle.c b/externals/miXed/cyclone/sickle/cycle.c
index cf61816b1b1762ff6f5653f96ec0b0273653e61b..4dd8084eafebf2d9d75bef4ec2ea15c2ff3afe1a 100644
--- a/externals/miXed/cyclone/sickle/cycle.c
+++ b/externals/miXed/cyclone/sickle/cycle.c
@@ -136,7 +136,7 @@ static void cycle_dsp(t_cycle *x, t_signal **sp)
 {
     cycle_gettable(x);
     x->x_conv = CYCLE_TABSIZE / sp[0]->s_sr;
-    dsp_add(cycle_perform, 5, x, sp[0]->s_n,
+    dsp_add(cycle_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/dbtoa.c b/externals/miXed/cyclone/sickle/dbtoa.c
index a435a60bfd6c31c3d684a291ebd24e475484a08d..820a3591d6bc24d1f777a038972bb18678d42c5c 100644
--- a/externals/miXed/cyclone/sickle/dbtoa.c
+++ b/externals/miXed/cyclone/sickle/dbtoa.c
@@ -39,7 +39,7 @@ static t_int * dbtoa_perform(t_int *w)
 
 static void dbtoa_dsp(t_dbtoa *x, t_signal **sp)
 {
-  dsp_add(dbtoa_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(dbtoa_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 void *dbtoa_new(void)
diff --git a/externals/miXed/cyclone/sickle/delay.c b/externals/miXed/cyclone/sickle/delay.c
index b0ddd9d739eeac8eed383972a6fd6a319e8eb7dd..d17294be46bbcc7d16858245b29d9b3304396d5c 100644
--- a/externals/miXed/cyclone/sickle/delay.c
+++ b/externals/miXed/cyclone/sickle/delay.c
@@ -63,7 +63,7 @@ static void delay_dsp(t_delay *x, t_signal **sp)
 {
     memset(x->x_buf, 0, x->x_maxsize * sizeof(*x->x_buf));  /* CHECKED */
     x->x_whead = x->x_buf;
-    dsp_add(delay_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(delay_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *delay_new(t_floatarg f1, t_floatarg f2)
diff --git a/externals/miXed/cyclone/sickle/delta.c b/externals/miXed/cyclone/sickle/delta.c
index 145d6b7e4b23a9a65b43ce7e3930eaba0639a663..634f786771a623e38ecc51b1b126656786cb738a 100644
--- a/externals/miXed/cyclone/sickle/delta.c
+++ b/externals/miXed/cyclone/sickle/delta.c
@@ -32,7 +32,7 @@ static t_int *delta_perform(t_int *w)
 
 static void delta_dsp(t_delta *x, t_signal **sp)
 {
-    dsp_add(delta_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(delta_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *delta_new(void)
diff --git a/externals/miXed/cyclone/sickle/deltaclip.c b/externals/miXed/cyclone/sickle/deltaclip.c
index 763a1006770683672090db56b048cdfb260e265b..0c76bdf3f89232d801b0ecd7f23a7ce1426cf4f6 100644
--- a/externals/miXed/cyclone/sickle/deltaclip.c
+++ b/externals/miXed/cyclone/sickle/deltaclip.c
@@ -46,7 +46,7 @@ static t_int *deltaclip_perform(t_int *w)
 
 static void deltaclip_dsp(t_deltaclip *x, t_signal **sp)
 {
-    dsp_add(deltaclip_perform, 6, x, sp[0]->s_n,
+    dsp_add(deltaclip_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/edge.c b/externals/miXed/cyclone/sickle/edge.c
index b206f6ba6a9c8eab0b9890b815727cf49365ab85..f2f481bf892bdb3fd7a8ded3dcb00be00a40fb56 100644
--- a/externals/miXed/cyclone/sickle/edge.c
+++ b/externals/miXed/cyclone/sickle/edge.c
@@ -76,7 +76,7 @@ static t_int *edge_perform(t_int *w)
 
 static void edge_dsp(t_edge *x, t_signal **sp)
 {
-    dsp_add(edge_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(edge_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void edge_free(t_edge *x)
diff --git a/externals/miXed/cyclone/sickle/frameaccum.c b/externals/miXed/cyclone/sickle/frameaccum.c
index 6038ae5399caf1900aef9cfa5c6b70028598d0fe..aaab147f5bd34feb1b91ada50b9d42d1a72c603f 100644
--- a/externals/miXed/cyclone/sickle/frameaccum.c
+++ b/externals/miXed/cyclone/sickle/frameaccum.c
@@ -37,7 +37,7 @@ static void frameaccum_dsp(t_frameaccum *x, t_signal **sp)
 				 FRAMEACCUM_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKED */
-    dsp_add(frameaccum_perform, 4, nblock, x->x_frame,
+    dsp_add(frameaccum_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/framedelta.c b/externals/miXed/cyclone/sickle/framedelta.c
index b898444cac6a56fcb6877275da5be19bc1d9ceaf..1fe8472b84bedaea98fa2ba9147f066f04483f66 100644
--- a/externals/miXed/cyclone/sickle/framedelta.c
+++ b/externals/miXed/cyclone/sickle/framedelta.c
@@ -42,7 +42,7 @@ static void framedelta_dsp(t_framedelta *x, t_signal **sp)
 				 FRAMEDELTA_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKME */
-    dsp_add(framedelta_perform, 4, nblock, x->x_frame,
+    dsp_add(framedelta_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/kink.c b/externals/miXed/cyclone/sickle/kink.c
index 86bc81d93ff627175c709873aa46275a7e2f15d4..b4652a5a8257ca3ef453311fe3b2a875db9e5f2b 100644
--- a/externals/miXed/cyclone/sickle/kink.c
+++ b/externals/miXed/cyclone/sickle/kink.c
@@ -41,7 +41,7 @@ static t_int *kink_perform(t_int *w)
 
 static void kink_dsp(t_kink *x, t_signal **sp)
 {
-    dsp_add(kink_perform, 4, sp[0]->s_n,
+    dsp_add(kink_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/log.c b/externals/miXed/cyclone/sickle/log.c
index 0a1407075ceb533043dab01271a0abfe8cc3d2f4..b24ff7afedf8298fa36eb685a52e55c7d6fc5b3a 100644
--- a/externals/miXed/cyclone/sickle/log.c
+++ b/externals/miXed/cyclone/sickle/log.c
@@ -50,7 +50,7 @@ static t_int *log_perform(t_int *w)
 
 static void log_dsp(t_log *x, t_signal **sp)
 {
-    dsp_add(log_perform, 4, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec,
+    dsp_add(log_perform, 4, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec,
 	    &x->x_rcplogbase);
 }
 
diff --git a/externals/miXed/cyclone/sickle/lores.c b/externals/miXed/cyclone/sickle/lores.c
index 2fe71ee3f1489e1aafcc614c99439937721769a5..9af5e937c4942cb706c1d8bf7cf1b4fded32073d 100644
--- a/externals/miXed/cyclone/sickle/lores.c
+++ b/externals/miXed/cyclone/sickle/lores.c
@@ -83,7 +83,7 @@ static void lores_dsp(t_lores *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     lores_clear(x);
-    dsp_add(lores_perform, 6, x, sp[0]->s_n,
+    dsp_add(lores_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/matrix.c b/externals/miXed/cyclone/sickle/matrix.c
index df8f471c435b913a5dcc74b8ed9ab2797eb081fc..236a76c3724bd22bb9d2b49703b91cff70790e6d 100644
--- a/externals/miXed/cyclone/sickle/matrix.c
+++ b/externals/miXed/cyclone/sickle/matrix.c
@@ -348,9 +348,9 @@ static void matrix_dsp(t_matrix *x, t_signal **sp)
     if (x->x_gains)
     {
 	x->x_ksr = sp[0]->s_sr * .001;
-	dsp_add(matrixnb_perform, 2, x, nblock);
+	dsp_add(matrixnb_perform, 2, x, (t_int)nblock);
     }
-    else dsp_add(matrix01_perform, 2, x, nblock);
+    else dsp_add(matrix01_perform, 2, x, (t_int)nblock);
 }
 
 static void matrix_cellout(t_matrix *x, int indx, int ondx,
diff --git a/externals/miXed/cyclone/sickle/maximum.c b/externals/miXed/cyclone/sickle/maximum.c
index 8d947ec713a9d739e3b1f613b134b33e9de93a77..b0af7a5395d0cad961a8063f9ac1b7786ae1c696 100644
--- a/externals/miXed/cyclone/sickle/maximum.c
+++ b/externals/miXed/cyclone/sickle/maximum.c
@@ -29,7 +29,7 @@ static t_int *maximum_perform(t_int *w)
 
 static void maximum_dsp(t_maximum *x, t_signal **sp)
 {
-    dsp_add(maximum_perform, 4, sp[0]->s_n,
+    dsp_add(maximum_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/minimum.c b/externals/miXed/cyclone/sickle/minimum.c
index cb31f498c87f94e91f33c0fe1daea01ed8c13ef9..5b591b553e6b0b0c68d2de51fd07f948dc655766 100644
--- a/externals/miXed/cyclone/sickle/minimum.c
+++ b/externals/miXed/cyclone/sickle/minimum.c
@@ -29,7 +29,7 @@ static t_int *minimum_perform(t_int *w)
 
 static void minimum_dsp(t_minimum *x, t_signal **sp)
 {
-    dsp_add(minimum_perform, 4, sp[0]->s_n,
+    dsp_add(minimum_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/minmax.c b/externals/miXed/cyclone/sickle/minmax.c
index 5bd0e3914767a2f2f82ca2770ec1a5965eae3f8d..e5f63afa0e6adf7eeecf053c8ac0ace6ec8930b2 100644
--- a/externals/miXed/cyclone/sickle/minmax.c
+++ b/externals/miXed/cyclone/sickle/minmax.c
@@ -51,7 +51,7 @@ static t_int *minmax_perform(t_int *w)
 
 static void minmax_dsp(t_minmax *x, t_signal **sp)
 {
-    dsp_add(minmax_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+    dsp_add(minmax_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 	    sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/mstosamps.c b/externals/miXed/cyclone/sickle/mstosamps.c
index 37b2cc5ddf86b6e5cde5196957e04f1ec1fba605..cce733d22239606a7d5e90a7498b2e6eaf5382f3 100644
--- a/externals/miXed/cyclone/sickle/mstosamps.c
+++ b/externals/miXed/cyclone/sickle/mstosamps.c
@@ -34,7 +34,7 @@ static void mstosamps_dsp(t_mstosamps *x, t_signal **sp)
 {
     x->x_ksr = sp[0]->s_sr * .001;
     dsp_add(mstosamps_perform, 4, x,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *mstosamps_new(void)
diff --git a/externals/miXed/cyclone/sickle/onepole.c b/externals/miXed/cyclone/sickle/onepole.c
index dec0ee187d880f3277e6d1bdbb5b6b14cbb80379..e8f598fdf74ddde88ba21e062712699cd9995c0d 100644
--- a/externals/miXed/cyclone/sickle/onepole.c
+++ b/externals/miXed/cyclone/sickle/onepole.c
@@ -106,7 +106,7 @@ static void onepole_dsp(t_onepole *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     onepole_clear(x);
-    dsp_add(onepole_perform, 5, x, sp[0]->s_n,
+    dsp_add(onepole_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/overdrive.c b/externals/miXed/cyclone/sickle/overdrive.c
index 7bee8f770e243b3ed031e0c5c1b186df12645931..7e3740b094dfb3338617fa6d5085c4f85cb9b842 100644
--- a/externals/miXed/cyclone/sickle/overdrive.c
+++ b/externals/miXed/cyclone/sickle/overdrive.c
@@ -56,7 +56,7 @@ static t_int *overdrive_perform(t_int *w)
 static void overdrive_dsp(t_overdrive *x, t_signal **sp)
 {
     dsp_add(overdrive_perform, 4, &x->x_drivefactor,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *overdrive_new(t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/peakamp.c b/externals/miXed/cyclone/sickle/peakamp.c
index 67d10932d27717011c44eefb958042339069655e..cf5bac31acb2dab035b57dc6e38cc7200265f1db 100644
--- a/externals/miXed/cyclone/sickle/peakamp.c
+++ b/externals/miXed/cyclone/sickle/peakamp.c
@@ -72,7 +72,7 @@ static void peakamp_dsp(t_peakamp *x, t_signal **sp)
 {
     x->x_ksr = sp[0]->s_sr * 0.001;
     x->x_nwait = (int)(x->x_waittime * x->x_ksr);
-    dsp_add(peakamp_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(peakamp_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void peakamp_free(t_peakamp *x)
diff --git a/externals/miXed/cyclone/sickle/phasewrap.c b/externals/miXed/cyclone/sickle/phasewrap.c
index 535d5e803f8f6dcc0c1ebad16f2d9a0aa2729a2d..5cf65cfbb8bb885b25fcbcf9cf83c8aeee50d25a 100644
--- a/externals/miXed/cyclone/sickle/phasewrap.c
+++ b/externals/miXed/cyclone/sickle/phasewrap.c
@@ -88,13 +88,13 @@ static void phasewrap_dsp(t_phasewrap *x, t_signal **sp)
     switch (x->x_algo)
     {
     case 1:
-	dsp_add(phasewrap_perform1, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform1, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 	break;
     case 2:
-	dsp_add(phasewrap_perform2, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform2, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 	break;
     default:
-	dsp_add(phasewrap_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     }
 }
 
diff --git a/externals/miXed/cyclone/sickle/pink.c b/externals/miXed/cyclone/sickle/pink.c
index 0ba71b2c9c71ca41ba8b9f21eb063278e12a9245..19475148f4f8a612e92ed46d03953ac2b0c1ad4a 100644
--- a/externals/miXed/cyclone/sickle/pink.c
+++ b/externals/miXed/cyclone/sickle/pink.c
@@ -74,7 +74,7 @@ static t_int *pink_perform(t_int *w)
 
 static void pink_dsp(t_pink *x, t_signal **sp)
 {
-    dsp_add(pink_perform, 3, x, sp[1]->s_n, sp[1]->s_vec);
+    dsp_add(pink_perform, 3, x, (t_int)sp[1]->s_n, sp[1]->s_vec);
 }
 
 static void *pink_new(void)
diff --git a/externals/miXed/cyclone/sickle/poltocar.c b/externals/miXed/cyclone/sickle/poltocar.c
index 5c703b8a10943741092fb7236ed626600e37e02c..637cf251d4a1c0117775ba8e51601b1de39266f2 100644
--- a/externals/miXed/cyclone/sickle/poltocar.c
+++ b/externals/miXed/cyclone/sickle/poltocar.c
@@ -54,10 +54,10 @@ static t_int *poltocar_perform_noimag(t_int *w)
 static void poltocar_dsp(t_poltocar *x, t_signal **sp)
 {
     if (fragile_outlet_connections(x->x_out2))
-	dsp_add(poltocar_perform, 5, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(poltocar_perform, 5, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
     else
-	dsp_add(poltocar_perform_noimag, 4, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(poltocar_perform_noimag, 4, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/pong.c b/externals/miXed/cyclone/sickle/pong.c
index 70f6f938b1c125d6ad9582834b729235bb6a26b9..9143380c86e7b4cddb15428a8d64208972864d15 100644
--- a/externals/miXed/cyclone/sickle/pong.c
+++ b/externals/miXed/cyclone/sickle/pong.c
@@ -337,12 +337,12 @@ static void pong_tilde_dsp(t_pong_tilde *x, t_signal **sp)
 {
 	/*
 	if(x->x_numargs <= 1){
-		dsp_add(pong_tilde_perform_maxonly, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+		dsp_add(pong_tilde_perform_maxonly, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  (t_int)sp[0]->s_n);
 	}
 	
 	else{
 	*/	
-		dsp_add(pong_tilde_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+		dsp_add(pong_tilde_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 	//	};
 }
 
diff --git a/externals/miXed/cyclone/sickle/pow.c b/externals/miXed/cyclone/sickle/pow.c
index 2f95e8ffef8eb20282515a06bd8a6f0b69a31ce7..7c96454124a50a8c590340eb882eb27b4baeb0a9 100644
--- a/externals/miXed/cyclone/sickle/pow.c
+++ b/externals/miXed/cyclone/sickle/pow.c
@@ -33,7 +33,7 @@ static t_int *pow_perform(t_int *w)
 
 static void pow_dsp(t_pow *x, t_signal **sp)
 {
-    dsp_add(pow_perform, 4, sp[0]->s_n,
+    dsp_add(pow_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/rampsmooth.c b/externals/miXed/cyclone/sickle/rampsmooth.c
index 00819da67bd5e94b95f74e3a34fd2d7d7238a109..141cd1df591064db80f19f8887783059ac272f15 100644
--- a/externals/miXed/cyclone/sickle/rampsmooth.c
+++ b/externals/miXed/cyclone/sickle/rampsmooth.c
@@ -129,7 +129,7 @@ static t_int *rampsmooth_perform(t_int *w)
 
 static void rampsmooth_dsp(t_rampsmooth *x, t_signal **sp)
 {
-    dsp_add(rampsmooth_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(rampsmooth_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void rampsmooth_rampup(t_rampsmooth *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/rand.c b/externals/miXed/cyclone/sickle/rand.c
index 29047c263e8209652f6af3ce28c76c5e91f85cd5..abceac4ef00f1f5ced1b60f4e42e9e68d54b95b4 100644
--- a/externals/miXed/cyclone/sickle/rand.c
+++ b/externals/miXed/cyclone/sickle/rand.c
@@ -67,7 +67,7 @@ static t_int *rand_perform(t_int *w)
 static void rand_dsp(t_rand *x, t_signal **sp)
 {
     x->x_rcpsr = 1. / sp[0]->s_sr;
-    dsp_add(rand_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(rand_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *rand_new(t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/reson.c b/externals/miXed/cyclone/sickle/reson.c
index a9d9cf44bff235bc8c887627d4781d0657348c04..6adcd0678f4da2f7b468959400c2c673234868c1 100644
--- a/externals/miXed/cyclone/sickle/reson.c
+++ b/externals/miXed/cyclone/sickle/reson.c
@@ -91,7 +91,7 @@ static void reson_dsp(t_reson *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     reson_clear(x);
-    dsp_add(reson_perform, 7, x, sp[0]->s_n,
+    dsp_add(reson_perform, 7, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
 	    sp[4]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/round.c b/externals/miXed/cyclone/sickle/round.c
index 221de14149283a332e97a1e59e03558538d16219..3d8946a69cbb75df84439777599e831621653ec1 100644
--- a/externals/miXed/cyclone/sickle/round.c
+++ b/externals/miXed/cyclone/sickle/round.c
@@ -135,7 +135,7 @@ static void round_tilde_nearest(t_round_tilde *x, t_float f, t_float glob){
 }
 static void round_tilde_dsp(t_round_tilde *x, t_signal **sp)
 {
-	dsp_add(round_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+	dsp_add(round_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/miXed/cyclone/sickle/sah.c b/externals/miXed/cyclone/sickle/sah.c
index afac1e09af4c809793f76b679d8396fe5265f0bd..e06093eb420df641a58333645130848def69af83 100644
--- a/externals/miXed/cyclone/sickle/sah.c
+++ b/externals/miXed/cyclone/sickle/sah.c
@@ -41,7 +41,7 @@ static t_int *sah_perform(t_int *w)
 
 static void sah_dsp(t_sah *x, t_signal **sp)
 {
-    dsp_add(sah_perform, 5, x, sp[0]->s_n,
+    dsp_add(sah_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/sampstoms.c b/externals/miXed/cyclone/sickle/sampstoms.c
index 36b686c28b17c48897eb1e9b66622cfaae8631ec..fe7882c320b19fc496fb8c4dec6527a44d833a89 100644
--- a/externals/miXed/cyclone/sickle/sampstoms.c
+++ b/externals/miXed/cyclone/sickle/sampstoms.c
@@ -34,7 +34,7 @@ static void sampstoms_dsp(t_sampstoms *x, t_signal **sp)
 {
     x->x_rcpksr = 1000. / sp[0]->s_sr;
     dsp_add(sampstoms_perform, 4, x,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sampstoms_new(void)
diff --git a/externals/miXed/cyclone/sickle/sinh.c b/externals/miXed/cyclone/sickle/sinh.c
index ff33b651afb813211396ab99239f85169a0e9a4c..2b9a9fd3de94c5e90bfbbc5b035a8ff3e23fb985 100644
--- a/externals/miXed/cyclone/sickle/sinh.c
+++ b/externals/miXed/cyclone/sickle/sinh.c
@@ -29,7 +29,7 @@ static t_int *sinh_perform(t_int *w)
 
 static void sinh_dsp(t_sinh *x, t_signal **sp)
 {
-    dsp_add(sinh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sinh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sinh_new(void)
diff --git a/externals/miXed/cyclone/sickle/sinx.c b/externals/miXed/cyclone/sickle/sinx.c
index 29c7c4e515a3352b1d60f34af645cec16bb9400f..a11e1be1800e084dca7c4d0565c2cb9f4d3fd4d8 100644
--- a/externals/miXed/cyclone/sickle/sinx.c
+++ b/externals/miXed/cyclone/sickle/sinx.c
@@ -32,7 +32,7 @@ static t_int *sinx_perform(t_int *w)
 
 static void sinx_dsp(t_sinx *x, t_signal **sp)
 {
-    dsp_add(sinx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sinx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sinx_new(void)
diff --git a/externals/miXed/cyclone/sickle/slide.c b/externals/miXed/cyclone/sickle/slide.c
index f672fe0b8caae773e15c5fdd92841ac9758a8c20..d6ee78c2f78fe48b35ea38bbd96171050669ee5a 100644
--- a/externals/miXed/cyclone/sickle/slide.c
+++ b/externals/miXed/cyclone/sickle/slide.c
@@ -55,7 +55,7 @@ static t_int *slide_perform(t_int *w)
 
 static void slide_dsp(t_slide *x, t_signal **sp)
 {
-    dsp_add(slide_perform, 6, x, sp[0]->s_n,
+    dsp_add(slide_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/spike.c b/externals/miXed/cyclone/sickle/spike.c
index 13f9361bc4879390acd6af90fc363cf79650f364..325b3e399264fe72e056309df52a21b2304e9c72 100644
--- a/externals/miXed/cyclone/sickle/spike.c
+++ b/externals/miXed/cyclone/sickle/spike.c
@@ -76,7 +76,7 @@ static void spike_dsp(t_spike *x, t_signal **sp)
     x->x_ksr = sp[0]->s_sr * 0.001;
     x->x_rcpksr = 1000.0 / sp[0]->s_sr;
     x->x_nwait = (int)(x->x_waittime * x->x_ksr);
-    dsp_add(spike_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(spike_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void spike_free(t_spike *x)
diff --git a/externals/miXed/cyclone/sickle/svf.c b/externals/miXed/cyclone/sickle/svf.c
index bb8437bbef55ac9cf51cc269cc9d881e879d2f47..267c19b82f197d93df81e9a6101472cebd05d483 100644
--- a/externals/miXed/cyclone/sickle/svf.c
+++ b/externals/miXed/cyclone/sickle/svf.c
@@ -122,7 +122,7 @@ static void svf_dsp(t_svf *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     svf_clear(x);
-    dsp_add(svf_perform, 9, x, sp[0]->s_n,
+    dsp_add(svf_perform, 9, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
 	    sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/tanh.c b/externals/miXed/cyclone/sickle/tanh.c
index 0278e84dda9571bc501a050d6d823131f70aa998..1d5978c534ccf27f53542f09315113bc8634e260 100644
--- a/externals/miXed/cyclone/sickle/tanh.c
+++ b/externals/miXed/cyclone/sickle/tanh.c
@@ -29,7 +29,7 @@ static t_int *tanh_perform(t_int *w)
 
 static void tanh_dsp(t_tanh *x, t_signal **sp)
 {
-    dsp_add(tanh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(tanh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *tanh_new(void)
diff --git a/externals/miXed/cyclone/sickle/tanx.c b/externals/miXed/cyclone/sickle/tanx.c
index b55e748dace70f0d5b54d6d77f6af4fd2ffcf842..4fa3c2677a1aa20191b8b5f5f77de7ec48625756 100644
--- a/externals/miXed/cyclone/sickle/tanx.c
+++ b/externals/miXed/cyclone/sickle/tanx.c
@@ -32,7 +32,7 @@ static t_int *tanx_perform(t_int *w)
 
 static void tanx_dsp(t_tanx *x, t_signal **sp)
 {
-    dsp_add(tanx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(tanx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *tanx_new(void)
diff --git a/externals/miXed/cyclone/sickle/train.c b/externals/miXed/cyclone/sickle/train.c
index b07ba9a59293134ed6fb0c0814916dcff9327f74..9bb32239bc35f03b90f7694655534c7befa36ba1 100644
--- a/externals/miXed/cyclone/sickle/train.c
+++ b/externals/miXed/cyclone/sickle/train.c
@@ -84,7 +84,7 @@ static t_int *train_perform(t_int *w)
 static void train_dsp(t_train *x, t_signal **sp)
 {
     x->x_rcpksr = 1000. / sp[0]->s_sr;
-    dsp_add(train_perform, 6, x, sp[0]->s_n,
+    dsp_add(train_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/trapezoid.c b/externals/miXed/cyclone/sickle/trapezoid.c
index b33cb022f4f94fdbe879335b1cd18dc29fc72e14..89404b57273ccaf730769bbdb7449c6773031b34 100644
--- a/externals/miXed/cyclone/sickle/trapezoid.c
+++ b/externals/miXed/cyclone/sickle/trapezoid.c
@@ -77,7 +77,7 @@ static t_int *trapezoid_perform(t_int *w)
 
 static void trapezoid_dsp(t_trapezoid *x, t_signal **sp)
 {
-    dsp_add(trapezoid_perform, 6, x, sp[0]->s_n,
+    dsp_add(trapezoid_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/triangle.c b/externals/miXed/cyclone/sickle/triangle.c
index 703e5bab62ea98ab0b0872f9217395124d481caf..a7f61103580cd6fb016c34bf463c45ecf719fcd6 100644
--- a/externals/miXed/cyclone/sickle/triangle.c
+++ b/externals/miXed/cyclone/sickle/triangle.c
@@ -68,7 +68,7 @@ static t_int *triangle_perform(t_int *w)
 
 static void triangle_dsp(t_triangle *x, t_signal **sp)
 {
-    dsp_add(triangle_perform, 5, x, sp[0]->s_n,
+    dsp_add(triangle_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/trunc.c b/externals/miXed/cyclone/sickle/trunc.c
index 25d034dae1a849afc257d642ddaed2a824588da5..e1fd8265b9f0fa6c203ada7487f363af442b83d5 100644
--- a/externals/miXed/cyclone/sickle/trunc.c
+++ b/externals/miXed/cyclone/sickle/trunc.c
@@ -47,7 +47,7 @@ static t_int * trunc_perform(t_int *w){
 // DSP Function
 // ---------------------------------------------------
 static void trunc_dsp(t_trunc *x, t_signal **sp){
-   dsp_add(trunc_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+   dsp_add(trunc_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 // ---------------------------------------------------
@@ -86,4 +86,4 @@ void trunc_tilde_setup(void) {
 
    class_addmethod(trunc_class, (t_method) trunc_dsp, gensym("dsp"), 0);
 }
-// EOF---------------------------------------------------
\ No newline at end of file
+// EOF---------------------------------------------------
diff --git a/externals/miXed/cyclone/sickle/vectral.c b/externals/miXed/cyclone/sickle/vectral.c
index b9cdf69f6d0bfeea2446adfbb49d9027cd4f5a45..a161e70fb1b58e605235318ba99db573558b2875 100644
--- a/externals/miXed/cyclone/sickle/vectral.c
+++ b/externals/miXed/cyclone/sickle/vectral.c
@@ -139,7 +139,7 @@ static void vectral_dsp(t_vectral *x, t_signal **sp)
     int nblock = sp[0]->s_n;
     if (nblock > x->x_bufsize)
 	nblock = x->x_bufsize;  /* CHECKME */
-    dsp_add(vectral_perform, 6, x, nblock,
+    dsp_add(vectral_perform, 6, x, (t_int)nblock,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/zerox.c b/externals/miXed/cyclone/sickle/zerox.c
index 95b35d6c51f4042a0bbe2a2edd27acfd1e698ce0..b226f70c3a668bf49c62014a2d4af96801bbe37c 100644
--- a/externals/miXed/cyclone/sickle/zerox.c
+++ b/externals/miXed/cyclone/sickle/zerox.c
@@ -53,7 +53,7 @@ static t_int *zerox_perform(t_int *w)
 
 static void zerox_dsp(t_zerox *x, t_signal **sp)
 {
-    dsp_add(zerox_perform, 5, x, sp[0]->s_n,
+    dsp_add(zerox_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/mjlib/convolve~.c b/externals/mjlib/convolve~.c
index e2356a9631e03a73686e39c9db9851322168b6f4..5d18d8fc8d6a4693e7edb1a289ff16d963e2df62 100644
--- a/externals/mjlib/convolve~.c
+++ b/externals/mjlib/convolve~.c
@@ -41,7 +41,7 @@ t_int *convolve_tilde_perform(t_int *w)
 
 static void convolve_tilde_dsp(t_convolve_tilde *x, t_signal **sp)
 {
-   dsp_add(convolve_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,sp[0]->s_n);
+   dsp_add(convolve_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x , (t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mjlib/pin~.c b/externals/mjlib/pin~.c
index 51a6ba3f3ae52e9541b9e57fb93b880e5c5b1290..929a1fe1c53588d75128baaaff1978f04519ed5d 100644
--- a/externals/mjlib/pin~.c
+++ b/externals/mjlib/pin~.c
@@ -66,7 +66,7 @@ t_int *pin_tilde_perform(t_int *w)
 
 static void pin_tilde_dsp(t_pin_tilde *x, t_signal **sp)
 {
-   dsp_add(pin_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,sp[0]->s_n);
+   dsp_add(pin_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,(t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mjlib/synapseA~.c b/externals/mjlib/synapseA~.c
index d6a9190f9bf2d520eb4ab5f7d7e133f092a74d16..ab99522653bf29b827657455d55ef168103af98f 100644
--- a/externals/mjlib/synapseA~.c
+++ b/externals/mjlib/synapseA~.c
@@ -59,7 +59,7 @@ t_int *synapseA_tilde_perform(t_int *w)
 static void synapseA_tilde_dsp(t_synapseA_tilde *x, t_signal **sp)
 {
 	x->n_inv=1./sp[0]->s_n;
-   dsp_add(synapseA_tilde_perform, 3,sp[0]->s_vec , x ,sp[0]->s_n);
+   dsp_add(synapseA_tilde_perform, 3,sp[0]->s_vec , x , (t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mmonoplayer/atari2600~.c b/externals/mmonoplayer/atari2600~.c
index 55bce8a8027313616afabdf4298857527b3df91f..b6618cf605090beba2f369e64aa40c95eb2d9a83 100644
--- a/externals/mmonoplayer/atari2600~.c
+++ b/externals/mmonoplayer/atari2600~.c
@@ -148,7 +148,7 @@ void *atari_2600_new(void)
 
 void atari_2600_dsp(t_atari_2600 *x, t_signal **sp, short *count) 
 {   
-  dsp_add(atari_2600_perform, 3, sp[0]->s_vec, sp[0]->s_n, x); 
+  dsp_add(atari_2600_perform, 3, sp[0]->s_vec, (t_int)sp[0]->s_n, x); 
 }  
 
 t_int *atari_2600_perform(t_int *w) 
diff --git a/externals/moonlib/panvol~.c b/externals/moonlib/panvol~.c
index 11bcc378b5042314d8674d5dedaf6871899b13d5..e644e10dad36f7ffd4d49ddc228fa423d633e0e1 100644
--- a/externals/moonlib/panvol~.c
+++ b/externals/moonlib/panvol~.c
@@ -86,7 +86,7 @@ static void pan_dsp(t_pan *x, t_signal **sp)
     float *out2 = sp[2]->s_vec;
 
     dsp_add(pan_perform, 5,
-            in1, out1, out2, n, x);
+            in1, out1, out2, (t_int)n, x);
 }
 
 static void pan_f(t_pan *x, t_floatarg f)
diff --git a/externals/moonlib/sfread2~.c b/externals/moonlib/sfread2~.c
index 30e288031b4ea87bed1b5dcbe8091daca8ee6b94..e5e2a6fb9df352e99c4c28856ccfb9b43af9226c 100644
--- a/externals/moonlib/sfread2~.c
+++ b/externals/moonlib/sfread2~.c
@@ -276,17 +276,17 @@ static void sfread_dsp(t_sfread *x, t_signal **sp)
     {
     case 1:
         dsp_add(sfread_perform, 4, x, sp[0]->s_vec,
-                sp[1]->s_vec, sp[0]->s_n);
+                sp[1]->s_vec, (t_int)sp[0]->s_n);
         break;
     case 2:
         dsp_add(sfread_perform, 5, x, sp[0]->s_vec,
-                sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+                sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
         break;
     case 4:
         dsp_add(sfread_perform, 6, x, sp[0]->s_vec,
                 sp[1]->s_vec,sp[2]->s_vec,
                 sp[3]->s_vec,sp[4]->s_vec,
-                sp[0]->s_n);
+                (t_int)sp[0]->s_n);
         break;
     }
 }
diff --git a/externals/moonlib/ssaw~.c b/externals/moonlib/ssaw~.c
index fd6bb2486395f62119f266799110cacd8a790ef5..25ef5d06cc8cc6b4a85a39158540b2332f67c38b 100644
--- a/externals/moonlib/ssaw~.c
+++ b/externals/moonlib/ssaw~.c
@@ -183,7 +183,7 @@ static t_int *ssaw_perform(t_int *w)
 static void ssaw_dsp(t_ssaw *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(ssaw_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(ssaw_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void ssaw_ft1(t_ssaw *x, t_float f)
diff --git a/externals/moonlib/tabenv.c b/externals/moonlib/tabenv.c
index b499e225acf5d614fcb08aa04fedc1dc905146bb..0e693242ebd737b94e07904f1ce60f0c831cb98c 100644
--- a/externals/moonlib/tabenv.c
+++ b/externals/moonlib/tabenv.c
@@ -224,7 +224,7 @@ static void sigenv_dsp(t_tabenv *x, t_signal **sp)
     if (x->x_period % sp[0]->s_n) x->x_realperiod =
             x->x_period + sp[0]->s_n - (x->x_period % sp[0]->s_n);
     else x->x_realperiod = x->x_period;
-    dsp_add(sigenv_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(sigenv_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     if (sp[0]->s_n > MAXVSTAKEN) bug("sigenv_dsp");
 }
 
diff --git a/externals/motex/ln~.c b/externals/motex/ln~.c
index 5cb12368019171bc6f4db83b966e07b51e580bf8..73155ade25eb6fa15764fc8035cf329f21b49518 100644
--- a/externals/motex/ln~.c
+++ b/externals/motex/ln~.c
@@ -111,9 +111,9 @@ t_int *ln_perf8(t_int *w)
 void dsp_add_ln(t_sample *in1, t_sample *out, int n, int flag)
 {
     if (n&7)
-    	dsp_add(ln_perform, 4, in1, out, n, flag);
+    	dsp_add(ln_perform, 4, in1, out, (t_int)n, (t_int)flag);
     else	
-    	dsp_add(ln_perf8, 4, in1, out, n, flag);
+    	dsp_add(ln_perf8, 4, in1, out, (t_int)n, (t_int)flag);
 }
 
 static void ln_dsp(t_ln *x, t_signal **sp)
diff --git a/externals/motex/pansig~.c b/externals/motex/pansig~.c
index 71ebf626b21ac5b68310dc8871181e9507a4a5bb..0ceb769e47a847bc24ec4516185d5f645afb7e3b 100644
--- a/externals/motex/pansig~.c
+++ b/externals/motex/pansig~.c
@@ -95,7 +95,7 @@ static void pansig_dsp(t_pansig *x, t_signal **sp)
   float *out2 = sp[3]->s_vec;
 
   dsp_add(pansig_perform, 6,
-	  in1, in2, out1, out2, n, x);
+	  in1, in2, out1, out2, (t_int)n, x);
 }
 
 void pansig_f(t_pansig *x, t_floatarg f)
diff --git a/externals/motex/pan~.c b/externals/motex/pan~.c
index 3fce96ef07a62308de99df871b4acecdcec39cde..d8fb44adeb89611c65f0adb135fb45d3054a65e3 100644
--- a/externals/motex/pan~.c
+++ b/externals/motex/pan~.c
@@ -79,7 +79,7 @@ static void pan_dsp(t_pan *x, t_signal **sp)
   float *out2 = sp[2]->s_vec;
 
   dsp_add(pan_perform, 5,
-	  in1, out1, out2, n, x);
+	  in1, out1, out2, (t_int)n, x);
 }
 
 void pan_f(t_pan *x, t_floatarg f)
diff --git a/externals/motex/pol2rec~.c b/externals/motex/pol2rec~.c
index b54d84eb668e63e987349951bf11eef806410f42..14c1d8405995839af31aea4414e001793f26d4b1 100644
--- a/externals/motex/pol2rec~.c
+++ b/externals/motex/pol2rec~.c
@@ -116,11 +116,11 @@ static void pol2rec_dsp(t_pol2rec *x, t_signal **sp)
 
     if (n&7)
       {
-      dsp_add(pol2rec_perform, 5, in1, in2, out1, out2, n);
+      dsp_add(pol2rec_perform, 5, in1, in2, out1, out2, (t_int)n);
       post("it's a seven");
       }
     else
-      dsp_add(pol2rec_perform8, 5, in1, in2, out1, out2, n);
+      dsp_add(pol2rec_perform8, 5, in1, in2, out1, out2, (t_int)n);
 }
 
 
diff --git a/externals/motex/polygate~.c b/externals/motex/polygate~.c
index 6e4a99351aef6d440c172c27561fa1b6cadf176f..dc2d1a80da552d0a10d9fcaa8c4bcd18452c8e1d 100644
--- a/externals/motex/polygate~.c
+++ b/externals/motex/polygate~.c
@@ -355,27 +355,27 @@ static void polygate_dsp(t_polygate *x, t_signal **sp)
   // must be a smarter way....
   switch (x->ninlets) 
     {
-    case 1: dsp_add(polygate_perform, 4, x, n, sp[0]->s_vec, sp[1]->s_vec);
+    case 1: dsp_add(polygate_perform, 4, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec);
       break;
-    case 2: dsp_add(polygate_perform, 5, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+    case 2: dsp_add(polygate_perform, 5, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
       break;
-    case 3: dsp_add(polygate_perform, 6, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
+    case 3: dsp_add(polygate_perform, 6, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
       break;
-    case 4: dsp_add(polygate_perform, 7, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec);
+    case 4: dsp_add(polygate_perform, 7, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec);
       break;
-    case 5: dsp_add(polygate_perform, 8, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
+    case 5: dsp_add(polygate_perform, 8, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
       break;
-    case 6: dsp_add(polygate_perform, 9, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
+    case 6: dsp_add(polygate_perform, 9, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
       break;
-    case 7: dsp_add(polygate_perform, 10, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec);
+    case 7: dsp_add(polygate_perform, 10, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec);
       break;
-    case 8: dsp_add(polygate_perform, 11, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 8: dsp_add(polygate_perform, 11, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec);
     break;
-    case 9: dsp_add(polygate_perform, 12, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 9: dsp_add(polygate_perform, 12, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec);
     break;
-    case 10: dsp_add(polygate_perform, 13, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 10: dsp_add(polygate_perform, 13, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		     sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec, sp[10]->s_vec);
     break;
     }
diff --git a/externals/motex/rec2pol~.c b/externals/motex/rec2pol~.c
index 56441f8fb328b717b24e64d88d6f1fa45c453308..ab7be5a70ae77995d890e10bba836b7917ef1b6c 100644
--- a/externals/motex/rec2pol~.c
+++ b/externals/motex/rec2pol~.c
@@ -110,10 +110,10 @@ static void rec2pol_dsp(t_rec2pol *x, t_signal **sp)
   float *out1 = sp[2]->s_vec;
   float *out2 = sp[3]->s_vec;
   if (n&7)
-    dsp_add(rec2pol_perform, 5, in1, in2, out1, out2, n);
+    dsp_add(rec2pol_perform, 5, in1, in2, out1, out2, (t_int)n);
   else 
-    dsp_add(rec2pol_perform8, 5, in1, in2, out1, out2, n);
-/*   dsp_add(sigsqrt_perform, 3, out2, out2, n); */
+    dsp_add(rec2pol_perform8, 5, in1, in2, out1, out2, (t_int)n);
+/*   dsp_add(sigsqrt_perform, 3, out2, out2, (t_int)n); */
 }
 
 
diff --git a/externals/mrpeach/op~/op~.c b/externals/mrpeach/op~/op~.c
index 8a15bc3a35760ddfa9d85678056583717ec8aad9..5921b564a87a0abf79583c69a6c3cc28b3a2bb31 100644
--- a/externals/mrpeach/op~/op~.c
+++ b/externals/mrpeach/op~/op~.c
@@ -221,7 +221,7 @@ static void op_tilde_dsp(t_op_tilde *x, t_signal **sp)
     t_sample    *out = sp[2]->s_vec;
     int         n = sp[0]->s_n;
 
-    dsp_add(op_tilde_perform, 5, x, in1, in2, out, n);
+    dsp_add(op_tilde_perform, 5, x, in1, in2, out, (t_int)n);
 }
 
 void op_tilde_setup(void)
diff --git a/externals/mrpeach/rcosc~/rcosc~.c b/externals/mrpeach/rcosc~/rcosc~.c
index 0ab1c9de686d78c49f7686ef8d020f572bfc41e6..601b1fa7a1d31b8bd9554b084cace90b946a53fc 100644
--- a/externals/mrpeach/rcosc~/rcosc~.c
+++ b/externals/mrpeach/rcosc~/rcosc~.c
@@ -79,7 +79,7 @@ static t_int *rcosc_tilde_perform(t_int *w)
 static void rcosc_tilde_dsp(t_rcosc_tilde *x, t_signal **sp)
 {
     x->rc_sp = sys_getsr();
-    dsp_add(rcosc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rcosc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rcosc_tilde_new(t_floatarg f)
diff --git a/externals/mrpeach/rc~/rc~.c b/externals/mrpeach/rc~/rc~.c
index 5cc750aca31a2290e3d94e068ed6367a8e534820..1160ef3be270fc85037c552b812a12ba42d60a0a 100644
--- a/externals/mrpeach/rc~/rc~.c
+++ b/externals/mrpeach/rc~/rc~.c
@@ -41,7 +41,7 @@ static t_int *rc_tilde_perform(t_int *w)
 
 static void rc_tilde_dsp(t_rc_tilde *x, t_signal **sp)
 {
-    dsp_add(rc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rc_tilde_new(t_floatarg f)
diff --git a/externals/mrpeach/rojo~/rojo~.c b/externals/mrpeach/rojo~/rojo~.c
index 13c2f6b66d5dbb56ed736643b289e484c8956142..bf8eb86ad52677ba1a5197093d0646867749f859 100644
--- a/externals/mrpeach/rojo~/rojo~.c
+++ b/externals/mrpeach/rojo~/rojo~.c
@@ -84,7 +84,7 @@ static t_int *perform0(t_int *w)
 /*------------------------------------------------------------------*/
 static void rojo_dsp(t_rojo *x, t_signal **sp)
 {
-    dsp_add(perform0, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(perform0, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 /*------------------------------------------------------------------*/
 /* outlet 0:  red noise outlet       */
diff --git a/externals/mrpeach/sqosc~/sqosc~.c b/externals/mrpeach/sqosc~/sqosc~.c
index b62500647206bf37fe6b9b7bb016d46455491dfc..d4f8b35be787c2353448b9355bde5013abadab99 100644
--- a/externals/mrpeach/sqosc~/sqosc~.c
+++ b/externals/mrpeach/sqosc~/sqosc~.c
@@ -322,7 +322,7 @@ static void sqosc_dsp(t_sqosc *x, t_signal **sp)
     x->x_conv = SQOSCTABSIZE/sp[0]->s_sr;
 /* conv = table period = (samples/cycle)/(samples/sec) = sec/cycle = 0.011610sec for 512/44100 */
 
-    dsp_add(sqosc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sqosc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void sqosc_ft1(t_sqosc *x, t_float f)
diff --git a/externals/nusmuk/nusmuk-audio/bq~.c b/externals/nusmuk/nusmuk-audio/bq~.c
index af7b368660f7d6b1002bcf68ab37b1404ebb1df5..9059756a63a7f6d643e4ac02a01a6739a97feef8 100644
--- a/externals/nusmuk/nusmuk-audio/bq~.c
+++ b/externals/nusmuk/nusmuk-audio/bq~.c
@@ -93,7 +93,7 @@ static void bq_tilde_dsp(t_bq_tilde *x, t_signal **sp)
 {
     dsp_add(bq_tilde_perform, 9,
         sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, 
-			sp[5]->s_vec, sp[6]->s_vec, x->x_ctl, sp[0]->s_n);
+			sp[5]->s_vec, sp[6]->s_vec, x->x_ctl, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/nusmuk/nusmuk-audio/tabosc4c~.c b/externals/nusmuk/nusmuk-audio/tabosc4c~.c
index b7ebf5100a6e3b22f41c5c034d368dd196f4e133..1eea1d8280d915678bc032d1fa6c4a057c22babf 100644
--- a/externals/nusmuk/nusmuk-audio/tabosc4c~.c
+++ b/externals/nusmuk/nusmuk-audio/tabosc4c~.c
@@ -225,7 +225,7 @@ static void tabosc4c_tilde_dsp(t_tabosc4c_tilde *x, t_signal **sp)
     tabosc4c_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabosc4c_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tabosc4c_tilde_setup(void)
diff --git a/externals/nusmuk/nusmuk-audio/tabosci~.c b/externals/nusmuk/nusmuk-audio/tabosci~.c
index 6301636a124b1719d7a973be322630c5ab98472a..b350a3518da694365d00b09b308538acb30cdf41 100644
--- a/externals/nusmuk/nusmuk-audio/tabosci~.c
+++ b/externals/nusmuk/nusmuk-audio/tabosci~.c
@@ -297,7 +297,7 @@ static void tabosci_tilde_dsp(t_tabosci_tilde *x, t_signal **sp)
         x->x_conv = 1. / sp[0]->s_sr;
     }
     tabosci_tilde_set(x, x->x_arrayname);
-    dsp_add(tabosci_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(tabosci_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tabosci_tilde_setup(void)
diff --git a/externals/nusmuk/nusmuk-audio/tabread4c~.c b/externals/nusmuk/nusmuk-audio/tabread4c~.c
index e0de208f6a2c0d88d9c96a40af5979506f801756..c9b694778d6d2bef29752487b4f438d922bdca39 100644
--- a/externals/nusmuk/nusmuk-audio/tabread4c~.c
+++ b/externals/nusmuk/nusmuk-audio/tabread4c~.c
@@ -155,7 +155,7 @@ static void tabread4c_tilde_dsp(t_tabread4c_tilde *x, t_signal **sp)
     tabread4c_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabread4c_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/olafmatt/clone/clone.c b/externals/olafmatt/clone/clone.c
index 0b4dd30ce8429e763f81b61a31c9641c549f9096..aa3007cd61ee7207688be7d8d9b57928e8df8172 100644
--- a/externals/olafmatt/clone/clone.c
+++ b/externals/olafmatt/clone/clone.c
@@ -558,38 +558,38 @@ static void clone_dsp(t_clone *x, t_signal **sp)
 			switch (nsig)
 			{
 				case 1:
-					dsp_add(clone_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+					dsp_add(clone_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 2:
 					dsp_add(clone_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[0]->s_n);
+						(t_int)sp[0]->s_n);
 					break;
 				case 3:
 					dsp_add(clone_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 4:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 5:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 6:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[0]->s_n);
+						(t_int)sp[0]->s_n);
 					break;
 				case 7:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[6]->s_vec, sp[0]->s_n);
+						sp[6]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 8:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[6]->s_vec, sp[7]->s_vec, sp[0]->s_n);
+						sp[6]->s_vec, sp[7]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				default:
 					break;
diff --git a/externals/olafmatt/clone/clone_signal.c b/externals/olafmatt/clone/clone_signal.c
index e650bc81b9aa95a652b2abfdd8912f01ed043d9c..df3fe702b13c063a6d8c32dab93e126560c6afb0 100644
--- a/externals/olafmatt/clone/clone_signal.c
+++ b/externals/olafmatt/clone/clone_signal.c
@@ -75,7 +75,7 @@ void clone_sigout_set(t_clone_sigout *x, int vs, t_float *vec)
 static void clone_sigout_dsp(t_clone_sigout *x, t_signal **sp)
 {
     if (sp[0]->s_n == x->x_vs)
-		dsp_add(clone_sigout_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+		dsp_add(clone_sigout_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
     	pd_error(x, "out~: vector size mismatch (dsp)");
 }
@@ -142,7 +142,7 @@ void clone_sigin_set(t_clone_sigin *x, int vs, t_float *vec)
 static void clone_sigin_dsp(t_clone_sigin *x, t_signal **sp)
 {
     if (sp[0]->s_n == x->x_vs)
-		dsp_add(clone_sigin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+		dsp_add(clone_sigin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
     	pd_error(x, "in~: vector size mismatch (dsp)");
 }
diff --git a/externals/oscbank~/oscbank~.c b/externals/oscbank~/oscbank~.c
index ff5931213dd381f8bfc01bca4b78b8a1e51fad6b..e8b79871c67902c8d8fba8e202e5389b2528e4e4 100644
--- a/externals/oscbank~/oscbank~.c
+++ b/externals/oscbank~/oscbank~.c
@@ -226,7 +226,7 @@ static void oscbank_dsp(t_oscbank *x, t_signal **sp)
 {
     x->sampleRate =  sp[0]->s_sr;
     x->sampleperiod = 1 / x->sampleRate;
-    dsp_add(oscbank_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(oscbank_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *oscbank_new(void)
diff --git a/externals/pdogg/oggread~.c b/externals/pdogg/oggread~.c
index fcb93975fe29d2a924a4efe3c8363d46b21534a4..0fabdec56e88dd43e9c971467546bd1c2eeb6ead 100644
--- a/externals/pdogg/oggread~.c
+++ b/externals/pdogg/oggread~.c
@@ -215,7 +215,7 @@ static t_int *oggread_perform(t_int *w)
 
 static void oggread_dsp(t_oggread *x, t_signal **sp)
 {
-    dsp_add(oggread_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(oggread_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/pdogg/oggwrite~.c b/externals/pdogg/oggwrite~.c
index a241ae97daf8df823bf51a7de0fe4c9985bba550..10376c067046c4f764379ab33ea7ee26bb10f3b2 100644
--- a/externals/pdogg/oggwrite~.c
+++ b/externals/pdogg/oggwrite~.c
@@ -291,7 +291,7 @@ static t_int *oggwrite_perform(t_int *w)
 
 static void oggwrite_dsp(t_oggwrite *x, t_signal **sp)
 {
-    dsp_add(oggwrite_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(oggwrite_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
     /* initialize the vorbisenc library */
diff --git a/externals/pdp/modules/generic/pdp_metro.c b/externals/pdp/modules/generic/pdp_metro.c
index 9e3e96b575751a41af5361f3238b86ede882c21c..1b2cb9013996313c0dc3ef7aa201ba7d0103594e 100644
--- a/externals/pdp/modules/generic/pdp_metro.c
+++ b/externals/pdp/modules/generic/pdp_metro.c
@@ -50,7 +50,7 @@ static t_int *metro_perform(t_int *w);
 #define DSP_ARG(type, name, source) type name = (type)source
 static void metro_dsp(t_metro *x, t_signal **sp)
 {
-    dsp_add(metro_perform, 3, x, sp[0]->s_n, (int)sys_getsr());
+    dsp_add(metro_perform, 3, x, (t_int)sp[0]->s_n, (t_int)sys_getsr());
 }
 static t_int *metro_perform(t_int *w){
     DSP_ARG(t_metro*, x,  w[1]);
diff --git a/externals/pdp/modules/image_io/pdp_qt.c b/externals/pdp/modules/image_io/pdp_qt.c
index 530b87fe181546f1b2853458252bca0c20839ca2..83740379e17d7dd149a73c8fe0b93b5441d6a996 100644
--- a/externals/pdp/modules/image_io/pdp_qt.c
+++ b/externals/pdp/modules/image_io/pdp_qt.c
@@ -838,7 +838,7 @@ static t_int *pdp_qt_perform(t_int *w)
 
 static void pdp_qt_dsp(t_pdp_qt *x, t_signal **sp)
 {
-    dsp_add(pdp_qt_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(pdp_qt_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scan.c b/externals/pdp/modules/image_special/pdp_scan.c
index 2efdd0457a21488cefa21c3009edcecc5e63f432..0674c905e01cd85a068bade9da7b672f934273c5 100644
--- a/externals/pdp/modules/image_special/pdp_scan.c
+++ b/externals/pdp/modules/image_special/pdp_scan.c
@@ -156,7 +156,7 @@ static void pdp_scan_input_0(t_pdp_scan *x, t_symbol *s, t_floatarg f)
 
 static void pdp_scan_dsp (t_pdp_scan *x, t_signal **sp)
 {
-    dsp_add(pdp_scan_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(pdp_scan_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scanxy.c b/externals/pdp/modules/image_special/pdp_scanxy.c
index 90d96e5acce8bc9ce583f54be6901c378530acc0..feeebf6127656a07db251eb44b1c8a705bb413b9 100644
--- a/externals/pdp/modules/image_special/pdp_scanxy.c
+++ b/externals/pdp/modules/image_special/pdp_scanxy.c
@@ -141,7 +141,7 @@ static void pdp_scanxy_input_0(t_pdp_scanxy *x, t_symbol *s, t_floatarg f)
 
 static void pdp_scanxy_dsp (t_pdp_scanxy *x, t_signal **sp)
 {
-    dsp_add(pdp_scanxy_perform, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+    dsp_add(pdp_scanxy_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scope.c b/externals/pdp/modules/image_special/pdp_scope.c
index 5b28b85b768a9634a99763ecdb0eb1d2db364a71..18627151c4c26c418ecd53c6b66b38f7ea800bec 100644
--- a/externals/pdp/modules/image_special/pdp_scope.c
+++ b/externals/pdp/modules/image_special/pdp_scope.c
@@ -255,7 +255,7 @@ static t_int *pdp_scope_perform(t_int *w)
 }
 static void pdp_scope_dsp(t_pdp_scope *x, t_signal **sp)
 {
-    dsp_add(pdp_scope_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(pdp_scope_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }
   
diff --git a/externals/pidip/modules/pdp_icedthe~.c b/externals/pidip/modules/pdp_icedthe~.c
index 9d481d410fe3ce12fc8c9f45ca890e5f63050c11..ad1abfaa4bfeef7c86eb966b72de32dd5bcd04b5 100755
--- a/externals/pidip/modules/pdp_icedthe~.c
+++ b/externals/pidip/modules/pdp_icedthe~.c
@@ -1289,7 +1289,7 @@ static t_int *pdp_icedthe_perform(t_int *w)
 
 static void pdp_icedthe_dsp(t_pdp_icedthe *x, t_signal **sp)
 {
-    dsp_add(pdp_icedthe_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_icedthe_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_icedthe_free(t_pdp_icedthe *x)
diff --git a/externals/pidip/modules/pdp_rec~.c b/externals/pidip/modules/pdp_rec~.c
index e7744a9c5044e9f657f864fe51e49ae216055fb1..0cdea9385650cc63352719fe8b10f98042a6f1b0 100755
--- a/externals/pidip/modules/pdp_rec~.c
+++ b/externals/pidip/modules/pdp_rec~.c
@@ -473,7 +473,7 @@ static t_int *pdp_rec_perform(t_int *w)
 
 static void pdp_rec_dsp(t_pdp_rec *x, t_signal **sp)
 {
-    dsp_add(pdp_rec_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_rec_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_rec_process_yv12(t_pdp_rec *x)
diff --git a/externals/pidip/modules/pdp_segsnd~.c b/externals/pidip/modules/pdp_segsnd~.c
index 54bbf398723b939549d19690d0cace192b46f1ea..6329d4e9ece903ad188a7a8bc5da6b4ef3212644 100755
--- a/externals/pidip/modules/pdp_segsnd~.c
+++ b/externals/pidip/modules/pdp_segsnd~.c
@@ -343,7 +343,7 @@ static t_int *pdp_segsnd_perform(t_int *w)
 
 static void pdp_segsnd_dsp(t_pdp_segsnd *x, t_signal **sp)
 {
-    dsp_add(pdp_segsnd_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_segsnd_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 t_class *pdp_segsnd_class;
diff --git a/externals/pidip/modules/pdp_theonice~.c b/externals/pidip/modules/pdp_theonice~.c
index 23fc2317bef1971b261c369f28c9789c7e79e084..23fc77c4d72963db05aa565bf235b596fbb6bf4f 100755
--- a/externals/pidip/modules/pdp_theonice~.c
+++ b/externals/pidip/modules/pdp_theonice~.c
@@ -985,7 +985,7 @@ static t_int *pdp_theonice_perform(t_int *w)
 
 static void pdp_theonice_dsp(t_pdp_theonice *x, t_signal **sp)
 {
-    dsp_add(pdp_theonice_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theonice_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theonice_process_yv12(t_pdp_theonice *x)
diff --git a/externals/pidip/modules/pdp_theorin~.c b/externals/pidip/modules/pdp_theorin~.c
index c689cd6ae8559e85483f44b590dbc79e6bb77aa0..b1574fb0f4e7a4ce6913466194ea6b41d5fd4877 100755
--- a/externals/pidip/modules/pdp_theorin~.c
+++ b/externals/pidip/modules/pdp_theorin~.c
@@ -879,7 +879,7 @@ static t_int *pdp_theorin_perform(t_int *w)
 
 static void pdp_theorin_dsp(t_pdp_theorin *x, t_signal **sp)
 {
-    dsp_add(pdp_theorin_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theorin_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theorin_free(t_pdp_theorin *x)
diff --git a/externals/pidip/modules/pdp_theorout~.c b/externals/pidip/modules/pdp_theorout~.c
index c8281c70281b94676e3ebc1242817e8efe516b76..9f6e84af92cc379218c3a174da24e9b10f04d091 100755
--- a/externals/pidip/modules/pdp_theorout~.c
+++ b/externals/pidip/modules/pdp_theorout~.c
@@ -518,7 +518,7 @@ static t_int *pdp_theorout_perform(t_int *w)
 
 static void pdp_theorout_dsp(t_pdp_theorout *x, t_signal **sp)
 {
-    dsp_add(pdp_theorout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theorout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theorout_process_yv12(t_pdp_theorout *x)
diff --git a/externals/pidip/modules/pdp_yqt.c b/externals/pidip/modules/pdp_yqt.c
index 0414cda7b98d0263c7c19cf6d56a2cf97b057373..5ae2edd8083a6980e2aa1b3ce8947de6fe5c494a 100755
--- a/externals/pidip/modules/pdp_yqt.c
+++ b/externals/pidip/modules/pdp_yqt.c
@@ -428,7 +428,7 @@ static t_int *pdp_yqt_perform(t_int *w)
 
 static void pdp_yqt_dsp(t_pdp_yqt *x, t_signal **sp)
 {
-    dsp_add(pdp_yqt_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(pdp_yqt_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/pmpd/pmpd~.c b/externals/pmpd/pmpd~.c
index 7ca462681f239fb7e9a751d5d56c254dd317b8f7..1c4d842d07e671ce53fbb9022cb9605cfbde3ef1 100644
--- a/externals/pmpd/pmpd~.c
+++ b/externals/pmpd/pmpd~.c
@@ -219,7 +219,7 @@ void pmpd_tilde_dsp(t_pmpd_tilde *x, t_signal **sp)
 	for (i=0; i<x->nb_outlet; i++)
 		x->outlet_vector[i] = sp[i+x->nb_inlet]->s_vec;
 
-	dsp_add(pmpd_tilde_perform, 2, x, sp[0]->s_n);
+	dsp_add(pmpd_tilde_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 void pmpd_tilde_bang(t_pmpd_tilde *x)
diff --git a/externals/postlude/flib/src/bmax~.c b/externals/postlude/flib/src/bmax~.c
index 26b93dbfcadd2353b5fa4c8a4edb431b2c0f658e..869e44d5ba6ba008ef575572e023541787da8fc2 100644
--- a/externals/postlude/flib/src/bmax~.c
+++ b/externals/postlude/flib/src/bmax~.c
@@ -74,7 +74,7 @@ static t_int *bmax_perform(t_int *w)
 static void bmax_dsp(t_bmax *x, t_signal **sp)
 {
   dsp_add(bmax_perform, 4,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *bmax_new(t_floatarg f)
diff --git a/externals/postlude/flib/src/cc~.c b/externals/postlude/flib/src/cc~.c
index 88ce67e59eecaeb55e697787879528ca9e642efa..882e3edb2b89641560f67f8d19cd6e722a1a1218 100644
--- a/externals/postlude/flib/src/cc~.c
+++ b/externals/postlude/flib/src/cc~.c
@@ -239,10 +239,10 @@ static void cc_dsp(t_cc *x, t_signal **sp)
 {
     if(!x->is_freq_domain)
 	dsp_add(cc_perform_time_domain, 5,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->delay);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->delay);
     else
 	dsp_add(cc_perform_freq_domain, 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/postlude/flib/src/clean~.c b/externals/postlude/flib/src/clean~.c
index 33513b8fb8d4bbaa896f7c87e0961ca7598c0751..f2b39e79fbafd81304b9bc66636e8945cba5fd27 100644
--- a/externals/postlude/flib/src/clean~.c
+++ b/externals/postlude/flib/src/clean~.c
@@ -60,7 +60,7 @@ static t_int *clean_perform(t_int *w)
 static void clean_dsp(t_clean *x, t_signal **sp)
 {
   dsp_add(clean_perform, 4,
-          sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void clean_float(t_clean *x, t_float f)  
diff --git a/externals/postlude/flib/src/cross~.c b/externals/postlude/flib/src/cross~.c
index dd94bea014d928ab045008123dcc80d7d5eab450..0a93a11457127d4a8aa5252ff11a9adf8755f998 100644
--- a/externals/postlude/flib/src/cross~.c
+++ b/externals/postlude/flib/src/cross~.c
@@ -162,10 +162,10 @@ static void cross_dsp(t_cross *x, t_signal **sp)
 {
     if(!x->is_freq_domain)
 	dsp_add(cross_perform_time_domain, 5,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->delay);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->delay);
     else
 	dsp_add(cross_perform_freq_domain, 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);
 }
 
 static void *cross_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/ha~.c b/externals/postlude/flib/src/ha~.c
index aa70190bfc766c300681286efb51e407146a2a6e..76f7ef81c31384b93f6e700e6c7a42704c25eefa 100644
--- a/externals/postlude/flib/src/ha~.c
+++ b/externals/postlude/flib/src/ha~.c
@@ -49,7 +49,7 @@ static t_int *hca_perform(t_int *w)
 static void hca_dsp(t_hca *x, t_signal **sp)
 {
   dsp_add(hca_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x->p);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x->p);
 
 }
 
diff --git a/externals/postlude/flib/src/hca~.c b/externals/postlude/flib/src/hca~.c
index e551879ba165747e55c80cf912b1cd7363219503..ad9787798588279caa817f1bda1dbee9fc8d74ad 100644
--- a/externals/postlude/flib/src/hca~.c
+++ b/externals/postlude/flib/src/hca~.c
@@ -69,7 +69,7 @@ static t_int *hca_perform(t_int *w)
 static void hca_dsp(t_hca *x, t_signal **sp)
 {
   dsp_add(hca_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 
 }
 
diff --git a/externals/postlude/flib/src/irreg~.c b/externals/postlude/flib/src/irreg~.c
index 3733997cd05514e4731a06ddd4798a3a0ad81f95..8dd7fca60dc3fa0c9e38259d09d970f26b968f76 100644
--- a/externals/postlude/flib/src/irreg~.c
+++ b/externals/postlude/flib/src/irreg~.c
@@ -46,7 +46,7 @@ static t_int *irreg_perform(t_int *w)
 static void irreg_dsp(t_irreg *x, t_signal **sp)
 {
   dsp_add(irreg_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *irreg_new(void)
diff --git a/externals/postlude/flib/src/melf~.c b/externals/postlude/flib/src/melf~.c
index ebe4a22260e768f0f0f27bd232fd0113c778fd57..f0ae6bbc85e56abed28d7a7259352846faf22702 100644
--- a/externals/postlude/flib/src/melf~.c
+++ b/externals/postlude/flib/src/melf~.c
@@ -72,7 +72,7 @@ static void melf_dsp(t_melf *x, t_signal **sp)
 {
   int n;
   dsp_add(melf_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void *melf_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/mspec~.c b/externals/postlude/flib/src/mspec~.c
index 7538f08e93bef7f74b7e22ad4562e8360f4d5583..8925fdb0b7b331c8a9602303f95afadaf36c6162 100644
--- a/externals/postlude/flib/src/mspec~.c
+++ b/externals/postlude/flib/src/mspec~.c
@@ -60,7 +60,7 @@ static t_int *mspec_perform(t_int *w)
 static void mspec_dsp(t_mspec *x, t_signal **sp)
 {
   dsp_add(mspec_perform, 5,
-          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->p);
+          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->p);
 }
 
 static void *mspec_new(t_floatarg f)
diff --git a/externals/postlude/flib/src/peak~.c b/externals/postlude/flib/src/peak~.c
index 02107ace764e7600b81d4159206e062de5379748..7c68a996ce0cca2fa346d5a2b8d93a74f0990331 100644
--- a/externals/postlude/flib/src/peak~.c
+++ b/externals/postlude/flib/src/peak~.c
@@ -97,7 +97,7 @@ static t_int *peak_perform(t_int *w)
 
 static void peak_dsp(t_peak *x, t_signal **sp)
 {
-  dsp_add(peak_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n,&x->thresh, x);
+  dsp_add(peak_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n,&x->thresh, x);
 }
 
 static void *peak_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/pp~.c b/externals/postlude/flib/src/pp~.c
index 62eba15dbf85663024436e79bb1a2937467805e0..75db5d94eb02d88c5b1c3086cc55f5cfb5b03c93 100644
--- a/externals/postlude/flib/src/pp~.c
+++ b/externals/postlude/flib/src/pp~.c
@@ -45,7 +45,7 @@ static t_int *pp_perform(t_int *w)
 static void pp_dsp(t_pp *x, t_signal **sp)
 {
   dsp_add(pp_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *pp_new(void)
diff --git a/externals/postlude/flib/src/pspec~.c b/externals/postlude/flib/src/pspec~.c
index 76da337365d0cd45936bd1f78fdb3c0fb39ad963..b77e7c19a49cf01bd7b9e632538c3c7abd727f95 100644
--- a/externals/postlude/flib/src/pspec~.c
+++ b/externals/postlude/flib/src/pspec~.c
@@ -51,7 +51,7 @@ static t_int *pspec_perform(t_int *w)
 static void pspec_dsp(t_pspec *x, t_signal **sp)
 {
   dsp_add(pspec_perform, 4,
-          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);
 }
 
 static void *pspec_new(void)
diff --git a/externals/postlude/flib/src/sc~.c b/externals/postlude/flib/src/sc~.c
index aa5ec5c877bf9f566fe94faa64afe779ab1efb68..cb3cb3b1aef909493287752c55e23097bbc7968a 100644
--- a/externals/postlude/flib/src/sc~.c
+++ b/externals/postlude/flib/src/sc~.c
@@ -50,7 +50,7 @@ static t_int *sc_perform(t_int *w)
 static void sc_dsp(t_sc *x, t_signal **sp)
 {
   dsp_add(sc_perform, 4,
-          sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sc_new(void)
diff --git a/externals/postlude/flib/src/sfm~.c b/externals/postlude/flib/src/sfm~.c
index ca19ca3883b8e7c405b2e128a5904b403b8921ec..5f956f5acc955252edae5bac94d9f6da7ab15871 100644
--- a/externals/postlude/flib/src/sfm~.c
+++ b/externals/postlude/flib/src/sfm~.c
@@ -51,7 +51,7 @@ static t_int *sfm_perform(t_int *w)
 static void sfm_dsp(t_sfm *x, t_signal **sp)
 {
   dsp_add(sfm_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sfm_new(void)
diff --git a/externals/postlude/flib/src/ss~.c b/externals/postlude/flib/src/ss~.c
index a510f1c5a6986717dd0968e3c25d1a535d7a4c02..3a00759335c4c39eb6d2a6578ea8502eb3210dc5 100644
--- a/externals/postlude/flib/src/ss~.c
+++ b/externals/postlude/flib/src/ss~.c
@@ -47,7 +47,7 @@ static t_int *ss_perform(t_int *w)
 static void ss_dsp(t_ss *x, t_signal **sp)
 {
   dsp_add(ss_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *ss_new(void)
diff --git a/externals/postlude/flib/src/trist~.c b/externals/postlude/flib/src/trist~.c
index b04c8bb72120802a6ebe5ce28aa5bd9db55f1273..d0fb9b2f4814fee3119319df91da3d90df478800 100644
--- a/externals/postlude/flib/src/trist~.c
+++ b/externals/postlude/flib/src/trist~.c
@@ -67,7 +67,7 @@ static t_int *trist_perform(t_int *w)
 static void trist_dsp(t_trist *x, t_signal **sp)
 {
   dsp_add(trist_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *trist_new(t_symbol *s)
diff --git a/externals/postlude/flib/src/wdv~.c b/externals/postlude/flib/src/wdv~.c
index 22ca536eacd38ea9dac890987ce06d6d114c90c4..2396ab291ea86b11a3d9de993536ce536ce59f2b 100644
--- a/externals/postlude/flib/src/wdv~.c
+++ b/externals/postlude/flib/src/wdv~.c
@@ -164,7 +164,7 @@ static t_int *wdv_perform(t_int *w)
 static void wdv_dsp(t_wdv *x, t_signal **sp)
 {
   dsp_add(wdv_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void *wdv_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/rjlib/src/rj_barkflux_accum~.c b/externals/rjlib/src/rj_barkflux_accum~.c
index 90c5bd99eab34c492b720c4f27ccd00b7a366533..d9994469ccc233e6d60a68d1a33531ebe116bd4c 100644
--- a/externals/rjlib/src/rj_barkflux_accum~.c
+++ b/externals/rjlib/src/rj_barkflux_accum~.c
@@ -258,7 +258,7 @@ static t_int *rj_barkflux_accum_perform(t_int *w)
     out the samples. */
 static void rj_barkflux_accum_dsp(t_rj_barkflux_accum *x, t_signal **sp)
 {
-    dsp_add(rj_barkflux_accum_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_barkflux_accum_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void accum_set_st(t_rj_barkflux_accum *x, t_floatarg g)
diff --git a/externals/rjlib/src/rj_centroid~.c b/externals/rjlib/src/rj_centroid~.c
index 893a6aee519b75e76840595ddb38f510096c9fcc..211d042c82591625ad30bb4cd86c7b468c815b0c 100644
--- a/externals/rjlib/src/rj_centroid~.c
+++ b/externals/rjlib/src/rj_centroid~.c
@@ -61,7 +61,7 @@ static t_int *rj_centroid_perform(t_int *w)
     out the samples. */
 static void rj_centroid_dsp(t_rj_centroid *x, t_signal **sp)
 {
-    dsp_add(rj_centroid_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_centroid_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_centroid_new(void)
diff --git a/externals/rjlib/src/rj_senergy~.c b/externals/rjlib/src/rj_senergy~.c
index 2fa99f6b3e0151fae6073a7093495dc38a2ac604..12f6d18b0bf648c9b37dfc1b2d6cad64789fe003 100644
--- a/externals/rjlib/src/rj_senergy~.c
+++ b/externals/rjlib/src/rj_senergy~.c
@@ -54,7 +54,7 @@ static t_int *rj_senergy_perform(t_int *w)
     out the samples. */
 static void rj_senergy_dsp(t_rj_senergy *x, t_signal **sp)
 {
-    dsp_add(rj_senergy_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_senergy_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_senergy_new(void)
diff --git a/externals/rjlib/src/rj_zcr~.c b/externals/rjlib/src/rj_zcr~.c
index d12d332e8bce2059f753ff798d02d54b06cfc700..a00a06d9d2bc5d16a67792dc55f8945c47800222 100644
--- a/externals/rjlib/src/rj_zcr~.c
+++ b/externals/rjlib/src/rj_zcr~.c
@@ -69,7 +69,7 @@ static t_int *rj_zcr_perform(t_int *w)
     out the samples. */
 static void rj_zcr_dsp(t_rj_zcr *x, t_signal **sp)
 {
-    dsp_add(rj_zcr_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_zcr_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_zcr_new(void)
diff --git a/externals/signal/bonk~/bonk~.c b/externals/signal/bonk~/bonk~.c
index cb05a0450e2b9a0ce70027e56ccda9639b4a0ef9..eb6217808f389ceab9bf998e478c2b590839bec7 100644
--- a/externals/signal/bonk~/bonk~.c
+++ b/externals/signal/bonk~/bonk~.c
@@ -510,7 +510,7 @@ static void bonk_dsp(t_bonk *x, t_signal **sp)
     	gp->g_invec = (*(sp++))->s_vec;
 
     for (i = 0; i < n; i += vsize)
-    	dsp_add(bonk_perform, 3, x, vsize, i);
+    	dsp_add(bonk_perform, 3, x, (t_int)vsize, i);
 }
 
 static void bonk_thresh(t_bonk *x, t_floatarg f1, t_floatarg f2)
diff --git a/externals/signal/fiddle~/fiddle~.c b/externals/signal/fiddle~/fiddle~.c
index 7c93733883db541f3b863a857cd7d6551262afea..be5212118765a98948e52767c340852d2907f277 100644
--- a/externals/signal/fiddle~/fiddle~.c
+++ b/externals/signal/fiddle~/fiddle~.c
@@ -1417,7 +1417,7 @@ void sigfiddle_dsp(t_sigfiddle *x, t_signal **sp)
     x->x_sr = sp[0]->s_sr;
     sigfiddle_reattack(x, x->x_attacktime, x->x_attackthresh);
     sigfiddle_vibrato(x, x->x_vibtime, x->x_vibdepth);
-    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
     /* This is the callback function for the clock, but also acts as
@@ -1677,7 +1677,7 @@ void sigfiddle_dsp(t_sigfiddle *x, t_signal **sp)
    	}
 	sigfiddle_reattack(x, x->x_attacktime, x->x_attackthresh);
     sigfiddle_vibrato(x, x->x_vibtime, x->x_vibdepth);
-    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 void sigfiddle_tick(t_sigfiddle *x)	/* callback function for the clock MSP*/
diff --git a/externals/signal/loop~/loop~.c b/externals/signal/loop~/loop~.c
index b92c93bd3754d56b2ce4d0d537104e6dacc2c573..567b6e0eb4b932eea39d1074f329553dce288055 100644
--- a/externals/signal/loop~/loop~.c
+++ b/externals/signal/loop~/loop~.c
@@ -137,7 +137,7 @@ static void loop_dsp(t_loop *x, t_signal **sp)
 {
     dsp_add(loop_perform, 6,
 	&x->x_loopctl, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-	    sp[0]->s_n);
+	    (t_int)sp[0]->s_n);
 }
 
 static void loop_set(t_loop *x, t_floatarg val)
diff --git a/externals/signal/lrshift~/lrshift~.c b/externals/signal/lrshift~/lrshift~.c
index d122ab2cb243a7709b44824cce393be127146575..8c7521260b02cbc42a6a7d1d38b1d999af54d006 100644
--- a/externals/signal/lrshift~/lrshift~.c
+++ b/externals/signal/lrshift~/lrshift~.c
@@ -81,7 +81,7 @@ static t_int *lrshift_perform(t_int *w)
 static void lrshift_tilde_dsp(t_lrshift_tilde *x, t_signal **sp)
 {
     int n = sp[0]->s_n;
-   	dsp_add(lrshift_perform, 4, sp[0]->s_vec, sp[1]->s_vec, n, x);
+   	dsp_add(lrshift_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)n, x);
 
 }
 
diff --git a/externals/sigpack/chop~.c b/externals/sigpack/chop~.c
index 29e862346372f283df3eeaecce1dbc80212daca2..507f55f9fbcfff20a4d3529493a635afe1a961de 100644
--- a/externals/sigpack/chop~.c
+++ b/externals/sigpack/chop~.c
@@ -55,7 +55,7 @@ static t_int *chop_tilde_perform(t_int *w)
 
 static void chop_tilde_dsp(t_chop_tilde *x, t_signal **sp)
 {
-    dsp_add(chop_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(chop_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void chop_tilde_setup(void)
diff --git a/externals/sigpack/decimate~.c b/externals/sigpack/decimate~.c
index 862341ccb8a34390b74ecc1c54c486688855a290..0574369a62fbe494cab23fe49c9992d26e68842a 100644
--- a/externals/sigpack/decimate~.c
+++ b/externals/sigpack/decimate~.c
@@ -64,7 +64,7 @@ static t_int *decimate_tilde_perform(t_int *w)
 
 static void decimate_tilde_dsp(t_decimate_tilde *x, t_signal **sp)
 {
-    dsp_add(decimate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(decimate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void decimate_tilde_setup(void)
diff --git a/externals/sigpack/diode~.c b/externals/sigpack/diode~.c
index 29f2b3915faddd1fa70c1cafd991eb9e5c5c234a..da46094a659fd87dd5f586362e505e091e1d66ce 100644
--- a/externals/sigpack/diode~.c
+++ b/externals/sigpack/diode~.c
@@ -66,7 +66,7 @@ static t_int *diode_tilde_perform(t_int *w)
 
 static void diode_tilde_dsp(t_diode_tilde *x, t_signal **sp)
 {
-    dsp_add(diode_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(diode_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void diode_tilde_setup(void)
diff --git a/externals/sigpack/foldback~.c b/externals/sigpack/foldback~.c
index da3b2d04b45ec148c6d85aa75761f7c13232486d..30505d687818ed3a09d25d87ac21c82267be5b61 100644
--- a/externals/sigpack/foldback~.c
+++ b/externals/sigpack/foldback~.c
@@ -58,7 +58,7 @@ static t_int *foldback_tilde_perform(t_int *w)
 
 static void foldback_tilde_dsp(t_foldback_tilde *x, t_signal **sp)
 {
-    dsp_add(foldback_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(foldback_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void foldback_tilde_setup(void)
diff --git a/externals/sigpack/foldover~.c b/externals/sigpack/foldover~.c
index 01d495135f79f0d81d6149def7e2608522af590e..8f06b7dfe34e24a9d17ecde5ee2fce6f95302be2 100644
--- a/externals/sigpack/foldover~.c
+++ b/externals/sigpack/foldover~.c
@@ -59,7 +59,7 @@ static t_int *foldover_tilde_perform(t_int *w)
 
 static void foldover_tilde_dsp(t_foldover_tilde *x, t_signal **sp)
 {
-    dsp_add(foldover_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(foldover_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void foldover_tilde_setup(void)
diff --git a/externals/sigpack/freqdiv~.c b/externals/sigpack/freqdiv~.c
index dd4c54726025bdeacb425aaf30b8a7ec82d691bf..fa8086ec4a0737ee57c766d5006f5703169ae4f5 100644
--- a/externals/sigpack/freqdiv~.c
+++ b/externals/sigpack/freqdiv~.c
@@ -88,7 +88,7 @@ static t_int *freqdiv_tilde_perform(t_int *w)
 
 static void freqdiv_tilde_dsp(t_freqdiv_tilde *x, t_signal **sp)
 {
-    dsp_add(freqdiv_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(freqdiv_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void freqdiv_tilde_setup(void)
diff --git a/externals/sigpack/freqshift~.c b/externals/sigpack/freqshift~.c
index d83dc2fa3e3276f1963ff85e4517a02998753c8b..e885d29f83d7f019832d9936216673cb276ea512 100644
--- a/externals/sigpack/freqshift~.c
+++ b/externals/sigpack/freqshift~.c
@@ -192,7 +192,7 @@ static t_int *freqshift_tilde_perform(t_int *w)
 
 static void freqshift_tilde_dsp(t_freqshift_tilde *x, t_signal **sp)
 {
-    dsp_add(freqshift_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(freqshift_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void freqshift_tilde_free(t_freqshift_tilde *x)
diff --git a/externals/sigpack/hardlimit~.c b/externals/sigpack/hardlimit~.c
index d9fc263415110865d4610f08045d65c4dab72acf..3e003e00f11b83839107b4abe3302be7da86451b 100644
--- a/externals/sigpack/hardlimit~.c
+++ b/externals/sigpack/hardlimit~.c
@@ -69,7 +69,7 @@ static t_int *hardlimit_tilde_perform(t_int *w)
 
 static void hardlimit_tilde_dsp(t_hardlimit_tilde *x, t_signal **sp)
 {
-    dsp_add(hardlimit_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(hardlimit_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void hardlimit_tilde_setup(void)
diff --git a/externals/sigpack/harmgen~.c b/externals/sigpack/harmgen~.c
index 6dca5cf371e2ea3fb0048c5daec2bc55b6bfe091..bfb6af0ee2854f2124697f07210d1667b51650ee 100644
--- a/externals/sigpack/harmgen~.c
+++ b/externals/sigpack/harmgen~.c
@@ -151,7 +151,7 @@ static t_int *harmgen_tilde_perform(t_int *w)
 
 static void harmgen_tilde_dsp(t_harmgen_tilde *x, t_signal **sp)
 {
-    dsp_add(harmgen_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(harmgen_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void harmgen_tilde_setup(void)
diff --git a/externals/sigpack/impulse~.c b/externals/sigpack/impulse~.c
index aeb246115e50a963fd603e3ef55fb7f57486e179..ff412a506672f4fc09144b474db2b4efe2851df3 100644
--- a/externals/sigpack/impulse~.c
+++ b/externals/sigpack/impulse~.c
@@ -65,7 +65,7 @@ static void impulse_tilde_ft1(t_impulse_tilde *x, t_float f)
 
 static void impulse_tilde_dsp(t_impulse_tilde *x, t_signal **sp)
 {
-    dsp_add(impulse_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(impulse_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void impulse_tilde_setup(void)
diff --git a/externals/sigpack/rectify~.c b/externals/sigpack/rectify~.c
index 42c45ec46a77dc584c93d9e77caf9130adc4dcfe..89434f8639e67c9f98b10c1bd3e47b31543e2d56 100644
--- a/externals/sigpack/rectify~.c
+++ b/externals/sigpack/rectify~.c
@@ -49,7 +49,7 @@ static t_int *rectify_tilde_perform(t_int *w)
 
 static void rectify_tilde_dsp(t_rectify_tilde *x, t_signal **sp)
 {
-    dsp_add(rectify_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rectify_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void rectify_tilde_setup(void)
diff --git a/externals/sigpack/round~.c b/externals/sigpack/round~.c
index 2d3bbae8644bd4e2c0bd7ca738c48422fe7ce534..665db8a988b9592392e79e6ad6349ce23eaec40c 100644
--- a/externals/sigpack/round~.c
+++ b/externals/sigpack/round~.c
@@ -52,7 +52,7 @@ static t_int *round_tilde_perform(t_int *w)
 
 static void round_tilde_dsp(t_round_tilde *x, t_signal **sp)
 {
-    dsp_add(round_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(round_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void round_tilde_setup(void)
diff --git a/externals/sigpack/saturate~.c b/externals/sigpack/saturate~.c
index 0e8a8f55289e3beb40e7ef41bd85ff3ab5dc3bdd..788642e8880a811f5bc93c439268e7649e3b537d 100644
--- a/externals/sigpack/saturate~.c
+++ b/externals/sigpack/saturate~.c
@@ -70,7 +70,7 @@ static t_int *saturate_tilde_perform(t_int *w)
 
 static void saturate_tilde_dsp(t_saturate_tilde *x, t_signal **sp)
 {
-    dsp_add(saturate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(saturate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void saturate_tilde_setup(void)
diff --git a/externals/sigpack/shape~.c b/externals/sigpack/shape~.c
index 0b2872030bbe08d296ccd22fec2c8df3c283db70..0f82d4548a27179769b27c99ef1cd03812c0d0e7 100644
--- a/externals/sigpack/shape~.c
+++ b/externals/sigpack/shape~.c
@@ -67,7 +67,7 @@ static t_int *shape_tilde_perform(t_int *w)
 
 static void shape_tilde_dsp(t_shape_tilde *x, t_signal **sp)
 {
-    dsp_add(shape_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(shape_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void shape_tilde_setup(void)
diff --git a/externals/sigpack/sieve~.c b/externals/sigpack/sieve~.c
index 0e0edb48c1f53c12ee5a66d4275b8a34749044a1..f955d460367a0678029003e1736e71f752dcc8f5 100644
--- a/externals/sigpack/sieve~.c
+++ b/externals/sigpack/sieve~.c
@@ -93,7 +93,7 @@ static t_int *sieve_tilde_perform(t_int *w)
 
 static void sieve_tilde_dsp(t_sieve_tilde *x, t_signal **sp)
 {
-    dsp_add(sieve_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sieve_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void sieve_tilde_setup(void)
diff --git a/externals/sigpack/split~.c b/externals/sigpack/split~.c
index f1e9ac0b0fa8a35fc1e260be9fec86c5becd964c..14d9467ada8c66d3d7c49e3cc4728ca110fce5ec 100644
--- a/externals/sigpack/split~.c
+++ b/externals/sigpack/split~.c
@@ -60,7 +60,7 @@ static t_int *split_tilde_perform(t_int *w)
 
 static void split_tilde_dsp(t_split_tilde *x, t_signal **sp)
 {
-    dsp_add(split_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(split_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void split_tilde_setup(void)
diff --git a/externals/sigpack/transient~.c b/externals/sigpack/transient~.c
index 786eb8dde0a8d4a09a61cc5b23954f607cb213ac..1b40ef78b6a39036c0678ad41c420f9b098f17f5 100644
--- a/externals/sigpack/transient~.c
+++ b/externals/sigpack/transient~.c
@@ -121,7 +121,7 @@ static t_int *transient_tilde_perform(t_int *w)
 
 static void transient_tilde_dsp(t_transient_tilde *x, t_signal **sp)
 {
-    dsp_add(transient_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(transient_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void transient_tilde_setup(void)
diff --git a/externals/sigpack/ustep~.c b/externals/sigpack/ustep~.c
index 6308e0f14f50d7191467edf62ddea7a859b56c7a..854ee559e9c3b16f23f6f854a2d701c837acb9be 100644
--- a/externals/sigpack/ustep~.c
+++ b/externals/sigpack/ustep~.c
@@ -71,7 +71,7 @@ static t_int *ustep_tilde_perform(t_int *w)
 
 static void ustep_tilde_dsp(t_ustep_tilde *x, t_signal **sp)
 {
-    dsp_add(ustep_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(ustep_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void ustep_tilde_setup(void)
diff --git a/externals/sigpack/valverect~.c b/externals/sigpack/valverect~.c
index 38280303fac6a03276336f458453775d9197b319..50df9ce1b8b37c92593ab458444c4ead812815b9 100644
--- a/externals/sigpack/valverect~.c
+++ b/externals/sigpack/valverect~.c
@@ -138,7 +138,7 @@ static t_int *valverect_tilde_perform(t_int *w)
 
 static void valverect_tilde_dsp(t_valverect_tilde *x, t_signal **sp)
 {
-    dsp_add(valverect_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(valverect_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void valverect_tilde_free(t_valverect_tilde *x)
diff --git a/externals/sigpack/vowel~.c b/externals/sigpack/vowel~.c
index 65931eac8cc5263eeb30c4d91eed27bda39e384b..c0356b474c9307aed854976835844f5b4f66e258 100644
--- a/externals/sigpack/vowel~.c
+++ b/externals/sigpack/vowel~.c
@@ -105,7 +105,7 @@ static t_int *vowel_tilde_perform(t_int *w)
 
 static void vowel_tilde_dsp(t_vowel_tilde *x, t_signal **sp)
 {
-    dsp_add(vowel_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(vowel_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void vowel_tilde_setup(void)
diff --git a/externals/sigpack/wavewrap~.c b/externals/sigpack/wavewrap~.c
index fbd15bd963ce3f8c7a38611766152309a353c41a..5a20c416c59cd2a6f37c44fb7c7224996ee1ca9a 100644
--- a/externals/sigpack/wavewrap~.c
+++ b/externals/sigpack/wavewrap~.c
@@ -64,7 +64,7 @@ static t_int *wavewrap_tilde_perform(t_int *w)
 
 static void wavewrap_tilde_dsp(t_wavewrap_tilde *x, t_signal **sp)
 {
-    dsp_add(wavewrap_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(wavewrap_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void wavewrap_tilde_setup(void)
diff --git a/externals/tb/erfc~/erfc~.c b/externals/tb/erfc~/erfc~.c
index 82baa558a1e6b22c2527adaa70016b1b44a38726..f0d3d0ad52485a7a83501671938ac5e7c6e8c9a1 100644
--- a/externals/tb/erfc~/erfc~.c
+++ b/externals/tb/erfc~/erfc~.c
@@ -52,7 +52,7 @@ static t_int *erfc_perfcorm(t_int *w)
 
 static void erfc_dsp(t_erfc *x, t_signal **sp)
 {
-    dsp_add(erfc_perfcorm, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(erfc_perfcorm, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void erfc_tilde_setup(void)
diff --git a/externals/tb/erf~/erf~.c b/externals/tb/erf~/erf~.c
index db7e5d8af93eff230f2c154cfe1513ad437bdd19..e715d4462056b7101bc8da13a994f69562be1a42 100644
--- a/externals/tb/erf~/erf~.c
+++ b/externals/tb/erf~/erf~.c
@@ -52,7 +52,7 @@ static t_int *erf_perform(t_int *w)
 
 static void erf_dsp(t_erf *x, t_signal **sp)
 {
-    dsp_add(erf_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(erf_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void erf_tilde_setup(void)
diff --git a/externals/tb/volctl~/volctl~.c b/externals/tb/volctl~/volctl~.c
index 0d846a1e4f36f1fc34c09160325e2a12d2e78397..c8c1cfb76aa3a5e27095953c11213fe7cfe32b36 100644
--- a/externals/tb/volctl~/volctl~.c
+++ b/externals/tb/volctl~/volctl~.c
@@ -344,13 +344,13 @@ static void volctl_dsp(t_volctl *x, t_signal **sp)
 {
     const int n = sp[0]->s_n;
     if (n&7)
-    	dsp_add(volctl_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+    	dsp_add(volctl_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
     else 
     {
 		if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec))
-			dsp_add(volctl_perf_simd, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+			dsp_add(volctl_perf_simd, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
 		else
-			dsp_add(volctl_perf8, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+			dsp_add(volctl_perf8, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
     }
 
 	x->x_blocksize = n;
diff --git a/externals/tof/src/breakpoints~.c b/externals/tof/src/breakpoints~.c
index 1028dbb67d1673f7683201841f62ab5ee14a6648..d635e3850f940aabdab1bc162bcf9017b8e69aa4 100644
--- a/externals/tof/src/breakpoints~.c
+++ b/externals/tof/src/breakpoints~.c
@@ -103,7 +103,7 @@ static t_int *breakpointssig_perform(t_int *w)
     out the samples. */
 static void breakpointssig_dsp(t_breakpoints *x, t_signal **sp)
 {
-    dsp_add(breakpointssig_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(breakpointssig_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void breakpoints_totaldur(t_breakpoints* x,t_float dur)
diff --git a/externals/tof/src/common~.c b/externals/tof/src/common~.c
index 3e234468ceb451d0c0f3b7bba171cdef0da51430..6e4af52ec8c4a7a5ba25e1f9cb8dc086cab38acd 100644
--- a/externals/tof/src/common~.c
+++ b/externals/tof/src/common~.c
@@ -206,7 +206,7 @@ static  void common_tilde_dsp(t_common_tilde *x, t_signal **sp)
 {
 	
 	if ( (int) sp[0]->s_n == 64 ) {
-		dsp_add(common_tilde_perform, 4, x,sp[0]->s_vec,sp[1]->s_vec, sp[0]->s_n);
+		dsp_add(common_tilde_perform, 4, x,sp[0]->s_vec,sp[1]->s_vec, (t_int)sp[0]->s_n);
 		
 	  } else {
 		  error("common~ only works with a block size of 64");
diff --git a/externals/tof/src/crossfade~.c b/externals/tof/src/crossfade~.c
index da777b13ceab83ebb369a0b569c0c9f312b5a3f8..9ec377a6e41d9eeaaec04934b3c990611d2ebcf4 100644
--- a/externals/tof/src/crossfade~.c
+++ b/externals/tof/src/crossfade~.c
@@ -79,7 +79,7 @@ static void crossfade_tilde_dsp(t_crossfade_tilde *x, t_signal **sp)
   for(n=0;n<x->n_out;n++)*dummy++=sp[n+x->n_in+1]->s_vec;
 
   
-  dsp_add(crossfade_tilde_perform, 3, x, sp[0]->s_n, sp[x->n_in]->s_vec);
+  dsp_add(crossfade_tilde_perform, 3, x, (t_int)sp[0]->s_n, sp[x->n_in]->s_vec);
   
 }
 
diff --git a/externals/tof/src/phasorshot~.c b/externals/tof/src/phasorshot~.c
index 84b9f0653b52aac41bfc59cea4bcbdec38cfcf00..d189888f26909e515baa73a89cf70557202d9c2f 100644
--- a/externals/tof/src/phasorshot~.c
+++ b/externals/tof/src/phasorshot~.c
@@ -141,7 +141,7 @@ void phasorshot_tick(t_phasorshot *x)
  void phasorshot_dsp(t_phasorshot *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(phasorshot_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(phasorshot_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
  void phasorshot_ft1(t_phasorshot *x, t_float f)
diff --git a/externals/tof/test/accum~.c b/externals/tof/test/accum~.c
index 487a54aa498ff39bef9ae92af57b1f747ce63f8d..314a38e0aa0ee3f19c2a56f85808a2c20f73deaf 100644
--- a/externals/tof/test/accum~.c
+++ b/externals/tof/test/accum~.c
@@ -180,7 +180,7 @@ static void accum_tilde_dsp(t_accum_tilde *x, t_signal **sp) {
     // point to number of samples
     // point to inlet~
     // point to outlet~
-    dsp_add(accum_tilde_perform, 4, x, sp[0]->s_n, sp[0]->s_vec,sp[1]->s_vec);
+    dsp_add(accum_tilde_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,sp[1]->s_vec);
 }
 
 static void *accum_tilde_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/tof/test/count.c b/externals/tof/test/count.c
index b2ed2cdb90ff3719fef4859d30b6131cb2ed9855..fb1f7ebcaf2d909e28e374f7f184288aad2abf8c 100644
--- a/externals/tof/test/count.c
+++ b/externals/tof/test/count.c
@@ -105,7 +105,7 @@ static t_int *count_perform(t_int *w)
 static void count_dsp(t_count *x, t_signal **sp)
 {
     if (x->x_autoreset) count_bang(x);
-    dsp_add(count_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(count_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *count_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/tof/test/frameaccum.c b/externals/tof/test/frameaccum.c
index 6038ae5399caf1900aef9cfa5c6b70028598d0fe..aaab147f5bd34feb1b91ada50b9d42d1a72c603f 100644
--- a/externals/tof/test/frameaccum.c
+++ b/externals/tof/test/frameaccum.c
@@ -37,7 +37,7 @@ static void frameaccum_dsp(t_frameaccum *x, t_signal **sp)
 				 FRAMEACCUM_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKED */
-    dsp_add(frameaccum_perform, 4, nblock, x->x_frame,
+    dsp_add(frameaccum_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/unauthorized/audience~.c b/externals/unauthorized/audience~.c
index 27a52b1c609046529ed268210da62600848ccfbc..237a70d69dc9ed63fd702c1450adcac0bfc7a7ca 100644
--- a/externals/unauthorized/audience~.c
+++ b/externals/unauthorized/audience~.c
@@ -965,43 +965,43 @@ static void audience_dsp(t_audience_tilde *x, t_signal **sp)
     switch ( x->x_nbinputs+x->x_nboutputs )
     {
     case 2 :
-        dsp_add(audience_perform, 4, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec );
+        dsp_add(audience_perform, 4, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec );
         break;
 
     case 3 :
-        dsp_add(audience_perform, 5, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec );
+        dsp_add(audience_perform, 5, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec );
         break;
 
     case 4 :
-        dsp_add(audience_perform, 6, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec );
+        dsp_add(audience_perform, 6, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec );
         break;
 
     case 5 :
-        dsp_add(audience_perform, 7, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec );
+        dsp_add(audience_perform, 7, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec );
         break;
 
     case 6 :
-        dsp_add(audience_perform, 8, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 8, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec );
         break;
 
     case 7 :
-        dsp_add(audience_perform, 9, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 9, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec );
         break;
 
     case 8 :
-        dsp_add(audience_perform, 10, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 10, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec );
         break;
 
     case 9 :
-        dsp_add(audience_perform, 11, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 11, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec );
         break;
 
     case 10 :
-        dsp_add(audience_perform, 12, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 12, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec,
                 sp[9]->s_vec, sp[10]->s_vec );
         break;
diff --git a/externals/unauthorized/beatify~.c b/externals/unauthorized/beatify~.c
index 394a60520b33edad8ba601feaaf34d42fac0c33c..7d784f76078aed5d44b340e8ad198342b4ba7411 100644
--- a/externals/unauthorized/beatify~.c
+++ b/externals/unauthorized/beatify~.c
@@ -166,7 +166,7 @@ static t_int *beatify_perform(t_int *w)
 
 static void beatify_dsp(t_beatify *x, t_signal **sp)
 {
-    dsp_add(beatify_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(beatify_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 void beatify_tilde_setup(void)
diff --git a/externals/unauthorized/compressor~.c b/externals/unauthorized/compressor~.c
index 2b776e4258d4bc09efeff6e9793287ebc30fe248..34b78c85f02a3b59130e5730db49584e3c4f4bab 100644
--- a/externals/unauthorized/compressor~.c
+++ b/externals/unauthorized/compressor~.c
@@ -92,7 +92,7 @@ static t_int *compressor_perform(t_int *w)
 
 static void compressor_dsp(t_compressor *x, t_signal **sp)
 {
-    dsp_add(compressor_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(compressor_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 void compressor_tilde_setup(void)
diff --git a/externals/unauthorized/cooled~.c b/externals/unauthorized/cooled~.c
index 87ee370b3c56b8a23ab8fd857f925571ded8fc23..c09ba4c4e427386ba5af332df3040d60a695b0a0 100644
--- a/externals/unauthorized/cooled~.c
+++ b/externals/unauthorized/cooled~.c
@@ -1166,7 +1166,7 @@ static t_int *cooled_perform(t_int *w)
 
 static void cooled_dsp(t_cooled *x, t_signal **sp)
 {
-    dsp_add(cooled_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(cooled_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the cooled */
diff --git a/externals/unauthorized/disto~.c b/externals/unauthorized/disto~.c
index b51640660fb53d9f7594581e52e9aae173aa4838..2afcf6ff19581d979bf3e4b4df05b84324d865cc 100644
--- a/externals/unauthorized/disto~.c
+++ b/externals/unauthorized/disto~.c
@@ -426,7 +426,7 @@ static void disto_preset(t_disto *x, t_float pnumber)
 
 static void disto_dsp(t_disto *x, t_signal **sp)
 {
-    dsp_add(disto_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(disto_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 /* clean up */
diff --git a/externals/unauthorized/formant~.c b/externals/unauthorized/formant~.c
index 5ef3b5ef6d780ad44f70f67cb5c244ae3f3d80ac..b5b442a04d1688cd6b4dbc8fea219c797d33326c 100644
--- a/externals/unauthorized/formant~.c
+++ b/externals/unauthorized/formant~.c
@@ -152,7 +152,7 @@ static t_int *formant_perform(t_int *w)
 
 static void formant_dsp(t_formant *x, t_signal **sp)
 {
-    dsp_add(formant_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(formant_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 /* replay the sample */
diff --git a/externals/unauthorized/mp3amp~.c b/externals/unauthorized/mp3amp~.c
index f3aeebed35095b5fa77826294a64f88c7bc61131..699189ed589d7c10ddc583e5d4737d9167fdd499 100644
--- a/externals/unauthorized/mp3amp~.c
+++ b/externals/unauthorized/mp3amp~.c
@@ -578,7 +578,7 @@ static t_int *mp3amp_perform(t_int *w)
 
 static void mp3amp_dsp(t_mp3amp *x, t_signal **sp)
 {
-    dsp_add(mp3amp_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(mp3amp_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/unauthorized/mp3cast~.c b/externals/unauthorized/mp3cast~.c
index a5bc66a4eec3ffeb3f018735e8a84ed513b4c12c..0c7d968f9412106fa3d20a0267a13509289d9a12 100644
--- a/externals/unauthorized/mp3cast~.c
+++ b/externals/unauthorized/mp3cast~.c
@@ -343,7 +343,7 @@ static t_int *mp3cast_perform(t_int *w)
 
 static void mp3cast_dsp(t_mp3cast *x, t_signal **sp)
 {
-    dsp_add(mp3cast_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3cast_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/mp3fileout~.c b/externals/unauthorized/mp3fileout~.c
index c331d0f990458c886e7bce2d347c537eef6dc073..5916fcd55094874b155bbe76a00e703352fb0169 100644
--- a/externals/unauthorized/mp3fileout~.c
+++ b/externals/unauthorized/mp3fileout~.c
@@ -333,7 +333,7 @@ static t_int *mp3fileout_perform(t_int *w)
 
 static void mp3fileout_dsp(t_mp3fileout *x, t_signal **sp)
 {
-    dsp_add(mp3fileout_perform, 2, x, sp[0]->s_n);
+    dsp_add(mp3fileout_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 /* start streaming */
diff --git a/externals/unauthorized/mp3streamin~.c b/externals/unauthorized/mp3streamin~.c
index 60bb3929c53570b1214f492aecb92eaa87c9cb5d..eb3c5aade7f3133340fad87428c56042ab7ae701 100644
--- a/externals/unauthorized/mp3streamin~.c
+++ b/externals/unauthorized/mp3streamin~.c
@@ -590,7 +590,7 @@ static t_int *mp3streamin_perform(t_int *w)
 
 static void mp3streamin_dsp(t_mp3streamin *x, t_signal **sp)
 {
-    dsp_add(mp3streamin_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mp3streamin_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/unauthorized/mp3streamout~.c b/externals/unauthorized/mp3streamout~.c
index 3786c044d89cb8793027b99bbed7b5e757825d2f..2f14c8269c89db5846f539de9a38ea6bb1af4bc7 100644
--- a/externals/unauthorized/mp3streamout~.c
+++ b/externals/unauthorized/mp3streamout~.c
@@ -351,7 +351,7 @@ static t_int *mp3streamout_perform(t_int *w)
 
 static void mp3streamout_dsp(t_mp3streamout *x, t_signal **sp)
 {
-    dsp_add(mp3streamout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3streamout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/mp3write~.c b/externals/unauthorized/mp3write~.c
index 133ffa284a526b87dd146be9127d1352143d08b7..b0c4787577a6493a3a8cd85486df492505883da8 100644
--- a/externals/unauthorized/mp3write~.c
+++ b/externals/unauthorized/mp3write~.c
@@ -343,7 +343,7 @@ static t_int *mp3write_perform(t_int *w)
 
 static void mp3write_dsp(t_mp3write *x, t_signal **sp)
 {
-    dsp_add(mp3write_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3write_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/randomblock~.c b/externals/unauthorized/randomblock~.c
index 002876e454e51a177dd10a284b501cd8c564a6bd..1d35c24222c2a1f5b318a4d54a06310604541a6c 100644
--- a/externals/unauthorized/randomblock~.c
+++ b/externals/unauthorized/randomblock~.c
@@ -111,7 +111,7 @@ static t_int *randomblock_perform(t_int *w)
 
 static void randomblock_dsp(t_randomblock *x, t_signal **sp)
 {
-    dsp_add( randomblock_perform, 3, sp[0]->s_vec, sp[0]->s_n, x ) ;
+    dsp_add( randomblock_perform, 3, sp[0]->s_vec, (t_int)sp[0]->s_n, x ) ;
 }
 
 void randomblock_tilde_setup(void)
diff --git a/externals/unauthorized/samplebox~.c b/externals/unauthorized/samplebox~.c
index e0769976b90ea81602b1c160d381fcf339ce7bac..d3285476cec009a7d4bdeb30b54a2f9e8e569ed2 100644
--- a/externals/unauthorized/samplebox~.c
+++ b/externals/unauthorized/samplebox~.c
@@ -336,7 +336,7 @@ static t_int *samplebox_perform(t_int *w)
 
 static void samplebox_dsp(t_samplebox *x, t_signal **sp)
 {
-    dsp_add(samplebox_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(samplebox_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the sonogram */
diff --git a/externals/unauthorized/scratcher~.c b/externals/unauthorized/scratcher~.c
index 6ef08d5cb3016f86e6b94fe27bf4722e02f7750d..e4c5c168d8daa2472c188f45d0c5e6b07ed57a44 100644
--- a/externals/unauthorized/scratcher~.c
+++ b/externals/unauthorized/scratcher~.c
@@ -588,7 +588,7 @@ static t_int *scratcher_perform(t_int *w)
 
 static void scratcher_dsp(t_scratcher *x, t_signal **sp)
 {
-    dsp_add(scratcher_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x);
+    dsp_add(scratcher_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* play the sound */
diff --git a/externals/unauthorized/sonogram~.c b/externals/unauthorized/sonogram~.c
index ca7bfb1a3ee027ed958b4112c6387586abe1368e..cb0b97271c39a910147ee0642adc2d37b0a8bc26 100644
--- a/externals/unauthorized/sonogram~.c
+++ b/externals/unauthorized/sonogram~.c
@@ -1502,7 +1502,7 @@ static t_int *sonogram_perform(t_int *w)
 
 static void sonogram_dsp(t_sonogram *x, t_signal **sp)
 {
-    dsp_add(sonogram_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(sonogram_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the sonogram */
diff --git a/externals/unauthorized/speexin~.c b/externals/unauthorized/speexin~.c
index b8a350abb7ca91eebf4c99854b431825ddd02faa..308b0aacb60cc009a0c6555293703d5cb41f1872 100644
--- a/externals/unauthorized/speexin~.c
+++ b/externals/unauthorized/speexin~.c
@@ -533,7 +533,7 @@ static t_int *speexin_perform(t_int *w)
 
 static void speexin_dsp(t_speexin *x, t_signal **sp)
 {
-    dsp_add(speexin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(speexin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/unauthorized/speexout~.c b/externals/unauthorized/speexout~.c
index 11230d5b2ef24613440370e3b5a71fa8fe61f07d..a00c9ad60b72e85954c393a37676ae4e1855c523 100644
--- a/externals/unauthorized/speexout~.c
+++ b/externals/unauthorized/speexout~.c
@@ -256,7 +256,7 @@ static t_int *speexout_perform(t_int *w)
 
 static void speexout_dsp(t_speexout *x, t_signal **sp)
 {
-    dsp_add(speexout_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(speexout_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the speex library */
diff --git a/externals/unauthorized/spigot~.c b/externals/unauthorized/spigot~.c
index d994df5b6ab37e6cde8ae9fc0683fd48c52b39d0..34cec85d4ae8d312b76344f03f37be7115f2a9d4 100644
--- a/externals/unauthorized/spigot~.c
+++ b/externals/unauthorized/spigot~.c
@@ -61,7 +61,7 @@ static t_int *spigot_perform(t_int *w)
 static void spigot_dsp(t_spigot *x, t_signal **sp)
 {
     dsp_add(spigot_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n, x);
+            (t_int)sp[0]->s_n, x);
 }
 
 static void spigot_set(t_spigot *x, t_float f)
diff --git a/externals/unauthorized/vocoder~.c b/externals/unauthorized/vocoder~.c
index f0b4143ec03b7b60992a35bf5a123ac6b9cdd18c..69b12ca1a2f46721681c912d213f31d32a2ca5d8 100644
--- a/externals/unauthorized/vocoder~.c
+++ b/externals/unauthorized/vocoder~.c
@@ -123,7 +123,7 @@ static t_int *vocoder_perform(t_int *w)
 
 static void vocoder_dsp(t_vocoder *x, t_signal **sp)
 {
-    dsp_add(vocoder_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(vocoder_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *vocoder_new(void)
diff --git a/externals/unauthorized/wahwah~.c b/externals/unauthorized/wahwah~.c
index 9e6e3c6a73d8636b8134b3a3c0738ec34d666958..0b6b8f10b2531a2aaea38372f3f45a9e05e84400 100644
--- a/externals/unauthorized/wahwah~.c
+++ b/externals/unauthorized/wahwah~.c
@@ -339,7 +339,7 @@ static void wahwah_preset(t_wahwah *x, t_float pnumber)
 
 static void wahwah_dsp(t_wahwah *x, t_signal **sp)
 {
-    dsp_add(wahwah_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(wahwah_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 /* clean up */
diff --git a/externals/vst/vst~.cpp b/externals/vst/vst~.cpp
index b3b5b14d334a651d714a204475a98560cd01d30e..4b221d6fd6b9a88b5023262d5a896be7e919c100 100644
--- a/externals/vst/vst~.cpp
+++ b/externals/vst/vst~.cpp
@@ -75,11 +75,11 @@ static void vst_tilde_dsp(t_vst_tilde *x, t_signal **sp)
 		//post("*");
 		if ( x->plug->replace() )
 		{
-			dsp_add(vst_tilde_perform_replace, 2 , x->d_args , sp[0]->s_n );
+			dsp_add(vst_tilde_perform_replace, 2 , x->d_args , (t_int)sp[0]->s_n );
 		}
 		else
 		{
-			dsp_add(vst_tilde_perform_acc, 2 , x->d_args , sp[0]->s_n );
+			dsp_add(vst_tilde_perform_acc, 2 , x->d_args , (t_int)sp[0]->s_n );
 		}
 	}
 
diff --git a/externals/windowing/bartlett~.c b/externals/windowing/bartlett~.c
index ea1c9478dc8972516e9471d82c346c63bf642035..12f2a452650b23c7bd227df6ffbbab1ed7da85a8 100644
--- a/externals/windowing/bartlett~.c
+++ b/externals/windowing/bartlett~.c
@@ -68,7 +68,7 @@ static t_int* bartlett_perform(t_int *w) {
 }
 
 static void bartlett_dsp(t_bartlett *x, t_signal **sp) {
-  dsp_add(bartlett_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(bartlett_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* bartlett_new(void) {
diff --git a/externals/windowing/blackman~.c b/externals/windowing/blackman~.c
index ad7af8a4561d603b3149d058ec7f40c054f7bf9c..9248384d68b76356917979c5916e59601dcb8d5a 100644
--- a/externals/windowing/blackman~.c
+++ b/externals/windowing/blackman~.c
@@ -72,7 +72,7 @@ static t_int* blackman_perform(t_int *w) {
 }
 
 static void blackman_dsp(t_blackman *x, t_signal **sp) {
-  dsp_add(blackman_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blackman_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* blackman_new(void) {
diff --git a/externals/windowing/connes~.c b/externals/windowing/connes~.c
index 027ab199af17e732c088e470959b63d66b1d7405..7845c4ecf11d9149833e165ff13678bdc245f073 100644
--- a/externals/windowing/connes~.c
+++ b/externals/windowing/connes~.c
@@ -67,7 +67,7 @@ static t_int* connes_perform(t_int *w) {
 }
 
 static void connes_dsp(t_connes *x, t_signal **sp) {
-  dsp_add(connes_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(connes_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* connes_new(void) {
diff --git a/externals/windowing/cosine~.c b/externals/windowing/cosine~.c
index 92eb8182b80c2bae11fc0e4664a5d6adc46ce63f..77ac428c4db732e0591b327bfa46d2c1c32e4f8a 100644
--- a/externals/windowing/cosine~.c
+++ b/externals/windowing/cosine~.c
@@ -72,7 +72,7 @@ static t_int* cosine_perform(t_int *w) {
 }
 
 static void cosine_dsp(t_cosine *x, t_signal **sp) {
-  dsp_add(cosine_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(cosine_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* cosine_new(void) {
diff --git a/externals/windowing/gaussian~.c b/externals/windowing/gaussian~.c
index 3b9828b1252319fe2ef7f9596db673994cf3f1db..0bf5aa861265ea7f24a53c44c71ae801410add3a 100644
--- a/externals/windowing/gaussian~.c
+++ b/externals/windowing/gaussian~.c
@@ -78,7 +78,7 @@ static t_int* gaussian_perform(t_int *w) {
 }
 
 static void gaussian_dsp(t_gaussian *x, t_signal **sp) {
-  dsp_add(gaussian_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(gaussian_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void gaussian_float(t_gaussian *x, t_float delta) {
diff --git a/externals/windowing/hamming~.c b/externals/windowing/hamming~.c
index 24b5e43f0d736d24dbd5438b533158cb2a67c38a..52da749ebd5660acab11193e6cc81c72281e12e3 100644
--- a/externals/windowing/hamming~.c
+++ b/externals/windowing/hamming~.c
@@ -72,7 +72,7 @@ static t_int* hamming_perform(t_int *w) {
 }
 
 static void hamming_dsp(t_hamming *x, t_signal **sp) {
-  dsp_add(hamming_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(hamming_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* hamming_new(void) {
diff --git a/externals/windowing/hanning~.c b/externals/windowing/hanning~.c
index 9be6da2a760833949d67d641aef174234ae1fdf1..bacc73759b21a5865ef99eac8232fdd84fce048c 100644
--- a/externals/windowing/hanning~.c
+++ b/externals/windowing/hanning~.c
@@ -72,7 +72,7 @@ static t_int* hanning_perform(t_int *w) {
 }
 
 static void hanning_dsp(t_hanning *x, t_signal **sp) {
-  dsp_add(hanning_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(hanning_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* hanning_new(void) {
diff --git a/externals/windowing/kaiser~.c b/externals/windowing/kaiser~.c
index dc072e9d6b365a9d89c3b1b28a011477f6ac7aae..f474d95cedb295c25eeb1eda32a0dd03f8139f78 100644
--- a/externals/windowing/kaiser~.c
+++ b/externals/windowing/kaiser~.c
@@ -74,7 +74,7 @@ static t_int* kaiser_perform(t_int *w) {
 }
 
 static void kaiser_dsp(t_kaiser *x, t_signal **sp) {
-  dsp_add(kaiser_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(kaiser_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void kaiser_float(t_kaiser *x, t_float alpha) {
diff --git a/externals/windowing/lanczos~.c b/externals/windowing/lanczos~.c
index c10ed6bf1bb2c070ecc8028eb5767c78ad498a8e..10466ff44236e1cc9a805ef1e23ec2fc7a28fca1 100644
--- a/externals/windowing/lanczos~.c
+++ b/externals/windowing/lanczos~.c
@@ -77,7 +77,7 @@ static t_int* lanczos_perform(t_int *w) {
 }
 
 static void lanczos_dsp(t_lanczos *x, t_signal **sp) {
-  dsp_add(lanczos_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(lanczos_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* lanczos_new(void) {
diff --git a/externals/windowing/welch~.c b/externals/windowing/welch~.c
index 0903389de4fdc0bfad7c717bda9baca2926f08eb..183eb0e3297dade435c64210e3e8da656e3063c0 100644
--- a/externals/windowing/welch~.c
+++ b/externals/windowing/welch~.c
@@ -67,7 +67,7 @@ static t_int* welch_perform(t_int *w) {
 }
 
 static void welch_dsp(t_welch *x, t_signal **sp) {
-  dsp_add(welch_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(welch_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* welch_new(void) {
diff --git a/externals/zexy/src/0x260x26_tilde.c b/externals/zexy/src/0x260x26_tilde.c
index 92aeda12b0bec29e7ecfbef99cae0f082216f0b8..793ce500c6c9713c0c2c6d9674d76501b6bc1a6f 100644
--- a/externals/zexy/src/0x260x26_tilde.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);
     }
 }
 
diff --git a/externals/zexy/src/0x3c_tilde.c b/externals/zexy/src/0x3c_tilde.c
index ef742e8669fb9f6247d68fd20f29c3a8cb13bd48..6e278fd96eb2a372dcf303683452bff43aece5e8 100644
--- a/externals/zexy/src/0x3c_tilde.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*x)
diff --git a/externals/zexy/src/0x3d0x3d_tilde.c b/externals/zexy/src/0x3d0x3d_tilde.c
index f78af4558020e2e6fde13a7b2650cb1a48c1725e..3430987865663a6fdf7bacff2caab48721f5a69c 100644
--- a/externals/zexy/src/0x3d0x3d_tilde.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);
     }
 }
 
diff --git a/externals/zexy/src/0x3e_tilde.c b/externals/zexy/src/0x3e_tilde.c
index cc6964ab7172855863e7ed82abf5940bb42068b6..008a3b1c32fd324c87ce14f9483429e59cb4ed96 100644
--- a/externals/zexy/src/0x3e_tilde.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);
     }
 }
 
diff --git a/externals/zexy/src/0x7c0x7c_tilde.c b/externals/zexy/src/0x7c0x7c_tilde.c
index 9b43d73066187c44c940b98bc35ea1284f1ea080..558c7609078098b3f9bb3cb29a1fb6e4d9486074 100644
--- a/externals/zexy/src/0x7c0x7c_tilde.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);
     }
 }
 
diff --git a/externals/zexy/src/absgn~.c b/externals/zexy/src/absgn~.c
index 927c55d2c11316d5d365d41484c011782f2fb7c2..52d828927c6e47292f14d2fcf84f13a2c48ae802 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 333aba3ae144cb7df76dd063a39b64b040d0bc53..c2bf55a28c6060b35d5dc9dee383d5988cd64378 100644
--- a/externals/zexy/src/abs~.c
+++ b/externals/zexy/src/abs~.c
@@ -128,11 +128,11 @@ static void sigABS_dsp(t_abs *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 839b6b523ed418ae76c9c808b8f802292186841c..669879ca4817d67ae0f8a8d4a60258d4f67ceada 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 67465dd6e2693ec8d4469f921a92461f4c3d7547..2ad4092cdbb0542267043d139108e1cbd4c1599d 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*x)
diff --git a/externals/zexy/src/blockshuffle~.c b/externals/zexy/src/blockshuffle~.c
index d2e0e9e56cb06cc887ddb0e3f2c89fac173e55b6..de9b24fc9af6d34efdd0c9efa745a73189e1054a 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(void)
diff --git a/externals/zexy/src/blockswap~.c b/externals/zexy/src/blockswap~.c
index 05ea2e8e42eea60cb1f0b2b69472c90917be901d..15785850f36a879d061990f6ff32634f324b964c 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 *x)
diff --git a/externals/zexy/src/demultiplex~.c b/externals/zexy/src/demultiplex~.c
index 6a40cbb4bbee64342352c0605248d548f1e66d74..4fb7e7876337a459a9c27273feea2e40cde7a5df 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 1868e80b3bb016f4ffd18d2fbb9b2c1f2eec73c8..2ad7715751fa40bfb83073b60e2bca91f743c0f6 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 fbd83109b3b7b7491f3d2e16361a2774ef7c77eb..027fee5539284af8472b3db088eefcabc22e9fd5 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 6666135c6b38a172ee754e141129013d4f06f046..650c8a5313f7c3adf4f3d505483465ac57b82a51 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 520421153c84bad4552bfc320c9da3a128d047c3..b074414c8f95b3b12690f5f82ea55889e2606256 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/multiline~.c b/externals/zexy/src/multiline~.c
index 7982c2329919295465e9e4a8d75ce372dd7b1149..fea4f3d2218fc0d8c07d6993fce576c65da7a957 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 eccda19f00b635a11c9ddfcddb2a3a9d692fb755..86de9c5604a5a1154508d691e7eee875e92f6298 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 295a95f95be271dea5b3a3731c70120750e4bbab..f34455141f3f474701a28c853b5f6ab2976a18a7 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 4703b95692915e40803a7743fefb3a6d41b4a4a3..f79e939f7cf26bbbda6c5f5ae9951fb4b0854641 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 e1614a7e4c486465f103d0463ae4e735487708e2..ef823ec87ac067a492f86379a477c13caa363294 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 74d20d6bf4a5c2dbd28145798c8a04a5bd494cea..12db1db6c43e9e5911a31e9d919780f7c9284821 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 972fa6dec902787f8a9b784d677821d829e0be43..36d8f8964d2a65d85141edfe0bf47f77934e7e8c 100644
--- a/externals/zexy/src/quantize~.c
+++ b/externals/zexy/src/quantize~.c
@@ -75,7 +75,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 aa073ba63b7afe9a599421584ef12f6b8684b4cb..43add4e90d85811704456df8fa3604a2f0e29cf9 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 8418e322098b15bb20f61370389cef02b2ffd3b5..49c6229e925c5ac5baa66377cbaee18179a31c8a 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 3a63eb3c46766f2fdd079cfb9e24b423ba7d02c2..0e491ce9d58d0e07417c6dad1e5a46666f2f9238 100644
--- a/externals/zexy/src/sfrecord.c
+++ b/externals/zexy/src/sfrecord.c
@@ -489,13 +489,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,
@@ -503,7 +503,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,
@@ -515,7 +515,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 4ed554fd7dc85a23ceec9b21aa48f62cfba9d083..6e6e03d8aa5a5ed3f3c179a524dc3088e4149697 100644
--- a/externals/zexy/src/sgn~.c
+++ b/externals/zexy/src/sgn~.c
@@ -171,13 +171,13 @@ static void sgnTilde_dsp(t_sgnTilde *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 d5f8e7773d1114fa33d7d8caaef6715d7007a5a6..8a12b538c5c0b7e367fd788dc024276e02447200 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/step~.c b/externals/zexy/src/step~.c
index 9cc5cab9bacf06e3c68727c8b3615f7616a8ce67..a35ed35be5ba65f922b12735ea4933c3e08338e3 100644
--- a/externals/zexy/src/step~.c
+++ b/externals/zexy/src/step~.c
@@ -96,7 +96,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/swap~.c b/externals/zexy/src/swap~.c
index 7ed978341fe29bfb3fd93fa0eebba3ee096e7a83..9d6486eead09a893d23d7a34bbcee7493f87b3dd 100644
--- a/externals/zexy/src/swap~.c
+++ b/externals/zexy/src/swap~.c
@@ -70,7 +70,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 085178a0eae8488977fcb3930263f8a0fe5c221b..37cb27b4fa533d11cf1ee69c86d170d10f1906a0 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 90c9d3d950f550d997e4cceee5eacf07ed5692a4..b51dcd68e8df80f3986c9c0a5d971b5ac057467e 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 d7bae1ceebbe7966c582e87d3006e10800576f20..2706261912d96a99e5ee5fd65221d27175e75e84 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~.c b/externals/zexy/src/z~.c
index 02cc88db2e84aa04fab2adbc341191c44815c77c..bafca048360221129806d7bc569a2d2601f92594 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*s, int argc, t_atom*argv)