#!/bin/sh mawk ' function wl() { rate = 32000 return (rate / 160) * 2^(-int(rand() * 10) / 5) } BEGIN { srand() wla = wl() while(1) { wlb = wla wla = wl() if (wla == wlb) wla *= 2 d = (rand() * 10 + 5) * rate / 4 a = b = 0 c = 128 ca = 40 / wla cb = 20 / wlb de = rate / 10 di = 0 for (i = 0; i < d; i++) { a++ b++ di++ c += ca + cb if (a > wla) { a = 0 ca = -ca } if (b > wlb) { b = 0 cb = -cb } if (di > de) { di = 0 ca *= 0.9 cb *= 0.9 } printf("%c", (c - 127) * 4) } c = int(c) while(c != 128) { c < 128 ? c++ : c-- printf("%c", (c - 127) * 4) } } }' |aplay -r 44100 #oneline: # mawk 'function wl(){rate=32000;return(rate/160)*(0.87055^(int(rand()*10)))};BEGIN{srand();wla=wl();while(1){wlb=wla;wla=wl();if(wla==wlb){wla*=2;};d=(rand()*10+5)*rate/4;a=b=0;c=128;ca=40/wla;cb=20/wlb;de=rate/10;di=0;for(i=0;iwla){a=0;ca*=-1};if(b>wlb){b=0;cb*=-1};if(di>de){di=0;ca*=0.9;cb*=0.9};printf("%c",(c-127)*4)};c=int(c);while(c!=128){c<128?c++:c--;printf("%c",(c-127)*4)};};}' |aplay -r 44100