diff --git a/externals/miXed/cyclone/hammer/Append.c b/externals/miXed/cyclone/hammer/Append.c
index 4be48074ef909e27708cb10dd52a62071226980a..e98e614e7c6ca2e7c1803dab37c2275c3c52fbb8 100644
--- a/externals/miXed/cyclone/hammer/Append.c
+++ b/externals/miXed/cyclone/hammer/Append.c
@@ -354,3 +354,8 @@ void Append_setup(void)
 
     fitter_setup(append_class, append_fitter);
 }
+
+void append_setup(void)
+{
+    Append_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Borax.c b/externals/miXed/cyclone/hammer/Borax.c
index 26e0ef825c8564c8c9d236b4d800056a6bffeaa9..a773958bc6c48bd818c8bd2b3a519c56029b314e 100644
--- a/externals/miXed/cyclone/hammer/Borax.c
+++ b/externals/miXed/cyclone/hammer/Borax.c
@@ -166,6 +166,8 @@ void Borax_setup(void)
     Borax_class = class_new(gensym("Borax"),
 			    (t_newmethod)Borax_new, 0,
 			    sizeof(t_Borax), 0, 0);
+    class_addcreator((t_newmethod)Borax_new, gensym("borax"), 0, 0);
+    class_addcreator((t_newmethod)Borax_new, gensym("cyclone/borax"), 0, 0);
     class_addfloat(Borax_class, Borax_float);
     /* CHECKME list unfolding */
     class_addmethod(Borax_class, (t_method)Borax_ft1,
@@ -175,3 +177,8 @@ void Borax_setup(void)
     class_addmethod(Borax_class, (t_method)Borax_delta,
 		    gensym("delta"), 0);
 }
+
+void borax_setup(void)
+{
+    Borax_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Bucket.c b/externals/miXed/cyclone/hammer/Bucket.c
index 036f8363b964e818afb940f39eeb9227954128f6..fcfa2bb8409235f3988ef4596effac3a8fe7e7e6 100644
--- a/externals/miXed/cyclone/hammer/Bucket.c
+++ b/externals/miXed/cyclone/hammer/Bucket.c
@@ -6,6 +6,7 @@
    The most important changes are listed in "pd-lib-notes.txt" file.  */
 
 #include "m_pd.h"
+#include "shared.h"
 
 typedef struct _Bucket
 {
@@ -15,6 +16,8 @@ typedef struct _Bucket
     t_outlet  **x_outs;
     short int   x_frozen;  /* 0 for thawed, 1 for frozen */
     short int   x_dir;     /* 0 for L2R, 1 for R2L */
+    short int   x_max5mode;  /* 0 for classic Max 4.6 mode, 
+                              1 for Max 5 mode (with 2nd !0 argument) */
 } t_Bucket;
 
 static t_class *Bucket_class;
@@ -44,6 +47,8 @@ static void Bucket_float(t_Bucket *x, t_float val)
 	    x->x_bucks[i] = x->x_bucks[i + 1];
 	x->x_bucks[x->x_numbucks - 1] = val;
     }
+    if (x->x_max5mode && !x->x_frozen)
+	Bucket_bang(x);
 }
 
 static void Bucket_freeze(t_Bucket *x)
@@ -90,10 +95,10 @@ static void Bucket_free(t_Bucket *x)
 	freebytes(x->x_outs, x->x_numbucks * sizeof(*x->x_outs));
 }
 
-static void *Bucket_new(t_floatarg val)
+static void *Bucket_new(t_floatarg val, t_floatarg max5mode)
 {
     t_Bucket *x;
-    int i, nbucks = (int)val;
+    int nbucks = (int)val;
     t_float *bucks;
     t_outlet **outs;
     if (nbucks < 1)
@@ -111,6 +116,7 @@ static void *Bucket_new(t_floatarg val)
     x->x_outs = outs;
     x->x_frozen = 0;
     x->x_dir = 0;
+    x->x_max5mode = ((int)max5mode != 0);
     while (nbucks--) *outs++ = outlet_new((t_object *)x, &s_float);
     return (x);
 }
@@ -120,7 +126,9 @@ void Bucket_setup(void)
     Bucket_class = class_new(gensym("Bucket"),
 			     (t_newmethod)Bucket_new,
 			     (t_method)Bucket_free,
-			     sizeof(t_Bucket), 0, A_DEFFLOAT, 0);
+			     sizeof(t_Bucket), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Bucket_new, gensym("bucket"), A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Bucket_new, gensym("cyclone/bucket"), A_DEFFLOAT, 0);
     class_addbang(Bucket_class, Bucket_bang);
     class_addfloat(Bucket_class, Bucket_float);
     class_addmethod(Bucket_class, (t_method)Bucket_freeze, gensym("freeze"), 0);
@@ -134,4 +142,11 @@ void Bucket_setup(void)
 		    gensym("set"), A_FLOAT, 0);
     class_addmethod(Bucket_class, (t_method)Bucket_ltor, gensym("l2r"), 0);
     class_addmethod(Bucket_class, (t_method)Bucket_rtol, gensym("r2l"), 0);
+//    logpost(NULL, 4, "this is cyclone/Bucket %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);    
+}
+
+void bucket_setup(void)
+{
+    Bucket_setup();
 }
diff --git a/externals/miXed/cyclone/hammer/Clip.c b/externals/miXed/cyclone/hammer/Clip.c
index a06d3a8cdfb97a78efe5fa12c6ad0addc25aaac7..d0c54ebf57f5731f0bdd1c429a57bc5d1b1c87fa 100644
--- a/externals/miXed/cyclone/hammer/Clip.c
+++ b/externals/miXed/cyclone/hammer/Clip.c
@@ -142,8 +142,15 @@ void Clip_setup(void)
 			   (t_method)clip_free,
 			   sizeof(t_clip), 0,
 			   A_GIMME, 0);
+    class_addcreator((t_newmethod)clip_new, gensym("clip"), A_GIMME, 0);
+    class_addcreator((t_newmethod)clip_new, gensym("cyclone/clip"), A_GIMME, 0);
     class_addfloat(clip_class, clip_float);
     class_addlist(clip_class, clip_list);
     class_addmethod(clip_class, (t_method)clip_set,
 		    gensym("set"), A_GIMME, 0);
 }
+
+void clip_setup(void)
+{
+    Clip_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Decode.c b/externals/miXed/cyclone/hammer/Decode.c
index 0d6223798de97aa7d9cb7ba9086008697ec12845..b01a82fdbdc0ac43fbae1af25826241e124ca646 100644
--- a/externals/miXed/cyclone/hammer/Decode.c
+++ b/externals/miXed/cyclone/hammer/Decode.c
@@ -103,6 +103,8 @@ void Decode_setup(void)
 			     (t_newmethod)Decode_new,
 			     (t_method)Decode_free,
 			     sizeof(t_Decode), 0, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Decode_new, gensym("decode"), A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Decode_new, gensym("cyclone/decode"), A_DEFFLOAT, 0);
     class_addfloat(Decode_class, Decode_float);
     class_addmethod(Decode_class, (t_method)Decode_allon,
 		    gensym("ft1"), A_FLOAT, 0);
@@ -110,3 +112,8 @@ void Decode_setup(void)
 		    gensym("ft2"), A_FLOAT, 0); 
     fitter_setup(Decode_class, 0);
 }
+
+void decode_setup(void)
+{
+    Decode_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Histo.c b/externals/miXed/cyclone/hammer/Histo.c
index efb0deb955fb5e0c9411b7a905b39ac1bf982d19..c6f61eb47b988117158bd522d0b93435858f85ad 100644
--- a/externals/miXed/cyclone/hammer/Histo.c
+++ b/externals/miXed/cyclone/hammer/Histo.c
@@ -94,6 +94,8 @@ void Histo_setup(void)
 			    (t_newmethod)Histo_new,
 			    (t_method)Histo_free,
 			    sizeof(t_Histo), 0, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Histo_new, gensym("histo"), A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Histo_new, gensym("cyclone/histo"), A_DEFFLOAT, 0);
     class_addbang(Histo_class, Histo_bang);
     class_addfloat(Histo_class, Histo_float);
     class_addmethod(Histo_class, (t_method)Histo_ft1,
@@ -101,3 +103,8 @@ void Histo_setup(void)
     class_addmethod(Histo_class, (t_method)Histo_clear,
 		    gensym("clear"), 0);
 }
+
+void histo_setup(void)
+{
+    Histo_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/MouseState.c b/externals/miXed/cyclone/hammer/MouseState.c
index 3b831bf8ccab969e89cd8b36f1c0f8777fe8b938..085fdae435bd54d00a2f109320b07ebc50589b69 100644
--- a/externals/miXed/cyclone/hammer/MouseState.c
+++ b/externals/miXed/cyclone/hammer/MouseState.c
@@ -132,6 +132,8 @@ void MouseState_setup(void)
 				 (t_newmethod)MouseState_new,
 				 (t_method)MouseState_free,
 				 sizeof(t_MouseState), 0, 0);
+    class_addcreator((t_newmethod)MouseState_new, gensym("mousestate"), 0, 0);
+    class_addcreator((t_newmethod)MouseState_new, gensym("cyclone/mousestate"), 0, 0);
     class_addanything(MouseState_class, MouseState_anything);
     class_addmethod(MouseState_class, (t_method)MouseState_doup,
 		    gensym("_up"), A_FLOAT, 0);
@@ -151,3 +153,8 @@ void MouseState_setup(void)
     class_addmethod(MouseState_class, (t_method)MouseState_reset,
 		    gensym("reset"), 0);
 }
