system — Call an external program via the system call
system and system_i call any external command understood by the operating system, similarly to the C function system(). system_i runs at i-time only, while system runs both at initialization and performance time.
Scmd -- command string
itrig -- if greater than zero the opcode executes the command; otherwise it is an null operation.
ktrig -- if greater than zero and different from the value on the previous control cycle the opcode executes the command. Initially this previous value is taken as zero.
inowait,knowait -- if given an non zero the command is run in the background and the command does not wait for the result. (default = 0)
ires, kres -- the return code of the command in wait mode and if the command is run.In other cases returns zero.
More than one system command (a script) can be executed with a single system opcode by using double braces strings {{ }}.
Note | |
---|---|
This opcode is very system dependant, so should be used with extreme care (or not used) if platform neutrality is desired. |
Here is an example of the system_i opcode. It uses the file system.csd.
Example 894. Example of the system opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac ; -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o system.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 ; Waits for command to execute before continuing ires system_i 1,{{ ps date cd ~/Desktop pwd ls -l whois csounds.com }} print ires turnoff endin instr 2 ; Runs command in a separate thread ires system_i 1,{{ ps date cd ~/Desktop pwd ls -l whois csounds.com }}, 1 print ires turnoff endin </CsInstruments> <CsScore> ; Play Instrument #1 for thirty seconds. i 1 0 1 i 2 5 1 e </CsScore> </CsoundSynthesizer>