zakinit

zakinit — Etablit l'espace zak.

Description

Etablit l'espace zak. Ne doit être appelé qu'une seule fois.

Syntaxe

zakinit isizea, isizek

Initialisation

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.

Exécution

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] 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.

Exemples

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>


Crédits

Auteur : Robin Whittle
Australie
Mai 1997

Nouveau dans la version 3.45

Exemple écrit par Kevin Conder.