+
+void mousestate_setup(void)
+{
+    MouseState_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Peak.c b/externals/miXed/cyclone/hammer/Peak.c
index 6f7e30c870592c110dc6264f054577917b62b88b..a17da399730a3db6fd064e4f2a14bd69f3a79c83 100644
--- a/externals/miXed/cyclone/hammer/Peak.c
+++ b/externals/miXed/cyclone/hammer/Peak.c
@@ -56,8 +56,15 @@ void Peak_setup(void)
     Peak_class = class_new(gensym("Peak"),
 			   (t_newmethod)Peak_new, 0,
 			   sizeof(t_Peak), 0, 0);
+    class_addcreator((t_newmethod)Peak_new, gensym("peak"), 0, 0);
+    class_addcreator((t_newmethod)Peak_new, gensym("cyclone/peak"), 0, 0);
     class_addbang(Peak_class, Peak_bang);
     class_addfloat(Peak_class, Peak_float);
     class_addmethod(Peak_class, (t_method)Peak_ft1,
 		    gensym("ft1"), A_FLOAT, 0);
 }
+
+void peak_setup(void)
+{
+    Peak_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/TogEdge.c b/externals/miXed/cyclone/hammer/TogEdge.c
index 79c26ec615e3d90629e8867be1cad3da62a0a0f6..f3ab00c1b1243f1e652f977a81a1e8b275420611 100644
--- a/externals/miXed/cyclone/hammer/TogEdge.c
+++ b/externals/miXed/cyclone/hammer/TogEdge.c
@@ -66,6 +66,13 @@ void TogEdge_setup(void)
     TogEdge_class = class_new(gensym("TogEdge"),
 			      (t_newmethod)TogEdge_new, 0,
 			      sizeof(t_TogEdge), 0, 0);
+    class_addcreator((t_newmethod)TogEdge_new, gensym("togedge"), 0, 0);
+    class_addcreator((t_newmethod)TogEdge_new, gensym("cyclone/togedge"), 0, 0);
     class_addbang(TogEdge_class, TogEdge_bang);
     class_addfloat(TogEdge_class, TogEdge_float);
 }
+
+void togedge_setup(void)
+{
+    TogEdge_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Trough.c b/externals/miXed/cyclone/hammer/Trough.c
index 27b19ba2dc24f5fbb5f28a34554b2a1f7ee11375..75c4ebb2801e0147b6efb066971d007e910f46fb 100644
--- a/externals/miXed/cyclone/hammer/Trough.c
+++ b/externals/miXed/cyclone/hammer/Trough.c
@@ -56,8 +56,15 @@ void Trough_setup(void)
     Trough_class = class_new(gensym("Trough"),
 			     (t_newmethod)Trough_new, 0,
 			     sizeof(t_Trough), 0, 0);
+    class_addcreator((t_newmethod)Trough_new, gensym("trough"), 0, 0);
+    class_addcreator((t_newmethod)Trough_new, gensym("cyclone/trough"), 0, 0);
     class_addbang(Trough_class, Trough_bang);
     class_addfloat(Trough_class, Trough_float);
     class_addmethod(Trough_class, (t_method)Trough_ft1,
 		    gensym("ft1"), A_FLOAT, 0);
 }
+
+void trough_setup(void)
+{
+    Trough_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/Uzi.c b/externals/miXed/cyclone/hammer/Uzi.c
index c773c6b7e71c13fdb1d1fe05c6afff7664682bdf..10b5b13f9ef4b0cbe733add40f51c4f8905448d7 100644
--- a/externals/miXed/cyclone/hammer/Uzi.c
+++ b/externals/miXed/cyclone/hammer/Uzi.c
@@ -99,6 +99,8 @@ void Uzi_setup(void)
     Uzi_class = class_new(gensym("Uzi"),
 			  (t_newmethod)Uzi_new, 0,
 			  sizeof(t_Uzi), 0, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Uzi_new, gensym("uzi"), A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)Uzi_new, gensym("cyclone/uzi"), A_DEFFLOAT, 0);
     class_addbang(Uzi_class, Uzi_bang);
     class_addfloat(Uzi_class, Uzi_float);
     class_addmethod(Uzi_class, (t_method)Uzi_pause, gensym("pause"), 0);
@@ -106,3 +108,8 @@ void Uzi_setup(void)
     class_addmethod(Uzi_class, (t_method)Uzi_resume, gensym("resume"), 0);
     class_addmethod(Uzi_class, (t_method)Uzi_resume, gensym("continue"), 0);
 }
+
+void uzi_setup(void)
+{
+  Uzi_setup();
+}
diff --git a/externals/miXed/cyclone/hammer/acos.c b/externals/miXed/cyclone/hammer/acos.c
index 3f3abea60dd0ea898e346c2e44447e566b31bb70..9aa52b321d9b57442d463aec88ed009ad13fabc9 100644
--- a/externals/miXed/cyclone/hammer/acos.c
+++ b/externals/miXed/cyclone/hammer/acos.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define acosf  acos
 #endif
