32 lines
619 B
Bash
Executable File
32 lines
619 B
Bash
Executable File
#!/bin/sh
|
|
# From http://kmkeen.com/awk-music/
|
|
|
|
rate=64000
|
|
awk -v rate="$rate" 'function wl() {
|
|
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;i<d;i++) {
|
|
a++; b++; di++; c+=ca+cb;
|
|
if (a>wla)
|
|
{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)};
|
|
c=int(c);
|
|
while(c!=128) {
|
|
c<128?c++:c--;
|
|
printf("%c",c)};};}' | aplay -r $rate
|