hsc3-0.3: Help/Graphs/bottle.lhs
bottle (sc)
> do { freq <- rand 220 880
> ; wn <- whiteNoise ar
> ; pn <- pinkNoise ar
> ; let { chain n f = foldl (>=>) return (replicate n f)
> ; perc = envPerc 0.1 0.6
> ; ex = envGen kr 1 1 0 1 DoNothing perc * wn * 0.02
> ; flute = ringz ex freq 0.3
> ; r = resonz pn (5 + (freq / 2)) 0.1
> ; breath = envGen kr 1 1 0 1 DoNothing perc * r
> ; rapf i = do { x <- linRand 0.001 0.1 (-1)
> ; return (i + allpassN i 0.1 x 1.0 * 0.5) }
> ; cls i = let { en = replicate 3 (EnvNum (-4))
> ; l = envLinen 0.01 3.0 1.0 1 en
> ; z = (breath + i) * envGen kr 1 1 0 1 RemoveSynth l }
> in mce2 z z }
> in do { f <- (chain 2 rapf) flute
> ; audition (out 0 (cls f)) } }