asig -- the input signal
kzamod -- controls which za variable is used for modulation. A positive value means additive modulation, a negative value means multiplicative modulation. A value of 0 means no change to asig.
zamod modulates one a-rate signal by a second one, which comes from a za variable. The location of the modulating variable is controlled by the i-rate or k-rate variable kzamod. This is the a-rate version of zkmod.
Here is an example of the zamod opcode. It uses the files zamod.orc and zamod.sco.
Example 1. Example of the zamod opcode.
/* zamod.orc */
/* Written by Kevin Conder */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Initialize the ZAK space.
; Create 2 a-rate variables and 2 k-rate variables.
zakinit 2, 2
; Instrument #1 -- a simple waveform.
instr 1
; Vary an a-rate signal linearly from 20,000 to 0.
asig line 20000, p3, 0
; Send the signal to za variable #1.
zaw asig, 1
endin
; Instrument #2 -- generates audio output.
instr 2
; Generate a simple sine wave.
asin oscil 1, 440, 1
; Modify the sine wave, multiply its amplitude by
; za variable #1.
a1 zamod asin, -1
; Generate the audio output.
out a1
; Clear the za variables, prepare them for
; another pass.
zacl 0, 2
endin
/* zamod.orc */
/* zamod.sco */
/* Written by Kevin Conder */
; Table #1, a sine wave.
f 1 0 16384 10 1
; Play Instrument #1 for 2 seconds.
i 1 0 2
; Play Instrument #2 for 2 seconds.
i 2 0 2
e
/* zamod.sco */