Exemplo n.º 1
0
int main() {
    srand(time(NULL));
    udata ud;
    sp_data *sp;
    sp_create(&sp);
    sp_dust_create(&ud.dst);
    sp_dust_init(sp, ud.dst, 0.3, 10);
    sp->len = 44100 * 5;
    ud.dst->bipolar = 1.0;
    sp_process(sp, &ud, write_dust);
    sp_dust_destroy(&ud.dst);
    sp_destroy(&sp);
    return 0;
}
Exemplo n.º 2
0
int chord_cloud_init(sp_data *sp, chord_cloud *cc, char *notes, SPFLOAT amp)
{
    int i;
    sp_osc *tmposc;
    sp_dust *tmpdust;
    sp_tenv *tmpenv;
    sp_tevent *tmpretrig;

    sp_ftbl_create(sp, &cc->sine, 4096);
    sp_gen_sinesum(sp, cc->sine, "1 0.5 0.3 0.25, 0.1625");
    sp_ftbl_create(sp, &cc->notes, 1);
    sp_gen_vals(sp, cc->notes, notes);
    cc->ampmax= amp;

    cc->grains= malloc(cc->notes->size * sizeof(chord_grain));

    for(i = 0; i < cc->notes->size; i++) {
        chord_grain *grain = &cc->grains[i];
        sp_osc_create(&grain->osc);
        sp_tenv_create(&grain->env);
        sp_dust_create(&grain->dust);
        sp_tevent_create(&grain->retrig);

        tmposc = grain->osc;
        tmpenv = grain->env;
        tmpdust = grain->dust;
        tmpretrig = grain->retrig;

        sp_dust_init(sp, tmpdust, 1, 8);
        sp_osc_init(sp, tmposc, cc->sine, 0);
        tmposc->freq = sp_midi2cps(cc->notes->tbl[i]);
        tmposc->amp = 1.0;
        grain->amp = 1.0;
        sp_tenv_init(sp, tmpenv);
        tmpenv->atk = 0.01;
        tmpenv->hold = 0;
        tmpenv->rel =  0.03;

        sp_tevent_init(sp, tmpretrig, cloud_reinit, cloud_compute, grain);
    }

    return SP_OK;
}
Exemplo n.º 3
0
int main() {
    srand(time(NULL));
    UserData ud;
    sp_data *sp;
    sp_create(&sp);
    sp_revsc_create(&ud.rev);
    sp_drip_create(&ud.drip);
    sp_dust_create(&ud.trig);
    
    sp_dust_init(sp, ud.trig, 1, 1);
    sp_drip_init(sp, ud.drip, 0.09);
    ud.drip->amp = 0.3;
    sp_revsc_init(sp, ud.rev);
    ud.rev->feedback = 0.9;
    
    sp->len = 44100 * 30;
    sp_process(sp, &ud, write_osc);
    sp_drip_destroy(&ud.drip);
    sp_dust_destroy(&ud.trig);
    sp_revsc_destroy(&ud.rev);
    sp_destroy(&sp);
    return 0;
}