diff options
Diffstat (limited to 'cyclone/sickle')
-rw-r--r-- | cyclone/sickle/Line.c | 20 | ||||
-rw-r--r-- | cyclone/sickle/Makefile.sources | 12 | ||||
-rw-r--r-- | cyclone/sickle/allsickles.c | 40 | ||||
-rw-r--r-- | cyclone/sickle/peek.c | 2 |
4 files changed, 54 insertions, 20 deletions
diff --git a/cyclone/sickle/Line.c b/cyclone/sickle/Line.c index f1d2b18..1b9e76c 100644 --- a/cyclone/sickle/Line.c +++ b/cyclone/sickle/Line.c @@ -3,17 +3,13 @@ * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ #include "m_pd.h" +#include "shared.h" #include "common/grow.h" #include "common/loud.h" #include "sickle/sic.h" //#define LINE_DEBUG -#ifndef PD_BADFLOAT -#define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) || \ - (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000)) -#endif - #define LINE_INISIZE 64 /* LATER rethink */ #define LINE_MAXSIZE 64 @@ -196,9 +192,15 @@ static void line_list(t_line *x, t_symbol *s, int ac, t_atom *av) t_atom *ap; t_lineseg *segp; for (natoms = 0, ap = av; natoms < ac; natoms++, ap++) - if (ap->a_type != A_FLOAT) break; /* CHECKME */ + { + if (ap->a_type != A_FLOAT) + { + loud_messarg((t_pd *)x, &s_list); /* CHECKED */ + return; /* CHECKED */ + } + } if (!natoms) - return; /* CHECKME */ + return; /* CHECKED */ odd = natoms % 2; nsegs = natoms / 2; if (odd) nsegs++; @@ -212,6 +214,7 @@ static void line_list(t_line *x, t_symbol *s, int ac, t_atom *av) { natoms = ns * 2; nsegs = ns; + odd = 0; } } x->x_nsegs = nsegs; @@ -289,7 +292,8 @@ static void *line_new(t_floatarg f) void Line_tilde_setup(void) { line_class = class_new(gensym("Line~"), - (t_newmethod)line_new, 0, + (t_newmethod)line_new, + (t_method)line_free, sizeof(t_line), 0, A_DEFFLOAT, 0); sic_setup(line_class, line_dsp, SIC_NOMAINSIGNALIN); class_addfloat(line_class, line_float); diff --git a/cyclone/sickle/Makefile.sources b/cyclone/sickle/Makefile.sources index b4a5d75..d39cc17 100644 --- a/cyclone/sickle/Makefile.sources +++ b/cyclone/sickle/Makefile.sources @@ -28,6 +28,7 @@ comb.c \ cosh.c \ cosx.c \ count.c \ +curve.c \ cycle.c \ delay.c \ delta.c \ @@ -41,30 +42,39 @@ Line.c \ linedrive.c \ log.c \ lookup.c \ +lores.c \ maximum.c \ minimum.c \ minmax.c \ +mstosamps.c \ +onepole.c \ peakamp.c \ peek.c \ phasewrap.c \ +pink.c \ play.c \ +poke.c \ poltocar.c \ pong.c \ pow.c \ rand.c \ rampsmooth.c \ record.c \ +reson.c \ sah.c \ +sampstoms.c \ Scope.c \ sinh.c \ sinx.c \ slide.c \ Snapshot.c \ spike.c \ +svf.c \ tanh.c \ tanx.c \ train.c \ trapezoid.c \ triangle.c \ vectral.c \ -wave.c +wave.c \ +zerox.c diff --git a/cyclone/sickle/allsickles.c b/cyclone/sickle/allsickles.c index f543879..d062c61 100644 --- a/cyclone/sickle/allsickles.c +++ b/cyclone/sickle/allsickles.c @@ -4,18 +4,14 @@ * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ -void Clip_tilde_setup(void); -void Line_tilde_setup(void); -void Scope_tilde_setup(void); -void Snapshot_tilde_setup(void); void abs_tilde_setup(void); void acos_tilde_setup(void); void acosh_tilde_setup(void); void allpass_tilde_setup(void); void asin_tilde_setup(void); void asinh_tilde_setup(void); -void atan_tilde_setup(void); void atan2_tilde_setup(void); +void atan_tilde_setup(void); void atanh_tilde_setup(void); void average_tilde_setup(void); void avg_tilde_setup(void); @@ -28,10 +24,12 @@ void capture_tilde_setup(void); void cartopol_tilde_setup(void); void change_tilde_setup(void); void click_tilde_setup(void); +void Clip_tilde_setup(void); void comb_tilde_setup(void); void cosh_tilde_setup(void); void cosx_tilde_setup(void); void count_tilde_setup(void); +void curve_tilde_setup(void); void cycle_tilde_setup(void); void delay_tilde_setup(void); void delta_tilde_setup(void); @@ -41,27 +39,38 @@ void frameaccum_tilde_setup(void); void framedelta_tilde_setup(void); void index_tilde_setup(void); void kink_tilde_setup(void); +void Line_tilde_setup(void); void linedrive_setup(void); void log_tilde_setup(void); void lookup_tilde_setup(void); +void lores_tilde_setup(void); void maximum_tilde_setup(void); void minimum_tilde_setup(void); void minmax_tilde_setup(void); +void mstosamps_tilde_setup(void); +void onepole_tilde_setup(void); void peakamp_tilde_setup(void); void peek_tilde_setup(void); void phasewrap_tilde_setup(void); +void pink_tilde_setup(void); void play_tilde_setup(void); +void poke_tilde_setup(void); void poltocar_tilde_setup(void); void pong_tilde_setup(void); void pow_tilde_setup(void); void rampsmooth_tilde_setup(void); void rand_tilde_setup(void); void record_tilde_setup(void); +void reson_tilde_setup(void); void sah_tilde_setup(void); +void sampstoms_tilde_setup(void); +void Scope_tilde_setup(void); void sinh_tilde_setup(void); void sinx_tilde_setup(void); void slide_tilde_setup(void); +void Snapshot_tilde_setup(void); void spike_tilde_setup(void); +void svf_tilde_setup(void); void tanh_tilde_setup(void); void tanx_tilde_setup(void); void train_tilde_setup(void); @@ -69,21 +78,18 @@ void trapezoid_tilde_setup(void); void triangle_tilde_setup(void); void vectral_tilde_setup(void); void wave_tilde_setup(void); +void zerox_tilde_setup(void); void allsickles_setup(void) { - Clip_tilde_setup(); - Line_tilde_setup(); - Scope_tilde_setup(); - Snapshot_tilde_setup(); abs_tilde_setup(); acos_tilde_setup(); acosh_tilde_setup(); allpass_tilde_setup(); asin_tilde_setup(); asinh_tilde_setup(); - atan_tilde_setup(); atan2_tilde_setup(); + atan_tilde_setup(); atanh_tilde_setup(); average_tilde_setup(); avg_tilde_setup(); @@ -96,10 +102,12 @@ void allsickles_setup(void) cartopol_tilde_setup(); change_tilde_setup(); click_tilde_setup(); + Clip_tilde_setup(); comb_tilde_setup(); cosh_tilde_setup(); cosx_tilde_setup(); count_tilde_setup(); + curve_tilde_setup(); cycle_tilde_setup(); delay_tilde_setup(); delta_tilde_setup(); @@ -109,27 +117,38 @@ void allsickles_setup(void) framedelta_tilde_setup(); index_tilde_setup(); kink_tilde_setup(); + Line_tilde_setup(); linedrive_setup(); log_tilde_setup(); lookup_tilde_setup(); + lores_tilde_setup(); maximum_tilde_setup(); minimum_tilde_setup(); minmax_tilde_setup(); + mstosamps_tilde_setup(); + onepole_tilde_setup(); peakamp_tilde_setup(); peek_tilde_setup(); phasewrap_tilde_setup(); + pink_tilde_setup(); play_tilde_setup(); + poke_tilde_setup(); poltocar_tilde_setup(); pong_tilde_setup(); pow_tilde_setup(); rampsmooth_tilde_setup(); rand_tilde_setup(); record_tilde_setup(); + reson_tilde_setup(); sah_tilde_setup(); + sampstoms_tilde_setup(); + Scope_tilde_setup(); sinh_tilde_setup(); sinx_tilde_setup(); slide_tilde_setup(); + Snapshot_tilde_setup(); spike_tilde_setup(); + svf_tilde_setup(); tanh_tilde_setup(); tanx_tilde_setup(); train_tilde_setup(); @@ -137,4 +156,5 @@ void allsickles_setup(void) triangle_tilde_setup(); vectral_tilde_setup(); wave_tilde_setup(); + zerox_tilde_setup(); } diff --git a/cyclone/sickle/peek.c b/cyclone/sickle/peek.c index 7397577..534cc49 100644 --- a/cyclone/sickle/peek.c +++ b/cyclone/sickle/peek.c @@ -55,7 +55,7 @@ static void peek_float(t_peek *x, t_float f) if (vp = sic->s_vectors[x->x_effchannel]) { int ndx = (int)f; - if (vp && ndx >= 0 && ndx < sic->s_vecsize) + if (ndx >= 0 && ndx < sic->s_vecsize) { if (x->x_pokemode) { |