system

system — Call an external program via the system call

Description

Plugin opcode in 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.

Syntax

ires system_i itrig, Scmd, [inowait]
kres system ktrig, Scmd, [knowait]

Initialization

Scmd -- command string

itrig -- if greater than zero the opcode executes the command; otherwise it is an null operation.

Performance

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] Note
This opcode is very system dependant, so should be used with extreme care (or not used) if platform neutrality is desired.

Example

Here is an example of the system_i opcode. Play system.csd

Example 1062. 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
-n   ; no sound
; For Non-realtime ouput leave only the line below:
; -o system.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments> 

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 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>
i 1 0 1
i 2 5 1
e
</CsScore>
</CsoundSynthesizer> 


Credits

Author: John ffitch
2007

New in version 5.06