zakinit — Etablit l'espace zak.
isizea -- le nombre de positions de taux audio pour les patch de taux-a. Chaque position est un tableau de longueur ksmps.
isizek -- le nombre de positions à réserver pour les nombres en virgule flottante dans l'espace zk. On peut lire et écrire dans celles-ci au taux-i et au taux-k.
Il y a au moins une position d'allouée pour chaque espace za et zk. Il peut y avoir des milliers ou des dizaines de milliers de positions za et zk, mais la plupart des pièces n'en nécessitent probablement que quelques douzaines pour patcher les signaux. Ces positions de patch sont référencées par un numéro dans les autres opcodes zak.
Pour n'exécuter zakinit qu'une seule fois, on le place en dehors de toute définition d'instrument, dans l'en-tête de l'orchestre, après sr, kr, ksmps, et nchnls.
Note | |
---|---|
Les canaux zak se comptent à partir de 0, si bien que si l'on définit un canal, le seul canal valide est le canal 0. |
Voici un exemple de l'opcode zakinit. Il utilise le fichier zakinit.csd.
Exemple 1237. Exemple de l'opcode zakinit.
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 No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o zakinit.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 4410 nchnls = 1 ; Initialize the ZAK space. ; Create 3 a-rate variables and 5 k-rate variables. zakinit 2, 3 instr 1 ;a simple waveform. ; Generate a simple sine waveform. asin oscil 20000, 440, 1 ; Send the sine waveform to za variable #1. zaw asin, 1 endin instr 2 ;generates audio output. ; Read za variable #1. a1 zar 1 ; Generate audio output. out a1 ; Clear the za variables, get them ready for ; another pass. zacl 0, 2 endin instr 3 ;increments k-type channels k0 zkr 0 k1 zkr 1 k2 zkr 2 zkw k0+1, 0 zkw k1+5, 1 zkw k2+10, 2 endin instr 4 ;displays values from k-type channels k0 zkr 0 k1 zkr 1 k2 zkr 2 ; The total count for k0 is 30, since there are 10 ; control blocks per second and intruments 3 and 4 ; are on for 3 seconds. printf "k0 = %i\n",k0, k0 printf "k1 = %i\n",k1, k1 printf "k2 = %i\n",k2, k2 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 i 1 0 1 i 2 0 1 i 3 0 3 i 4 0 3 e </CsScore> </CsoundSynthesizer>