int main(int arg, char** argv) { random_line *amp, *freq; /* initialize random seed: */ srand (time(NULL)); csoundInitialize(CSOUNDINIT_NO_ATEXIT); CSOUND* csound = csoundCreate(NULL); /* Using SetOption() to configure Csound Note: use only one commandline flag at a time */ csoundSetOption(csound, "-odac"); /* Compile the Csound Orchestra string */ csoundCompileOrc(csound, orc); /* Read in the Score from loop-generated String */ csoundReadScore(csound, "i1 0 60"); /* When compiling from strings, this call is necessary * before doing any performing */ csoundStart(csound); /* Create a random_line for use with Amplitude */ amp = random_line_create(0.4, 0.2); /* Create a random_line for use with Frequency */ freq = random_line_create(400.0, 80.0); /* Initialize channel values before running Csound */ csoundSetControlChannel(csound, "amp", random_line_tick(amp)); csoundSetControlChannel(csound, "freq", random_line_tick(freq)); /* The following is our main performance loop. We will perform one * block of sound at a time and continue to do so while it returns 0, * which signifies to keep processing. */ while (csoundPerformKsmps(csound) == 0) { /* Update Channel Values */ csoundSetControlChannel(csound, "amp", random_line_tick(amp)); csoundSetControlChannel(csound, "freq", random_line_tick(freq)); } csoundStop(csound); return 0; }
int main(int arg, char** argv) { /* initialize random seed: */ srand (time(NULL)); csoundInitialize(CSOUNDINIT_NO_ATEXIT); CSOUND* csound = csoundCreate(NULL); /* Using SetOption() to configure Csound Note: use only one commandline flag at a time */ csoundSetOption(csound, "-odac"); /* Compile the Csound Orchestra string */ csoundCompileOrc(csound, orc); /* Read in the Score from pre-written String */ /*csoundReadScore(csound, (char*)sco);*/ /* Read in the Score from loop-generated String */ /*csoundReadScore(csound, generate_example2());*/ /* Read in the Score from loop-generated String */ csoundReadScore(csound, generate_example3()); /* When compiling from strings, this call is necessary * before doing any performing */ csoundStart(csound); /* The following is our main performance loop. We will perform one * block of sound at a time and continue to do so while it returns 0, * which signifies to keep processing. We will explore this loop * technique in further examples. */ while (csoundPerformKsmps(csound) == 0) { /* pass for now */ } csoundStop(csound); return 0; }
int main(int arg, char** argv) { void* thread; csoundInitialize(CSOUNDINIT_NO_ATEXIT); CSOUND* csound = csoundCreate(NULL); /* Using SetOption() to configure Csound Note: use only one commandline flag at a time */ csoundSetOption(csound, "-odac"); /* Compile the Csound Orchestra string */ csoundCompileOrc(csound, orc); /* Compile the Csound SCO String */ csoundReadScore(csound, (char*)sco); /* When compiling from strings, this call is necessary * before doing any performing */ csoundStart(csound); /* Create a new thread that will use our performance function and * pass in our CSOUND structure. This call is asynchronous and * will immediately return back here to continue code execution */ thread = csoundCreateThread(&performance_function, (void*)csound); /* Join will wait for the other thread to complete. If we did not * call csoundJoinThread(), after csoundCreateThread() returns we * would immediately move to the next line, csoundStop(). That * would stop Csound without really giving it time to run. */ csoundJoinThread(thread); csoundStop(csound); /* clean up Csound; this is useful if you're going to reuse a Csound * instance */ csoundCleanup(csound); return 0; }
int main(int argc, char **argv) { CSOUND *csound; char *fname = NULL; int i, result, nomessages=0; #ifdef GNU_GETTEXT const char* lang; #endif install_signal_handler(); csoundInitialize(CSOUNDINIT_NO_SIGNAL_HANDLER); /* set stdout to non buffering if not outputing to console window */ if (!isatty(fileno(stdout))) { #if !defined(WIN32) setvbuf(stdout, (char*) NULL, _IONBF, 0); #endif } #ifdef GNU_GETTEXT /* We need to set the locale for the translations to work */ lang = csoundGetEnv(NULL, "CS_LANG"); /* If set, use that. Otherwise use the system locale */ if(lang == NULL) lang = setlocale(LC_MESSAGES, ""); else lang = setlocale(LC_MESSAGES, lang); /* Should we warn if we couldn't set the locale (lang == NULL)? */ /* If the strings for this binary are ever translated, * the textdomain should be set here */ #endif /* Real-time scheduling on Linux by Istvan Varga (Jan 6 2002) */ #ifdef LINUX if (set_rt_priority(argc, argv) != 0) return -1; #endif /* open log file if specified */ for (i = 1; i < argc; i++) { if (strncmp(argv[i], "-O", 2) == 0 && (int) strlen(argv[i]) > 2) fname = argv[i] + 2; else if (strncmp(argv[i], "--logfile=", 10) == 0 && (int) strlen(argv[i]) > 10) fname = argv[i] + 10; else if (i < (argc - 1) && strcmp(argv[i], "-O") == 0) fname = argv[i + 1]; } if (fname != NULL) { if (!strcmp(fname, "NULL") || !strcmp(fname, "null")) nomessages = 1; else if ((logFile = fopen(fname, "w")) == NULL) { fprintf(stderr, "Error opening log file '%s': %s\n", fname, strerror(errno)); return -1; } } /* if logging to file, set message callback */ if (logFile != NULL) csoundSetDefaultMessageCallback(msg_callback); else if (nomessages) csoundSetDefaultMessageCallback(nomsg_callback); /* Create Csound. */ csound = csoundCreate(NULL); _csound = csound; /* One complete performance cycle. */ result = csoundCompile(csound, argc, argv); if(!result) csoundPerform(csound); /* delete Csound instance */ csoundDestroy(csound); _csound = NULL; /* close log file */ if (logFile != NULL) fclose(logFile); if(result == 0 && _result != 0) result = _result; // printf("csound returned with value: %d \n", result); #if 0 /* remove global configuration variables, if there are any */ csoundDeleteAllGlobalConfigurationVariables(); #endif return (result >= 0 ? 0 : result); }