diff --git a/externals/miXed/cyclone/hammer/active.c b/externals/miXed/cyclone/hammer/active.c
index 9d10f80de736445d35de6c56c3376db63c8b7a88..ccaf2d96146068f405408c43c90206a771d54ad7 100644
--- a/externals/miXed/cyclone/hammer/active.c
+++ b/externals/miXed/cyclone/hammer/active.c
@@ -36,7 +36,7 @@ static void *active_new(void)
 {
     t_active *x = (t_active *)pd_new(active_class);
     char buf[32];
-    sprintf(buf, ".x%x.c", (int)canvas_getcurrent());
+    sprintf(buf, ".x%lx.c", (unsigned long)canvas_getcurrent());
     x->x_cvname = gensym(buf);
     x->x_on = 0;
     outlet_new((t_object *)x, &s_float);
diff --git a/externals/miXed/cyclone/hammer/asin.c b/externals/miXed/cyclone/hammer/asin.c
index 0aa8db787157b4c623e8c84f90b5e6c34809d753..89c91a0d7836f867f0073952d6022fab5faad010 100644
--- a/externals/miXed/cyclone/hammer/asin.c
+++ b/externals/miXed/cyclone/hammer/asin.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define asinf  asin
 #endif
diff --git a/externals/miXed/cyclone/hammer/capture.c b/externals/miXed/cyclone/hammer/capture.c
index 7598a59f9713f8fcd9a2b982987a42e00fa15b44..69e44f0792b1f1d8ce6a3f91d82d104f6edac9f0 100644
--- a/externals/miXed/cyclone/hammer/capture.c
+++ b/externals/miXed/cyclone/hammer/capture.c
@@ -137,7 +137,7 @@ static void capture_dowrite(t_capture *x, t_symbol *fn)
     int count = x->x_count;
     char buf[MAXPDSTRING];
     canvas_makefilename(x->x_canvas, fn->s_name, buf, MAXPDSTRING);
-    if (fp = fopen(buf, "w"))  /* LATER ask if overwriting, CHECKED */
+    if (fp = sys_fopen(buf, "w"))  /* LATER ask if overwriting, CHECKED */
     {
 	int col = 0;
 	if (count < x->x_bufsize)
diff --git a/externals/miXed/cyclone/hammer/cartopol.c b/externals/miXed/cyclone/hammer/cartopol.c
index 4200686803e44bd57a51f71af0ff02df60eb09c2..962a05e9f60d96e67d0579cf9b2da1d63f014dbb 100644
--- a/externals/miXed/cyclone/hammer/cartopol.c
+++ b/externals/miXed/cyclone/hammer/cartopol.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define atan2f  atan2
 #define hypotf  hypot
diff --git a/externals/miXed/cyclone/hammer/cosh.c b/externals/miXed/cyclone/hammer/cosh.c
index 77d1567b4cbd60767aba1b19d9ba6402ba496b4a..97a375e7d56d18303c0ee00a291bf9e991141191 100644
--- a/externals/miXed/cyclone/hammer/cosh.c
+++ b/externals/miXed/cyclone/hammer/cosh.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define coshf  cosh
 #endif
diff --git a/externals/miXed/cyclone/hammer/decide.c b/externals/miXed/cyclone/hammer/decide.c
index ef3cb101715a654116b1ab33b68e77f567e446fd..dd5910e8ec8ae59086ca40dc357acd9ca34d5b38 100644
--- a/externals/miXed/cyclone/hammer/decide.c
+++ b/externals/miXed/cyclone/hammer/decide.c
@@ -5,6 +5,7 @@
 #include "m_pd.h"
 #include "common/loud.h"
 #include "shared.h"
+#include <stdlib.h>
 
 typedef struct _decide
 {
@@ -77,6 +78,6 @@ void decide_setup(void)
 		    gensym("ft1"), A_FLOAT, 0);
     /* CHECKED list is auto-unfolded */
     /* CHECKED doesn't understand "seed" */
-    //logpost(NULL, 4, "this is cyclone/decide %s, %dth %s build",
-	//CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
+//    logpost(NULL, 4, "this is cyclone/decide %s, %dth %s build",
+//	CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/hammer/funbuff.c b/externals/miXed/cyclone/hammer/funbuff.c
index 8328ffd7b3b57eabbcf012a5f8b2dded6f70eb7b..18928b35d44658a83bdc22f5746d7abbb5233326 100644
--- a/externals/miXed/cyclone/hammer/funbuff.c
+++ b/externals/miXed/cyclone/hammer/funbuff.c
@@ -2,6 +2,7 @@
  * For information on usage and redistribution, and for a DISCLAIMER OF ALL
  * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
 
+#include <libgen.h>
 #include "m_pd.h"
 #include "common/loud.h"
 #include "common/vefl.h"
@@ -227,10 +228,16 @@ static void funbuff_dowrite(t_funbuff *x, t_symbol *fn)
     t_binbuf *bb = binbuf_new();
     char buf[MAXPDSTRING];
     t_hammernode *np;
-    binbuf_addv(bb, "s", atom_getsymbol(binbuf_getvec(x->x_ob.te_binbuf)));
+    /* specifying the object as cyclone/funbuff breaks the file writing/
+     * reading as the it doesn't start with 'funbuff'. A call to 
+     * libgen/basename fixes this.  fjk, 2015-01-24 */
+    t_symbol *objName = atom_getsymbol(binbuf_getvec(x->x_ob.te_binbuf));
+    objName->s_name = basename(objName->s_name);
+    binbuf_addv(bb, "s", objName);
     for (np = x->x_tree.t_first; np; np = np->n_next)
 	binbuf_addv(bb, "if", np->n_key, HAMMERNODE_GETFLOAT(np));
     canvas_makefilename(x->x_canvas, fn->s_name, buf, MAXPDSTRING);
+
     binbuf_write(bb, buf, "", 0);
     binbuf_free(bb);
 }
@@ -270,7 +277,7 @@ static void funbuff_read(t_funbuff *x, t_symbol *s)
    a bug? but CHECKME other classes (cf seq's filetype dilemma) */
 static void funbuff_write(t_funbuff *x, t_symbol *s)
 {
-    if (s && s != &s_)
+    if (s && s != &s_) 
 	funbuff_dowrite(x, s);
     else  /* CHECKME default name */
 	hammerpanel_save(x->x_filehandle,
@@ -332,7 +339,7 @@ static void funbuff_dump(t_funbuff *x)
 }
 
 /* CHECKME if pointer is updated */
-static void funbuff_dointerp(t_funbuff *x, t_floatarg f, int vsz, t_float *vec)
+static void funbuff_dointerp(t_funbuff *x, t_floatarg f, int vsz, t_word *vec)
 {
     t_hammernode *np1;
     int trunc = (int)f;
@@ -365,7 +372,7 @@ static void funbuff_dointerp(t_funbuff *x, t_floatarg f, int vsz, t_float *vec)
 		    return;
 		}
 		vec += vndx;
-		frac = *vec + (vec[1] - *vec) * vfrac;
+		frac = vec[0].w_float + (vec[1].w_float - vec[0].w_float) * vfrac;
 	    }
 	    value +=
 		(HAMMERNODE_GETFLOAT(np2) - HAMMERNODE_GETFLOAT(np1)) * frac;
@@ -385,7 +392,7 @@ static void funbuff_interp(t_funbuff *x, t_floatarg f)
 static void funbuff_interptab(t_funbuff *x, t_symbol *s, t_floatarg f)
 {
     int vsz;
-    t_float *vec;
+    t_word *vec;
     if (vec = vefl_get(s, &vsz, 0, (t_pd *)x))
     {
 	if (vsz > 2)
@@ -523,4 +530,6 @@ void funbuff_setup(void)
 		    gensym("debug"), A_DEFFLOAT, 0);
 #endif
     hammerfile_setup(funbuff_class, 1);
+//    logpost(NULL, 4, "this is cyclone/funbuff %s, %dth %s build",
+//	CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/hammer/mtr.c b/externals/miXed/cyclone/hammer/mtr.c
index 15dc5f63e021b1e13c080354285d1223d386c620..0d04efa4ccba20d4f43c44c1421e1313b05b173a 100644
--- a/externals/miXed/cyclone/hammer/mtr.c
+++ b/externals/miXed/cyclone/hammer/mtr.c
@@ -488,8 +488,7 @@ static void mtr_doread(t_mtr *x, t_mtrack *target, t_symbol *fname)
     	path[MAXPDSTRING-1] = 0;
     }
     /* CHECKED no global message */
-    sys_bashfilename(path, path);
-    if (fp = fopen(path, "r"))
+    if (fp = sys_fopen(path, "r"))
     {
 	t_mtrack *tp = 0;
 	char linebuf[MTR_FILEBUFSIZE];
@@ -637,8 +636,7 @@ static void mtr_dowrite(t_mtr *x, t_mtrack *source, t_symbol *fname)
     	path[MAXPDSTRING-1] = 0;
     }
     /* CHECKED no global message */
-    sys_bashfilename(path, path);
-    if (fp = fopen(path, "w"))
+    if (fp = sys_fopen(path, "w"))
     {
 	/* CHECKED single-track writing does not seem to work (a bug?) */
 	if (source) failed = mtr_writetrack(x, source, fp);
diff --git a/externals/miXed/cyclone/hammer/poltocar.c b/externals/miXed/cyclone/hammer/poltocar.c
index 486eead0b9bf3e148fa19e4f1d81e39d482470a5..4ff51526fc75a89b7c59559b5ab6e4f55c8205f9 100644
--- a/externals/miXed/cyclone/hammer/poltocar.c
+++ b/externals/miXed/cyclone/hammer/poltocar.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinf  sin
 #define cosf  cos
diff --git a/externals/miXed/cyclone/hammer/pv.c b/externals/miXed/cyclone/hammer/pv.c
index a444b5177ab86d17a446a812116c3f4731b1014a..85f4ddcc63b9dcc4178467912f21e7b57186f933 100644
--- a/externals/miXed/cyclone/hammer/pv.c
+++ b/externals/miXed/cyclone/hammer/pv.c
@@ -358,11 +358,11 @@ static void pv_objstatus(t_pv *x, t_glist *glist)
     for (g = glist->gl_list; g; g = g->g_next)
     {
 	if (g == (t_gobj *)x)
-	    post("%x (this object) owning patcher [%s]",
-		 (int)g, glist->gl_name->s_name);
+	    post("%lx (this object) owning patcher [%s]",
+		 (unsigned long)g, glist->gl_name->s_name);
 	else if (pd_class(&g->g_pd) == pv_class
 		 && ((t_pv *)g)->x_name == x->x_name)
-	    post("%x owning patcher [%s]", (int)g, glist->gl_name->s_name);
+	    post("%lx owning patcher [%s]", (unsigned long)g, glist->gl_name->s_name);
     }
 }
 
diff --git a/externals/miXed/cyclone/hammer/seq.c b/externals/miXed/cyclone/hammer/seq.c
index ce8c0a4bed38fad850e8c160160bc3b06be42e46..fd5688d352854751b84da6d0167d612b5f77f276 100644
--- a/externals/miXed/cyclone/hammer/seq.c
+++ b/externals/miXed/cyclone/hammer/seq.c
@@ -1017,9 +1017,7 @@ static void seq_doread(t_seq *x, t_symbol *fn, int creation)
 	/* loading during object creation -- CHECKED no warning if a file
 	   specified with an arg does not exist, LATER rethink */
 	FILE *fp;
-	char path[MAXPDSTRING];
-	sys_bashfilename(buf, path);
-	if (!(fp = fopen(path, "r")))
+	if (!(fp = sys_fopen(buf, "r")))
 	    return;
 	fclose(fp);
     }
diff --git a/externals/miXed/cyclone/hammer/sinh.c b/externals/miXed/cyclone/hammer/sinh.c
index 93fb6faae2b00c4a6b03781e48cc81bd8017ff34..a2f215756a83f7a787bc03e4f183b25ddb852e99 100644
--- a/externals/miXed/cyclone/hammer/sinh.c
+++ b/externals/miXed/cyclone/hammer/sinh.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinhf  sinh
 #endif
diff --git a/externals/miXed/cyclone/hammer/tanh.c b/externals/miXed/cyclone/hammer/tanh.c
index e124d4cb3d60d37036a5432c267781999567c12a..4ccf150d6902eaecd04bc404c4c8c5ebb97a3aff 100644
--- a/externals/miXed/cyclone/hammer/tanh.c
+++ b/externals/miXed/cyclone/hammer/tanh.c
@@ -5,7 +5,7 @@
 #include <math.h>
 #include "m_pd.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define tanhf  tanh
 #endif
diff --git a/externals/miXed/cyclone/hammer/testmess.c b/externals/miXed/cyclone/hammer/testmess.c
index 46d62b7b219ccaf0de8d478208b274fb73089e05..cc7aa2bb416add3af76c40ae51fec0bf220f7e9a 100644
--- a/externals/miXed/cyclone/hammer/testmess.c
+++ b/externals/miXed/cyclone/hammer/testmess.c
@@ -7,7 +7,7 @@
 #include "m_pd.h"
 #include "unstable/fragile.h"
 
-#ifdef MSW
+#ifdef _WIN32
 #define snprintf  _snprintf
 #endif
 
diff --git a/externals/miXed/cyclone/sickle/Clip.c b/externals/miXed/cyclone/sickle/Clip.c
index d6efd96780810e3d8bbe1a3e43a097fc6c2a8996..d38ff4412e529076781130c51105a90cbaeb7ade 100644
--- a/externals/miXed/cyclone/sickle/Clip.c
+++ b/externals/miXed/cyclone/sickle/Clip.c
@@ -55,5 +55,12 @@ void Clip_tilde_setup(void)
     clip_class = class_new(gensym("Clip~"),
 			   (t_newmethod)clip_new, 0,
 			   sizeof(t_clip), 0, A_GIMME, 0);
+    class_addcreator((t_newmethod)clip_new, gensym("clip~"), A_GIMME, 0);
+    class_addcreator((t_newmethod)clip_new, gensym("cyclone/clip~"), A_GIMME, 0);
     sic_setup(clip_class, clip_dsp, SIC_FLOATTOSIGNAL);
 }
