It would help if I actually posted the source!
oops!
Dr Edward Kelly Research Assistant in Sonic Arts London College of Communication University of the Arts London
How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com
#include "m_pd.h"
typedef struct _simile { t_object x_obj; t_float x_win; float min; float sign; t_float x_in1; t_float x_in2; t_float x_result; t_outlet *x_outlet; } t_simile;
void simile_float(t_simile *x) {
x->min = ( x->x_in1 > x->x_in2 ) ? x->x_in1 - x->x_in2 : x->x_in2 - x->x_in1;
x->sign = ( x->x_in1 > x->x_in2 ) ? 1 : -1;
x->x_result = (x->min * x->x_win) * x->sign;
outlet_float(x->x_outlet, x->x_result);
}
void simile_fin1(t_simile *x) {
x->min = ( x->x_in1 > x->x_in2 ) ? x->x_in1 - x->x_in2 : x->x_in2 - x->x_in1;
x->sign = ( x->x_in1 > x->x_in2 ) ? 1 : -1;
x->x_result = (x->min * x->x_win) * x->sign;
outlet_float(x->x_outlet, x->x_result);
}
void simile_bang(t_simile *x) {
outlet_float(x->x_outlet, x->x_result);
}
t_class *simile_class;
void *simile_new(t_floatarg x_win) {
t_simile *x = (t_simile *)pd_new(simile_class);
x->x_outlet = outlet_new(&x->x_obj, gensym("float"));
inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("fin1"));
floatinlet_new(&x->x_obj, &x->x_in2);
floatinlet_new(&x->x_obj, &x->x_win);
return (void *)x;
}
void simile_setup(void) {
simile_class = class_new(gensym("simile")),
(t_newmethod)simile_new,
0, sizeof(t_simile),
CLASS_DEFAULT,
A_DEFFLOAT, 0.01);
class_addbang(simile_class, simile_bang);
class_addfloat(simile_class, simile_float);
}