int main()
{
    this_class = class_new("irmeasure~",
                            (method) irmeasure_new,
                            (method)irmeasure_free,
                            sizeof(t_irmeasure),
                            0L,
                            A_GIMME,
                            0);

    class_addmethod(this_class, (method)irmeasure_assist, "assist", A_CANT, 0L);
    class_addmethod(this_class, (method)irmeasure_dsp, "dsp", A_CANT, 0L);
    class_addmethod(this_class, (method)irmeasure_dsp64, "dsp64", A_CANT, 0L);

    class_addmethod(this_class, (method)irmeasure_sweep, "sweep", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_mls, "mls", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "white", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "brown", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "pink", A_GIMME, 0L);

    class_addmethod(this_class, (method)irmeasure_tone, "tone", A_FLOAT, A_DEFLONG, 0L);
    class_addmethod(this_class, (method)irmeasure_stop, "stop", 0L);
    class_addmethod(this_class, (method)irmeasure_clear, "clear", 0L);

    class_addmethod(this_class, (method)irmeasure_active_ins, "activeins", A_LONG, 0L);
    class_addmethod(this_class, (method)irmeasure_active_outs, "activeouts", A_LONG, 0L);

    class_addmethod(this_class, (method)irmeasure_reprocess, "reprocess", 0L);

    class_addmethod(this_class, (method)irmeasure_extract, "extract", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_dump, "dump", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_getir, "getir", A_GIMME, 0L);

    declare_HIRT_common_attributes(this_class);

    CLASS_ATTR_LONG(this_class, "absprogress", 0, t_irmeasure, abs_progress);
    CLASS_ATTR_STYLE_LABEL(this_class,"absprogress",0,"onoff","Absolute Progress");

    CLASS_ATTR_DOUBLE(this_class, "amp", 0, t_irmeasure, amp);
    CLASS_ATTR_LABEL(this_class,"amp", 0, "Signal Amplitude (dB)");

    CLASS_ATTR_LONG(this_class, "invamp", 0, t_irmeasure, inv_amp);
    CLASS_ATTR_STYLE_LABEL(this_class,"invamp",0,"onoff","Invert Amplitude");

    CLASS_ATTR_LONG(this_class, "bandlimit", 0, t_irmeasure, bandlimit);
    CLASS_ATTR_STYLE_LABEL(this_class,"bandlimit",0,"onoff","Bandlimit Sweep Measurements");

    class_dspinit(this_class);

    class_register(CLASS_BOX, this_class);

    buffer_access_init();

    return 0;
}
int main(void)
{
    this_class = class_new ("bufreverse~",
                            (method) bufreverse_new,
                            (method)bufreverse_free,
                            sizeof(t_bufreverse),
                            0L,
                            0);

    class_addmethod(this_class, (method)bufreverse_process, "process", A_SYM, A_SYM, 0L);

    class_addmethod(this_class, (method)bufreverse_assist, "assist", A_CANT, 0L);

    declare_HIRT_common_attributes(this_class);

    buffer_access_init();

    return 0;
}
int main (void)
{
    this_class = class_new ("irreference~",
                            (method) irreference_new,
                            (method)irreference_free,
                            sizeof(t_irreference),
                            0L,
                            A_GIMME,
                            0);

    class_addmethod (this_class, (method)irreference_assist, "assist", A_CANT, 0L);
    class_addmethod (this_class, (method)irreference_dsp, "dsp", A_CANT, 0L);
    class_addmethod (this_class, (method)irreference_dsp64, "dsp64", A_CANT, 0L);

    class_addmethod (this_class, (method)irreference_rec, "rec", A_GIMME, 0L);
    class_addmethod (this_class, (method)irreference_stop, "stop", 0L);
    class_addmethod (this_class, (method)irreference_finish, "finish", 0L);
    class_addmethod (this_class, (method)irreference_clear, "clear", 0L);

    class_addmethod (this_class, (method)irreference_active_ins, "activeins", A_LONG, 0L);

    class_addmethod (this_class, (method)irreference_reprocess, "reprocess", 0L);

    class_addmethod (this_class, (method)irreference_extract, "extract", A_GIMME, 0L);
    class_addmethod (this_class, (method)irreference_dump, "dump", A_GIMME, 0L);
    class_addmethod (this_class, (method)irreference_getir, "getir", A_GIMME, 0L);

    declare_HIRT_common_attributes(this_class);

    CLASS_ATTR_LONG(this_class, "absprogress", 0, t_irreference, abs_progress);
    CLASS_ATTR_STYLE_LABEL(this_class,"absprogress",0,"onoff","Absolute Progress");

    buffer_access_init();

    class_dspinit(this_class);

    class_register(CLASS_BOX, this_class);

    buffer_access_init();

    return 0;
}
int main (void)
{
    this_class = class_new ("irextract~",
							(method) irextract_new, 
							(method)irextract_free, 
							sizeof(t_irextract), 
							0L,
							A_GIMME,
							0);
	
	class_addmethod (this_class, (method)irextract_assist, "assist", A_CANT, 0L);
	
	class_addmethod (this_class, (method)irextract_sweep, "sweep", A_GIMME, 0L);
	class_addmethod (this_class, (method)irextract_mls, "mls", A_GIMME, 0L);
	class_addmethod (this_class, (method)irextract_noise, "white", A_GIMME, 0L);
	class_addmethod (this_class, (method)irextract_noise, "brown", A_GIMME, 0L);
	class_addmethod (this_class, (method)irextract_noise, "pink", A_GIMME, 0L);
		
	class_addmethod (this_class, (method)irextract_clear, "clear", 0L);

	class_addmethod (this_class, (method)irextract_getir, "getir", A_GIMME, 0L);
	class_addmethod (this_class, (method)irextract_dump, "dump", A_GIMME, 0L);
	
	declare_HIRT_common_attributes(this_class);
	
	CLASS_ATTR_DOUBLE(this_class, "amp", 0, t_irextract, amp); 
	CLASS_ATTR_LABEL(this_class,"amp", 0, "Signal Amplitude (dB)");

	CLASS_ATTR_LONG(this_class, "invamp", 0, t_irextract, inv_amp); 
	CLASS_ATTR_STYLE_LABEL(this_class,"invamp",0,"onoff","Invert Amplitude");
	
	CLASS_ATTR_LONG(this_class, "bandlimit", 0, t_irextract, bandlimit); 
	CLASS_ATTR_STYLE_LABEL(this_class,"bandlimit",0,"onoff","Bandlimit Sweep Measurements");	
		
	class_register(CLASS_BOX, this_class);
		
	buffer_access_init();
		
	return 0;
}
int main (void)
{
    this_class = class_new ("bufconvolve~",
							(method) bufconvolve_new, 
							(method)bufconvolve_free, 
							sizeof(t_bufconvolve), 
							0L,
							A_GIMME,
							0);
	
	class_addmethod (this_class, (method)bufconvolve_process, "convolve", A_GIMME, 0L);
	class_addmethod (this_class, (method)bufconvolve_process, "deconvolve", A_GIMME, 0L);
		
	class_addmethod (this_class, (method)bufconvolve_assist, "assist", A_CANT, 0L);
	class_register(CLASS_BOX, this_class);
	
	declare_HIRT_common_attributes(this_class);
	
	buffer_access_init();
	
	return 0;
}
int main (void)
{
    this_class = class_new ("irphase~",
							(method) irphase_new, 
							(method)irphase_free, 
							sizeof(t_irphase), 
							0L,
							A_GIMME,
							0);
	
	class_addmethod (this_class, (method)irphase_userphase, "minphase", A_GIMME, 0L);
	class_addmethod (this_class, (method)irphase_userphase, "maxphase", A_GIMME, 0L);
	class_addmethod (this_class, (method)irphase_userphase, "linphase", A_GIMME, 0L);
	class_addmethod (this_class, (method)irphase_userphase, "mixedphase", A_GIMME, 0L);
	class_addmethod (this_class, (method)irphase_userphase, "allpass", A_GIMME, 0L);

	class_addmethod (this_class, (method)irphase_assist, "assist", A_CANT, 0L);
	class_register(CLASS_BOX, this_class);
	
	declare_HIRT_common_attributes(this_class);
	buffer_access_init();
	
	return 0;
}