lastcycle — Indicates whether an event is in its last performance cycle.


Provides a way of knowing if an event is in its last performance cycle. Whether an event has a finite duration (p3 > 0) or a note is extended via a time extending opcode (like linsegr or xtratim), this opcode returns 1 if the event is currently at its last k-cycle. The only sitatuation where lastcycle does not detect that the event will not run for another cycle is when the note is turned off by another event (using turnoff2) and is not given the possibility of running through its release stage (using turnoff2 instrnum, imode, 0)


kflag lastcycle


kflag -- indicates whether the note is in its last cycle. (1 if this the last cycle, otherwise 0)

This opcode is useful for performing cleanup actions, signaling to other events that this event is finishing, etc. It works only at performance time.


Here is an example of the lastcycle opcode. It uses the file lastcycle.csd.

Example 513. Example of the lastcycle opcode.


; Select audio/midi flags here according to platform
; Audio out   Audio in    Silent  MIDI in


sr = 44100
ksmps = 64
nchnls = 2
0dbfs = 1

instr 1
  aenv linsegr 0, 0.1, 1, 0.1, 0
  asig =  oscili(0.1, 1000)
  asig += oscili(0.1, 1012)
  asig *= aenv
  if lastcycle() == 1 then
    schedulek p1, 0, p3
  outs asig, asig


i 1 0 0.5
f 0 3600 



See also

Event Extenders


By: Eduardo Moguillansky 2020

New in Csound version 6.14 (2020)