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 bpfcos /* 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 half cosine curve defined by the pairs It works both at i- and k- time ky bpfcos kx, kx0, ky0, kx1, ky1, kx2, ky2, ... kys[] bpfcos kxs[], kx0, ky0, kx1, ky1, kx2, ky2, ... ky bpfcos kx, kxs[], kys[] ky, kz bpfcos kx, kxs[], kys[], kzs[] NB: x values must be ordered (kx0 < kx1 < kx2 etc) See also: bpf, linlin, lincos */ ; sr = 44100 ; ksmps = 64 ; nchnls = 1 0dbfs = 1 instr 1 kx line -1, p3, 2.5 ky bpfcos kx, \ 0, 0, \ 1.01, 10, \ 2, 0.5, \ 2.5, -1 printks "kx: %f ky: %f \n", 0.1, kx, ky endin instr 2 ; test i-time ix = 1.2 iy bpfcos ix, 0,0, 0.5,5, 1,10, 1.5,15, 2,20, 2.5,25, 3,30 print iy turnoff endin instr 3 ; bpfcos also works with arrays. For each kx value in kxs, ; calculate the corresponding ky kxs[] fillarray 0, 0.15, 0.25, 0.35, 0.45, 0.55, 0.6 kys[] bpfcos kxs, 0,0, 0.1,10, 0.2,20, 0.3,30, 0.4,40, 0.5,50 printarray kys, 1, "", "kys=" turnoff endin instr 4 ; bpfcos is useful to implement envelopes with ease-in/out shape kpitch bpfcos timeinsts(), 0, 60, 2, 61, 3, 65, 3.5, 60 a0 oscili 0.5, mtof(kpitch) kenv0 linseg 0, 0.5, 1, p3-1, 1, 0.5, 0 kenv bpfcos kenv0, 0, 0, 0.5, 0.25, 1, 0.7 a0 *= interp(kenv) outch 1, a0 endin instr 5 ; arrays can also be used to define the points of a break-point-function ; multiple arrays can be used simultaneously ; In this case, we define a line and for each point in the line a ; corresponding pitch (midinote) and amplitude ; NB: kTimes uses absolute times kTimes[] fillarray 0, 1, 1.5, 2, 3, 5 kPitches[] fillarray 60, 65, 64, 69, 60, 61 kAmps[] fillarray 0, 1, 0.1, 1, 0.1, 1 ; play the envelopes at half speed kpitch, kamp bpfcos timeinsts()*0.5, kTimes, kPitches, kAmps aout oscili a(kamp), a(mtof:k(kpitch)) ; declick aout *= linsegr(0, 0.1, 1, 0.1, 0) outch 1, aout endin ; i 1 1 3 ; i 2 0 -1 ; i 3 0 -1 ; i 4 0 5 i 5 0 10 e 12