; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tablecopy.wav -W ;;; for file output any platform
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
;after an example from Jonathan Murphy
gilen = 7
gilist ftgen 1, 0, gilen + 1, -2, 2, 3, 4, 5, 6, 7 ;only 6 elements, so 1 is doubled
gitmp ftgen 2, 0, gilen + 1, -2, 0 ;empty table
gkmax init gilen
seed 0 ;each time different
instr 1
ktrig metro 3 ;trigger values
krnd random 0, gkmax
if (ktrig == 1) then
kval table krnd, gilist
tablew 0, krnd, gilist
kread = 0
kwrite = 0
start:
knew table kread, gilist
if (knew != 0) then
tablew knew, kwrite, gitmp
kwrite = kwrite + 1
endif
kread = kread + 1
if (kread <= gilen) kgoto start
tablecopy gilist, gitmp ;fill with zeroes
gkmax = gkmax - 1
endif
printk2 kval
if (gkmax < 0) then
event "i", 2, 0, 1/kr ;when ready, then stop
endif
asig vco2 .5, 40*kval ;sound generation
outs asig, asig
endin
instr 2
exitnow
endin
i1 0 5
e