lastcycle

lastcycle — Indique si un évènement est dans son dernier cycle d'exécution.

Description

Fournit un moyen de savoir si un évènement est dans son dernier cycle d'exécution. Qu'un évènement ait une durée finie (p3 > 0) ou qu'une note soit rallongée via un opcode de prolongement de la durée (comme « linsegr » ou « xtratim »), cet opcode retourne 1 si l'évènement est dans son dernier cycle-k. La seule situation dans laquelle « lastcycle » ne détecte pas qu'un évènement ne continuera pas durant un autre cycle est lorsque la note est arrêtée par un autre évènement (en utilisant « turnoff2 ») sans avoir la possibilité de passer par l'étape de relâchement (en utilisant « turnoff2 instrnum, imode, 0 »).

Syntaxe

kflag lastcycle

Exécution

kflag -- indique si la note est dans son « dernier cycle ». (1 si c'est le dernier cycle, 0 sinon)

Cet opcode est utile pour faire des actions de nettoyage, en signalant aux autres évènements que cet évènement se termine, etc. Il ne fonctionne que durant l'exécution.

Exemples

Voici un exemple de l'opcode lastcycle. Il utilise le fichier lastcycle.csd.

Exemple 24. Exemple de l'opcode lastcycle.

<CsoundSynthesizer>

<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    Silent  MIDI in
-odac
-d
</CsOptions>

<CsInstruments>

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
  endif
  outs asig, asig
endin
  
</CsInstruments>

<CsScore>

i 1 0 0.5
f 0 3600 

</CsScore>

</CsoundSynthesizer>


Voir aussi

xtratim, release, linsegr

Crédits

Par : Eduardo Moguillansky 2020

Nouveau dans la version 6.14 de Csound (2020).