turnoff -- this p-time statement enables an instrument to turn itself off. Whether of finite duration or "held", the note currently being performed by this instrument is immediately removed from the active note list. No other notes are affected.
The following example uses the turnoff opcode. It will cause a note to terminate when a control signal passes a certain threshold (here the Nyquist frequency). It uses the files turnoff.orc and turnoff.sco.
Example 1. Example of the turnoff opcode.
/* turnoff.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
k1 expon 440, p3/10,880 ; begin gliss and continue
if k1 < sr/2 kgoto contin ; until Nyquist detected
turnoff ; then quit
contin:
a1 oscil 10000, k1, 1
out a1
endin
/* turnoff.orc */
/* turnoff.sco */
; Table #1: an ordinary sine wave.
f 1 0 32768 10 1
; Play Instrument #1 for 4 seconds.
i 1 0 4
e
/* turnoff.sco */