This should play if your Web browser has WebAssembly enabled (most do). Most examples will play unless they need to load files. The first time you click Play, Csound will spend a few seconds loading, then play. You can edit this code and replay it.
; 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 xscanmap.wav -W ;;; for file output any platform ; Required settings for WebAudio: sr = 48000 ksmps = 128 nchnls = 2 nchnls_i = 1 ; sr = 44100 ; ksmps = 32 ; nchnls = 2 0dbfs = 1 ; example by Richard Boulanger seed 0 instr 1 a0 = 0 iamp = p4 ifrq = p5 iscanrate = p6 iposgain = p7 ivelgain = p8 inode = p9 xscanu 1, iscanrate, 6, 2, "128-stringcircular.XmatrxT", 4, 5, 2, .1, .1, -.01, .1, .5, 0, 0, a0, 0, 0 k1,k2 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k3,k4 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k5,k6 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k7,k8 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k9,k10 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k11,k12 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k13,k14 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k15,k16 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) a1 poscil3 iamp,rnd(ifrq)+k1 a2 poscil3 iamp,rnd(ifrq)+k2 a3 poscil3 iamp,rnd(ifrq)+k3 a4 poscil3 iamp,rnd(ifrq)+k4 a5 poscil3 iamp,rnd(ifrq)+k5 a6 poscil3 iamp,rnd(ifrq)+k6 a7 poscil3 iamp,rnd(ifrq)+k7 a8 poscil3 iamp,rnd(ifrq)+k8 a9 poscil3 iamp,rnd(ifrq)+k9 a10 poscil3 iamp,rnd(ifrq)+k10 a11 poscil3 iamp,rnd(ifrq)+k11 a12 poscil3 iamp,rnd(ifrq)+k12 a13 poscil3 iamp,rnd(ifrq)+k13 a14 poscil3 iamp,rnd(ifrq)+k14 a15 poscil3 iamp,rnd(ifrq)+k15 a16 poscil3 iamp,rnd(ifrq)+k16 aL sum a1,a3,a5,a7,a9,a11,a13,a15 aR sum a2,a4,a6,a8,a10,a12,a14,a16 kenv adsr .3,.1,.8,.3 outs (aL*kenv)*.6, (aR*kenv)*.6 endin instr 2 ; with audio injection ain diskin2 "fox.wav", 1, 0, 1 a0 = ain/32000 iamp = p4 ifrq = p5 iscanrate = p6 iposgain = p7 ivelgain = p8 inode = p9 xscanu 1, iscanrate, 6, 2, "128-stringcircular.XmatrxT", 4, 5, 2, .1, .1, -.01, .1, .5, 0, 0, a0, 0, 0 k1,k2 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k3,k4 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k5,k6 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k7,k8 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k9,k10 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k11,k12 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k13,k14 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) k15,k16 xscanmap 0, iposgain, ivelgain, int(abs((rnd(inode)))) a1 poscil3 iamp,rnd(ifrq)+k1 a2 poscil3 iamp,rnd(ifrq)+k2 a3 poscil3 iamp,rnd(ifrq)+k3 a4 poscil3 iamp,rnd(ifrq)+k4 a5 poscil3 iamp,rnd(ifrq)+k5 a6 poscil3 iamp,rnd(ifrq)+k6 a7 poscil3 iamp,rnd(ifrq)+k7 a8 poscil3 iamp,rnd(ifrq)+k8 a9 poscil3 iamp,rnd(ifrq)+k9 a10 poscil3 iamp,rnd(ifrq)+k10 a11 poscil3 iamp,rnd(ifrq)+k11 a12 poscil3 iamp,rnd(ifrq)+k12 a13 poscil3 iamp,rnd(ifrq)+k13 a14 poscil3 iamp,rnd(ifrq)+k14 a15 poscil3 iamp,rnd(ifrq)+k15 a16 poscil3 iamp,rnd(ifrq)+k16 aL sum a1,a3,a5,a7,a9,a11,a13,a15 aR sum a2,a4,a6,a8,a10,a12,a14,a16 kenv adsr .3,.1,.8,.3 outs (aL*kenv)*.6, (aR*kenv)*.6 endin f1 0 128 10 1 ; Initial condition f2 0 128 -7 1 128 .5 ; Masses f4 0 128 -7 .2 64 1 64 .4 ; Centering force f5 0 128 -7 1 64 .1 64 .6 ; Damping f6 0 128 -7 2 64 .1 64 4 ; Initial velocity ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 3 .1 500 .1 200 800 27 i 1 + . .1 500 .1 300 900 27 i 1 + . .1 500 .1 400 1000 27 i 1 + . .1 500 .1 500 2100 27 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 3 .1 1500 .21 500 1100 47 i 1 + . .1 500 .31 1500 1800 47 i 1 + . .1 1000 .41 2500 2800 47 i 1 + . .1 200 .51 4500 4800 47 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 2 .1 4500 .1 1800 1800 97 i 1 + . .1 4500 .1 1800 1800 97 i 1 + . .1 4500 .1 1800 1800 97 i 1 + . .1 4500 .1 1800 1800 97 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 3 .1 500 .01 200 800 27 i 1 + . .1 500 .01 200 800 27 i 1 + . .1 500 .01 200 800 27 i 1 + . .1 500 .01 200 800 27 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 3 .1 1500 .001 500 800 47 i 1 + . .1 1500 .001 500 800 47 i 1 + . .1 1500 .001 500 800 47 i 1 + . .1 1500 .001 500 800 47 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 4 .1 500 .001 2800 4800 97 i 1 + . .1 1500 .001 3800 5800 97 i 1 + . .1 2500 .001 4800 8800 97 i 1 + . .1 3500 .001 5800 9980 97 s ; ins strt dur amp frq scanrate pgain vgain inode i 1 0 23 .13 400 .001 2800 4800 97 i 1 1 18 .05 1000 .01 800 1800 87 i 1 3 18 .09 200 .001 4800 8800 77 i 1 5 16 .05 2000 .1 5800 9980 47 i 1 8 12 .04 7500 .001 2800 4800 7 i 1 11 8 .04 4000 .01 3800 5800 17 i 1 13 8 .08 1600 .001 4800 8800 27 i 1 15 8 .03 8000 .1 5800 9980 127 s ; ins strt dur amp frq scanrate pgain vgain inode i 2 0 3 .1 500 .1 200 800 27 i 2 + . .1 500 .21 1200 800 37 i 2 + . .1 500 .31 2200 800 77 i 2 + . .1 500 .41 3200 800 107 s ; ins strt dur amp frq scanrate pgain vgain inode i 2 0 2 .1 500 .01 200 800 27 i 2 + . .1 500 .009 200 800 27 i 2 + . .1 500 .005 200 800 27 i 2 + . .1 500 .002 200 800 27 s ; ins strt dur amp frq scanrate pgain vgain inode i 2 0 1 .1 1500 .001 500 800 47 i 2 + . .1 1500 .001 500 800 47 i 2 + . .1 1500 .001 500 800 47 i 2 + . .1 1500 .001 500 800 47 s ; ins strt dur amp frq scanrate pgain vgain inode i 2 0 1 .1 500 .001 2800 4800 97 i 2 + . .1 1500 .001 3800 5800 97 i 2 + . .1 2500 .001 4800 8800 97 i 2 + . .1 3500 .001 5800 9980 97 s ; ins strt dur amp frq scanrate pgain vgain inode i 2 0 23 .13 400 .001 2800 4800 97 i 2 1 18 .05 1000 .01 800 1800 87 i 2 3 18 .09 200 .001 4800 8800 77 i 2 5 16 .05 2000 .1 5800 9980 47 i 2 8 12 .04 7500 .001 2800 4800 7 i 2 11 8 .04 4000 .01 3800 5800 17 i 2 13 8 .08 1600 .001 4800 8800 27 i 2 15 8 .03 8000 .1 5800 9980 127 e