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.
-odac ; Required settings for WebAudio: sr = 48000 ksmps = 128 nchnls = 2 nchnls_i = 1 ; Example for opcode bpf /* bpf stands for Break Point Function Given an x value and a series of pairs (x, y), it returns the corresponding y value in the linear curve defined by the pairs It works both at i- and k- time ky bpf kx, kx0, ky0, kx1, ky1, kx2, ky2, ... kys[] bpf kxs[], kx0, ky0, kx1, ky1, kx2, ky2, ... NB: x values must be ordered (kx0 < kx1 < kx2 etc) See also: bpfcos, linlin, lincos */ ; sr = 44100 ; ksmps = 64 ; nchnls = 2 0dbfs = 1 instr 1 kx line -1, p3, 2.5 ky bpf kx, \ 0, 0, \ 1.01, 10, \ 2, 0.5, \ 2.5, -1 if metro(10) == 1 then printsk "kx: %f ky: %f \n", kx, ky endif endin instr 2 ; test i-time ix = 1.2 iy bpf ix, 0,0, 0.5,5, 1,10, 1.5,15, 2,20, 2.5,25, 3,30 prints "iy: %f", iy turnoff endin instr 3 ; bpf also works with arrays kx[] fillarray 0, 0.15, 0.25, 0.35, 0.45, 0.55, 0.6 ky[] bpf kx, 0,0, 0.1,10, 0.2,20, 0.3,30, 0.4,40, 0.5,50 printarray ky, 1, "", "ky=" turnoff endin instr 4 ; bpf as an envelope generator, like linsegb but driven by external phase ; bpf + rms can also be used as compressor atime linseg 0, p3*0.62, p3, p3*0.38, 0 aenv = bpf(atime, 0,0, 0.1,1, 0.5, 0.2) ^ 2 kbw = bpf(timeinsts(), 0, 0, p3*0.62, 1) ^ 3 asig = (beosc(1000, kbw, -1, rnd(6.28)) + beosc(1012, kbw, -1, rnd(6.28))) * 0.3 kratio bpf dbamp(rms:k(asig)), -12, 1, -6, 0.4, -3, 1/100 asig *= aenv * interp(lagud(kratio, 0.01, 0.1)) outs asig, asig endin ; i 1 0 3 ; i 2 0 -1 ; i 3 0 -1 i 4 0 3