/* KobayashiIIR.sco */ rtsetparams(44100, 2) // set_option("AUDIO_off", "clobber_on") // rtoutput("KobayashiIIR.wav", "wav", "short") load("IIR") ampenv = maketable("linebrk", 1000, 0, 500, 1, 500, 0) pitch = 500 st = 0 for (i = 0; i < 256; i = i + 1) { r = random() r1 = random() r2 = random() r3 = random() r4 = random() s = random() s1 = random() s2 = random() s3 = random() s4 = random() t = random() w = random() w1 = random() w2 = random() w3 = random() w4 = random() if(0.<=r && r<0.2) ratio = 3/2 else if(0.2<=r && r<0.4) ratio = 4/3 else if(0.4<=r && r<0.6) ratio = 5/4 else if(0.6<=r && r<0.8) ratio = 6/5 else if(0.8<=r && r<1.0) ratio = 1 if (s<0.5) ratio = 1/ratio if(0.<=r1 && r1<0.2) ratio1 = 3/2 else if(0.2<=r1 && r1<0.4) ratio1 = 4/3 else if(0.4<=r1 && r1<0.6) ratio1 = 5/4 else if(0.6<=r1 && r1<0.8) ratio1 = 6/5 else if(0.8<=r1 && r1<1.0) ratio1 = 2/1 if (s1<0.5) ratio1 = 1/ratio1 if(0.<=r2 && r2<0.2) ratio2 = 3/2 else if(0.2<=r2 && r2<0.4) ratio2 = 4/3 else if(0.4<=r2 && r2<0.6) ratio2 = 5/4 else if(0.6<=r2 && r2<0.8) ratio2 = 6/5 else if(0.8<=r2 && r2<1.0) ratio2 = 2/1 if (s2<0.5) ratio2 = 1/ratio2 if(0.<=r3 && r3<0.2) ratio3 = 3/2 else if(0.2<=r3 && r3<0.4) ratio3 = 4/3 else if(0.4<=r3 && r3<0.6) ratio3 = 5/4 else if(0.6<=r3 && r3<0.8) ratio3 = 6/5 else if(0.8<=r3 && r3<1.0) ratio3 = 2/1 if (s3<0.5) ratio3 = 1/ratio3 if(0.<=r4 && r4<0.2) ratio4 = 3/2 else if(0.2<=r4 && r4<0.4) ratio4 = 4/3 else if(0.4<=r4 && r4<0.6) ratio4 = 5/4 else if(0.6<=r4 && r4<0.8) ratio4 = 6/5 else if(0.8<=r4 && r4<1.0) ratio4 = 2/1 if (s4<0.5) ratio4 = 1/ratio4 dur = t*2 + 1 width = w + 0.001 width1 = w1 + 0.001 width2 = w2 + 0.001 width3 = w3 + 0.001 width4 = w4 + 0.001 setup(pitch, width, 1.0, pitch*ratio1, width1, 0.9, pitch*ratio2, width2, 0.7, pitch*ratio3, width3, 0.5, pitch*ratio4, width4, 0.3) NOISE(st, dur, 10000*ampenv, 0.5) st = st + dur * 1/3 pitch = pitch * ratio if (pitch > 1200) { pitch = pitch/2 } }