Skip to content

turnoff

Enables an instrument to turn itself off or to turn an instance of another instrument off.

Syntax

turnoff()
turnoff(inst)
turnoff(knst)
turnoff(voice)
turnoff(voice, kStop)
turnoff
turnoff inst
turnoff knst
turnoff voice
turnoff voice, kStop

Initialization

inst -- when used with an i-time parameter, this is the instance handle of an instrument to be turned off (obtained from the nstance opcode).

Performance

turnoff -- with no parameters 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.

kinst -- when used with an k-time parameter, this is the instance handle of an instrument to be turned off (obtained from the nstance opcode).

Instrument references in Csound 7

voice is an Instr reference, obtained from play, getinstance, or the instance-returning form of schedule. Use the reference only while its instance is available.

turnoff(voice) requests turn-off at initialization. turnoff(voice, kStop) checks the trigger at performance time. Use 0 to leave the instance running and 1 to request turn-off. Any release extension still applies.

This affects only the referenced instance. It does not remove its InstrDef. Use delete for cleanup of manually owned objects when the containing instrument ends.

Examples

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 file turnoff.csd.

Example of the turnoff opcode.
<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 turnoff.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
ksmps = 10
nchnls = 1
0dbfs = 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 0.3, k1, 1
  out a1
endin


</CsInstruments>
<CsScore>

; Table #1: an ordinary sine wave.
f 1 0 32768 10 1

; Play Instrument #1 for 4 seconds.
i 1 0 4
e


</CsScore>
</CsoundSynthesizer>

See also

play, isreleasing, delete, Duration Control Statements