zakinit

zakinit --  Establishes zak space.

Description

Establishes zak space. Must be called only once.

Syntax

zakinit isizea, isizek

Initialization

isizea -- the number of audio rate locations for a-rate patching. Each location is actually an array which is ksmps long.

isizek -- the number of locations to reserve for floats in the zk space. These can be written and read at i- and k-rates.

Performance

At least one location each is always allocated for both za and zk spaces. There can be thousands or tens of thousands za and zk ranges, but most pieces probably only need a few dozen for patching signals. These patching locations are referred to by number in the other zak opcodes.

To run zakinit only once, put it outside any instrument definition, in the orchestra file header, after sr, kr, ksmps, and nchnls.

Examples

Here is an example of the zakinit opcode. It uses the files zakinit.orc and zakinit.sco.

Example 1. Example of the zakinit opcode.

/* zakinit.orc */
/* Written by Kevin Conder */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Initialize the ZAK space.
; Create 3 a-rate variables and 5 k-rate variables.
zakinit 3, 5

; Instrument #1 -- a simple waveform.
instr 1
  ; Generate a simple sine waveform.
  asin oscil 20000, 440, 1

  ; Send the sine waveform to za variable #1.
  zaw asin, 1
endin

; Instrument #2 -- generates audio output.
instr 2
  ; Read za variable #1.
  a1 zar 1

  ; Generate audio output.
  out a1

  ; Clear the za variables, get them ready for 
  ; another pass.
  zacl 0, 3
endin
/* zakinit.orc */
        
/* zakinit.sco */
/* Written by Kevin Conder */
; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for one second.
i 1 0 1
; Play Instrument #2 for one second.
i 2 0 1
e
/* zakinit.sco */
        

Credits

Author: Robin Whittle

Australia

May 1997