diff options
Diffstat (limited to 'examples/tablecopy.csd')
-rw-r--r-- | examples/tablecopy.csd | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/examples/tablecopy.csd b/examples/tablecopy.csd new file mode 100644 index 0000000..af8a1a2 --- /dev/null +++ b/examples/tablecopy.csd @@ -0,0 +1,68 @@ +<CsoundSynthesizer> +<CsOptions> +; 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 +</CsOptions> +<CsInstruments> + +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 +</CsInstruments> +<CsScore> +i1 0 5 +e +</CsScore> +</CsoundSynthesizer> + |