+
+void clip_tilde_setup(void)
+{
+    Clip_tilde_setup();
+}
diff --git a/externals/miXed/cyclone/sickle/Line.c b/externals/miXed/cyclone/sickle/Line.c
index 4a8eccdc6b6e58c69a7c9d5e3376f06aee4caac3..2ef31c053204345b6f17c035d41abb9f9fb9d627 100644
--- a/externals/miXed/cyclone/sickle/Line.c
+++ b/externals/miXed/cyclone/sickle/Line.c
@@ -1,6 +1,7 @@
 /* Copyright (c) 2002-2003 krzYszcz and others.
  * For information on usage and redistribution, and for a DISCLAIMER OF ALL
  * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
+/* Added code for the stop, pause and resume messages, fjkraan, 20141202. */ 
 
 #include "m_pd.h"
 #include "shared.h"
@@ -35,6 +36,7 @@ typedef struct _line
     int         x_retarget;
     int         x_size;   /* as allocated */
     int         x_nsegs;  /* as used */
+    int         x_pause;
     t_lineseg  *x_curseg;
     t_lineseg  *x_segs;
     t_lineseg   x_segini[LINE_INISIZE];
@@ -70,6 +72,12 @@ static t_int *line_perform(t_int *w)
     float curval = x->x_value;
     float inc = x->x_inc;
     float biginc = x->x_biginc;
+    
+    if (x->x_pause)
+    {
+	while (nblock--) *out++ = curval;
+	return (w + 4);
+    }
     if (PD_BIGORSMALL(curval))  /* LATER rethink */
 	curval = x->x_value = 0;
 retarget:
@@ -180,6 +188,7 @@ static void line_float(t_line *x, t_float f)
     	x->x_nleft = 0;
 	x->x_retarget = 0;
     }
+    x->x_pause = 0;
 }
 
 static void line_ft1(t_line *x, t_floatarg f)
@@ -246,9 +255,9 @@ static void line_list(t_line *x, t_symbol *s, int ac, t_atom *av)
     x->x_target = x->x_segs->s_target;
     x->x_curseg = x->x_segs;
     x->x_retarget = 1;
+    x->x_pause = 0;
 }
 
-/* CHECKED no stop, pity... */
 #if 0
 static void line_stop(t_line *x)
 {
@@ -273,6 +282,22 @@ static void line_free(t_line *x)
     if (x->x_clock) clock_free(x->x_clock);
 }
 
+static void line_stop(t_line *x)
+{
+    x->x_nsegs = 0;
+    x->x_nleft = 0;
+}
+
+static void line_pause(t_line *x)
+{
+    x->x_pause = 1;
+}
+
+static void line_resume(t_line *x)
+{
+    x->x_pause = 0;
+}
+
 static void *line_new(t_floatarg f)
 {
     t_line *x = (t_line *)pd_new(line_class);
@@ -282,6 +307,7 @@ static void *line_new(t_floatarg f)
     x->x_retarget = 0;
     x->x_size = LINE_INISIZE;
     x->x_nsegs = 0;
+    x->x_pause = 0;
     x->x_segs = x->x_segini;
     x->x_curseg = 0;
     inlet_new((t_object *)x, (t_pd *)x, &s_float, gensym("ft1"));
@@ -297,9 +323,25 @@ void Line_tilde_setup(void)
 			   (t_newmethod)line_new,
 			   (t_method)line_free,
 			   sizeof(t_line), 0, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)line_new, gensym("line~"), A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)line_new, gensym("cyclone/line~"), A_DEFFLOAT, 0);
     sic_setup(line_class, line_dsp, SIC_NOMAINSIGNALIN);
     class_addfloat(line_class, line_float);
     class_addlist(line_class, line_list);
     class_addmethod(line_class, (t_method)line_ft1,
 		    gensym("ft1"), A_FLOAT, 0);
+    class_addmethod(line_class, (t_method)line_stop,
+		    gensym("stop"), 0);
+    class_addmethod(line_class, (t_method)line_pause,
+		    gensym("pause"), 0);
+    class_addmethod(line_class, (t_method)line_resume,
+		    gensym("resume"), 0);
+//    logpost(NULL, 4, "this is cyclone/Line~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
+
+void line_tilde_setup(void)
+{
+    Line_tilde_setup();
+}
+
diff --git a/externals/miXed/cyclone/sickle/Scope.c b/externals/miXed/cyclone/sickle/Scope.c
index 02d5ca31656f519f8488652330d400e35b543a73..ba86180ea327ff8108871eec84c79a5efc23bd4b 100644
--- a/externals/miXed/cyclone/sickle/Scope.c
+++ b/externals/miXed/cyclone/sickle/Scope.c
@@ -1041,6 +1041,8 @@ void Scope_tilde_setup(void)
 			    (t_newmethod)scope_new,
 			    (t_method)scope_free,
 			    sizeof(t_scope), 0, A_GIMME, 0);
+    class_addcreator((t_newmethod)scope_new, gensym("scope~"), A_GIMME, 0);
+	class_addcreator((t_newmethod)scope_new, gensym("cyclone/scope~"), A_GIMME, 0);
     sic_setup(scope_class, scope_dsp, scope_float);
     class_addmethod(scope_class, (t_method)scope_bufsize,
 		    gensym("bufsize"), A_GIMME, 0);
diff --git a/externals/miXed/cyclone/sickle/Snapshot.c b/externals/miXed/cyclone/sickle/Snapshot.c
index 7c7e974377eef2ce2bf2e8ec5543adfab5bd54b3..13ef0ce8c43c138e6c6b57b6630429b02813f9c6 100644
--- a/externals/miXed/cyclone/sickle/Snapshot.c
+++ b/externals/miXed/cyclone/sickle/Snapshot.c
@@ -148,6 +148,8 @@ void Snapshot_tilde_setup(void)
 			       (t_method)snapshot_free,
 			       sizeof(t_snapshot), 0,
 			       A_DEFFLOAT, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)snapshot_new, gensym("snapshot~"), A_DEFFLOAT, A_DEFFLOAT, 0);
+    class_addcreator((t_newmethod)snapshot_new, gensym("cyclone/snapshot~"), A_DEFFLOAT, A_DEFFLOAT, 0);
     sic_setup(snapshot_class, snapshot_dsp, snapshot_float);
     class_addbang(snapshot_class, snapshot_bang);
     class_addmethod(snapshot_class, (t_method)snapshot_ft1,
@@ -159,3 +161,8 @@ void Snapshot_tilde_setup(void)
     class_addmethod(snapshot_class, (t_method)snapshot_stop,
 		    gensym("stop"), 0);
 }
+
+void snapshot_tilde_setup(void)
+{
+    Snapshot_tilde_setup();
+}
diff --git a/externals/miXed/cyclone/sickle/acos.c b/externals/miXed/cyclone/sickle/acos.c
index 1dd5719a2f6912912f2bfbeacc07cfeb235d42fa..3b706b1bcac54a6dc70624318d6fe5c9cab6da8c 100644
--- a/externals/miXed/cyclone/sickle/acos.c
+++ b/externals/miXed/cyclone/sickle/acos.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define acosf  acos
 #endif
diff --git a/externals/miXed/cyclone/sickle/acosh.c b/externals/miXed/cyclone/sickle/acosh.c
index 392ad97046ffe068ef016c11db84c34d38a04ba9..eabecb51791aeaefcd6df685978d139c2ca5a855 100644
--- a/externals/miXed/cyclone/sickle/acosh.c
+++ b/externals/miXed/cyclone/sickle/acosh.c
@@ -7,7 +7,7 @@
 #include "sickle/sic.h"
 
 /* LATER ask about osx */
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 #define acoshf(x)  (log(x + sqrt(x * x - 1)))
 #endif
 
diff --git a/externals/miXed/cyclone/sickle/asin.c b/externals/miXed/cyclone/sickle/asin.c
index 05e5c283e80c89f70a0041456d4c8f0bc9a356be..282c830e225fec293e3f9ef43626c3bd06815e6b 100644
--- a/externals/miXed/cyclone/sickle/asin.c
+++ b/externals/miXed/cyclone/sickle/asin.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define asinf  asin
 #endif
diff --git a/externals/miXed/cyclone/sickle/asinh.c b/externals/miXed/cyclone/sickle/asinh.c
index 931cb1fe69f334d5e6c7a38393ec87bb0e9bd724..367ce0cc50b41bb10680c55531ab104875c3a3d8 100644
--- a/externals/miXed/cyclone/sickle/asinh.c
+++ b/externals/miXed/cyclone/sickle/asinh.c
@@ -7,7 +7,7 @@
 #include "sickle/sic.h"
 
 /* LATER ask about osx */
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 #define asinhf(x)  (log(x + sqrt(x * x + 1)))
 #endif
 
diff --git a/externals/miXed/cyclone/sickle/atan.c b/externals/miXed/cyclone/sickle/atan.c
index f541fa4476c313453074dacc801c11c1e3b665a4..89d8e8818f0a6841abc0af5d8cccec7338904758 100644
--- a/externals/miXed/cyclone/sickle/atan.c
+++ b/externals/miXed/cyclone/sickle/atan.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define atanf  atan
 #endif
