init

init — Met la valeur de l'expression de taux-i dans une variable de taux-k ou de taux-a, ou dans une variable-t.

Syntaxe

ares init iarg
ires init iarg
kres init iarg
ares, ...  init iarg, ...
ires, ... init iarg, ...
kres, ... init iarg, ...
tab init isize[, ival]

Description

Met la valeur de l'expression de taux-i dans une variable de taux-k ou de taux-a.

Initialisation

Met la valeur de l'expression de taux-i iarg dans une variable de taux-k ou de taux-a, ou dans une variable-t, c-à-d., initialise le résultat. Noter que init présente le seul cas d'une instruction de la période d'initialisation autorisée à écrire dans un résultat de la période d'exécution (taux-k ou -a) ; cette instruction n'a aucun effet pendant l'exécution.

Depuis la version 5.13 il est possible d'initialiser jusqu'à 24 variables de la même classe dans une instruction. S'il y a plus de variables en sortie que d'expressions en entrée, la dernière expression est répétée. C'est une erreur d'avoir plus d'entrées que de sorties.

La forme variable-t, introduite dans la version 5.14, alloue de l'espace pour un vecteur de la taille donnée, initialisé avec la valeur donnée (qui vaut zéro par défaut).

Exemples

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

Exemple 468. Exemple de l'opcode init.

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
-n  ;no sound output
</CsOptions>
<CsInstruments> 

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

instr 1 ;shows what init does
        kinit init 0 
        kinit = kinit + 1 
        printk .1, kinit 
endin 

instr 2 ;shows what an assignment does
        knoinit = 0 
        knoinit = knoinit + 1 
        printk .1, knoinit 
endin 
</CsInstruments> 
<CsScore> 
;play one second each
i1 0 1 
i2 2 1 
e
</CsScore> 
</CsoundSynthesizer> 


Sa sortie contiendra des lignes comme celles-ci :

 i   1 time     0.00073:     1.00000
 i   1 time     0.10014:   138.00000
 i   1 time     0.20027:   276.00000
 i   1 time     0.30041:   414.00000
 i   1 time     0.40054:   552.00000
 i   1 time     0.50068:   690.00000
 i   1 time     0.60009:   827.00000
 i   1 time     0.70023:   965.00000
 i   1 time     0.80036:  1103.00000
 i   1 time     0.90050:  1241.00000

 i   2 time     2.00054:     1.00000
 i   2 time     2.09995:     1.00000
 i   2 time     2.20009:     1.00000
 i   2 time     2.30023:     1.00000
 i   2 time     2.40036:     1.00000
 i   2 time     2.50050:     1.00000
 i   2 time     2.59991:     1.00000
 i   2 time     2.70005:     1.00000
 i   2 time     2.80018:     1.00000
 i   2 time     2.90032:     1.00000
      

Voir aussi

=, divz, tival

D'autres informations sur cet opcode dans les Floss Manuals : https://flossmanual.csound.com/csound-language/initialization-and-performance-pass

Crédits

init était présent dans le Csound original, mais l'extension aux valeurs multiples a été ajoutée par

Auteur : John ffitch
Université de Bath, and Codemist Ltd.
Bath, UK
February 2010

La forme multiple a été introduite dans la version 5.13 ; la forme variable-t apparait dans la version 5.14.