
typedef struct _monorhythm
{
    t_object x_obj;
    t_clock *x_clock;
	t_float *x_pattern;
	int x_idx;
	int x_size;
	t_float x_time;
	t_float x_beattime;
	int t_running;
	int t_exclusive;
	t_outlet *x_bang;
	t_outlet *x_sync;
	t_outlet *x_accent;
} t_monorhythm;

static void monorhythm_tick(t_monorhythm *x);
static void monorhythm_start(t_monorhythm *x);
static void monorhythm_stop(t_monorhythm *x);
static void monorhythm_free(t_monorhythm *x);
static void *monorhythm_new(t_symbol *s, int argc, t_atom *argv);
static void monorhythm_pattern_seq( t_monorhythm *x, t_symbol *s, int ac, t_atom *av );
static void monorhythm_time_float( t_monorhythm *x1, t_float f );
static void monorhythm_calculate_beat_interval( t_monorhythm *x );
static void monorhythm_set_time( t_monorhythm *x, t_float f );
static void monorhythm_restart(t_monorhythm *x);
static void monorhythm_do_beat( t_monorhythm* x );
static void monorhythm_set_exclusive(t_monorhythm *x);
static void monorhythm_set_nonexclusive(t_monorhythm *x);



