schedwhen — Adds a new score event.
schedwhen ktrigger, kinsnum, kwhen, kdur [, ip4] [, ip5] [...]
schedwhen ktrigger, "insname", kwhen, kdur [, ip4] [, ip5] [...]
kinsnum -- instrument number. Equivalent to p1 in a score i statement.
“insname” -- A string (in double-quotes) representing a named instrument.
ktrigger -- trigger value for new event
kwhen -- start time of the new event. Equivalent to p2 in a score i statement.
kdur -- duration of event. Equivalent to p3 in a score i statement.
schedwhen adds a new score event. The event is only scheduled when the k-rate value ktrigger is first non-zero. The arguments, including options, are the same as in a score. The kwhen time (p2) is measured from the time of this event.
If the duration is zero or negative the new event is of MIDI type, and inherits the release sub-event from the scheduling instruction.
Note | |
---|---|
Note that the schedwhen opcode can't accept string p-fields. If you need to pass strings when instantiating an instrument, use the scoreline or scoreline_i opcode. |
Here is an example of the schedwhen opcode. It uses the file schedwhen.csd.
Example 789. Example of the schedwhen 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 -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o schedwhen.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kmtr metro 100 ;produce 100 triggers per second schedwhen kmtr, 2, 1, .3 ;but schedwhen plays instr. 2 only once endin instr 2 aenv linseg 0, p3*.1, 1, p3*.3, 1, p3*.6, 0 ;envelope a1 poscil .3*aenv, 1000, 1 outs a1, a1 endin </CsInstruments> <CsScore> f 1 0 16384 10 1 ;sine i 1 0 3 i 1 3 5 e </CsScore> </CsoundSynthesizer>