int main() { //Create an instance of Csound Csound* csound = new Csound(); //compile instance of csound. csound->Compile("test2.csd"); //prepare Csound for performance csound->Start(); char tmp_string[4096] = {0}; //perform entire score while(csound->PerformKsmps()==0) { csound->GetStringChannel ("stringChannel", tmp_string); cout << tmp_string << " "; } //free Csound object delete csound; return 0; }
int main(int argc, char *argv[]) { std::string orc = "sr=44100\n\ ksmps=32\n\ nchnls=2\n\ 0dbfs=1\n\ \n\ instr 1\n\ aout vco2 0.5, 440\n\ outs aout, aout\n\ endin"; std::string sco = "i1 0 1"; //create an instance of Csound Csound* csound = new Csound(); //set CsOptions csound->SetOption("-odac"); //compile orc csound->CompileOrc(orc.c_str()); //compile sco csound->ReadScore(sco.c_str()); //prepare Csound for performance csound->Start(); //perform entire score while(csound->PerformKsmps()==0); //free Csound object delete csound; return 0; }
// Processing function void CsoundPlugin::Process(unsigned long cnt){ int pos, i, j, ksmps = csound->GetKsmps(),n = cnt; MYFLT scale = csound->Get0dBFS(); for(i=0;i<ctlports;i++) csound->SetChannel(ctlchn[i].c_str(), *(ctl[i])); if(!result){ for(i=0; i < n; i++, frames++){ if(frames == ksmps){ result = csound->PerformKsmps(); frames = 0; } for(j=0; j < chans; j++) if(!result){ pos = frames*chans; spin[j+pos] = inp[j][i]*scale; outp[j][i] = (LADSPA_Data) (spout[j+pos]/scale); } else outp[j][i] = 0; } } }