trigger — Informe quand un signal de taux-k traverse un seuil.
ksig -- signal d'entrée
kthreshold -- seuil de déclenchement
kmode -- peut valoir 0, 1 ou 2
Normalement trigger retourne des zéros : trigger retourne 1 chaque fois que ksig traverse kthreshold. Il y a trois modes d'utilisation de ktrig :
kmode = 0 - (bas-haut) ktrig retourne 1 lorsque la valeur courante de ksig est supérieure à kthreshold, alors que l'ancienne valeur de ksig était égale ou inférieure à kthreshold.
kmode = 1 - (haut-bas) ktrig retourne 1 lorsque la valeur courante de ksig est inférieure à kthreshold alors que l'ancienne valeur de ksig était égale ou supérieure à kthreshold.
kmode = 2 - (les deux) ktrig retourne 1 dans les deux cas précédents.
Voici un exemple de l'opcode trigger. Il utilise le fichier trigger.csd.
Exemple 635. Exemple de l'opcode trigger.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<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 trigger.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Use a square-wave low frequency oscillator as the trigger. klf lfo 1, 10, 3 ktr trigger klf, 1, 2 ; When the value of the trigger isn't equal to 0, print it out. if (ktr == 0) kgoto contin ; Print the value of the trigger and the time it occurred. ktm times printks "time = %f seconds, trigger = %f\\n", 0, ktm, ktr contin: ; Continue with processing. endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. i 1 0 1 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci :
time = 0.050340 seconds, trigger = 1.000000 time = 0.150340 seconds, trigger = 1.000000 time = 0.250340 seconds, trigger = 1.000000 time = 0.350340 seconds, trigger = 1.000000 time = 0.450340 seconds, trigger = 1.000000 time = 0.550340 seconds, trigger = 1.000000 time = 0.650340 seconds, trigger = 1.000000 time = 0.750340 seconds, trigger = 1.000000 time = 0.850340 seconds, trigger = 1.000000 time = 0.950340 seconds, trigger = 1.000000