diff --git a/externals/miXed/cyclone/sickle/atan2.c b/externals/miXed/cyclone/sickle/atan2.c
index 171fc1709188d63aa6f711e096d9af8d4df1fb59..327efd171ccc52ac8b742c317afb9ef9c986f41b 100644
--- a/externals/miXed/cyclone/sickle/atan2.c
+++ b/externals/miXed/cyclone/sickle/atan2.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define atan2f  atan2
 #endif
diff --git a/externals/miXed/cyclone/sickle/atanh.c b/externals/miXed/cyclone/sickle/atanh.c
index 464f95548a684665b9984e76c10df793d7fea9d8..4152236b1297f62fdbc8ddc07e5f0d7705a408c5 100644
--- a/externals/miXed/cyclone/sickle/atanh.c
+++ b/externals/miXed/cyclone/sickle/atanh.c
@@ -7,7 +7,7 @@
 #include "sickle/sic.h"
 
 /* LATER ask about osx */
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 #define atanhf(x)  (log((1 + x) / (1 - x)) * 0.5)
 #endif
 
diff --git a/externals/miXed/cyclone/sickle/average.c b/externals/miXed/cyclone/sickle/average.c
index 74adfc89a2938d973319e7cb4902918492080b8a..870ca0dde985cd89d6cab78d08d0784ca0ac16b1 100644
--- a/externals/miXed/cyclone/sickle/average.c
+++ b/externals/miXed/cyclone/sickle/average.c
@@ -10,7 +10,7 @@
 #include "common/loud.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sqrtf  sqrt
 #endif
diff --git a/externals/miXed/cyclone/sickle/buffir.c b/externals/miXed/cyclone/sickle/buffir.c
index 13eee79f90082197b22a89e111014576d4fcfa74..95eb119f93f6695179031e738f6b2a4671ff6d32 100644
--- a/externals/miXed/cyclone/sickle/buffir.c
+++ b/externals/miXed/cyclone/sickle/buffir.c
@@ -4,6 +4,7 @@
 
 #include <string.h>
 #include "m_pd.h"
+#include "shared.h"
 #include "common/loud.h"
 #include "common/fitter.h"
 #include "sickle/sic.h"
@@ -116,7 +117,7 @@ static t_int *buffir_perform(t_int *w)
 	t_float *oin = (t_float *)(w[4]);
 	t_float *sin = (t_float *)(w[5]);
 	int vecsize = sic->s_vecsize;
-	t_float *vec = sic->s_vectors[0];  /* playable implies nonzero (mono) */
+	t_word *vec = sic->s_vectors[0];  /* playable implies nonzero (mono) */
 	int histsize = x->x_histsize;
 	while (nblock--)
 	{
@@ -133,7 +134,8 @@ static t_int *buffir_perform(t_int *w)
 		npoints = vecsize - off;
 	    if (npoints > 0)
 	    {
-		t_float *coefp = vec + off;
+//		t_float *coefp = vec + off;
+		t_float *coefp = &vec[0].w_float + off;
 		t_float *hp = hihead;
 		t_float sum = 0.;
 		*lohead++ = *hihead++ = *xin++;
@@ -212,4 +214,6 @@ void buffir_tilde_setup(void)
     class_addmethod(buffir_class, (t_method)buffir_set,
 		    gensym("set"), A_SYMBOL, A_DEFFLOAT, A_DEFFLOAT, 0);
     fitter_setup(buffir_class, 0);
+//    logpost(NULL, 4, "this is cyclone/buffir~ %s, %dth %s build",
+//	CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/capture.c b/externals/miXed/cyclone/sickle/capture.c
index 8f8f5a0b4284279b2ed194ef2d2818844061ae74..a61369493df06bc1fb806d9eebb77b0ae61384fa 100644
--- a/externals/miXed/cyclone/sickle/capture.c
+++ b/externals/miXed/cyclone/sickle/capture.c
@@ -75,7 +75,7 @@ static void capture_dowrite(t_capture *x, t_symbol *fn)
     char buf[MAXPDSTRING];
     canvas_makefilename(glist_getcanvas(x->x_glist),
 			fn->s_name, buf, MAXPDSTRING);
-    if (fp = fopen(buf, "w"))  /* LATER ask if overwriting, CHECKME */
+    if (fp = sys_fopen(buf, "w"))  /* LATER ask if overwriting, CHECKME */
     {
 	int col = 0;
 	if (x->x_mode == 'f' || count < x->x_bufsize)
diff --git a/externals/miXed/cyclone/sickle/cartopol.c b/externals/miXed/cyclone/sickle/cartopol.c
index e33f782bc9bcbc41b80f9a94fea39fd46521c7ec..8513af673915c71f7ce13441d82e576b160e266d 100644
--- a/externals/miXed/cyclone/sickle/cartopol.c
+++ b/externals/miXed/cyclone/sickle/cartopol.c
@@ -7,7 +7,7 @@
 #include "unstable/fragile.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define atan2f  atan2
 #define hypotf  hypot
diff --git a/externals/miXed/cyclone/sickle/cosh.c b/externals/miXed/cyclone/sickle/cosh.c
index ae5f8cbba1f78d021f53bac6efee5ccc370416db..87f195f93881968e87416f3a1233224e7bcb7ed2 100644
--- a/externals/miXed/cyclone/sickle/cosh.c
+++ b/externals/miXed/cyclone/sickle/cosh.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define coshf  cosh
 #endif
diff --git a/externals/miXed/cyclone/sickle/cosx.c b/externals/miXed/cyclone/sickle/cosx.c
index b36855900a25507a22806d9c1171a6b14c3b4791..d86fdaebdad4633b169bd3a4de66e22bfe4bc781 100644
--- a/externals/miXed/cyclone/sickle/cosx.c
+++ b/externals/miXed/cyclone/sickle/cosx.c
@@ -9,7 +9,7 @@
 /* by definition, this is just an interface to the -lm call
    (do not use costable) */
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define cosf  cos
 #endif
diff --git a/externals/miXed/cyclone/sickle/count.c b/externals/miXed/cyclone/sickle/count.c
index b2ed2cdb90ff3719fef4859d30b6131cb2ed9855..2a36f441132d26b2c7ab5a672ae5c47987bf94ca 100644
--- a/externals/miXed/cyclone/sickle/count.c
+++ b/externals/miXed/cyclone/sickle/count.c
@@ -5,6 +5,8 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
+#define COUNTMAXINT 0x7fffffff 
+
 typedef struct _count
 {
     t_sic  x_sic;
@@ -18,17 +20,25 @@ typedef struct _count
 
 static t_class *count_class;
 
+static void count_bang(t_count *x)
+{
+    x->x_count = x->x_min;
+    x->x_on = 1;
+}
+
 static void count_min(t_count *x, t_floatarg f)
 {
     x->x_min = (int)f;
+    count_bang(x);
 }
 
 static void count_max(t_count *x, t_floatarg f)
 {
     x->x_max = (int)f;
     /* MAYBE use 64 bits */
-    x->x_limit = (x->x_max == 0 ? 0x7fffffff
+    x->x_limit = (x->x_max == 0 ? COUNTMAXINT
 		  : x->x_max - 1);  /* CHECKED */
+    count_bang(x);
 }
 
 static void count_autoreset(t_count *x, t_floatarg f)
@@ -36,12 +46,6 @@ static void count_autoreset(t_count *x, t_floatarg f)
     x->x_autoreset = (f != 0);
 }
 
-static void count_bang(t_count *x)
-{
-    x->x_count = x->x_min;
-    x->x_on = 1;
-}
-
 static void count_float(t_count *x, t_floatarg f)
 {
     x->x_count = x->x_min = (int)f;
@@ -69,10 +73,24 @@ static void count_list(t_count *x, t_symbol *s, int ac, t_atom *av)
     }
 }
 
-static void count_set(t_count *x, t_symbol s, int ac, t_atom *av)
+/* changes minimum (and optional the maximum) without changing current value */
+static void count_set(t_count *x, t_symbol *s, int ac, t_atom *av)
 {
-    if (av[0].a_type == A_FLOAT) count_min(x, av[0].a_w.w_float);
-    if (av[1].a_type == A_FLOAT) count_max(x, av[1].a_w.w_float);
+    if (ac > 0)
+    {
+	if (av[0].a_type == A_FLOAT) {
+	    x->x_min = (int)av[0].a_w.w_float;
+	}
+    }
+    if (ac > 1)
+    {
+	if (av[1].a_type == A_FLOAT) 
+	{
+	    x->x_max = (int)av[1].a_w.w_float;
+	    x->x_limit = (x->x_max == 0 ? COUNTMAXINT
+		: x->x_max - 1);  /* CHECKED */
+	}
+    } 
 }
 
 static void count_stop(t_count *x)
diff --git a/externals/miXed/cyclone/sickle/cycle.c b/externals/miXed/cyclone/sickle/cycle.c
index 8daa43e462f4a84cf0b3d13cbbb83d24a5103b18..8acb364773ab7cd46e09a85af45c7731accfe3da 100644
--- a/externals/miXed/cyclone/sickle/cycle.c
+++ b/externals/miXed/cyclone/sickle/cycle.c
@@ -31,24 +31,37 @@ static void cycle_gettable(t_cycle *x)
     if (x->x_name)
     {
 	int tabsize = 0;
-	t_float *table = vefl_get(x->x_name, &tabsize, 1, (t_pd *)x);
+	t_word *table = vefl_get(x->x_name, &tabsize, 1, (t_pd *)x);
 	/* CHECKED buffer is copied */
 	if (table)
 	{
-	    int indx = x->x_offset + CYCLE_TABSIZE;
-	    t_float *ptr = x->x_usertable + CYCLE_TABSIZE;
-	    if (indx == tabsize)
+	    int tablePtr;
+	    int samplesFromTable = tabsize - x->x_offset;
+	    int samplesToCopy = samplesFromTable < CYCLE_TABSIZE ?
+		samplesFromTable : CYCLE_TABSIZE;
+		
+//	    post("samplesFromTable: %d, samplesToCopy: %d, tabsize: %d", 
+//	        samplesFromTable, samplesToCopy, tabsize);
+	    // copy the internal table from the external one as far as 
+	    // its size permits and fill the rest with zeroes.
+	    for (tablePtr = 0; tablePtr < CYCLE_TABSIZE; tablePtr++)
 	    {
-		*ptr-- = *table;
-		indx--;
-	    }
-	    if (indx < tabsize)
-	    {
-		table += indx;
-		indx -= x->x_offset;
-		while (indx--) *ptr-- = *table--;
-		x->x_table = x->x_usertable;
+		if (samplesToCopy > 0) 
+		{
+		    x->x_usertable[tablePtr] = 
+			table[tablePtr + x->x_offset].w_float;
+		    samplesToCopy--;
+		}
+		else 
+		{
+		    x->x_usertable[tablePtr] = 0;
+		}
 	    }
+	    // the 513th sample
+	    x->x_usertable[tablePtr] = (samplesFromTable > 0) ?
+		table[x->x_offset + CYCLE_TABSIZE].w_float : 0;
+
+	    x->x_table = x->x_usertable;
 	    /* CHECKED else no complaint */
 	}
     }
@@ -84,7 +97,7 @@ static t_int *cycle_perform(t_int *w)
     t_float *addr, f1, f2, frac;
     double dphase = x->x_phase + SHARED_UNITBIT32;
     double conv = x->x_conv;
-    int32 normhipart;
+    int32_t normhipart;
     t_shared_wrappy wrappy;
     
     wrappy.w_d = SHARED_UNITBIT32;
diff --git a/externals/miXed/cyclone/sickle/index.c b/externals/miXed/cyclone/sickle/index.c
index 036e6fbdb747ec7c620731efbebf13cc3fce3430..99ac011f318fb7b0ae4afc3412f89ff9489d6597 100644
--- a/externals/miXed/cyclone/sickle/index.c
+++ b/externals/miXed/cyclone/sickle/index.c
@@ -6,6 +6,7 @@
 
 #include <string.h>
 #include "m_pd.h"
+#include "shared.h"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
 
@@ -36,7 +37,7 @@ static t_int *index_perform(t_int *w)
 	t_index *x = (t_index *)sic;
 	t_float *xin = (t_float *)(w[3]);
 	int index, maxindex = sic->s_vecsize - 1;
-	t_float *vp = sic->s_vectors[x->x_effchannel];
+	t_word *vp = sic->s_vectors[x->x_effchannel];
 	if (vp)  /* handle array swapping on the fly via ft1 */
 	{
 	    while (nblock--)
@@ -46,7 +47,7 @@ static t_int *index_perform(t_int *w)
 		    index = 0;
 		else if (index > maxindex)
 		    index = maxindex;
-		*out++ = vp[index];
+		*out++ = vp[index].w_float;
 	    }
 	}
 	else while (nblock--) *out++ = 0;
@@ -104,4 +105,6 @@ void index_tilde_setup(void)
 		    gensym("set"), A_SYMBOL, 0);
     class_addmethod(index_class, (t_method)index_ft1,
 		    gensym("ft1"), A_FLOAT, 0);
+//    logpost(NULL, 4, "this is cyclone/index~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/linedrive.c b/externals/miXed/cyclone/sickle/linedrive.c
index 99c37201249c73f3f8958f3977d09e8e52adb82b..d9243dbd0eaba39acd24f8e8b4bffd7575642272 100644
--- a/externals/miXed/cyclone/sickle/linedrive.c
+++ b/externals/miXed/cyclone/sickle/linedrive.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "common/fitter.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 #define logf  log
 #define expf  exp
 #endif
diff --git a/externals/miXed/cyclone/sickle/log.c b/externals/miXed/cyclone/sickle/log.c
index 74e3e401245f49eb72772766c182b41b4d15fc74..0a1407075ceb533043dab01271a0abfe8cc3d2f4 100644
--- a/externals/miXed/cyclone/sickle/log.c
+++ b/externals/miXed/cyclone/sickle/log.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define logf  log
 #endif
diff --git a/externals/miXed/cyclone/sickle/lookup.c b/externals/miXed/cyclone/sickle/lookup.c
index 1c6a8afdfd9c5989b2d2647b494b48a56404883c..e6fd1427ed85dd4d091f0b83453a18accb203f85 100644
--- a/externals/miXed/cyclone/sickle/lookup.c
+++ b/externals/miXed/cyclone/sickle/lookup.c
@@ -6,6 +6,7 @@
    more compatible (and less useful). */
 
 #include "m_pd.h"
+#include "shared.h"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
 
@@ -30,22 +31,24 @@ static t_int *lookup_perform(t_int *w)
 	t_float *oin = (t_float *)(w[4]);
 	t_float *sin = (t_float *)(w[5]);
 	int vecsize = sic->s_vecsize;
-	t_float *vec = sic->s_vectors[0];  /* playable implies nonzero (mono) */
+	t_word *vec = sic->s_vectors[0];  /* playable implies nonzero (mono) */
 	while (nblock--)
 	{
 	    float off = *oin++;  /* msp: converted to int (if not a signal) */
 	    int siz = (int)*sin++ - 1;  /* msp: converted to int (signal too) */
-	    float pos = (siz > 0 ? off + siz * (*xin++ + 1.0) * 0.5 : off);
+	    float pos;
+//	    pos = (siz > 0 ? off + siz * (*xin++ + 1.0) * 0.5 : off);  // range: off - (off + siz)
+	    pos = (siz > 0 ? off + (siz - off) * (*xin++ + 1.0) * 0.5 : off);  // range: off - siz
 	    int ndx = (int)pos;
 	    int ndx1 = ndx + 1;
 	    if (ndx1 > 0 && ndx1 < vecsize)
 	    {
-		float val = vec[ndx];
-		*out++ = val + (vec[ndx1] - val) * (pos - ndx);
+		float val = vec[ndx].w_float;
+		*out++ = val + (vec[ndx1].w_float - val) * (pos - ndx);
 	    }
 	    /* CHECKED: */
-	    else if (ndx1 == 0) *out++ = *vec * (pos + 1.0);
-	    else if (ndx1 == vecsize) *out++ = vec[ndx] * (ndx1 - pos);
+	    else if (ndx1 == 0) *out++ = vec[0].w_float * (pos + 1.0);
+	    else if (ndx1 == vecsize) *out++ = vec[ndx].w_float * (ndx1 - pos);
 	    else *out++ = 0;
 	}
     }
