// boop.c // 6c -FTVw boop.c && 6l -o boop boop.6 && ./boop | audio/pcmconv -i f32c1r44100 >/dev/audio #include #include #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) #define RATE 44100.0 #define SZ(x) (int)(x*RATE) #define S(n,d) float n[SZ(d)] #define FS(n) for(i = 0; i < nelem(n); i++) #define NS(n) nelem(n) #define TRW(f,i) (PI*2*(f)/RATE*(i)) #define LF(n) ((double)(NS(n) - i) / NS(n)) #define CF(n) cos(PI*(1.0-LF(n))/2.0) #define SA(x,n) (((x) & (n)) ? -1 : 1) void main(int, char **) { int i, j, k; S(s₀, 0.09); S(s₁, 0.04); S(s₂, 0.03); for(k = 0; k < 1024; k++){ for(j = 0; j < 4; j++){ FS(s₁) s₁[i] = 0.7 * fabs(sin(TRW(800+20*j + 200*SA(k,3) + 120*SA(k,8) - 160*SA(k,16), i))*CF(s₁))*CF(s₁); FS(s₀) s₀[i] = sin(TRW(60+20*j + 10*(k % 4), i))*CF(s₀); FS(s₁) s₀[i] += s₁[i]; FS(s₂) s₂[i] = 0.2 * cos(TRW(100+500*sin(TRW(1 + (k % 8)*((k % 16)+j), i)), i)); FS(s₂) s₀[i] += s₂[i]; FS(s₀) s₀[i] /= 3.0; write(1, s₀, sizeof(s₀)); } } exits(nil); }