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; }
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; }
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; }