int sp_tenv_destroy(sp_tenv **p) { sp_tenv *pp = *p; sp_tevent_destroy(&pp->te); free(*p); return SP_OK; }
int main() { srand(time(NULL)); udata ud; SPFLOAT *freqp = &ud.freq; ud.counter = 0; ud.freq = 400; sp_data *sp; sp_create(&sp); sp_tevent_create(&ud.te); sp_ftbl_create(sp, &ud.ft, 2048); sp_osc_create(&ud.osc); sp_tevent_init(sp, ud.te, freq_reinit, freq_compute, freqp); sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft); ud.osc->freq = *freqp; sp->len = 44100 * 5; sp_process(sp, &ud, write_osc); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_tevent_destroy(&ud.te); sp_destroy(&sp); return 0; }
int main() { srand(time(NULL)); udata ud; SPFLOAT *freqp = &ud.freq; ud.freq = 400; sp_data *sp; sp_create(&sp); sp_tenv_create(&ud.tenv); sp_metro_create(&ud.met); sp_tevent_create(&ud.te); sp_ftbl_create(sp, &ud.ft, 2048); sp_osc_create(&ud.osc); sp_tenv_init(sp, ud.tenv); ud.tenv->atk = 0.03; ud.tenv->hold = 0.01; ud.tenv->rel = 0.1; sp_metro_init(sp, ud.met); ud.met->freq = 3; sp_tevent_init(sp, ud.te, freq_reinit, freq_compute, freqp); sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); ud.osc->freq = *freqp; sp->len = 44100 * 5; sp_process(sp, &ud, write_osc); sp_tenv_destroy(&ud.tenv); sp_metro_destroy(&ud.met); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_tevent_destroy(&ud.te); sp_destroy(&sp); return 0; }
int chord_cloud_destroy(chord_cloud **cc) { int i; chord_cloud *ccp = *cc; sp_dust **tmpdust; sp_ftbl_destroy(&ccp->sine); for(i = 0; i < ccp->notes->size; i++ ) { sp_dust_destroy(&ccp->grains[i].dust); sp_osc_destroy(&ccp->grains[i].osc); sp_tenv_destroy(&ccp->grains[i].env); sp_tevent_destroy(&ccp->grains[i].retrig); } free(ccp->grains); sp_ftbl_destroy(&ccp->notes); free(*cc); return SP_OK; }
void samp_destroy(samp_data *sd) { sp_tevent_destroy(&sd->te); sp_ftbl_destroy(&sd->ft); sp_ftbl_destroy(&sd->delta); sp_dtrig_destroy(&sd->dt); }