@@ -91,4 +94,6 @@ void lookup_tilde_setup(void)
     arsic_setup(lookup_class, lookup_dsp, SIC_FLOATTOSIGNAL);
     class_addmethod(lookup_class, (t_method)lookup_set,
 		    gensym("set"), A_SYMBOL, 0);
+//    logpost(NULL, 4, "this is cyclone/lookup~ %s, %dth %s build",
+//	CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/lores.c b/externals/miXed/cyclone/sickle/lores.c
index 937f3b1852f99512864a249ce4f99b69d98e6513..2fe71ee3f1489e1aafcc614c99439937721769a5 100644
--- a/externals/miXed/cyclone/sickle/lores.c
+++ b/externals/miXed/cyclone/sickle/lores.c
@@ -12,7 +12,7 @@
 #include "shared.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define expf  exp
 #define cosf  cos
diff --git a/externals/miXed/cyclone/sickle/onepole.c b/externals/miXed/cyclone/sickle/onepole.c
index 0772c80115a3e0ac65af26a320dc82be3315b648..dec0ee187d880f3277e6d1bdbb5b6b14cbb80379 100644
--- a/externals/miXed/cyclone/sickle/onepole.c
+++ b/externals/miXed/cyclone/sickle/onepole.c
@@ -12,7 +12,7 @@
 #include "shared.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinf  sin
 #endif
diff --git a/externals/miXed/cyclone/sickle/overdrive.c b/externals/miXed/cyclone/sickle/overdrive.c
index 1625dd48c632d49f80edf70823ecdace776d4d75..7bee8f770e243b3ed031e0c5c1b186df12645931 100644
--- a/externals/miXed/cyclone/sickle/overdrive.c
+++ b/externals/miXed/cyclone/sickle/overdrive.c
@@ -7,7 +7,7 @@
 #include "sickle/sic.h"
 
 /* FIXME this is unnecessary in vc > 6.0 and darwin? */
-#if defined(MSW) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 #define powf  pow
 #endif
 
diff --git a/externals/miXed/cyclone/sickle/peek.c b/externals/miXed/cyclone/sickle/peek.c
index 333f4276810b9fa67feb61084bb286d744956acb..00132ab39b044bd1d23f2a32e059b30bf2cce619 100644
--- a/externals/miXed/cyclone/sickle/peek.c
+++ b/externals/miXed/cyclone/sickle/peek.c
@@ -6,6 +6,7 @@
 
 #include <string.h>
 #include "m_pd.h"
+#include "shared.c"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
 
