zkmod — Facilitates the modulation of one signal by another.
ksig -- the input signal
kzkmod -- controls which zk 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 ksig. kzkmod can be i-rate or k-rate
zkmod facilitates the modulation of one signal by another, where the modulating signal comes from a zk variable. Either additive or mulitiplicative modulation can be specified.
Here is an example of the zkmod opcode. It uses the file zkmod.csd.
Example 1076. Example of the zkmod opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<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 zkmod.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 ; Initialize the ZAK space. ; Create 2 a-rate variables and 2 k-rate variables. zakinit 2, 2 ; Instrument #1 -- a signal with jitter. instr 1 ; Generate a k-rate signal goes from 30 to 2,000. kline line 30, p3, 2000 ; Add the signal into zk variable #1. zkw kline, 1 endin ; Instrument #2 -- generates audio output. instr 2 ; Create a k-rate signal modulated the jitter opcode. kamp init 20 kcpsmin init 40 kcpsmax init 60 kjtr jitter kamp, kcpsmin, kcpsmax ; Get the frequency values from zk variable #1. kfreq zkr 1 ; Add the the frequency values in zk variable #1 to ; the jitter signal. kjfreq zkmod kjtr, 1 ; Use a simple sine waveform for the left speaker. aleft oscil 20000, kfreq, 1 ; Use a sine waveform with jitter for the right speaker. aright oscil 20000, kjfreq, 1 ; Generate the audio output. outs aleft, aright ; Clear the zk variables, prepare them for ; another pass. zkcl 0, 2 endin </CsInstruments> <CsScore> ; 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 </CsScore> </CsoundSynthesizer>