int main() { srand(time(NULL)); UserData ud; uint32_t bufsize; sp_data *sp; sp_create(&sp); sp_auxdata rvaux; sp_dtrig_create(&ud.dt); sp_tenv_create(&ud.tenv); sp_ftbl_create(sp, &ud.ft, 2048); sp_ftbl_create(sp, &ud.delta, 4); sp_ftbl_create(sp, &ud.nn, 1); sp_osc_create(&ud.osc); sp_gen_vals(sp, ud.delta, "0.2 0.2 0.2 0.1"); sp_gen_vals(sp, ud.nn, "60 62 64 67"); sp_tseq_create(&ud.seq); sp_tseq_init(sp, ud.seq, ud.nn); sp_dtrig_init(sp, ud.dt, ud.delta); ud.dt->loop = 1.0; sp_tenv_init(sp, ud.tenv); ud.tenv->atk = 0.01; ud.tenv->hold = 0.01; ud.tenv->rel = 0.05; sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); ud.osc->freq = 1000; ud.osc->amp = 0.5; sp->len = 44100 * 5; sp_process(sp, &ud, write_osc); sp_dtrig_destroy(&ud.dt); sp_tseq_destroy(&ud.seq); sp_tenv_destroy(&ud.tenv); sp_ftbl_destroy(&ud.ft); sp_ftbl_destroy(&ud.nn); sp_ftbl_destroy(&ud.delta); sp_osc_destroy(&ud.osc); sp_destroy(&sp); return 0; }
int main() { srand(time(NULL)); udata ud; sp_data *sp; sp_create(&sp); sp_ftbl_create(sp, &ud.ft, 4096); sp_osc_create(&ud.osc); sp_gen_sinesum(sp, ud.ft, "1 0 0 1"); sp_osc_init(sp, ud.osc, ud.ft); ud.osc->freq = 500; sp->len = 44100 * 5; sp_process(sp, &ud, write_osc); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_destroy(&sp); return 0; }
int main() { srand(time(NULL)); udata ud; ud.counter = 0; sp_data *sp; sp_create(&sp); sp_noise_create(&ud.ns); sp_revsc_create(&ud.rev); sp_noise_init(sp, ud.ns); sp_revsc_init(sp, ud.rev); sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_noise_destroy(&ud.ns); sp_revsc_destroy(&ud.rev); sp_destroy(&sp); return 0; }
struct socket_server * socket_server_create() { int i; int fd[2]; poll_fd efd = sp_create(); if (sp_invalid(efd)) { fprintf(stderr, "socket-server: create event pool failed.\n"); return NULL; } if (pipe(fd)) { sp_release(efd); fprintf(stderr, "socket-server: create socket pair failed.\n"); return NULL; } if (sp_add(efd, fd[0], NULL)) { // add recvctrl_fd to event poll fprintf(stderr, "socket-server: can't add server fd to event pool.\n"); close(fd[0]); close(fd[1]); sp_release(efd); return NULL; } struct socket_server *ss = MALLOC(sizeof(*ss)); ss->event_fd = efd; ss->recvctrl_fd = fd[0]; ss->sendctrl_fd = fd[1]; ss->checkctrl = 1; for (i=0;i<MAX_SOCKET;i++) { struct socket *s = &ss->slot[i]; s->type = SOCKET_TYPE_INVALID; clear_wb_list(&s->high); clear_wb_list(&s->low); } ss->alloc_id = 0; ss->event_n = 0; ss->event_index = 0; FD_ZERO(&ss->rfds); assert(ss->recvctrl_fd < FD_SETSIZE); return ss; }
void init(int channelCount, double inSampleRate) { channels = channelCount; sampleRate = float(inSampleRate); sp_create(&sp); sp->sr = sampleRate; sp->nchan = channels; sp_blsquare_create(&blsquare); sp_blsquare_init(sp, blsquare); *blsquare->freq = 440; *blsquare->amp = 1.0; *blsquare->width = 0.5; frequencyRamper.init(); amplitudeRamper.init(); pulseWidthRamper.init(); detuningOffsetRamper.init(); detuningMultiplierRamper.init(); }
int main() { srand(time(NULL)); udata ud; ud.counter = 0; sp_data *sp; sp_create(&sp); sp_ftbl_create(sp, &ud.ft, 1024); sp_posc3_create(&ud.posc3); sp_gen_sine(sp, ud.ft); sp_posc3_init(sp, ud.posc3, ud.ft); ud.posc3->freq = 500; sp->len = 44100 * 5; sp_process(sp, &ud, write_posc3); sp_ftbl_destroy(&ud.ft); sp_posc3_destroy(&ud.posc3); sp_destroy(&sp); return 0; }
int main() { UserData ud; sp_data *sp; sp_create(&sp); sp_phaser_create(&ud.phaser); sp_diskin_create(&ud.disk); sp_diskin_init(sp, ud.disk, "oneart.wav"); sp_phaser_init(sp, ud.phaser); sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_phaser_destroy(&ud.phaser); sp_diskin_destroy(&ud.disk); sp_destroy(&sp); return 0; }
struct socket_server * socket_server_create() { int i; int fd[2]; poll_fd efd = sp_create(); if (sp_invalid(efd)) { fprintf(stderr, "socket-server: create event pool failed.\n"); return NULL; } if (socketpair(AF_UNIX,SOCK_STREAM,0,fd)) { sp_release(efd); fprintf(stderr, "socket-server: create socket pair failed.\n"); return NULL; } if (sp_add(efd, fd[0], NULL)) { // add server_fd to event poll fprintf(stderr, "socket-server: can't add server fd to event pool.\n"); close(fd[0]); close(fd[1]); sp_release(efd); return NULL; } struct socket_server *ss = MALLOC(sizeof(*ss)); ss->event_fd = efd; ss->server_fd = fd[0]; ss->client_fd = fd[1]; for (i=0;i<MAX_SOCKET;i++) { struct socket *s = &ss->slot[i]; s->type = SOCKET_TYPE_INVALID; s->head = NULL; s->tail = NULL; } ss->alloc_id = 0; ss->event_n = 0; ss->event_index = 0; ss->session_id = 0; return ss; }
/* ** ppro_dirinit -- initialize the ps directory. */ void ppro_dirinit() { /* ** The number of strings in colnames must be equal to NPS_COLUMNS ** which is defined in procdefs.h. However the directory that we ** are appending it to has NROOTCOLUMNS. */ static char *colnames[] = { "owner", "group", "other", 0 }; static long cols[NROOTCOLUMNS] = {0xFF & ~(SP_DELRGT | SP_MODRGT), 0x2, 0x4}; /* ** Create an internal soap directory and append it to the root. */ if (sp_create(&_sp_rootdir, colnames, &psdir) != STD_OK) panic("ppro_dirinit: can't create directory"); if (sp_append(&_sp_rootdir, PROCESS_LIST_NAME, &psdir, NROOTCOLUMNS, cols) != STD_OK) panic("ppro_dirinit: can't append directory"); }
int main() { UserData ud; sp_data *sp; sp_create(&sp); sp_autowah_create(&ud.autowah); sp_diskin_create(&ud.disk); sp_diskin_init(sp, ud.disk, "riff.wav"); sp_autowah_init(sp, ud.autowah); *ud.autowah->wah = 1.0; sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_autowah_destroy(&ud.autowah); sp_diskin_destroy(&ud.disk); sp_destroy(&sp); return 0; }
int main(){ sp_data *sp; UserData ud; sp_create(&sp); int tempo = 120; sp_rpt_create(&ud.rpt); sp_maygate_create(&ud.mg); sp_osc_create(&ud.osc); sp_ftbl_create(sp, &ud.ft, 4096); sp_metro_create(&ud.mt); sp_tenv_create(&ud.te); sp_maygate_init(sp, ud.mg); ud.mg->prob = 0.5; sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); sp_metro_init(sp, ud.mt); ud.mt->freq = tempo / 60.0; sp_rpt_init(sp, ud.rpt, 1.0); ud.rpt->bpm = tempo; ud.rpt->div = 8; ud.rpt->rep = 4; sp_tenv_init(sp, ud.te); ud.te->atk = 0.001; ud.te->hold = 0.1; ud.te->rel = 0.1; sp_process(sp, &ud, compute); sp_tenv_destroy(&ud.te); sp_metro_destroy(&ud.mt); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_rpt_destroy(&ud.rpt); sp_destroy(&sp); return 0; }
int main() { srand(1234567); UserData ud; sp_data *sp; sp_create(&sp); sp_thresh_create(&ud.thresh); sp_osc_create(&ud.osc); sp_osc_create(&ud.lfo); sp_tenv_create(&ud.tenv); sp_ftbl_create(sp, &ud.ft, 2048); sp_thresh_init(sp, ud.thresh); ud.thresh->mode = 1; sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); sp_osc_init(sp, ud.lfo, ud.ft, 0); ud.lfo->freq = 3; ud.lfo->amp = 1; sp_tenv_init(sp, ud.tenv); ud.tenv->atk = 0.01; ud.tenv->hold = 0.01; ud.tenv->rel = 0.01; sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_thresh_destroy(&ud.thresh); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_osc_destroy(&ud.lfo); sp_tenv_destroy(&ud.tenv); sp_destroy(&sp); return 0; }
int main() { srand(1234567); UserData ud; sp_data *sp; sp_create(&sp); sp_diskin_create(&ud.diskin); sp_conv_create(&ud.conv); sp_ftbl_loadfile(sp, &ud.ft, "imp.wav"); sp_diskin_init(sp, ud.diskin, "oneart.wav"); sp_conv_init(sp, ud.conv, ud.ft, 8192); sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_conv_destroy(&ud.conv); sp_ftbl_destroy(&ud.ft); sp_diskin_destroy(&ud.diskin); sp_destroy(&sp); return 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; }
int main() { srand(1234567); UserData ud; sp_data *sp; sp_create(&sp); sp_delay_create(&ud.delay); sp_osc_create(&ud.osc); sp_ftbl_create(sp, &ud.ft, 2048); sp_metro_create(&ud.met); sp_tenv_create(&ud.tenv); sp_delay_init(sp, ud.delay, 0.75 * 0.5); ud.delay->feedback = 0.5; sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); ud.osc->amp = 0.5; sp_metro_init(sp, ud.met); ud.met->freq = 1; sp_tenv_init(sp, ud.tenv); ud.tenv->atk = 0.005; ud.tenv->hold = 0.1; ud.tenv->rel = 0.1; sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_delay_destroy(&ud.delay); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_metro_destroy(&ud.met); sp_tenv_destroy(&ud.tenv); sp_destroy(&sp); return 0; }
int main() { srand(1234567); UserData ud; sp_data *sp; sp_create(&sp); sp_dmetro_create(&ud.dmetro); sp_osc_create(&ud.osc); sp_osc_create(&ud.lfo); sp_ftbl_create(sp, &ud.ft, 2048); sp_tenv_create(&ud.tenv); sp_dmetro_init(sp, ud.dmetro); ud.dmetro->time = 0.05; sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); sp_osc_init(sp, ud.lfo, ud.ft, 0); ud.lfo->freq = 0.3; ud.lfo->amp = 0.5; sp_tenv_init(sp, ud.tenv); ud.tenv->atk = 0.001; ud.tenv->hold = 0.03; ud.tenv->rel = 0.001; sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_dmetro_destroy(&ud.dmetro); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_osc_destroy(&ud.lfo); sp_tenv_destroy(&ud.tenv); sp_destroy(&sp); return 0; }
int main() { srand(1234567); UserData ud; sp_data *sp; sp_create(&sp); sp_foo_create(&ud.foo); sp_osc_create(&ud.osc); sp_ftbl_create(sp, &ud.ft, 2048); sp_foo_init(sp, ud.foo); sp_gen_sine(sp, ud.ft); sp_osc_init(sp, ud.osc, ud.ft, 0); sp->len = 44100 * 5; sp_process(sp, &ud, process); sp_foo_destroy(&ud.foo); sp_ftbl_destroy(&ud.ft); sp_osc_destroy(&ud.osc); sp_destroy(&sp); return 0; }
int main() { srand(time(NULL)); int i; UserData ud; sp_data *sp; sp_create(&sp); sp_ftbl_create(sp, &ud.ft, 4096); for(i = 0; i < 3; i++) sp_osc_create(&ud.osc[i]); sp_lpf18_create(&ud.lpf); sp_osc_create(&ud.lfo); sp_ftbl_create(sp, &ud.sine_ft, 4096); sp_gen_sine(sp, ud.sine_ft); sp_gen_line(sp, ud.ft, "0 1 4096 -1"); sp_osc_init(sp, ud.osc[0], ud.ft); ud.osc[0]->freq = sp_midi2cps(40 - 0.05); sp_osc_init(sp, ud.osc[1], ud.ft); ud.osc[1]->freq = sp_midi2cps(40 - 12); sp_osc_init(sp, ud.osc[2], ud.ft); ud.osc[2]->freq = sp_midi2cps(40 + 0.05); sp_lpf18_init(sp, ud.lpf); sp_osc_init(sp, ud.lfo, ud.sine_ft); ud.lfo->freq = 0.4; sp->len = 44100 * 5; sp_process(sp, &ud, write_osc); sp_ftbl_destroy(&ud.ft); for(i = 0; i < 3; i++) sp_osc_destroy(&ud.osc[i]); sp_lpf18_destroy(&ud.lpf); sp_osc_destroy(&ud.lfo); sp_ftbl_destroy(&ud.sine_ft); sp_destroy(&sp); return 0; }
int sporth_gen_eval(sporth_stack *stack, void *ud) { plumber_data *pd = ud; plumber_data my_pd; uint32_t size; sp_data *sp; sp_ftbl *ft; char *ftname; char *str; uint32_t n; switch(pd->mode){ case PLUMBER_CREATE: plumber_add_ugen(pd, SPORTH_GEN_EVAL, NULL); if(sporth_check_args(stack, "sfs") != SPORTH_OK) { plumber_print(pd, "Init: not enough arguments for gen_sine\n"); return PLUMBER_NOTOK; } str = sporth_stack_pop_string(stack); size = (uint32_t) sporth_stack_pop_float(stack); ftname = sporth_stack_pop_string(stack); sp_ftbl_create(pd->sp, &ft, size); plumber_ftmap_add(pd, ftname, ft); #ifdef DEBUG_MODE plumber_print(pd, "gen_sporth: compiling file %s to table of size %d\n", filename, size); #endif plumber_register(&my_pd); plumber_init(&my_pd); sp_create(&sp); sp->sr = pd->sp->sr; sp_srand(sp, pd->seed); my_pd.sp = sp; my_pd.sp->len = size; if(plumber_parse_string(&my_pd, str) == PLUMBER_OK) { plumber_compute(&my_pd, PLUMBER_INIT); for(n = 0; n < ft->size; n++) { plumber_compute(&my_pd, PLUMBER_COMPUTE); ft->tbl[n] = sporth_stack_pop_float(&my_pd.sporth.stack); } } plumber_clean(&my_pd); sp_destroy(&sp); break; case PLUMBER_INIT: sporth_stack_pop_string(stack); sporth_stack_pop_float(stack); sporth_stack_pop_string(stack); break; case PLUMBER_COMPUTE: sporth_stack_pop_float(stack); break; case PLUMBER_DESTROY: break; default: printf("Error: Unknown mode!"); break; } return PLUMBER_OK; }
int main() { srand(time(NULL)); sp_data *sp; user_data ud; sp_create(&sp); SPFLOAT tempo = 144; ud.tempo = tempo; /* Create */ sp_count_create(&ud.cnt); sp_metro_create(&ud.clk); sp_metro_create(&ud.dblclk); samp_create(sp, &ud.snare, 5574, "snare.wav", "2 0.75 0.25", tempo, 1); samp_create(sp, &ud.kick, 7385, "kick.wav", "0.75 1.25 1 1", tempo, 0); samp_create(sp, &ud.hh, 4507, "hh.wav", "0.5 0.25 0.5 0.5 0.25 0.5 0.25 0.5 0.5 0.25", tempo, 0); sp_revsc_create(&ud.rev); sp_maygate_create(&ud.rthrow); sp_maygate_create(&ud.rgate); sp_rpt_create(&ud.rpt); sp_ftbl_create(sp, &ud.reps, 1); sp_tseq_create(&ud.rpick); sp_gen_vals(sp, ud.reps, "4 8 16 6"); sp_tseq_init(sp, ud.rpick, ud.reps); ud.rpick->shuf = 1.0; sp_reverse_create(&ud.rvs); sp_maygate_create(&ud.rvs_switch); /* Init */ sp->len = 44100 * (60.0 / tempo) * 32; sp_count_init(sp, ud.cnt); ud.cnt->count = 4; sp_metro_init(sp, ud.clk); ud.clk->freq = tempo / 60.0; sp_metro_init(sp, ud.dblclk); ud.dblclk->freq = tempo * 2 / 60.0; sp_revsc_init(sp, ud.rev); ud.rev->feedback = 0.9; ud.rev->lpfreq = 10000; sp_maygate_init(sp, ud.rthrow); ud.rthrow->prob = 0.5; sp_rpt_init(sp, ud.rpt, 1.0); //sp_rpt_set(ud.rpt, tempo, 8, 4); ud.rpt->bpm = tempo; ud.rpt->div = 8; ud.rpt->reps = 4; sp_maygate_init(sp, ud.rgate); ud.rgate->prob = 0.18; ud.rgate->mode = 1.0; sp_reverse_init(sp, ud.rvs, 60.0 / tempo); sp_maygate_init(sp, ud.rvs_switch); ud.rvs_switch->prob = 0.1; /* Process */ sp_process(sp, &ud, process); /* Destroy */ samp_destroy(&ud.snare); samp_destroy(&ud.kick); samp_destroy(&ud.hh); sp_revsc_destroy(&ud.rev); sp_maygate_destroy(&ud.rthrow); sp_maygate_destroy(&ud.rgate); sp_maygate_destroy(&ud.rvs_switch); sp_count_destroy(&ud.cnt); sp_metro_destroy(&ud.clk); sp_metro_destroy(&ud.dblclk); sp_rpt_destroy(&ud.rpt); sp_ftbl_destroy(&ud.reps); sp_tseq_destroy(&ud.rpick); sp_reverse_destroy(&ud.rvs); sp_destroy(&sp); return 0; }
int main() { srand(time(NULL)); int i; UserData ud; ud.pdel = 0; sp_data *sp; sp_create(&sp); sp->len = 44100 * 40; char *notes[] = { "62 69 78", "55 62 69 71", "43 50" }; for(i = 0; i < NUMLINE; i++) { sp_randi_create(&ud.line[i].randi); chord_cloud_create(&ud.line[i].cc); chord_cloud_init(sp, ud.line[i].cc, notes[i], 0.1); sp_randi_init(sp, ud.line[i].randi, rand()); ud.line[i].randi->cps = 0.1 + randf(1.5); } sp_revsc_create(&ud.rev); sp_revsc_init(sp, ud.rev); ud.rev->feedback = 0.95; sp_metro_create(&ud.clk); sp_metro_init(sp, ud.clk); ud.clk->freq = 86.0 / 60.0; sp_count_create(&ud.meter); sp_count_init(sp, ud.meter); ud.meter->count = 5; sp_drip_create(&ud.drip); sp_drip_init(sp, ud.drip, 0.01); sp_vdelay_create(&ud.del); /* give some headroom for the delay */ sp_vdelay_init(sp, ud.del, 0.4); ud.del->del = 0.3; sp_tenv_create(&ud.master); sp_tenv_init(sp, ud.master); ud.master->atk = 0; ud.master->hold = 30; ud.master->rel = 10; sp_progress_create(&ud.prog); sp_progress_init(sp, ud.prog); modal_create(&ud.mod); modal_init(sp, ud.mod); sp_ftbl_create(sp, &ud.notes, 1); sp_gen_vals(sp, ud.notes, "62 64 59 57"); sp_tseq_create(&ud.seq); sp_tseq_init(sp, ud.seq, ud.notes); sp_maygate_create(&ud.mg); sp_maygate_init(sp, ud.mg); ud.mg->prob = 0.3; ud.mg->mode = 1; sp_process(sp, &ud, process); for(i = 0; i < NUMLINE; i++) { sp_randi_destroy(&ud.line[i].randi); chord_cloud_destroy(&ud.line[i].cc); } sp_drip_destroy(&ud.drip); sp_revsc_destroy(&ud.rev); sp_metro_destroy(&ud.clk); sp_count_destroy(&ud.meter); sp_vdelay_destroy(&ud.del); sp_tenv_destroy(&ud.master); modal_destroy(&ud.mod); sp_ftbl_destroy(&ud.notes); sp_tseq_destroy(&ud.seq); sp_maygate_destroy(&ud.mg); sp_progress_destroy(&ud.prog); sp_destroy(&sp); return 0; }
AKSoundpipeKernel(int channelCount, double sampleRate) : AKDSPKernel(channelCount, sampleRate) { sp_create(&sp); sp->sr = sampleRate; sp->nchan = channelCount; }