@@ -50,7 +51,7 @@ static void peek_set(t_peek *x, t_symbol *s)
 static void peek_float(t_peek *x, t_float f)
 {
     t_arsic *sic = (t_arsic *)x;
-    t_float *vp;
+    t_word *vp;
     arsic_validate(sic, 0);  /* LATER rethink (efficiency, and complaining) */
     if (vp = sic->s_vectors[x->x_effchannel])
     {
@@ -61,7 +62,7 @@ static void peek_float(t_peek *x, t_float f)
 	    {
 		double timesince;
 		t_float f = x->x_value;
-		vp[ndx] = (x->x_clipmode ? peek_doclip(f) : f);
+		vp[ndx].w_float = (x->x_clipmode ? peek_doclip(f) : f);
 		x->x_pokemode = 0;
 		timesince = clock_gettimesince(x->x_clocklasttick);
 		if (timesince > 1000) peek_tick(x);
@@ -72,7 +73,7 @@ static void peek_float(t_peek *x, t_float f)
 		}
 	    }
 	    /* CHECKED: output not clipped */
-	    else outlet_float(((t_object *)x)->ob_outlet, vp[ndx]);
+	    else outlet_float(((t_object *)x)->ob_outlet, vp[ndx].w_float);
 	}
     }
 }
@@ -144,4 +145,6 @@ void peek_tilde_setup(void)
 		    gensym("ft2"), A_FLOAT, 0);
     class_addmethod(peek_class, (t_method)peek_clip,
 		    gensym("clip"), A_FLOAT, 0);
+//    logpost(NULL, 4, "this is cyclone/peek~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/play.c b/externals/miXed/cyclone/sickle/play.c
index 9d2c3030c7e15b2c4d88704323d94379803549f6..9593dcf42b9b184337624dce944c8bda77b9269b 100644
--- a/externals/miXed/cyclone/sickle/play.c
+++ b/externals/miXed/cyclone/sickle/play.c
@@ -4,6 +4,7 @@
 
 #include <string.h>
 #include "m_pd.h"
+#include "shared.h"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
 
@@ -29,7 +30,7 @@ static t_int *play_perform(t_int *w)
 	t_play *x = (t_play *)sic;
 	t_float *xin = (t_float *)(w[3]);
 	int vecsize = sic->s_vecsize;
-	t_float **vectable = sic->s_vectors;
+	t_word **vectable = sic->s_vectors;
 	float ksr = sic->s_ksr;
 	int nointerp = 0;
 	int maxindex = (nointerp ? vecsize - 1 : vecsize - 3);
