diff --git a/projekte/soundz/quak/quak.pde b/projekte/soundz/quak/quak.pde new file mode 100644 index 0000000..b9000ed --- /dev/null +++ b/projekte/soundz/quak/quak.pde @@ -0,0 +1,53 @@ +byte foo; +int bar; +byte mul; +byte cnt; +float wow; +boolean b; +int inv; + +#define WOW_FACTOR 512 +#define WOW_LIMIT 4 + +void setup() { + pinMode(8, OUTPUT); + cnt = 0; + mul = 1; + wow = WOW_FACTOR; + inv = 1; +} + + + +void loop() { + + if( cnt == 0 ) { + mul = random(6)+1; + cnt = 25; + } + + cnt--; + + foo = random(5*mul)+2; + + for(bar = 0; bar < (255-(foo*20)); bar++) { + + + if( inv == 1 ) + wow /= 2; + else + wow *= 2; + + if( wow < WOW_LIMIT || wow > WOW_FACTOR ) { + inv = inv == 1 ? -1 : 1; + } + + digitalWrite(8, b = !b); + delayMicroseconds((WOW_FACTOR+(wow*inv))*foo+(bar*2*b)); + + // NOISE + if( random(10) == 0 ) { + digitalWrite(8, b = !b); delayMicroseconds(4500); digitalWrite(8, b = !b); + } + } +}