changed2

changed2 — Détecteur de changement d'un signal de taux-k.

Description

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.

Syntaxe

ktrig changed2 kvar1 [, kvar2,..., kvarN]
ktrig changed2 karr[]
ktrig changed2 aarr[]

Exécution

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.

Exemples

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>

Crédits

Ecrit par John ffitch.

Exemple écrit par Andrés Cabrera.

Nouveau dans Csound 6.7.