Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature may not be available in some browsers.
					
				
						
					
					patchstorage.com
				
					
				
						
					
					patchstorage.com
				t_int *lfo_tilde_perform(t_int *w)
{
    t_lfo_tilde *x = (t_lfo_tilde *)(w[1]);
    x->lfo->process();
    return (w + 4);
}
void lfo_tilde_dsp(t_lfo_tilde *x, t_signal **sp)
{
    t_sample *out = sp[0]->s_vec;
    x->samplerate = sp[0]->s_sr;
    x->blockSize = sp[0]->s_n;
    DSP::initializeAudio(x->samplerate, x->blockSize);
    x->lfo->initialize(dsp_math::unique_string_id("lfo"));
    x->lfo->setMode(LFOMode::Buffered);
    x->lfo->connectOutputToBus(DSPBusManager::registerModulationBus(x->lfo->getName() + "_bus", out));
    dsp_add(lfo_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
}
void *lfo_tilde_new(t_floatarg f)
{
    t_lfo_tilde *x = (t_lfo_tilde *)pd_new(lfo_tilde_class);
    DSP::registerLogger(&log);
    x->lfo = new LFO();
    x->lfo->setIdleSignal(f);
    x->lfo->onPhaseWrap = [x]()
    {
        outlet_bang(x->x_out_bang);
    };
    x->x_out_sig = outlet_new(&x->x_obj, &s_signal);
    x->x_out_bang = outlet_new(&x->x_obj, &s_bang);
    return (void *)x;
}
void lfo_tilde_free(t_lfo_tilde *x)
{
    delete x->lfo;
}
extern "C"
{
    void lfo_tilde_setup(void)
    {
        lfo_tilde_class = class_new(gensym("lfo~"),
                                    (t_newmethod)lfo_tilde_new,
                                    (t_method)lfo_tilde_free,
                                    sizeof(t_lfo_tilde),
                                    CLASS_DEFAULT,
                                    A_DEFFLOAT,
                                    0);
                                   
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_dsp, gensym("dsp"), A_CANT, 0);
        CLASS_MAINSIGNALIN(lfo_tilde_class, t_lfo_tilde, inletValue);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setfreq, gensym("freq"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_settype, gensym("type"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setoffset, gensym("offset"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setdepth, gensym("depth"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setshape, gensym("shape"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setpw, gensym("pw"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_setsmooth, gensym("smooth"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_unipolar, gensym("unipolar"), A_DEFFLOAT, A_NULL);
        class_addmethod(lfo_tilde_class, (t_method)lfo_tilde_reset, gensym("reset"), A_NULL);
    }
}
	t_int *adsr_perform(t_int *w)
{
    t_adsr_tilde *x = (t_adsr_tilde *)(w[1]);
    x->adsr->process();
   
    return (w + 4);
}
void adsr_dsp(t_adsr_tilde *x, t_signal **sp)
{
    t_sample *out = sp[0]->s_vec;
    x->samplerate = sp[0]->s_sr;
    x->blockSize = sp[0]->s_n;
   
    DSP::initializeAudio(x->samplerate, x->blockSize);
   
    x->adsr->initialize(dsp_math::unique_string_id("adsr"));
    x->adsr->connectOutputToBus(DSPBusManager::registerModulationBus(x->adsr->getName() + "_bus", out));
    dsp_add(adsr_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
}
// === Object constructor ===
void *adsr_new(t_floatarg f)
{
    t_adsr_tilde *x = (t_adsr_tilde *)pd_new(adsr_tilde_class);
    x->x_out = outlet_new(&x->x_obj, &s_signal);
    DSP::registerLogger(&log);
    x->adsr = new ADSR();
    x->adsr->setStartAtCurrent(f != 0);
    return (void *)x;
}
void adsr_tilde_free(t_adsr_tilde *x)
{
    delete x->adsr;
}
extern "C"
{
    void adsr_tilde_setup(void)
    {
        adsr_tilde_class = class_new(gensym("adsr~"),
                                     (t_newmethod)adsr_new,
                                     (t_method)adsr_tilde_free,
                                     sizeof(t_adsr_tilde),
                                     CLASS_DEFAULT,
                                     A_DEFFLOAT,
                                     0);
        class_addmethod(adsr_tilde_class, (t_method)adsr_dsp, gensym("dsp"), A_CANT, 0);
        CLASS_MAINSIGNALIN(adsr_tilde_class, t_adsr_tilde, inletValue);
        class_addmethod(adsr_tilde_class, (t_method)adsr_trigger_start, gensym("start"), A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_trigger_stop, gensym("stop"), A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_attack, gensym("attack"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_decay, gensym("decay"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_sustain, gensym("sustain"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_release, gensym("release"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_attackshape, gensym("attackshape"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_releaseshape, gensym("releaseshape"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_g, gensym("g"), A_DEFFLOAT, A_NULL);
        class_addmethod(adsr_tilde_class, (t_method)adsr_oneshot, gensym("oneshot"), A_DEFFLOAT, A_NULL);
    }
}
	




					
				
						
					
					patchstorage.com