@@ -52,15 +53,15 @@ static t_int *play_perform(t_int *w)
 	    else frac = phase - ndx;
 	    while (ch--)
 	    {
-		t_float *vp = vectable[ch];
+		t_word *vp = vectable[ch];
 		t_float *out = (t_float *)(outp[ch]);
 		if (vp)
 		{
 		    vp += ndx;
-		    a = vp[-1];
-		    b = vp[0];
-		    c = vp[1];
-		    d = vp[2];
+		    a = vp[-1].w_float;
+		    b = vp[0].w_float;
+		    c = vp[1].w_float;
+		    d = vp[2].w_float;
 		    cminusb = c-b;
 		    out[iblock] = b + frac * (
 			cminusb - 0.1666667f * (1. - frac) * (
@@ -119,4 +120,6 @@ void play_tilde_setup(void)
     arsic_setup(play_class, play_dsp, SIC_FLOATTOSIGNAL);
     class_addmethod(play_class, (t_method)play_set,
 		    gensym("set"), A_SYMBOL, 0);
+//    logpost(NULL, 4, "this is cyclone/play~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/poke.c b/externals/miXed/cyclone/sickle/poke.c
index 7e4555849356c8a88c6fa92f7e1715ad359d99db..8516bef5a25d2a6592d75eec2bb842cb5649654b 100644
--- a/externals/miXed/cyclone/sickle/poke.c
+++ b/externals/miXed/cyclone/sickle/poke.c
@@ -5,6 +5,7 @@
 /* LATER: 'click' method */
 
 #include "m_pd.h"
+#include "shared.h"
 #include "unstable/fragile.h"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
@@ -52,7 +53,7 @@ static void poke_bang(t_poke *x)
 static void poke_float(t_poke *x, t_float f)
 {
     t_arsic *sic = (t_arsic *)x;
-    t_float *vp;
+    t_word *vp;
     arsic_validate(sic, 0);  /* LATER rethink (efficiency, and complaining) */
     if (vp = sic->s_vectors[x->x_effchannel])
     {
@@ -60,7 +61,7 @@ static void poke_float(t_poke *x, t_float f)
 	if (ndx >= 0 && ndx < sic->s_vecsize)
 	{
 	    double timesince;
-	    vp[ndx] = f;
+	    vp[ndx].w_float = f;
 	    timesince = clock_gettimesince(x->x_clocklasttick);
 	    if (timesince > 1000) poke_tick(x);
 	    else if (!x->x_clockset)
@@ -87,7 +88,7 @@ static t_int *poke_perform(t_int *w)
     t_float *in1 = (t_float *)(w[3]);
     t_float *in2 = (t_float *)(w[4]);
     t_poke *x = (t_poke *)sic;
-    t_float *vp = sic->s_vectors[x->x_effchannel];
+    t_word *vp = sic->s_vectors[x->x_effchannel];
     if (vp && sic->s_playable)
     {
 	int vecsize = sic->s_vecsize;
@@ -96,7 +97,7 @@ static t_int *poke_perform(t_int *w)
 	    t_float f = *in1++;
 	    int ndx = (int)*in2++;
 	    if (ndx >= 0 && ndx < vecsize)
-		vp[ndx] = f;
+		vp[ndx].w_float = f;
 	}
     }
     return (w + sic->s_nperfargs + 1);
@@ -152,4 +153,6 @@ void poke_tilde_setup(void)
 		    gensym("set"), A_SYMBOL, 0);
     class_addmethod(poke_class, (t_method)poke_ft2,
 		    gensym("ft2"), A_FLOAT, 0);
+//    logpost(NULL, 4, "this is cyclone/poke~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/poltocar.c b/externals/miXed/cyclone/sickle/poltocar.c
index 1c8c2e12df467cb2d7ac5e86db0e07aeda0e46af..5c703b8a10943741092fb7236ed626600e37e02c 100644
--- a/externals/miXed/cyclone/sickle/poltocar.c
+++ b/externals/miXed/cyclone/sickle/poltocar.c
@@ -7,7 +7,7 @@
 #include "unstable/fragile.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinf  sin
 #define cosf  cos
diff --git a/externals/miXed/cyclone/sickle/pow.c b/externals/miXed/cyclone/sickle/pow.c
index 11cd508d58e5a31e6f9f447353ff115766333a5b..2f95e8ffef8eb20282515a06bd8a6f0b69a31ce7 100644
--- a/externals/miXed/cyclone/sickle/pow.c
+++ b/externals/miXed/cyclone/sickle/pow.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define powf  pow
 #endif
diff --git a/externals/miXed/cyclone/sickle/rampsmooth.c b/externals/miXed/cyclone/sickle/rampsmooth.c
index 848e304f782780fc0480499362d428ad9643b3be..00819da67bd5e94b95f74e3a34fd2d7d7238a109 100644
--- a/externals/miXed/cyclone/sickle/rampsmooth.c
+++ b/externals/miXed/cyclone/sickle/rampsmooth.c
@@ -7,7 +7,7 @@
 #include "sickle/sic.h"
 
 /* LATER select the mode fitter-optionally */
-#define RAMPSMOOTH_GEOMETRIC  /* geometric series (same as slide~) CHECKED */
+/* #define RAMPSMOOTH_GEOMETRIC  /* geometric series (same as slide~) CHECKED */
 #ifndef RAMPSMOOTH_GEOMETRIC
 #define RAMPSMOOTH_LINEAR
 #endif
@@ -188,6 +188,8 @@ static void *rampsmooth_new(t_symbol *s, int ac, t_atom *av)
     x->x_target = 0.;
     x->x_incr = 0.;
     x->x_nleft = 0;
+    inlet_new((t_object *)x, (t_pd *)x, &s_float, gensym("rampup"));
+    inlet_new((t_object *)x, (t_pd *)x, &s_float, gensym("rampdown"));
 #endif
     outlet_new((t_object *)x, &s_signal);
     return (x);
diff --git a/externals/miXed/cyclone/sickle/rand.c b/externals/miXed/cyclone/sickle/rand.c
index 4f2ded11054281a79ad6f6e91961d0c66ee13051..93609c54211a5eb145f376c2ffc2e6ef8d0f90cb 100644
--- a/externals/miXed/cyclone/sickle/rand.c
+++ b/externals/miXed/cyclone/sickle/rand.c
@@ -17,7 +17,6 @@ typedef struct _rand
     int      x_state;
     float    x_target;
     float    x_scaling;  /* LATER use phase increment */
-	float	 x_startrate;
 } t_rand;
 
 static t_class *rand_class;
@@ -32,17 +31,17 @@ static t_int *rand_perform(t_int *w)
     double ph = x->x_nextphase;
     double tfph = ph + SHARED_UNITBIT32;
     t_shared_wrappy wrappy;
-    int32 normhipart;
+    int32_t normhipart;
     float rcpsr = x->x_rcpsr;
     float target = x->x_target;
     float scaling = x->x_scaling;
+
     wrappy.w_d = SHARED_UNITBIT32;
     normhipart = wrappy.w_i[SHARED_HIOFFSET];
 
     while (nblock--)
     {
 	float rate = *rin++;
-	if (rate == 0 && x->x_startrate != 0) rate = x->x_startrate;
 	if (ph > lastph)
 	{
 	    int state = x->x_state;
@@ -78,10 +77,9 @@ static void *rand_new(t_floatarg f)
     static int init = 307;
     x->x_state = (init *= 1319);
     x->x_lastphase = 0.;
-    x->x_nextphase = 1.0;  /* start from 0, force retargetting */
-    x->x_target = x->x_scaling = 0.;
-	x->x_startrate = f;
-    sic_newinlet((t_sic *)x, (f > 0. ? -f : 0.));
+    x->x_nextphase = 1.;  /* start from 0, force retargetting */
+    x->x_target = x->x_scaling = 0;
+    x->x_sic.s_f = (f > 0. ? f : 0.);
     outlet_new((t_object *)x, &s_signal);
     return (x);
 }
@@ -93,4 +91,6 @@ void rand_tilde_setup(void)
 			   sizeof(t_rand), 0,
 			   A_DEFFLOAT, 0);
     sic_setup(rand_class, rand_dsp, SIC_FLOATTOSIGNAL);
+//    logpost(NULL, 4, "this is cyclone/rand~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/record.c b/externals/miXed/cyclone/sickle/record.c
index f03e784813ef429406f95b18b92a016044c02d63..20dfee7c6d5a4dd5ece0bd1061e0f109e5880176 100644
--- a/externals/miXed/cyclone/sickle/record.c
+++ b/externals/miXed/cyclone/sickle/record.c
@@ -155,14 +155,20 @@ loopover:
 	ch = nch;
 	while (ch--)
 	{
-	    t_float *vp = sic->s_vectors[ch];
+	    t_word *vp = sic->s_vectors[ch];
 	    if (vp)
 	    {
 		t_float *ip = (t_float *)(w[3 + ch]) + ndone;
 		vp += phase;
 		i = nxfer;
 		/* LATER consider handling under and overflows */
-		while (i--) *vp++ = *ip++;
+//		while (i--) *vp++ = *ip++;
+		int j = 0;
+		while (i--) 
+		{
+			vp[j].w_float = ip[j];
+			j++;
+		}
 	    }
 	}
 	i = nxfer;
@@ -263,4 +269,6 @@ void record_tilde_setup(void)
 		    gensym("set"), A_SYMBOL, 0);
     class_addmethod(record_class, (t_method)record_reset,
 		    gensym("reset"), 0);
+//    logpost(NULL, 4, "this is cyclone/record~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }
diff --git a/externals/miXed/cyclone/sickle/reson.c b/externals/miXed/cyclone/sickle/reson.c
index 40969c71dab779e56338e840ba7aff1d30c75631..a9d9cf44bff235bc8c887627d4781d0657348c04 100644
--- a/externals/miXed/cyclone/sickle/reson.c
+++ b/externals/miXed/cyclone/sickle/reson.c
@@ -13,7 +13,7 @@
 #include "shared.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define expf  exp
 #define cosf  cos
diff --git a/externals/miXed/cyclone/sickle/sinh.c b/externals/miXed/cyclone/sickle/sinh.c
index 523c28aeca189411fd61658d3f9d582650ff05d6..ff33b651afb813211396ab99239f85169a0e9a4c 100644
--- a/externals/miXed/cyclone/sickle/sinh.c
+++ b/externals/miXed/cyclone/sickle/sinh.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinhf  sinh
 #endif
diff --git a/externals/miXed/cyclone/sickle/sinx.c b/externals/miXed/cyclone/sickle/sinx.c
index b303024ad3b0d3e51a093e19c23395902a4b0f4a..29c7c4e515a3352b1d60f34af645cec16bb9400f 100644
--- a/externals/miXed/cyclone/sickle/sinx.c
+++ b/externals/miXed/cyclone/sickle/sinx.c
@@ -9,7 +9,7 @@
 /* by definition, this is just an interface to the -lm call
    (do not use costable) */
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinf  sin
 #endif
diff --git a/externals/miXed/cyclone/sickle/slide.c b/externals/miXed/cyclone/sickle/slide.c
index 9846b94c08b20345b92ca910c106b66fda7ed2b0..f672fe0b8caae773e15c5fdd92841ac9758a8c20 100644
--- a/externals/miXed/cyclone/sickle/slide.c
+++ b/externals/miXed/cyclone/sickle/slide.c
@@ -29,7 +29,7 @@ static t_int *slide_perform(t_int *w)
     while (nblock--)
     {
     	float f = *in1++;
-	if (f > last)
+	if (f >= last)
 	{
 	    float up = *in2++;
 	    if (up > 1.)  /* CHECKED */
diff --git a/externals/miXed/cyclone/sickle/svf.c b/externals/miXed/cyclone/sickle/svf.c
index 74fcf99953b1412181536445d9e01efab6457401..bb8437bbef55ac9cf51cc269cc9d881e879d2f47 100644
--- a/externals/miXed/cyclone/sickle/svf.c
+++ b/externals/miXed/cyclone/sickle/svf.c
@@ -14,7 +14,7 @@
 #include "shared.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define sinf  sin
 #endif
diff --git a/externals/miXed/cyclone/sickle/tanh.c b/externals/miXed/cyclone/sickle/tanh.c
index 7473dcfe6418afb99bd868c45ed51354b0151d58..0278e84dda9571bc501a050d6d823131f70aa998 100644
--- a/externals/miXed/cyclone/sickle/tanh.c
+++ b/externals/miXed/cyclone/sickle/tanh.c
@@ -6,7 +6,7 @@
 #include "m_pd.h"
 #include "sickle/sic.h"
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define tanhf  tanh
 #endif
diff --git a/externals/miXed/cyclone/sickle/tanx.c b/externals/miXed/cyclone/sickle/tanx.c
index d2a11023a3c6c023265122e2b27bbbd70822f581..b55e748dace70f0d5b54d6d77f6af4fd2ffcf842 100644
--- a/externals/miXed/cyclone/sickle/tanx.c
+++ b/externals/miXed/cyclone/sickle/tanx.c
@@ -9,7 +9,7 @@
 /* by definition, this is just an interface to the -lm call
    (do not use costable) */
 
-#if defined(NT) || defined(MACOSX)
+#if defined(_WIN32) || defined(__APPLE__)
 /* cf pd/src/x_arithmetic.c */
 #define tanf  tan
 #endif
diff --git a/externals/miXed/cyclone/sickle/train.c b/externals/miXed/cyclone/sickle/train.c
index b07ba9a59293134ed6fb0c0814916dcff9327f74..6454b0acb2d3609a1de2be05d279203b7626c5d0 100644
--- a/externals/miXed/cyclone/sickle/train.c
+++ b/externals/miXed/cyclone/sickle/train.c
@@ -39,7 +39,7 @@ static t_int *train_perform(t_int *w)
     double ph = x->x_phase;
     double tfph = ph + SHARED_UNITBIT32;
     t_shared_wrappy wrappy;
-    int32 normhipart;
+    int32_t normhipart;
     int on = x->x_on;
     int edge = 0;
 
diff --git a/externals/miXed/cyclone/sickle/wave.c b/externals/miXed/cyclone/sickle/wave.c
index 7804c88969c0c195fbbe7e92547b54261aaffa0a..1269842e3e434905b98ce90c072fdfaec663afab 100644
--- a/externals/miXed/cyclone/sickle/wave.c
+++ b/externals/miXed/cyclone/sickle/wave.c
@@ -4,6 +4,7 @@
 
 #include <string.h>
 #include "m_pd.h"
+#include "shared.h"
 #include "sickle/sic.h"
 #include "sickle/arsic.h"
 
@@ -42,7 +43,7 @@ static t_int *wave_perform(t_int *w)
 	t_float *sin = (t_float *)(w[4]);
 	t_float *ein = (t_float *)(w[5]);
 	int vecsize = sic->s_vecsize;
-	t_float **vectable = sic->s_vectors;
+	t_word **vectable = sic->s_vectors;
 	float ksr = sic->s_ksr;
 	int nointerp = x->x_nointerp;
 	int maxindex = (nointerp ? vecsize - 1 : vecsize - 3);
@@ -68,9 +69,9 @@ static t_int *wave_perform(t_int *w)
 		else if (ndx > maxindex) ndx = maxindex;
 		while (ch--)
 		{
-		    t_float *vp = vectable[ch];
+		    t_word *vp = vectable[ch];
 		    t_float *out = (t_float *)(outp[ch]);
-		    out[iblock] = (vp ? vp[ndx] : 0);
+		    out[iblock] = (vp ? vp[ndx].w_float : 0);
 		}
 	    }
 	    else
@@ -83,15 +84,15 @@ static t_int *wave_perform(t_int *w)
 		else frac = xpos - ndx;
 		while (ch--)
 		{
-		    t_float *vp = vectable[ch];
+		    t_word *vp = vectable[ch];
 		    t_float *out = (t_float *)(outp[ch]);
 		    if (vp)
 		    {
 			vp += ndx;
-			a = vp[-1];
-			b = vp[0];
-			c = vp[1];
-			d = vp[2];
+			a = vp[-1].w_float;
+			b = vp[0].w_float;
+			c = vp[1].w_float;
+			d = vp[2].w_float;
 			cminusb = c-b;
 			out[iblock] = b + frac * (
 			    cminusb - 0.1666667f * (1. - frac) * (
@@ -158,4 +159,6 @@ void wave_tilde_setup(void)
 		    gensym("set"), A_SYMBOL, 0);
     class_addmethod(wave_class, (t_method)wave_interp,
 		    gensym("interp"), A_FLOAT, 0);
+//    logpost(NULL, 4, "this is cyclone/wave~ %s, %dth %s build",
+//	 CYCLONE_VERSION, CYCLONE_BUILD, CYCLONE_RELEASE);
 }