changed2 — Détecteur de changement d'un signal de taux-k.
Cet opcode renvoie un signal de déclenchement indiquant tout changement d'un de ses arguments de taux-k ou d'une valeur dans un tableau. Utile avec les widgets valuateurs ou les contrôleurs MIDI.
ktrig - Renvoie la valeur 1 lorsqu'un des signaux de taux-k ou qu'une valeur du tableau a changé, sinon renvoie la valeur 0.
kvar1 [, kvar2,..., kvarN] - variables de taux-k dont les changements sont surveillés.
xarray - n'importe quel type de tableau.
Au contraire de l'opcode changed cet opcode ne rapporte jamais le premier cycle comme un changement.
Voici deux exemples de l'opcode changed2. Il utilise les fichiers changed2.csd et changed2a.csd.
Exemple 131. Exemple de l'opcode changed2.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;RT audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o changed.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 instr 1 ksig oscil 2, 0.5, 1 kint = int(ksig) ktrig changed2 kint printk 0.2, kint printk2 ktrig endin </CsInstruments> <CsScore> f 1 0 1024 10 1 i 1 0 20 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci:
i 1 time 0.00267: 0.00000 i1 0.00000 i1 1.00000 i1 0.00000 i 1 time 0.20267: 1.00000 i 1 time 0.40267: 1.00000 i1 1.00000 i1 0.00000 i 1 time 0.60267: 1.00000 i 1 time 0.80267: 1.00000 i1 1.00000 i1 0.00000 i 1 time 1.00000: 0.00000 i1 1.00000 i1 0.00000 i 1 time 1.20267: -1.00000 i 1 time 1.40267: -1.00000 i1 1.00000 i1 0.00000 i 1 time 1.60267: -1.00000 i 1 time 1.80000: -1.00000 i1 1.00000 i1 0.00000 i 1 time 2.00000: -0.00000 i1 1.00000 i1 0.00000 .........
Exemple 132. Exemple de l'opcode changed2.
<CsoundSynthesizer> <CsOptions> -n </CsOptions> <CsInstruments> gkArray[][] init 2,3 gkArray fillarray 1,2,3,7,6,5 instr 1 k1 changed2 gkArray if k1==1 then printks "An element in the array changed", 0 endif endin instr 2; change value of channel 'step1' gkArray[1][0] = 3 endin </CsInstruments> <CsScore> i1 0 100 i2 4 .1 </CsScore> </CsoundSynthesizer>